Übernahme von value im Affenformular..
Strulli
- html
Huhu.. ich stehe gerade auf dem Schlauch O.o
Ich weiß nicht, warum der Wert meiner Variable nicht als Value in meinem Formular auftaucht...
Es ist bestimmt ein Fehler, der so simpel ist, dass ich ihn genau aus diesem Grund nicht finde. :(
Beispiel:
<?php
$text = "lorum";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Lottozahlen <?php echo $titel; ?></title>
</head>
<body>
<form action="index.php" method="POST">
<fieldset>
<legend accesskey=A>Testeingabe</LEGEND>
<p>
<label accesskey=B>
<input type="text" name="text" value="<?php echo $text; ?>" size="20" maxlength="50">
</label>
</p>
</fieldset>
<input type="submit" name="ok" value="OK">
</form>
</body>
</html>
Wo versteckt sich der Fehler??
Liebe Grüße, Strulli
<?php
$text = "lorum";
Nachtrag:
Es soll natürlich
~~~php
<?php
$text = "lorum";
?>
heißen.
Hi,
Ich weiß nicht, warum der Wert meiner Variable nicht als Value in meinem Formular auftaucht...
Schalte das error_reporting auf E_ALL und display_errors auf on - und dann schau an der Stelle im vom Script ausgegebeben Quelltext nach.
MfG ChrisB
Hello,
Ich weiß nicht, warum der Wert meiner Variable nicht als Value in meinem Formular auftaucht...
<input type="text" name="text" value="<?php echo $text; ?>" size="20" maxlength="50">
Das leigt daran, dass PHP schon seit einiger Zeit die Methoden der Parameterübertragung wieder trennt in
und ein paar weitere
Ein Kondtrukt, wie das folgende, könnte Dir weiterhelfen.
if (magic_quotes_gpc())
{
$test = stripslashes($text);
}
$text = htmlspecialchars($text,ENT_QUOTES);
...
<input type="text" name="text" value="<?php echo $text; ?>" size="20" maxlength="50">
Schau dir http://www.php.net/manual/en/language.variables.predefined.php an.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Hellihello
Hello,
Ich weiß nicht, warum der Wert meiner Variable nicht als Value in meinem Formular auftaucht...
<input type="text" name="text" value="<?php echo $text; ?>" size="20" maxlength="50">
Das leigt daran, dass PHP schon seit einiger Zeit die Methoden der Parameterübertragung wieder trennt in
Schlau schlau, aber wieso nimmt er nicht <?= $_GET["text"]?> ?
Dank und Gruß,
Hi,
Das leigt daran, dass PHP schon seit einiger Zeit die Methoden der Parameterübertragung wieder trennt in
Schlau schlau, aber wieso nimmt er nicht <?= $_GET["text"]?> ?
Weil sein Formular method=post verwendet :-)
Und magic_quotes_gpc haben mit dem generellen Zugriff bei register_globals=off erst mal nichts zu tun, sondern lediglich mit den eventuell zusaetzlich eingefuegten Backslashes vor Sonderzeichen.
MfG ChrisB
Hello,
Das leigt daran, dass PHP schon seit einiger Zeit die Methoden der Parameterübertragung wieder trennt in
Schlau schlau, aber wieso nimmt er nicht <?= $_GET["text"]?> ?
Da er in
<form action="index.php" method="POST">
festgelegt hat, die Parameter per POST-Methode und nicht per GET-Methode zu übertraren
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Hello,
Schlau schlau, aber wieso nimmt er nicht <?= $_GET["text"]?> ?
Klare, klar... da fehlte der wichtigste Teil, nämlich das $_POST['text']
<?=
sollte man aber nicht benutzen. Die sogenannten Short-Open-Tags machen irgendwann nur Probleme mit XML oder auch, wenn sie auf dem jeweiligen Server sowieso nicht aktiviert sind.
Warum man hier $_GET nicht benutzt, hat Dir ChrisB schon geschrieben.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Hellihello
Hello,
Schlau schlau, aber wieso nimmt er nicht <?= $_GET["text"]?> ?
Klare, klar... da fehlte der wichtigste Teil, nämlich das $_POST['text']
<?=
sollte man aber nicht benutzen. Die sogenannten Short-Open-Tags machen irgendwann nur Probleme mit XML oder auch, wenn sie auf dem jeweiligen Server sowieso nicht aktiviert sind.
Sieht das ZendFramework anders. Lässt sich ja auch u.U. im Subdirectory aus/einschalten.
Warum man hier $_GET nicht benutzt, hat Dir ChrisB schon geschrieben.
Naja, ich hatte die method übersehen. Aber grundsätzlich würde ich die globalen Variablen $_GET bzw. $_POST auch so nutzen, wenn sie nicht vorbehandelt werden müssten. <?=htmlspecialchars($_POST)?> wärs dann wohl.
Dank und Gruß,
Hello,
Naja, ich hatte die method übersehen. Aber grundsätzlich würde ich die globalen Variablen $_GET bzw. $_POST auch so nutzen, wenn sie nicht vorbehandelt werden müssten. <?=htmlspecialchars($_POST)?> wärs dann wohl.
Das kommt immer darauf an, was man erreichen will.
Ich mache das grundsätzlich am liebsten so:
$_POST |
$_GET | => bleiben bis zum Ende des Scriptes erhalten
$_data => erhält alle Daten, mit denen im Script gearbeitet werden muss.
$_out => beinhaltet alle meine Daten zur Ausgabe ins HTML vorbehandelt
Solange es nicht um Monstervariablen geht, reicht dafür der Speicher auch aus und man hat immer Übersicht über den Stand der Dinge...
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Hellihello
Hello,
Naja, ich hatte die method übersehen. Aber grundsätzlich würde ich die globalen Variablen $_GET bzw. $_POST auch so nutzen, wenn sie nicht vorbehandelt werden müssten. <?=htmlspecialchars($_POST)?> wärs dann wohl.
Das kommt immer darauf an, was man erreichen will.
Ich mache das grundsätzlich am liebsten so:$_POST |
$_GET | => bleiben bis zum Ende des Scriptes erhalten$_data => erhält alle Daten, mit denen im Script gearbeitet werden muss.
$_out => beinhaltet alle meine Daten zur Ausgabe ins HTML vorbehandelt
Solange es nicht um Monstervariablen geht, reicht dafür der Speicher auch aus und man hat immer Übersicht über den Stand der Dinge...
Jau, mir war so, als hätte ich in Diskussionen hin und wieder gelesen, dass das rumkopieren der globalen POST/GET (REQUEST) nicht immer nötig/effizient ist. Zudem sieht man dem Datum im Script dann auch noch an, wo es hier kommt.
Na, PHP lebt (;-).
Dank und Gruß,
Hello,
Korrektur und auch Entschuldigung an frankx natürlich :-)
Die Zeile musste selbstverständlich so lauten:
$text = htmlspecialchars($POST['text'],ENT_QUOTES);
*duck*
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Hello,
Korrektur und auch Entschuldigung an frankx natürlich :-)
Die Zeile musste selbstverständlich so lauten:
$text = htmlspecialchars($POST['text'],ENT_QUOTES);
Gibt's denn das?
$text = htmlspecialchars($_POST['text'],ENT_QUOTES);
---
*doppelduck*
Irgendwie haben die sieben Flaschen Wein seit XX wohl schon ihre Wirkung...
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Hi,
Die Zeile musste selbstverständlich so lauten:
$text = htmlspecialchars($POST['text'],ENT_QUOTES);
Davor gehoert aber auch noch die Abfrage, ob $_POST['text'] denn auch existiert.
MfG ChrisB
Hello,
Die Zeile musste selbstverständlich so lauten:
$text = htmlspecialchars($POST['text'],ENT_QUOTES);
Davor gehoert aber auch noch die Abfrage, ob $_POST['text'] denn auch existiert.
Genau! Es ist gleich Weihnachten in Neuseeland und ich bin sehr unaufmerksam.
$text = ''; ## lokale Variable auf einen garantierten Typ und Wert setzen
if (isset($_POST['text'])) ## Wurde 'text' überhaupt per Post übertragen?
{
if (magic_quotes_gpc()) ## Wenn die Magic Quotes eingeschaltet sind
{
$test = stripslashes($_POST['text']); ## mache sie rückgängig
}
}
$text = htmlspecialchars($text,ENT_QUOTES);
...
<input type="text" name="text" value="<?php echo $text; ?>" size="20" maxlength="50">
So; nun aber!
Bist Du jetzt einverstanden?
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Hello,
$text = ''; ## lokale Variable auf einen garantierten Typ und Wert setzen
if (isset($_POST['text'])) ## Wurde 'text' überhaupt per Post übertragen?
{
if (magic_quotes_gpc()) ## Wenn die Magic Quotes eingeschaltet sind
{
$text = stripslashes($_POST['text']); ## mache sie rückgängig
# ---
}
}$text = htmlspecialchars($text,ENT_QUOTES);
...
<input type="text" name="text" value="<?php echo $text; ?>" size="20" maxlength="50">
Hast Du den Fehler noch nicht entdeckt? :-P
Ich glaube, ich beschränke mich heute lieber aufs Fernsehen.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Hellihello
Wo versteckt sich der Fehler??
In deiner Fehlersuche. Frag nicht, warum der Wert da nicht auftaucht, sondern bau ein Script, wo er auftaucht und erweitere es dann. Und poste nicht unvollständigen Code, denn der Fehler liegt ja offebar darin, dass du $title doch nicht richtig setzt oder überschreibst, oder falsch schreibst,
Dank und Gruß,