POST und GET funktionieren auf meiner WAMP nicht
Wenste
- php
Hi ihrs,
mein Problem ist folgendes:
Eine kleine Mehrzweckseite mit Formular und Ausgabe, das sich selbst aufruft, funktioniert auf dem Webspace meines ISP, aber unter meiner lokalen Umgebung nicht.
<?php
if (isset($addjoke)): // Wenn Benutzer einen Witz hinzufuegen will
?>
<form action="<?=$PHP_SELF?>" method="post"> //bzw GET
...
<input type="submit" name="submitjoke" value="Speichern" /></p>
</form>
<?php
else: // Vorgabeseite anzeigen
// Verbindung zum Datenbankserver
...
// Wenn ein Witz eingetragen wurde,
// wird er zur Datenbank hinzugefuegt
if ($submitjoke == "Speichern") {
...
}
echo("<p>Hier sind alle Witze in unserer Datenbank: </p>");
// Text aller Witze abfragen
...
// Wenn angeklickt, laedt dieser Link die Seite
// mit dem Formular zum Eingeben eines Witzes
echo("<p><a href='jokes2.ph<?=$PHP_SELF?>p?addjoke=1'>Einen Witz hinzufügen!</a></p>");
}
?>
</body>
</html>
Ich habs mit Post und Get ausprobiert,
er will die Variablen aus der URI aber einfach nicht übernehmen.
Liegts an meiner php-Konfig.?
Wie kann ich das ändern?
Sorry, ist ein bißchen lang geworden, aber schonmal vielen Dank fürs lesen.
Gruß Wenste
Moin
Dein Problem heist Register_GLOBALS OFF
Wäre schön wenn Du uns verraten könntest welche PHP Version und welches mit Post und GET Du probiert hast!
TomIRL
Moin
Achja mache bloß nicht den Schalter Register_Globals = on!
Du weist offenbar nicht was Du tust!
Deshalb verate ich Dir welche Methoden Du verwenden kannst wenn Du diese Einstellung hast.
Viele Grüße aus Berlin
hi,
ich hab die register_globals = Off !
Bye
Moin
Dein Problem heist Register_GLOBALS OFF
Wäre schön wenn Du uns verraten könntest welche PHP Version Du probiert hast!TomIRL
HI TomIRL,
klar, hatte auch vor sie drunter zu setzen:
4.2.1
( SERVER["REQUEST_METHOD"] GET //falls das weiterhilft)
Also:
Du must ab 4. irgenwas die Variablen so ansprechen:
$_POST[varname]
$_GET[varname]
Dieses ist aus Sicherheitsgründen so!
Wenn Du viele Variablen hast epfielt sich die Verwendung von foreach ().
Mehr zum Thema unter:
http://www.php.net/manual/de/security.registerglobals.php
Viele Grüße aus Berlin
TomIRL
hi
Erst mal vielen Dank,
aber ich hatte gehofft, um $_POST herum zukommen.
Da es beim Provider lief,
soll es auch auf meinem Rechner identisch laufen.
Sicherheit hin oder her, mein Rechner ist offline.
Also was soll da noch groß passieren?
Bye
Moin!
aber ich hatte gehofft, um $_POST herum zukommen.
Da es beim Provider lief,
soll es auch auf meinem Rechner identisch laufen.
_Noch_ läuft es bei deinem Provider. Aber wie lange noch? Die Standard-Einstellung für PHP (einfach weil sich Programmierer, egal ob hobbyweise oder professionell, regelmäßig dumme Sicherheitslücken in ihre Skripte eingebaut haben) ist seit vielen Versionen register_globals=off.
$_GET etc. funktioniert auch, wenn register_globals=on sind. $getvariable funktioniert aber nicht, wenn register_globals auf off ist.
Wenn du also Skripte schreiben willst, denen es egal ist, mit welcher Einstellung PHP läuft, dann nimmst du $_GET, $_POST und Consorten, und machst damit ein schönes Skript.
Sicherheit hin oder her, mein Rechner ist offline.
Also was soll da noch groß passieren?
Dein Rechner ist mit register_globals=off ja auch gut konfiguriert. Der Providerrechner ist schlecht konfiguriert. Und das könnte sich eben mal ändern - oder auch dann, wenn du den Provider mal wechselst. Oder dein Skript freundlicherweise an jemand anders weitergibst, weil du helfen willst.
- Sven Rautenberg
Moin!
...
»»
Dein Rechner ist mit register_globals=off ja auch gut konfiguriert. Der Providerrechner ist schlecht konfiguriert. Und das könnte sich eben mal ändern - oder auch dann, wenn du den Provider mal wechselst. Oder dein Skript freundlicherweise an jemand anders weitergibst, weil du helfen willst.
Darüber hab ich mir auch gedanken gemacht.
Die Variante die nur mit register_globals=on läuft, ist aus einem recht guten Lehrbuch zum Thema db-gestützte Website von Kevin Yank.
Sollte man da bei BeispielSkripten nicht eine Default-Conf. voraussetzen?
Bye Wenste
Die Variante die nur mit register_globals=on läuft, ist aus einem recht guten Lehrbuch zum Thema db-gestützte Website von Kevin Yank.
Sollte man da bei BeispielSkripten nicht eine Default-Conf. voraussetzen?
Default ist REGISTER_GLOBALS OFF!
Viele Grüße TomIRL
Moin!
Die Variante die nur mit register_globals=on läuft, ist aus einem recht guten Lehrbuch zum Thema db-gestützte Website von Kevin Yank.
Das Buch ist aber mit Sicherheit so alt, dass es sich noch auf PHP Version 4.0 oder 4.1 bezieht.
Sollte man da bei BeispielSkripten nicht eine Default-Conf. voraussetzen?
Bis PHP 4.1 war register_globals=on Standardeinstellung. Das hat sich, wenn ich richtig informiert bin, seit PHP 4.2 (schlimmstenfalls erst seit 4.3) geändert.
Insofern: Bücher veralten. Bei PHP mit dem riesigen Entwicklungstempo eben schneller, als bei relativ statischen Angelegenheiten wie HTML 4.01 Transitional. :)
- Sven Rautenberg
hi,
Du must ab 4. irgenwas die Variablen so ansprechen:
$_POST[varname]
$_GET[varname]
die konstante varname hast du natürlich vorher definiert, denn sonst würdest du ja stattdessen
$_POST['varname']
$_GET['varname']
schreiben, richtig ...?
gruss,
wahsaga