我已經搜索和搜索,但沒有找到任何內容,但這可能是因爲我甚至不知道是什麼原因導致了這個錯誤,更不用說如何解決它。簡單的PHP幫助(不插入到數組中)
首先,我有點新。我知道PHP的基礎知識,但有很多我不知道,所以請原諒,如果答案很簡單(或者如果因爲它非常混亂而無法閱讀我的代碼)。
我認爲作爲我的第一個應用程序之一,我會製作一個簡單的電子郵件腳本,用戶輸入他們的姓名,主題,消息和電子郵件地址。
這是表單頁的相關位:http://pastebin.com/UhQukUuB(對不起,不太知道如何嵌入代碼...)。
<form action="send.php" method="post">
Name: <input type="text" name="name" size="20" /><br />
Subject: <input type="text" name="subject" size="20" /><br />
Message:<br /><textarea name="message" rows="12" cols="55"></textarea><br />
Your email address: <input type="text" name="emailAddress" size="20" /><br />
<input type="submit" value="Send" />
</form>
這是在send.php:http://pastebin.com/nky0L1dT。
<?php
$name=$_POST['name'];
$subject=$_POST['subject'];
$message=$_POST['message'];
$emailAddress=$_POST['emailAddress'];
//It's receiving the variables correctly, I've checked by printing the variables.
$errors=array(); //Creates empty array with 0 indexes. This will now be filled with error messages (if there are any errors).
if($name=="" || $subject=="" || $message=="" || $emailAddress=""){
if($name==""){
$errors[0]="You did not supply a name.";
}
if($subject==""){
$errors[count($errors)]="You did not supply a subject."; //I'm using count($errors) so it will create a new index at the end of the array, regardless of how many indexes it currently has (if that makes sense, it's hard to explain)
}
if($message==""){
$errors[count($errors)]="You did not supply a message.";
}
if($emailAddress==""){
$errors[count($errors)]="You did not supply an email address.";
}
}
//Were there any errors?
if(!count($errors)==0){
print "The following errors were found:<br />";
for($i=0; $i<count($errors); $i++){
print $errors[$i]."<br />";
}
die();
}
//Rest of email script, which I'll write when the stupid bug is fixed. :(
?>
這裏發生了什麼:當你錯過了名稱,主題,或消息,錯誤檢測器工作正常,顯示「您沒有提供名稱/主題/消息」。當你錯過了電子郵件地址,沒有任何反應。我知道它被存儲在數組中並且被正確接收,因爲如果您錯過了名稱/主題/消息和電子郵件地址,它會顯示「您沒有提供名稱/主題/消息。您沒有提供電子郵件地址」。我一直在盯着我的屏幕半個小時,試圖找出它爲什麼這樣做?
謝謝。