[英]Why everytime I use .load() in AJAX my .ajaxForm() begin to redirect?
[英]Everytime I use a $_ I have to use an @
例如
$fn = htmlentities(mysqli_real_escape_string($connection, @$_POST['fname']));
$ln = htmlentities(mysqli_real_escape_string($connection, @$_POST['lname']));
$em = htmlentities(mysqli_real_escape_string($connection, @$_POST['email']));
$em2 = htmlentities(mysqli_real_escape_string($connection, @$_POST['email2']));
$pd = htmlentities(mysqli_real_escape_string($connection, @$_POST['password']));
$pd2 = htmlentities(mysqli_real_escape_string($connection, @$_POST['password2']));
$ _SESSION也是如此
如果我取消“ @”,則會收到未定義的索引錯誤。
知道為什么嗎? 我不...如果我繼續使用,所有代碼都可以工作。
這可能意味着您在訪問數組的值時沒有檢查是否選中了它們。
使用isset
或if ($_POST['fname'])
。
無論您做什么,都不要降低錯誤報告模式(您可能位於E_STRICT | E_ALL
)。 在我的書中,使用@
壓制錯誤是BTW的錯誤做法。 該通知是在內部提出的,因此您在減慢代碼的速度,然后看起來很混亂。 您正在養成不良習慣(轉向邪惡的@
符號,而不是解決問題)...
確保在嘗試訪問數組元素之前使用isset()
檢查該值是否存在。 您獲得未定義索引的原因是因為POST數據中的那些值之一不存在。
if (isset($_POST['fname']))
{
$fn = htmlentities(mysqli_real_escape_string($connection, $_POST['fname']));
}
else
{
$fn = '';
}
我假設您知道@是。 如果不是,則為錯誤抑制運算符。 這將關閉其使用的每個實例的錯誤報告,然后關閉,然后重新打開錯誤報告。 您僅在絕對需要時才使用此功能,因為它使您無法看到自己想看到的東西。
你可以用這樣的東西
foreach (array('fname', 'lname', 'email') as $key) {
$$key = isset($_POST[$key]) && is_string($_POST[$key]) ? htmlentities(mysqli_real_escape_string($_POST[$key])) : '';
}
具有變量$ fname,$ lname,$ email等。 不要只是復制和粘貼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.