簡體   English   中英

未定義的索引:提交但它工作正常嘗試過isset但失敗

[英]Undefined index: submit but its working fine tried isset but fail

我收到此錯誤有人可以幫助我嗎?

Notice: Undefined index: submit in
D:\xampp\htdocs\testsubject\cntcinfo.php on line 7

這是我的代碼:

if($_POST['submit']=='Update')
{
mysqli_query($link,"    UPDATE usr_profile
                    SET phone='".$_POST['phone']."',
                        email='".$_POST['emails']."',
                        address='".$_POST['address']."',
                        postcode='".$_POST['postcode']."',
                        city='".$_POST['city']."';  
                    ");
header('Location: '.$_SERVER['HTTP_REFERER']);
exit;
}

我厭倦了使用isset但我得到了這個錯誤:

Fatal error: Cannot use isset() on the result of an expression (you
can use "null !== expression" instead) in
D:\xampp\htdocs\testsubject\cntcinfo.php on line 7

這是我的 isset

if(isset($_POST['submit']=='Update'))

如果要檢查是否設置了 POST 值,則需要使用以下代碼:

if(isset($_POST['submit'])) { 
    if($_POST['submit'] == 'Update') {
        //Do work here
    }
}

(或縮短它):

if(isset($_POST['submit']) && ($_POST['submit'] == 'Update')) {
    //Do work here
}

當您在isset()函數中調用$_POST['submit']=='Update' ,您要求它檢查表達式的結果是否已設置(它無法處理)。 所以你需要像我上面顯示的那樣嵌套它。

如果您發現您獲得了未定義的索引,請確保您發布的表單已將submit設置為其表單元素之一。

isset不用於比較。 您可以將其用作

if(isset($_POST['submit']) && $_POST['submit']=='Update')
{

}

Ans 確保您提交類型為

<input type="submit" name="submit" value="Update"/>

您的查詢已開放用於 sql 注入,您可以在更新前使用

 $phone=mysqli_real_escape_string ( $link , $_POST['phone'] );

檢查如何防止 PHP 中的 SQL 注入?

用這個

if(isset($_POST['submit']) && $_POST['submit']=='Update')) {
// Your code here
}

並非所有瀏覽器都為提交按鈕發送值,如果表單也可用於添加用戶,請考慮使用復選框來標記它是否是對用戶個人資料的更新。

您是該代碼的 SQL 注入攻擊的坐鴨,您應該使用准備好的語句來消除 SQL 注入攻擊的風險,您還應該檢查 MySQL 是否曾經為查詢返回任何錯誤。

無論您對用戶的了解/信任程度如何,都需要驗證所有用戶提交的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM