2017-03-26 7 views
1

Ich habe ein Formular auf Seite a.php mit php Code, der die Daten aus dem Formular in php Sitzungsvariablen setzen sollte, aber ich habe Probleme, damit es funktioniert. Ich habe session_start(); am Anfang jeder Seite möchte ich dies tun, aber es ist an der Spitze der html, deshalb ist es nicht in diesem Stück. HierSitzungsvariable aus HTML-Formular Eingabedaten erstellen

ist der Code:

<form class="form1" method="post" action="" id="form1"> 
    <div class="form-group add_to_cart_prompt"> 
     <span class="">Add something to cart</span> 
    </div> 
    <div class="form-group"> 
     <input type="text" name="sticker" class="form_sticker_name" value="something"> 
     <label class="quantity_desc" for="quantity" title="how much?">Quantity</label> 
     <input class="btn btn-default quantity_input" type="number" id="quantity" name="quantity" placeholder="how much ?" min="0" required> 
    </div> 
    <div class="form-group bottom_buttons"> 
     <button type="submit" name="submit" class="btn btn-default add_yes">Add to cart</button> 
     <button type="reset" class="btn btn-default">Clear</button> 
     <button type="button" class="btn btn-default add_no">Close</button> 
    </div> 
</form> 

PHP, die die Form ausgeführt ist auf der gleichen Seite wie die folgende Form:

<?php 
    if (isset($_POST['submit'])) { 
     if (isset($_POST['sticker'])) { 
      $sticker_name = $_POST['sticker']; 
      $_SESSION['sess_sticker'] = $sticker_name; 
     } 
    } 
?> 

ich Session-Variablen zu einem gewissen string festlegen können, und dass die Arbeiten ok, aber wenn ich versuche, Daten aus dem Formular zu setzen, gibt es mir diesen Fehler:

Notice: Undefined index: sticker in B:\Programs\xampp\htdocs\D2S\shopping_cart.php on line 99

Ich habe nachgeschlagen, wie man den Fehler beheben kann, und habe viel versucht und kann es nicht beheben. Danke, dass du versucht hast zu helfen.

+0

Dieser Fehler wird vom 'isetset' abgefangen. Ich bin mir nicht sicher, ob Sie einen anderen Aufruf für das' stickers'-Feld als das auf derselben Seite haben. Fügen Sie jedoch unter der zweiten Bedingung eine Bedingung '! empty ($ _ POST ['stickers'])' hinzu. – Roljhon

Antwort

0

In PHP unterscheidet sich eine Variable oder Array-Element, die nie festgelegt wurde, von einem, dessen Wert null ist; Der Versuch, auf einen solchen nicht gesetzten Wert zuzugreifen, ist ein Laufzeitfehler.

Das ist, was Sie gerade laufen: Das Array $ _POST hat kein Element am Index "Aufkleber", also bricht der Interpreter Ihr Programm ab, bevor es überhaupt zum Nichtigkeitstest kommt.

Sie können das Vorhandensein einer Variablen oder eines Array-Elements testen, ohne tatsächlich versuchen zu müssen, darauf zuzugreifen; das ist, was der spezielle Operator isset tut:

if (isset($_POST['sticker'])) { 
    //do something 
} 

Auch habe ich das Formular Code auf meinem Rechner getestet, und es schien in Ordnung und Sitzung zu arbeiten Variable gesetzt wurde Formulardaten verwenden.

+0

haben Sie die Sitzungsvariable von derselben Seite oder von einer anderen Seite aufgerufen? Ich habe versucht, es auf einer anderen Seite –

+0

von der gleichen Seite Backo Backic – Sylvester

+0

anzuzeigen und wie würde ich es auf einer anderen Seite zugreifen? –