2014-11-06 149 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

爲什麼不你做一個搜索結果,然後再發布題?你會得到更多關於修復的結果 – 2014-11-06 07:01:54

回答

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);