Warum funzt das nicht???
Jochen
- php
Hallo Leute!
Ich bin grad schwer am PHP lernen, und hätte ein kleines Problem mit der Übergabe von Variabeln (aus einem Formular):
Datei 1:
<html>
<body>
Bitte tragen Sie zwei Zahlen ein und senden Sie das Formular ab.<br>
<form action = "tst.php" method = "post">
Wert 1: <input name="w1" type="Text" id="w1"><p>
Wert 2: <input name="w2" type="Text" id="w1"><p>
<input type = "submit">
<input type = "reset">
</form>
</body>
</html>
Datei 2(tst.php):
<html>
<body>
<?php
$erg = $w1 + $w2;
echo "Die Summe von $w1 und $w2 ist $erg";
?>
</body>
</html>
Auf meinem lokalen Apache Server geht es nicht. (PHP 4.2.2 Modul unter Win32 (Win98); Apache 1.3.26)
Auf meinem normalen Server (bei Strato) (Laut SelfHTML Test "Apache/1.3.26 (Unix) mod_x-httpd-php4_script")
Auf meinem lokalen Server funktioniert alles andere, dass mit PHP zu tun hat aber bestens. Auch die Apache Console sagt:
"Apache/1.3.26 (Win32) PHP/4.2.2 running..."
Was hab ich bei der PHP Installation falsch gemacht, oder muss ich noch irgendwas zusätzlich installieren???
Danke
Gruss Jochen
Noch was:
Wenn ich das Formular abgeschickt habe, kommt zwatr die "tst.php" aber nur mit ff. Inhalt:
"Die Summe von und ist 0"
Hoffe auf Hilfe
Jochen
Hallo Jochen!
ich unterstelle mal, dass du eine neuere Version von PHP benutzst..
dort steht in der php.ini der Eintrag register_globals standardmäßig auf "off" - d.h: du kannst nicht direkt auf die Variablen zugreifen, wie bislang gewohnt ...
Mehr dazu (insbes. warum das so ist):
http://www.dclp-faq.de/q/q-sicherheit-global.html
Gruss Sven
Wunderbar!!!
Jetzt geht's!
Danke.
Gruss Jochen
Guten Tag,
Wunderbar!!!
Schön. Du weißt jetzt woran es lag.
Nur nebenbei: In einem Formular sollten keine zwei Objekte die selbe ID bekommen. War bestimmt nur ein Copy&Paste-Fehler - oder?
Wenn Du am Anfang des Scriptes zum Beispiel schreibst:
$V=$_POST;
dann werden die Variablen nach $V kopiert und du hast nicht mehr soviel Tipparbeit im Script. Außerdem kannst Du dann zur Not immer nochmal auf $_POST zurückgreifen.
Außerdem bietet es sich an, den $V gleich am Anfang die Zähne zu ziehen. stripslashes, strip_tags, newlines ersetzen durch z.B. chr(127), usw.
Je nachdem, was man im weiteren so damit anfangen will.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo Jochen,
Ich bin grad schwer am PHP lernen, und hätte ein kleines
Problem mit der Übergabe von Variabeln (aus einem
Formular):
[...]
Kurz: register_globals.
Laenger: Seit PHP 4.2 ist register_globals auf per Default
'off' geschaltet. 'register_globals' ist ein Schalter, der
bestimmt, ob CGI-Variablen im globalen Variablen-Namespace
registriert werden sollen oder nicht. Du solltest per $_GET
und $_POST an die Daten gelangen, da auch in Zukunft
register_globals auf 'off' geschaltet sein wird. Das hat
Sicherheitsrelevante Gruende, die du im Handbuch
(http://php.net/manual/de/) nachlesen kannst.
Gruesse,
CK
Tach auch!
Datei 2(tst.php):
<html>
<body>
<?php
$erg = $w1 + $w2;
echo "Die Summe von $w1 und $w2 ist $erg";
?>
</body>
</html>
Versuch's doch mal mit $POST_['erg']. Der Fehler hängt damit zusammen, dass Deine (neuere) PHP-Version gepostete Variablen nicht mehr mit ihrem ursprünglichen Namen verarbeitet. Du kannst aber auch $erg=$POST_['erg']; schreiben, dann wird's einfacher, wenn Du die Variable öfter brauchst...
Gruss
Lemmy
http://www.olison.com
Versuch's doch mal mit $POST_['erg']. Der Fehler hängt damit zusammen, dass Deine (neuere) PHP-Version gepostete Variablen nicht mehr mit ihrem ursprünglichen Namen verarbeitet. Du kannst aber auch $erg=$POST_['erg']; schreiben, dann wird's einfacher, wenn Du die Variable öfter brauchst...
Sorry $_POST natürlich...
Gruss
Lemmy
http://www.olison.com
Moin!
$erg = $w1 + $w2;
echo "Die Summe von $w1 und $w2 ist $erg";
Versuch's doch mal mit $POST_['erg'].
Nö, dann doch lieber so:
$erg = $_POST['w1'] + $_POST['w2']
Schließlich wird das Ergebnis in $erg berechnet, und nicht vom Formular übergeben.