php的email驗證我有寫錯嗎^^!?可否幫我看一下

edited 十月 2013 in PHP新手區
哈嚕!笨笨小新手又來了^^!我剛照書上寫了會員申請的部份,都應該好了,也應該沒發生錯誤,當我執行htm,輸入完基本資料後,卻跳出網頁寫「電子郵件格式錯誤」,好奇怪我輸入如:[email protected],應該沒錯吧,怎不讓我儲存呢?
php檔如下:請大師幫忙一下^^!

<?
$name=$_POST[name];
$loginid=$_POST[loginid];
$password=$_POST[password];
$email=$_POST[email];
$address=$_POST[address];
$phone=$_POST[phone];
$gender=$_POST[gender];
$education=$_POST[education];

if ($name="" or $loginid="" or $password="" or $email="" or $address="" or $phone="" or $gender="" or $education="")
{
$errmsg="欄位不可留白";
ErrorMsg($errmsg);
}
elseif (!Ereg("^[/email]:alnum::alnum:+\.:alnum:+" , $email))
{
$errmsg="電子郵件格式錯誤";
ErrorMsg($errmsg);
}
$conn=mysql_connect('localhost','saturn','123456');
mysql_select_db('eBOOK');
$sql="Select * From member Where loginid='" . $loginid . "'";
$result=mysql_query($sql);
if(mysql_fetch_row($result))
{
$errmsg="此帳號已有人使用";
ErrorMsg($errmsg);
}
else
{
$sql="Insert Into member(name,loginid,password,email,address,phone,gender,education) values('$name','$loginid','$password','$email','$address','$phone','$gender','$education')";
mysql_query($sql);
}

function ErrorMsg($err)
{
echo "<center>";
echo "<font color=red>".$err."</font><hr>";
echo "<input type=button value=回會員申請網頁 onclick=history.back();>";
echo "</center>";
exit ;
}
?>

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=2009

評論

  • edited 八月 2006
    因為書上的規則是以外國的信箱為主,而且這樣的規則會產生很多問題,不妨找找網路上其他朋友提供的規則測試;暫時把這個驗證功能拿掉會好一些。
  • edited 八月 2006
    若不是打錯字就是這本書印錯的地方太多了,如果你前面的章節有看一遍自不難找出問題何在
  • edited 八月 2006
    謝謝各位^^雖然找不到答案,但我會努力去找
  • edited 八月 2006
    !Ereg("^:alnum::alnum:+\.:alnum:+" , $email)

    在這一行的規則中,只接受類似這樣的信箱:

    hello @ world.com
    xxx @ your.tw

    但是沒辦法接受這樣的信箱:

    hello @ world.com.tw
    xxx @ kk.jp.co

    如何修改這個規則,也許就是你得下功夫的地方;書上告訴你的東西有限,不妨試著瞧瞧 PHP 的線上手冊:
    http://tw2.php.net/manual/en/
  • edited 八月 2006
    請問有中文版的嗎^^我英文很差
  • edited 八月 2006
    並不是說英文一定要多好(不過英文好的確是比較好=.=)
    就算英文不好也建議要多逛逛官網
    很多function都會有限制或注意事項,而這些我們不會特別打出來
    就連我們回答問題,也常常先上官網找資料再回答
    而很不幸的,英文才是主體(連程式都是英文)
  • edited 八月 2006
    應該先要有基本的概念, 再去找英文的說明會比較瞭解它上面寫什麼
    官網上的英文類似工具書, 巨細靡遺但條列化, 對根本不懂自己的程式錯出在哪裡而言幫助不大
    中文書籍重在按部就班幫你入門, 有時還有作者的學習經驗談, 範例也有詳細的說明, 不過國內電腦書的校稿畢竟不是專業人士.., 當作者打錯字常常會使程式跑不出來, 此時還要幫作者校對...(有本書甚至有50個錯誤!!)
    所以觀念清楚很重要
  • edited 八月 2006
    先有基本觀念這點絕對正確!

    只是,剛入門接觸php,怎看的出哪邊有錯誤還要能幫作者校對?
    以現今中文譯本,完全沒錯誤的比例老實說低到另人發毛。
    加上對英翻中的解釋因人而異,中文書籍是好是壞還真的很難定位。

    官網的doc其實可以看做是一本原文bible。
    安裝、設定、基本觀念、函式定義與使用,所有基礎觀念都在第三章[Language Reference]裡提到。
    而且還有一點翻譯書比不上的就是,官網上有非常多其他前輩對這些函式的使用心得跟建議。

    與其看中文書,我覺得還不如找google大神幫忙。
    至少能確定,google找出來的文章,確實有在使用電腦(沒用你怎貼討論區架網站弄網頁)。
    也經過多人的驗證(能被排入前幾頁,不是點閱率高就是知道方法提高機器人搜尋,兩者都證明有一定的功力)。

    有寫(翻譯)的不錯可以推薦的中文書,建議把書名跟出版商post上來。
    我想會比重複去買一本有50個錯誤的書好。
Sign In or Register to comment.