Brauch (schnelle) hilfe bei Variablen übergabe mit PHP per Formular

SSJSon-Goten

Mitglied
Also, Variablen übergabe per Formular ist ansich nix schweres ^^
Wie kann ich aber Variablen die erst beim drücken des Submit Buttons mit einem entgültigen Wert Initialisiert werden über die ganze Seite noch erreichbar machen?

Es ist so:
Ich habe ein Formular, dort kann man dann z.B. ein Item wählen, per Submit Button wird an eine andere Stelle in der gleichen Datei verwiesen (per if($submit) { ... }), dort wird diese Variable aber eigentlich noch gar nicht gebraucht, in dem Teil wird nur ein Zeit eintrag in der Datenbank vorgenommen

PHP:
$db = mysql_connect($dbserver, $dbuser, $dbpass);
               mysql_select_db($dbname, $db);
               $sql = "SELECT * FROM useritems";
               $result = mysql_query($sql, $db);
               $row = mysql_fetch_array($result);


                if($submit) {
                $time1 = time();
                $time2 = time() + (1*60);

                mysql_connect($dbserver,$dbuser,$dbpass);
                mysql_select_db($dbname);


                $sql = "UPDATE useritems SET bestellzeit='$time2' WHERE besitzer='SSJSon-Goten'";
                $ergebnis = mysql_query($sql);


                
                header("Location: test.php");
                } else {



 if ($row[bestellzeit] == "0") {
     echo "
     <form method=\"post\" action=\"$PHP_SELF\">
            <input type=hidden name=\"id\" value=\"$data[id]\">
             <table border=\"0\" align=\"center\">
              <tr>
             <td>
              <font size=1><b>Bestell Daten:</font></b>
             </td>
            </tr>
            <tr>
             <td>
              <font size=\"1\">Item:</font>
             </td>
             <td>
              <select name=\"item\" size=\"1\">
               ";
               $db = mysql_connect($dbserver,$dbuser,$dbpass);
               mysql_select_db($dbname,$db);
               $sql = "SELECT * FROM items WHERE freigegeben='Ja'";
               $result = mysql_query($sql,$db);
               while ($row = mysql_fetch_array($result))   {
               $row[item] = ereg_replace(" ", "", $row[item]);
               echo "<option value=".$row[item].">".$row[item]."";
               }
             echo"</select>
             </td>
             </tr>
             <tr>
             <td>
              <font size=\"1\">Anzahl:</font>
             </td>
             <td>
              <select name=\"anzahl\" size=\"1\">
               <option value=\"1\">1
               <option value=\"2\">2
               <option value=\"3\">3
               <option value=\"4\">4
               <option value=\"5\">5
               <option value=\"6\">6
               <option value=\"7\">7
               <option value=\"8\">8
               <option value=\"9\">9
               <option value=\"10\">10
             </select>
             </td>
             </tr>
            <tr>
             <td>
              &nbsp;
             </td>
             <td>
              <input type=\"submit\" name=\"submit\" value=\"Eintragen\" onclick=\"return confirm('Wirklich bestellen?');\">
             </td>
            </tr>
         </table>
         </form>";
         
}

gebe ich die Variable $item in dem if($submit) teil aus, gehts auch. Aber wenn der Datenbank eintrag von statten gegangen ist, verweißt der Teil auf eine andere Stelle in der Datei wo Zeit berechnet wird und an einen JS Counter weitergegeben wird. Ist dieser Counter auf 0:00:00 leitet er wieder auf einen anderen Teil in dieser Datei weiter, wo der eigentliche Ablauf passiert, nach dem alles andere vollzogen wurde.

PHP:
 if ($bestellung == "angekommen") {

                    mysql_connect($dbserver,$dbuser,$dbpass);
                    mysql_select_db($dbname);

                    $bestellzeit="0";
                    $sql = "UPDATE useritems SET bestellzeit='$bestellzeit', $item='$anzahl' WHERE besitzer='SSJSon-Goten'";
                    $ergebnis = mysql_query($sql);

                }
(if ($bestellung == "angekommen) ist keine Variablen übergabe, sondern einfach nur als unterteilung gedacht)
Erst hier am ende wird die Variable $item benötigt und nicht früher. Stoppe ich hier das formular und will zum Test die Variable ausgeben erscheint sie nicht mehr! Sie ist nur im if($submit) teil vorhanden. Wie kann ich also die Variablen aus dem Formular für die ganze Seite verfügbar machen, ich bekomm das einfach net hin! Hoffentlich weiß jemand schnell ne antwort ^^
 
ist doch logisch :-)

header("Location: test.php");

da wird die datei neu aufgerufen und darum alle vars gelöscht

du musst also alle vars die du nochmal benötigst (hier item) retten

teste doch mal dies:

header("Location: test.php?item=$item");
 
Zuletzt bearbeitet:
Boah bin ich blöd :-) Daran hab ich gor net gedacht :rolleyes:
Ich versuch das mal bei gelegenheit und melde mich dann mal :-)

Edit
Joa, danke es geht :-)
Die URL wird allerdings bei mehr Variablen etwas lang *g*
 
Zuletzt bearbeitet:
tja, fuer solche dinge wurden sinnvolle sachen wie 'hidden' Form-Fields erfunden, somit ersparst Du dir die ganze url tipperei. :-)
 
nee werden nicht ---

es geht aber :

formfeld mit hidden felder
dann javascript nutzen mit onload gleich das formular versenden

so in der richtung

anhängen finde ich besser :-)
 
achso, sorry ich dachte Du arbeitest mit Formularen (hab mir dein Script nicht angeschaut.. ) ..

aber Du kannst auch deine ganzen variablen in ein array packen, somit hast Du weniger tip-arbeit (naja weniger nicht, aber dafuer sieht deine url 'sauberer' aus ) ;) ..

$var = array( "x" => "x-wert", "y" => "y-wert" );

etc..

*.php?var

denke mal das das so geht.. oder besser funktionieren "wuerde"..

wie immer alles ohne Gewaehr. :-)
 
Zuletzt bearbeitet:
Zurück