PHP Zugriff auf Formulardaten
Sven
- php
Hi,
ich taste mich gerade an PHP heran und schon gibts Fragen:
warum funkioniert die folgende Anweisung nicht?
die Texteingabe sollte nach Mausklick eigentlich unten angezeigt werden!
Grüße Sven
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="<? echo $PHP_SELF ?>" method="POST">
Name:<br><input type="text" name="name" size="20">
<input type="submit" name="submit" value="set">
</form>
<?
echo "<br>Name: ", $name;
?>
</body>
</html>
Hallo Sven,
ich taste mich gerade an PHP heran und schon gibts Fragen:
warum funkioniert die folgende Anweisung nicht?
weil register_globals auf off steht (in dem was phpinfo(); ausgibt, steht das auch drin)
<title>Untitled Document</title>
mit was ist die Datei erstellt?
<form action="<? echo $PHP_SELF ?>" method="POST">
$_SERVER['PHP_SELF'] - auf welche Seite kommst du, wenn du das Formular absendest?
echo "<br>Name: ", $name;
$_POST['name'] sollte helfen (such mal nach register_globals o.ä. im Archiv, da wirst du einiges finden, u.a. auch warum das besser so ist)
Grüße aus Nürnberg
Tobias
Hallo Sven,
gut register_globals habe ich jetzt mal auf On gestellt.
aber keine Änderungen in der Ausgabe.
Die Datei habe ich mit Dreamweaver "basic html" erstellt, falls das relevant sein sollte.
und nachdem ich den set button gedrückt habe, gelange ich auf eine leere Seite!!!
Auch die Umstellung auf $_POST['name'] ändert leider nichts
(das sollte eigenlich nur eine kleine Übung sein, da ich eine Oberfläche mit vielen Textfields erstellen muss, deren Eingaben in einer Datenbank abgelegt werden müssen und auch wieder herausgelesen werden sollen. Leider ist es doch nicht so einfach wie ich dachte
grüße Sven
Hallo Sven,
gut register_globals habe ich jetzt mal auf On gestellt.
stell das ganz schnell wieder auf off.
aber keine Änderungen in der Ausgabe.
mhh... das was du gepostet hast, funktioniert bei mir (wenn ich $PHP_SELF durch $_SERVER['PHP_SELF'], $name durch $_POST['name'] und <? durch <?php ersetzte)
Die Datei habe ich mit Dreamweaver "basic html" erstellt, falls das relevant sein sollte.
ist es eigentlich nicht, ich hatte nur den Verdacht, dass Dreamweaver o.ä. so einen Murks produziert...
und nachdem ich den set button gedrückt habe, gelange ich auf eine leere Seite!!!
wie sieht denn die Seite aus, _bevor_ du auf "set" (also den submit-Button) drückst? und was steht im Quellcode _nachdem_ du auf set gedrückt hast?
Auch die Umstellung auf $_POST['name'] ändert leider nichts
sollte aber eigentlich...
setzte mal phpinfo(); ein, und schau, was das ausgibt (der Inhalt von $_POST steht im vorletzten Abschnitt (es steht "PHP Variables" drüber) ganz oben). Ansonsten könntest du evtl. mal eine url mit der Seite und eine mit dem Code angeben...
Grüße aus Nürnberg
Tobias
erstmal vielen Dank für Deine Unterstützung.
also register_globals steht wieder auf Off.
Alles andere habe ich unter www.scharf-s.de mal hochgeladen.
Leider gibt er mir den textinput immer noch nicht aus.
grüße sven
Hallo Sven,
also register_globals steht wieder auf Off.
brav :-)
Alles andere habe ich unter www.scharf-s.de mal hochgeladen.
ich glaube ich weiß, an was es liegt - schau mal in die php.ini, was bei short_open_tag steht - ich tippe mal darauf, dass da off steht. Wenn das auf off steht kann man php-Bereiche nicht mehr mit <? öffnen, sondern muss <?php verwenden (wenn du mein vorheriges Posting aufmerksam gelesen hast, wirst du feststellen, dass ich <? gegen <?php ausgetauscht habe, bevor es bei mir funktioniert hat :-)). Bei dir erkennt php die php-Bereiche also nicht als php. Lass die Einstellung aber so und verwende konsequent <?php - sonst bekommst du u.U. Probleme, wenn du dich mit xml beschäftigst :-)
btw: wie man aus einer url einen Link macht steht in </faq/#Q-19>.
Grüße aus Nürnberg
Tobias
nein, bei short_open_tag ist on angegeben
und selbst mit <?php funktioniert es leider nicht.
Gibt es noch eine Möglichkeit zur Fehlerfindung?
Grüße Sven
hi,
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
Name:<br><input type="text" name="name" size="20">
<input type="submit" name="submit" value="set">
</form>
Name: <?php
echo $_POST['name'];?>
</body>
</html>
das kam raus, nachdem ich die seite aufgerufen hab ;-)
ähm... ja...
Moin!
Alles andere habe ich unter www.scharf-s.de mal hochgeladen.
Leider gibt er mir den textinput immer noch nicht aus.
Scherzkeks! Deine Datei muß natürlich dem PHP-Parser auch vorgesetzt werden. Und ja, es hat einen Grund, warum PHP-Dateien auf ".php" enden, und nicht auf ".htm", wie bei dir jetzt.
- Sven Rautenberg
Hallo Sven,
Und ja, es hat einen Grund, warum PHP-Dateien auf ".php" enden, und nicht auf ".htm", wie bei dir jetzt.
*schäm* davon bin ich eigentlich ausgegangen - auf _sowas_ bin ich nicht gekommen... :-)
Grüße aus Nürnberg
Tobias
was heisst das:
Deine Datei muß natürlich dem PHP-Parser auch vorgesetzt werden.?
(neulich habe ich mathematische Funktionen in PHP geschrieben und in einem HTML Dokument gespeichert. Der Browser hat mir alles fehlerfrei ausgegeben.
Deshalb bin ich davon ausgegangen, dass er PHP aus HTML heraus umsetzen kann. Schließlich ist es ja mit den tags <? ---?> deklariert!
Grüße Sven
Moin!
(neulich habe ich mathematische Funktionen in PHP geschrieben und in einem HTML Dokument gespeichert. Der Browser hat mir alles fehlerfrei ausgegeben.
Deshalb bin ich davon ausgegangen, dass er PHP aus HTML heraus umsetzen kann. Schließlich ist es ja mit den tags <? ---?> deklariert!
Aus Performancgründen schickt der Webserver Seiten mit ".htm" oder ".html" direkt zum Browser (jedenfalls in 99% aller Fälle - es hängt von der Konfiguration ab), und nur Dateien mit der Endung ".php" werden durch den PHP-Parser geschleust, und PHP-Code kann ausgeführt werden.
Wenn es bei dir schon mal ohne ".php" geklappt hat, war das wohl Glück. Derzeit interpretiert dein Server aber definitiv kein PHP. Und das liegt an einem von zwei Dingen: 1. Die Dateiendung ist falsch oder 2. Der Server kann überhaupt kein PHP.
- Sven Rautenberg
ich merke schon geht hier ins Unendliche und ihr verliert die Lust.
Aber trotz aller möglichen Dateiendungen .htm .html .php führt der Browser mir den Befehl nicht aus.
Über phpmyadmin wird php als richtig installiert angegeben.
Füge ich die Zeile <?php phpinfo(); ?> allerdings in ein Dokument (als .html oder .php abgespeichert ->es erscheint ein leeres Browser Fenster.-
na ja vielleicht läuft ja morgen alles.
vielen Dank
Sven
Moin,
Aber trotz aller möglichen Dateiendungen .htm .html .php führt der Browser mir den Befehl nicht aus.
Der Browser soll ja auch gar nichts ausführen. PHP läuft schließlich auf dem Server. Naja, bei dir wohl nicht ;-)
Über phpmyadmin wird php als richtig installiert angegeben.
Füge ich die Zeile <?php phpinfo(); ?> allerdings in ein Dokument (als .html oder .php abgespeichert ->es erscheint ein leeres Browser Fenster.-
Schau nach, ob PHP auf dem Server richtig installiert ist und wirf einen Blick in das Errorlog. Wende dich gegebenenfalls an deinen Provider.
Hi!
Schau nach, ob PHP auf dem Server richtig installiert ist und wirf einen Blick in das Errorlog. Wende dich gegebenenfalls an deinen Provider.
Wenn ich nicht irre stand da doch irgendwo was von T-Online, da habe ich mich schon gewundert, aber jetzt ist es ziemlich klar dass das bei "normalem" T-Online Webspace nicht funktionieren wird.
Ich frage mich nur gerade was das für ein Buch sein muss wenn man bis zu "Dateiuploads" kommt und bis dahin nicht verstanden hat was PHP ist!
btw.:
http://www.php3.de/manual/de/introduction.php#intro-whatis
http://www.php3.de/manual/de/tutorial.php
http://php-faq.de/q/q-php-was.html
Grüße
Andreas
Hi!
Wenn ich nicht irre stand da doch irgendwo was von T-Online, da habe ich mich schon gewundert, aber jetzt ist es ziemlich klar dass das bei "normalem" T-Online Webspace nicht funktionieren wird.
stimmt gar nicht, war woanders, wie es aussieht liegt der Kram auf freenet, und da gibt es sogar Pakete mit PHP, was Sven aber wohl nicht gebucht hat: http://www.freenet.de/dienste/homepage/index.html
@Sven: wenn es funktionieren soll brauchst Du z.B. bei Freenet das "Profi-Paket", oder entsprechendes bei einem anderem Provider.
Grüße
Andreas
danke für dein Engagement.
das Problem wird wohl irgendwo in meinen Servereinstellungen liegen.
auf freenet habe ich das Script nur hochgeladen, weil irgendjemand in der Runde mich dazu aufgefordert hat. Aber gut zu Wissen, dass ich für PHP-Ausführungen das Profi Paket brauche.
Übrigens zu meinem PHP-Wissen: In der Runde der letzten Stunden habe ich nichts Neues zu PHP beigebracht bekommen. Ich habe mich wohl zwischendurch undeutlich ausgedrückt (Browser und PHP ausführen (sollte ne Abkürzung sein))
Irgendwie führt er halt das PHP_SELF oder POST nicht richtig aus und landet auf einer leeren Seite
Gute Nacht
Sven
Hi!
Irgendwie führt er halt das PHP_SELF oder POST nicht richtig aus und landet auf einer leeren Seite
Hast Du mal ein paar der Beispiele auf den verlinkten Seiten ausprobiert?
Hast Du Dir mal mit echo $PHP_SELF ausgeben lassen um zu sehen ob da auch das drin steht was Du erwartest? In den Links steht auch mehrmals warum das bei register-globals=off nicht funktionieren wird, und wie es funktioniert wurde inzwischen oft genug gepostet!
Grüße
Andreas
Hi!
Aber trotz aller möglichen Dateiendungen .htm .html .php führt der Browser mir den Befehl nicht aus.
Der Browser soll ja auch gar nichts ausführen. PHP läuft schließlich auf dem Server. Naja, bei dir wohl nicht ;-)
Und hierzu auch direkt ein netter Artikel: http://www.dclp-faq.de/q/q-web-server-client.html
Grüße
Andreas
echo "<br>Name: ", $name;
Da liegt der Fehler: ausgegeben wird nur was in Anführungszeichen steht!
print(" <br> Name: $_POST['name']")
Besorge Dir zuerst mal ein Buch! Oder lese wegen mir auch Online.
Sonst stolperst Du über jede noch so kleine Syntax.
Viele Grüße Tom
Hallo
Besorge Dir zuerst mal ein Buch! Oder lese wegen mir auch Online.
Genau das solltest du auch machen *SCNR*
Natürlich kannst du das so ausgeben lassen wie er es dort stehen hat. Probiere es aus und staune!
Grüße
David
Ja nun steinigt mich schon. :-)
Viel Grüße aus Berlin!
TomIRL
Hallo Tom,
echo "<br>Name: ", $name;
Da liegt der Fehler: ausgegeben wird nur was in Anführungszeichen steht!
nein. Variablen können auch außerhalb der Anführungszeichen stehen (das Komma ist in dem Fall zum verknüpfen der Zeichenketten).
print(" <br> Name: $_POST['name']")
der Code von Sven funktioniert mal abgesehen von dem fehlenden $_POST... durchaus.
Sonst stolperst Du über jede noch so kleine Syntax.
mh...
Grüße aus Nürnberg
Tobias
ich habe dieses Script aus php4+MySQL -Internet intern von DATA BECKER
Das Buch ist anscheinend mit Fehlern im Code behaftet
Grüße Sven
Hallo!
ich habe dieses Script aus php4+MySQL -Internet intern von DATA BECKER
Das Buch ist anscheinend mit Fehlern im Code behaftet
Aber Hallo! Von wann ist das bitte? Also wenn in aktuellen Büchern so ein Quatsch verbreitet wird ist es IMHO eine Unverschämtheit dafür Geld zu verlangen.
Wie man es richtig macht steht schon ganz am Anfang vom Manual, sogar in deutsch: http://www.php3.de/manual/de/tutorial.forms.php
Grüße
Andreas