2014-11-06 4 views
-1

Я пытаюсь получить из значения из формы, но при вызове без isset(), и это дало мне неопределенный индекс Ошибка.Неопределенная ошибка переменной при получении значения из формы в PHP

Теперь, когда я использую isset(), он дает мне Неопределенную переменную ошибку.

Как я могу это решить?

<html> 
    <head></head> 
    <body> 
    <form action="conn.php" enctype="multipart/form-data" method="post"> 
     <p>Enter Database Username: <input type="text" name="username"></p> 
     <p>Enter Password:  <input type="password" name="pass"></p> 
     <p><input type="submit" value="submit"></p> 
    </form> 

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

if (isset($_POST['pass'])) { 
    $pass=$_POST['pass']; 
} 

echo($username); 
echo($pass); 

?> 
    </body> 
</html> 
+0

почему не сделать поиск результата, прежде чем отправлять вопрос? вы получаете больше результатов о исправлениях –

ответ

2

Как вы можете видеть, что есть много способов, чтобы установить свои первоначальные переменные ... но вы должны установить их повторить их без предупреждения:

// Set variables to post if set, else empty if not 
$username = (isset($_POST['username']))? $_POST['username']: ""; 
$pass  = (isset($_POST['pass']))? $_POST['pass']: ""; 

echo($username); 
echo($pass); 
2

причины ваших оба $username и $pass переменных не определены, а не в проверке или isset() блока

echo($username); 
echo($pass); 

инициализировать те переменный первый с пустыми значениями

<?php $username='';$pass=''; 
    if (isset($_POST['username'])) { 
     $username=$_POST['username'];} 
    if (isset($_POST['pass'])) { 
     $pass=$_POST['pass'];} 
    echo($username); 
    echo($pass); 
?> 

или сделать его простым путем эхо в контрольном блоке: -

if (isset($_POST['username'])) { 
    echo $username=$_POST['username'];} 
if (isset($_POST['pass'])) { 
    echo $pass=$_POST['pass'];} 
2

Да, это не определено, поскольку вы используете его за пределами блока if, который сначала проверяет наличие.

Посмотрите внимательно:

// if this fails 
if (isset($_POST['username'])) { 
    $username=$_POST['username']; 
} 

// if this fails 
if (isset($_POST['pass'])) { 
    $pass=$_POST['pass']; 
} 

// your echoing an undefined variable 
echo($username); 
echo($pass); 

В качестве альтернативы, вы могли бы сделать что-то вроде этого:

if(isset($_POST['username'], $_POST['password'])) { 
    // isset() can handle multiple parameters to check for its existence, if one of them is undefined, then its false 
    $username = $_POST['username']; 
    $password = $_POST['password']; 

    echo $username . '<br/>' . $password; 
} 
2

Его, потому что, когда форма не размещена переменная не будет set.try этого -

if (isset($_POST['username']) && isset($_POST['pass'])) { 
    $username=$_POST['username']; 
    $pass=$_POST['pass'] 
    echo($username); 
    echo($pass); 
} 

или

$username = $pass = ''; 
if (isset($_POST['username'])) { 
    $username=$_POST['username'];} 

if (isset($_POST['pass'])) { 
    $pass=$_POST['pass'];} 

echo($username); 
echo($pass); 
Смежные вопросы