2016-04-15 15 views
0

Hier ist der Code, es sagt mir, ich habe einen undefinierten Index, der seltsam ist, weil ich es bereits mit HTML-Code definiert. Um diesen Fehler herum? oder irgendwelche Möglichkeiten, es besser zu machen wäre sehr willkommen ...HTML und PHP undefined Index

<h1>make a username</h1> 
<form method="post" action="<?php echo 
htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> 
Username: <input type="text" name="username" value="<?php echo $username; ?>"> 
<br><br> 
<input type="submit" name="submit" value="Submit"> 
</form> 

<?php 

$username = $_POST["username"]; 

echo $username; 

?> 
+0

Verwenden Sie [isset()] (http://php.net/manual/en/function.isset.php) und initialisiere die Variable $ username beim Start mit leerem Wert –

Antwort

1

$_POST["username"] nur definiert werden nach Sie das Formular abschicken. Wenn Sie die Seite zum ersten Mal laden (mit einem http GET), ist $_POST["username"] nicht definiert.

0

Nach dem Senden des Formulars wird es funktionieren. Sie sollten dies versuchen:

<?php 
    if(isset($_POST["username"])){ 
     $username = $_POST["username"]; 
    } 

?> 

<h1>make a username</h1> 
<form method="post" action="<?php echo 
htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> 
Username: <input type="text" name="username" value="<?php echo (isset($username))? $username: ''; ?>"> 
<br><br> 
<input type="submit" name="submit" value="Submit"> 
</form> 

<?php 
    echo (isset($username))? $username: ''; 
?> 
0

Sie folgende Änderungen an Ihrem Code:

<h1>make a username</h1> 
<form method="post" action="<?php echo 
htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> 
Username: <input type="text" name="username" value="<?php echo $username; ?>"> 
<br><br> 
<input type="submit" name="submit" value="Submit"> 
</form> 

<?php 
/// This portion of code will execute only after you hit submit button 
if(isset($_POST['username'])) 
{ 
$username = $_POST["username"]; 

echo $username; 
} 
?> 
0

if (isset($_POST["username"])){

$username = $_POST["username"]; 

} else{ 

$username = ''; 

} 
echo $username; 

diesen Code Versuchen Sie statt Ihrer PHP-Code. Dies kann dir helfen.

0

$ _POST ["Benutzername"]; fügen Sie @ hinzu, @ $ _ POST ['Benutzername'], '@' ignoriert diesen Fehler