Denkfehler bei Registrierscript. [registrieren in 3 Schritten]

Kurt Cobain

Erfahrenes Mitglied
Tag TAg

Also erst mal der Code:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
</head>
<body>

<?php
//error_reporting(E_ALL);

// Funktion zum Drucken von Fehlermeldungen
function msg($msg)
{
    echo "<span class=\"fail\"><b>$msg</b></span>";
}

// eingabe pruefen
function v_name($val)
{
   $msg = "";
   if($val=="")
   {
        $msg = "Bitte ausfüllen! \n";
   }
   return $msg;
}

if (isset($_REQUEST["name"]))
{
$v_name = true;
    $error["name"] = v_name($_REQUEST["name"]);
    if ($error["name"] != "")
    {
      $v_name = false;
    }
}



if(!$v_name || !isset($_REQUEST["b1"]))
{
?>
  <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
    <input type="Text" name="name" size="36" value="<?php echo $_POST["name"]; ?>" >

      &nbsp;<?php if($error["name"] != ""){echo msg($error["name"]);} ?>  <br>

    <input type="Submit" name="b1" value="Weiter" >
  </form>
<?php
}
elseif($v_name and isset($_REQUEST["b1"]))
{
?>
  <br><br>Daten überprüfen<br>
  Ihr name: <b><?php echo $_POST["name"]; ?></b>

  <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="hidden" name="name" value="<?php echo $_POST["name"]; ?>">
    <input type="Submit" name="" value="ändern">

    <input type="Submit" name="b2" value="registrieren">
  </form>

<?php
}
elseif($v_name and isset($_REQUEST["b2"]))
{
    echo "hier wird in mySQL eingetragen";
}
?>

</body>
</html>

Also:

Schritt 1:
Inputfeld und ein Submittbutton.
User gibt einen Namen ein. Dann kommt er weiter zu Schritt 2

Schritt 2:

Der User überprüft seine Eingabe.
Will er was ändern drückt er auf ÄNDERN. -> Dann kommt er zu Schritt 1 zurück.
Will er nichts ändern drückt er auf REGISTRIEREN -> Dann soll er zu Schritt 3 kommen.

Schritt 3:
Eintragung in mySQL Tabelle.

Mein Problem ist, dass ich nicht zu Schritt 3 komme.

Kann mir einer helfen


Gruß ich.
 
Probiere doch einmal folgendes:

PHP:
<?php 

   if(!isset($_POST['senden']) && !isset($_POST['registrieren'])){

      echo'<form action="'.$_SERVER['PHP_SELF'].'" method="POST">';
      echo'<input type="text" name="name" size="24"><br>';
      echo'<br>';
      echo'<input type="submit" name="senden">';
      echo'</form>';
   }
   elseif(isset($_POST['senden']) && empty($_POST['name'])){

      if(empty($_POST['name'])){
         $meldung = 'Bitte füllen Sie das Feld aus';
      }
      echo'<form action="'.$_SERVER['PHP_SELF'].'" method="POST">';
      echo $meldung.'<br/>';
      echo'<input type="text" name="name" value="'.$_POST['name'].'" size="24"><br>';
      echo'<br>';
      echo'<input type="submit" name="senden">';
      echo'</form>';  
   }
   if(isset($_POST['senden']) && !empty($_POST['name'])){

      echo'<form action="'.$_SERVER['PHP_SELF'].'" method="POST">';
      echo 'Ihr Name ist: '.$_POST['name'].'<br/>';
      echo'<input type="text" name="name" value="'.$_POST['name'].'" size="24"><br>';
      echo'<br>';
      echo'<input type="submit" value="registrieren" name="registrieren">';
      echo'<input type="submit" value="loeschen" name="loeschen">';
      echo'</form>';  
   }
   elseif(isset($_POST['registrieren'])){
      echo 'Daten in Datenbank registriert';
   }
   if(isset($_POST['loeschen'])){

      unset($_POST);
}
?>
 
Schau dir mal die xajax-Klasse an, sehr kompfortabel und würde sich hier bestimmt anbieten um was schickes zu Basteln =)

xajaxproject.org - kleines Tutorial, Wiki sind vorhanden.. am Besten die Examples im zip-File anschauen!
 
Er kommt nicht in die 3. elseif Schleife.

Also hier:
PHP:
elseif($v_name and isset($_REQUEST["b2"]))
{
    echo "hier wird in mySQL eingetragen";
}

Was muss ich ändern
 
kann es vielleicht sein, dass noch dein $_REQUEST["b1"] gesetzt ist? lass dir doch mal alle interessanten Variablen per echo() ausgeben, dann siehst du welchen Wert die bei den einzelnen Durchläufen haben und kommst so vielleicht auf den Fehler..

Btw, wo landet er denn überhaupt?
 
Tagh TAg

ich weiß jetz was falsch ist:
bei der ersten if schleife muss es
PHP:
!$v_name || !isset($_REQUEST["b1"]) and  !isset($_REQUEST["b2"])

hei´ßen
 
Zurück