2013-08-23 38 views
2

正則表達式來驗證信息正則表達式驗證信息(信及數量只)

我試過如下:

if(preg_match("/[A-Za-z0-9]+/", $ingame_name) == TRUE){ 
    header("Location: newitem.php?username=". $ingame_name ."&email=". $email); 
} else { 
    $invalidusername = '<font color=red>Oops, invalid username! Username 
     may only contain numbers and letters.</font><br>'; 
} 

,沒有工作,也試過翻轉聲明仍然沒有奏效。 ..

我的最後一次嘗試

if ($_REQUEST['do'] == 'submit') 
{ 
    $ingame_name= trim($_POST['ingame_name']); 
    $email = trim($_POST['email']); 

    if(eregi("/[A-Za-z0-9]+/", $ingame_name)) 
    { 
    $invalidusername = '<font color=red>Oops, invalid username! Username may only contain numbers and letters.</font><br>'; 
    $ingame_name = 'invalid'; 
    } 
    if (eregi("^[a-zA-Z0-9_][email protected][a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email)) 
    { 
    $invalidemail = '<font color=red>Oops, seems that you have an error with your email format.</font></br>'; 
    $email = 'invalid'; 
    } 

    if ($ingame_name = 'invalid' || $email = 'invalid') 
    { 
    /* do nothin */ 
    } 
    else 
    { 
    header("Location: item.php?username=". $ingame_name ."&email=". $email); 
    }  
} 

似乎沒有任何工作,

+0

使用===運算符來測試的preg_match的價值。 http://php.net/manual/en/function.preg-match.php – seekerOfKnowledge

+0

你到底在做什麼? – hwnd

回答

1

試試這個:

<?php 
$valid_submit = ($_REQUEST && isset($_REQUEST['do']) && $_REQUEST['do'] == 'submit') ? true : false; 
if ($valid_submit) { 
    $ingame_name= ($_POST && isset($_POST['ingame_name'])) ? trim($_POST['ingame_name']) : ''; 
    $email= ($_POST && isset($_POST['email'])) ? trim($_POST['email']) : ''; 
    $invalidusername = ''; 
    $invalidemail = ''; 
    if(!preg_match("/^[A-Za-z0-9]+$/", $ingame_name)) { 
     $invalidusername = '<font color=red>Oops, invalid username! Username may only contain numbers and letters.</font><br>'; 
     $ingame_name = 'invalid'; 
    } 
    // This is a much more efficient method to validate email addresses 
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { 
     $invalidemail = '<font color=red>Oops, seems that you have an error with your email format.</font></br>'; 
     $email = 'invalid'; 
    } 
    if ($ingame_name != 'invalid' && $email != 'invalid') { 
     $location = 'item.php?username=' . $ingame_name . '&email=' . $email; 
     header("Location: $location"); 
    } 
    else { 
     //echo $invalidusername . $invalidemail; 
    }  
} 
+0

如果我將電子郵件作爲「Testing!@#$%^」輸入,它仍然會與用戶名稱一樣有效。 = [ – Swaly

+0

請參閱上次修訂。只是再次改變它。 – jerdiggity

+0

謝謝像魅力一樣工作 – Swaly