Php_self

kesnw

Erfahrenes Mitglied
Hallo,

ich habe folgendes Problem:

Ich habe ein Formular gebastelt, das durch eine PHP-Abfrage ausgewertet wird:

FORMULAR:
Code:
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="POST">
<input type="submit" name="submit" value ="Weiter">
<input type="reset" value="Reset">
</form>

ABFRAGE:
Code:
<?
if($_POST['submit'] == "Weiter") {
$b=$_POST['name'];
$v_name=$b;
$update="UPDATE vendors SET V_Name='$v_name' WHERE V_ID='$login'";
mysql_query($update);
$target="index.html";
$msg = "<meta http-equiv=\"Refresh\" content=\"0;url=$target\">"; 
echo $msg;
?>

Wenn ich nun die Seite aufrufe springt er direkt zurück zu index.html, das heißt das if wird ausgeführt obwohl ich den Button noch nicht gedrückt habe. Wo ist der Fehler?

Die if-Abfrage befindet sich im Quelltext über dem Formular, wenn ich das umgekehrt mache bekomme ich andere Probleme...

Danke,
KAI
 
das ist einfach, du darfst nicht fragen if ($submit == "Weiter") denn dieser wert besteht am anfang natürlich schon!
frage einfach mit if ($submit) {
so sollte es dann wohl klappen;)
 
versuchs mal so..

PHP:
if(isset($_POST['submit'])) {
$update=mysql_query("UPDATE vendors SET V_Name='".$_POST['name']."' WHERE V_ID='$login'");
if(mysql_affected_rows(update))=="1") {
print '<meta http-equiv="Refresh" content="0;url=index.htm">'; 
?>

mhh.. also ich denke mal das Du $login via $_POST oder mit $_GET übergibst, oder? dann musst Du anstelle von $login -> '".$_REQUEST["login"]."' ....wobei hier für $_request die jeweilige methode einzutragen ist.

ps. dein Script ist total umstaendlich geschrieben (ehm..um es etwas angenehmer auszudruecken ;)), ich habs mal etwas optimiert und einige Sachen hinzugefuegt. :)
 
Zuletzt bearbeitet:
Zurück