花費數小時後,我仍無法弄清楚。我試圖驗證一個電子郵件地址,但每次都是,無論它是什麼Ii類型,它都會給我提示信息,就好像它是空的「您沒有輸入電子郵件地址!」。驗證電子郵件地址 - 檢查是否爲空
編輯:修復了無效的電子郵件地址錯誤,因爲我沒有爲我的輸入文本添加名稱。現在,當我輸入正確的電子郵件時,它會一直加載「請稍等」。有任何想法嗎?是否因爲它沒有連接到MySQL?
$email = mysql_real_escape_string($_POST['signup-email']);
if(empty($email)){
$status = "error";
$message = "You did not enter an email address!";
}
else if(!preg_match('/^[^\W][a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)*\@[a-zA-Z0-9_]+(\.[a-zA- Z0-9_]+)*\.[a-zA-Z]{2,4}$/', $email)){ //validate email address - check if is a valid email address
$status = "error";
$message = "You have entered an invalid email address!";
}
else {
$existingSignup = mysql_query("SELECT * FROM signups WHERE signup_email_address='$email'");
if(mysql_num_rows($existingSignup) < 1){
$date = date('Y-m-d');
$time = date('H:i:s');
$insertSignup = mysql_query("INSERT INTO signups (signup_email_address, signup_date, signup_time) VALUES ('$email','$date','$time')");
if($insertSignup){ //if insert is successful
$status = "success";
$message = "You have been signed up!";
}
else { //if insert fails
$status = "error";
$message = "Ooops, Theres been a technical error!";
}
}
else { //if already signed up
$status = "error";
$message = "This email address has already been registered!";
}
}
HTML:
<div id="signupform">
<form id="newsletter-signup" action="?action=signup" method="post">
<fieldset>
<input type="text" name="signup-email" id="signup-email" size="20" value="Email Address" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;"/>
<input type="submit" id="signup-button" value="+"/>
</br></br><p id="signup-response"></p>
</fieldset>
</form>
請分享你定義'$ email'的地方。 – Willem
http://ex-parrot.com/~pdw/Mail-RFC822-Address.html這是唯一正確的電子郵件RegEx。 – Brad
「name」是輸入元素的必需屬性,並且需要在請求中獲取參數。 詳細說明:id =「signup-email」在表單上下文中是無用的(當然對CSS仍然有用)。 – Viruzzo