Помогите тюнинговать регистрацию

Xeon

Проверенные
Сообщения
143
Реакции
13
Баллы
8,115
Склеил по документации регистрацию через апи хен форо, но она спамит ошибки в админку (когда не тот емейл или он занят и тд), и нету защиты как в самой регистрации на хенфоро (нужна хоть капчу)...
Кто поможет сделать, что описал выше?
PS Может еще кому понадобиться этот "Зародыш" внешней регистрации... :D
HTML:
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Регистрация</title>
    <style>@charset utf-8;@import url(http://weloveiconfonts.com/api/?family=fontawesome);@import url(http://meyerweb.com/eric/tools/css/reset/reset.css);[class*=fontawesome-]:before{font-family:FontAwesome, sans-serif;}body{background-color:#0A6200;color:#2E9E00;font-family:'Open Sans', Arial, sans-serif;font-size:14px;line-height:1.5em;}a{color:#eee;text-decoration:none;}a:hover{text-decoration:underline;}input{border:none;font-family:'Open Sans', Arial, sans-serif;font-size:14px;line-height:1.5em;-webkit-appearance:none;padding:0;}p{line-height:1.5em;}.clearfix{zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";}.clearfix:after{clear:both;}#login{width:280px;margin:150px auto;}#login form span{background-color:#18DF4F;border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;-webkit-border-radius:3px 0 0 3px;color:#005901;display:block;float:left;height:50px;line-height:50px;text-align:center;width:50px;}#login form input{height:50px;outline:none;}#login form input[type=text],input[type=password]{background-color:#00C018;border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;-webkit-border-radius:0 3px 3px 0;color:#005901;margin-bottom:1em;width:198px;padding:0 16px;}#login form input:focus{color:#fff;}#login form input[type=submit]{border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#008921;color:#eee;font-weight:700;margin-bottom:2em;text-transform:uppercase;cursor:pointer;width:280px;}#login form input[type=submit]:hover{background-color:#00731C;}#login > p{text-align:center;}#login > p span{padding-left:5px;}.logo{width:280px;margin-bottom:1em;}.vladmaxi-top{line-height:24px;background:#eee;text-transform:uppercase;z-index:9999;position:fixed;top:0;left:0;width:100%;font-family:calibri;font-size:13px;box-shadow:1px 0 2px rgba(0,0,0,0.2);-webkit-animation:slideOut .5s ease-in-out .3s backwards;}100%{top:0;opacity:1;}.vladmaxi-top a{letter-spacing:1px;color:#333;text-shadow:0 1px 1px #fff;display:block;float:left;padding:0 10px;}.vladmaxi-top a:hover{background:#fff;}.vladmaxi-top span.right{float:right;}.vladmaxi-top span.right a{float:left;}</style>
</head>
<body>
    <div id="login">
        <img class="logo" src="mlogo.png">
        <form action="reg.php" method="post">
            <fieldset class="clearfix">
                <p><span class="fontawesome-user"></span><input type="text" name="username" value="Логин" onBlur="if(this.value == '') this.value = 'Логин'" onFocus="if(this.value == 'Логин') this.value = ''" required></p>
                <p><span class="fontawesome-inbox"></span><input type="text" name="email" value="E-Mail" onBlur="if(this.value == '') this.value = 'E-Mail'" onFocus="if(this.value == 'E-Mail') this.value = ''" required></p>
                <p><span class="fontawesome-lock"></span><input type="password" name="password" value="Пароль" onBlur="if(this.value == '') this.value = 'Пароль'" onFocus="if(this.value == 'Пароль') this.value = ''" required></p>
                <p><input type="submit" value="РЕГИСТРАЦИЯ"></p>
            </fieldset>
        </form>
        <p>Есть аккаунт? <a href="#">Войти!</a><span class="fontawesome-arrow-right"></span></p>
    </div>
</body>
</html>
PHP:
<?php
$newusername = $_POST['username'];
$newemail = $_POST['email'];
$newpassword = $_POST['password'];

$fileDir = '/var/www/lic/forum';

require( $fileDir . '/library/XenForo/Autoloader.php');
XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library');    

$startTime = microtime(true);
XenForo_Application::initialize($fileDir . '/library', $fileDir);
XenForo_Application::set('page_start_time', $startTime);
XenForo_Application::setDebugMode(false);
XenForo_Application::disablePhpErrorHandler();

$writer = XenForo_DataWriter::create('XenForo_DataWriter_User');

$writer->set('username', $newusername);
$writer->set('email', $newemail);
$writer->setPassword($newpassword, $newpassword);
$writer->set('user_group_id', XenForo_Model_User::$defaultRegisteredGroupId);

$result = $writer->save();
echo $result;
?>
 
PHP:
$newusername = $_POST['username'];
$newemail = $_POST['email'];
$newpassword = $_POST['password'];
:eek::eek::eek:

Вы серьезно? Без фильтрации сразу в датаврайтер суем?

А то что "спамит ошибки" - проверяйте все данные (занятость почты и т.п.), а не сразу суйте их в датаврайтер.

PS. Где вы тут API увидели? Использование классов движка "напролом". Вот API: - а то что выше, уж простите, но гавнокод.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу