2016-10-19 4 views
1

Ich versuche, eine einfache Wertüberprüfung aus einem Formular zu tun, und ich möchte einige Variablen die Werte vom Benutzer eingegeben zuweisen. Ich habe diese Form getan:PHP-Nachricht undefined Index nur vor dem Senden von Formular

<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST"> 
       <label for="raspuns1"><span class="glyphicon glyphicon-pencil"></span> Raspuns subpunct a</label> 
       <input type="text" class="form-control" name="raspuns1" placeholder="Raspuns a"><br> 
       <label for="raspuns2"><span class="glyphicon glyphicon-pencil"></span> Raspuns subpunct b</label> 
       <input type="text" class="form-control" name="raspuns2" placeholder="Raspuns b"><br> 
       <label for="raspuns3"><span class="glyphicon glyphicon-pencil"></span> Raspuns subpunct c</label> 
       <input type="text" class="form-control" name="raspuns3" placeholder="Raspuns c"><br> 
       <label for="raspuns4"><span class="glyphicon glyphicon-pencil"></span> Raspuns subpunct d</label> 
       <input type="text" class="form-control" name="raspuns4" placeholder="Raspuns d"><br> 
       <button type="submit" class="btn btn-success glyphicon glyphicon-check"> Verifica răspunsurile</button> 
    </form> 

und dies ist der PHP-Code

<?php 
$corect1="raspunsulcorect"; 
$corect2="raspunsulcorect"; 
$corect3="raspunsulcorect"; 
$corect4="raspunsulcorect"; 

if(isset($_POST['submit'])) 
{ 
$raspuns1=$_POST['raspuns1']; 
$raspuns2=$_POST['raspuns2']; 
$raspuns3=$_POST['raspuns3']; 
$raspuns4=$_POST['raspuns4']; 
} 

?> 

Das Problem ist, dass, wenn ich die Seite zu öffnen, es mir

Notice: Undefined index: raspuns1 in A:\XAMPP\htdocs\Copie\Teste\test1-geometrie.php on line 5 

Notice: Undefined index: raspuns2 in A:\XAMPP\htdocs\Copie\Teste\test1-geometrie.php on line 6 

Notice: Undefined index: raspuns3 in A:\XAMPP\htdocs\Copie\Teste\test1-geometrie.php on line 7 

Notice: Undefined index: raspuns4 in A:\XAMPP\htdocs\Copie\Teste\test1-geometrie.php on line 8 

Nach dem Drücken der zeigt, Submit-Button, alles ist in Ordnung, aber wenn die Seite das erste Mal geöffnet wird, wird dies angezeigt. Was mache ich falsch? Das erste, wenn das Programm nicht die Variablen überprüfen lassen sollte

+0

Ihre Code- und Zeilennummern stimmen nicht überein ... – jeroen

+0

Ich weiß, die Nummern, die der Hinweis zeigt, haben keine Namen wie raspuns1 und so weiter – MCM

Antwort

0

Gehen Sie voran und fügen Sie eine Methode hinzu, die überprüft, ob dies eine POST-Anfrage vor dem Zugriff auf die $ _POST Superglobal ist.

Beispiel:

function isPost() { 
    return strtolower($_SERVER['REQUEST_METHOD']) == 'post'; 
} 

In Ihrem Code (vorausgesetzt, Sie die obige Funktion definiert haben):

if(isPost() && isset($_POST['submit'])) 
{ 
$raspuns1=$_POST['raspuns1']; 
$raspuns2=$_POST['raspuns2']; 
$raspuns3=$_POST['raspuns3']; 
$raspuns4=$_POST['raspuns4']; 
} 

auch die filter_input und filter_var Funktionen überprüfen, wenn Werte aus dem $ _GET und $ holen _POST Superglobale.

+0

Ich habe versucht, die IsPost-Funktion. Es zeigt mir immer noch die gleichen Fehler. – MCM

+0

Sie sehen also immer noch die Hinweise bei einer GET-Anfrage? – Andreas

+0

Ja. Das Problem ist, es heißt Undefined index raspuns1 in Zeile 5, aber in Zeile 5 habe ich keine solche Variable – MCM

Verwandte Themen