<anythinghere>@domain3.com
과 같은 전역 사용자 이름을 $ usernames 배열 (아래 코드)의 사용자 이름 값으로 설정할 수 있기를 바랍니다. 이것은 내가 "인증 된"도메인을 기반으로 사용자를 리디렉션 할 수 있도록하기위한 것입니다.배열의 PHP 정규식 문자열
아래 코드에 예를 넣습니다.
$usernames = array("[email protected]", $X)
과 같은 작업을 수행 할 수 있습니까? $X = <anything-so-long-as-not-blank>@domain3.com
? 다음은
전체 코드 :
<?php
//VALIDATE USERS
$usernames = array("[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]", "[email protected]");
$passwords = array("password1", "password2", "password3", "password4", "password5", "password6");
//REDIRECT SPECIFIC VALID USERS OR DOMAIN
function get_page($username) {
$username = strtolower($username);
switch ($username) {
case "[email protected]" : return "http://www.google.com";
case "[email protected]" : return "http://www.yahoo.com";
case "[email protected]" : return "http://www.stackoverflow.com";
case "[email protected]" : return "http://www.serverfault.com";
}
return preg_match('/@domain3\.com$/',$username) ?
"http://www.backblaze.com" : "DefaultBackupPage.php";
}
$page = get_page($_POST['username']);
for($i=0;$i<count($usernames);$i++)
{
$logindata[$usernames[$i]]=$passwords[$i];
}
$found = 0;
for($i=0;$i<count($usernames);$i++)
{
if ($usernames[$i] == $_POST["username"])
{
$found = 1;
}
}
if ($found == 0)
{
header('Location: login.php?login_error=1');
exit;
}
if($logindata[$_POST["username"]]==$_POST["password"])
{
session_start();
$_SESSION["username"]=$_POST["username"];
header('Location: '.$page);
exit;
}
else
{
header('Location: login.php?login_error=1');
exit;
}
?>
@inhan 이미 챔피언처럼 도움이되었습니다. 어떤 사람이 나를 넘어 뜨릴 수 있는지 궁금하네요? 건배!
논리에 이상한 것으로 보입니다. 와일드 카드로 사용자 이름을 제공하기를 원하지만, 무엇을 원하고 싶습니까? – hashchange
그래서 @ domain.com 앞에있는 모든 텍스트가 일치 할 수있는 사용자 이름을 원합니다. 사용자 이름을 리디렉션하는 섹션은 올바른 사용자 이름을 리디렉션 할 수 있습니다. 주소를 오류 페이지로 보내지 마십시오. 그래서 기본적으로 나는 도메인을 검증하고 있습니다. 하지만 그것은 $ username 배열의 값이어야합니다. 그렇지 않으면 모든 것을 다시 써야합니다! (어느 쪽이 허용되지 않았는지) – James