1

Тема: php скрипты регистрации

Помогите разобраться...
Есть скрипт регистрации и авторизации пользователей на сайте, но при регистрации все время выдает "Неправильная электронная почта!"...
Не могу найти ошибку прописки в скрипте:

<?
include($_SERVER["DOCUMENT_ROOT"] . "/auth/incdir/conf.php");
if(empty($_COOKIE["user"]) && isset($go_reg))
{
    $RegForm = true;
    $sel_query = mysql_query("SELECT * FROM users WHERE umail='". $usermail ."'");
    if(mysql_num_rows($sel_query) > 0) $err_mess[] = '<p class="er1">This email is allready used!</p>';
    if(!preg_match('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])*(\.([a-z0-9])([-a-z0-9_-])([a-z0-9])+)*$/i',$usermail)) $err_mess[] = '<p class="er1">Wrong email!</p>';
    if(!preg_match('/[1-9|a-z|A-Z]{3,20}/',$login)) $err_mess[] = '<p class="er1">Wrong login! Only alphanumeric characters allowed, from 3 to 20 characters.</p>';
    if($pw != $rpw) $err_mess[] = '<p class="er1">Passwords do not match.</p>';
    if(strlen($pw) < 6) $err_mess[] = '<p class="er1">Wrong password! Not less than 6 symbols required.</p>';
    if($_SESSION["secure"] != $sec_code) $err_mess[] = '<p class="er1">Wrong security code.</p>';
   
    if(!$err_mess)
    {
        $mdpw = md5($pw);
        $query = "INSERT INTO users (ulogin,upw,umail,level) VALUES ('". $login ."','". $mdpw ."','". $usermail ."','0')";
        $result = mysql_query($query)or die(MDIE . " <h3>". mysql_error() ."</h3>");
        if($result)
        {
            $RegForm = false;
            $mess[] = '<p class="ok1">Thanks for your registration!<br/> Verification code was emailed to you!</p>';
            $MailMessage = 'Your activation link: <a href="' . DOMAIN . '/funcdir/activator.php?a=' . md5($usermail) .'">' . DOMAIN . '/funcdir/activator.php?a=' . md5($usermail) .'</a>';
            send_mail($usermail,"Activation code",$MailMessage,"-factivation@akotenko.com");
        }
    }
}
elseif(empty($_COOKIE["user"]))
{
    $RegForm = true;
}
else
{
    header("Location: " . DOMAIN);
}

include(INCDIR . "/header.php");
printmess($err_mess);
printmess($mess);
if($RegForm == true)
{
    echo '
    <form method="post" action="'. DOMAIN .'/funcdir/reg.php">
    <table class="s1" bgcolor="#FFFFFF">
    <tr bgcolor="#EEEEEE">
    <td>Email</td><td><input type="text" size="25" name="usermail" /></td>
    </tr>
    <tr bgcolor="#EEEEEE">
    <td>Login</td><td><input type="text" size="25" name="login" /></td>
    </tr>
    <tr bgcolor="#EEEEEE">
    <td>Password</td><td><input type="password" size="25" name="pw" /></td>
    </tr>
    <tr bgcolor="#EEEEEE">
    <td>Retype Password</td><td><input type="password" size="25" name="rpw" /></td>
    </tr>
    <tr bgcolor="#EEEEEE">
    <td>Security code</td><td><table><tr><td><span onclick="refresh_cap(\'cap\');" class="ref"><u>Refresh</u></span><br/><img src="'. DOMAIN .'/funcdir/cap.php" id="cap" border="0" /></td><td><input type="text" size="5" name="sec_code" /></td></tr></table></td>
    </tr>
    <tr>
    <td><a href="'. DOMAIN .'/funcdir/login.php">Login</a></td><td><a href="'. DOMAIN .'/funcdir/lostpw.php">Lost Password?</a></td>
    </tr>   
    <tr bgcolor="#EEEEEE">
    <td colspan="2"><input type="submit" value="Register" name="go_reg" class="sub1" /></td>
    </tr>
    </table>
    </form>   
    ';
}
include(INCDIR . "/footer.php");
?>

2

Re: php скрипты регистрации

nikomar
Перепишите все переменные получаемые из формы в виде элементов массива POST.
$usermail - должна выглядеть - $_POST['usermail']

3

Re: php скрипты регистрации

Добрый день...
Изменил, но все равно пишет "Wrong emai"...
Может быть тут проблема:

if(!preg_match('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])*(\.([a-z0-9])([-a-z0-9_-])([a-z0-9])+)*$/i',$usermail)) $err_mess[] = '<p class="er1">Wrong email!</p>';

4

Re: php скрипты регистрации

Поправьте регулярное выражение, чтобы принимались доменные зоны из двух символов, к примеру [mono].ru[/mono].
if(!preg_match('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])*(\.([a-z0-9])([a-z0-9])+)*$/i',$usermail)) $err_mess[] = '<p class="er1">Wrong email!</p>';

5

Re: php скрипты регистрации

Огромное спасибо... я понял принцип ошибки... и у меня все получилось... все работает!!!