2017-11-14 1 views
-1

引数のどちらかがtrueの場合はメッセージを表示するためにPhpで論理演算子を使用しようとしていますが、ここで間違った出力が得られるのは自分のコードです。どんな提案も大歓迎です。前もって感謝します。OrをPHPで使用する

<?php 

$username = test_input(mysqli_real_escape_string($conn,$_POST['username'])); 

$emailregex = preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $username); //ValidatingEmail 

$usernameregex = preg_match("/^[a-zA-Z]+$/",$username); //checking if name contains only letters and white spaces; 

if (!$emailregex || !$usernameregex) { //if it didn't match either 
    echo "InvalidUserName"; 
    exit(); 
} else if ($emailregex || $usernameregex) { //in case either matched 
    $myusername =$username; 
    echo("Hello".$myusername); 
}?> 

問題は、私は有効な名前を入力するか、または電子メールが"invalidusername" を取得していても、である私のロジックが間違ってますか?

+0

第一の条件は、 – JNF

+0

"ではないかB" &&使用する必要があります* "のいずれかと一致しませんでした" *ではありません。それは「少なくとも1人は一致していない」。 – deceze

+0

メールやユーザー名でログインできるようにしてください。 –

答えて

1

<?php 
 

 
$username = test_input(mysqli_real_escape_string($conn,$_POST['username'])); 
 

 
$emailregex = preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $username); //ValidatingEmail 
 

 
$usernameregex = preg_match("/^[a-zA-Z]+$/",$username); //checking if name contains only letters and white spaces; 
 

 

 
if (!$emailregex && !$usernameregex) { 
 
echo "Username must be valid name or email"; 
 
exit(); 
 
} 
 
else { 
 
$myusername =$username; 
 
echo("Hello".$myusername); 
 
} 
 
?>

+0

がありました –

関連する問題