Помощь по скриптам | помощь по коду
Всем привет как решить проблему
регаюся в игре под ником Тест
а захожу под ником тест и пишет что такого пользователя не существует
регаюся в игре под ником Тест
а захожу под ником тест и пишет что такого пользователя не существует
Смотреть код и исправлять баг
danzo (24.10.2020 в 12:38)
Всем привет как решить проблему
регаюся в игре под ником Тест
а захожу под ником тест и пишет что такого пользователя не существует
Всем привет как решить проблему
регаюся в игре под ником Тест
а захожу под ником тест и пишет что такого пользователя не существует
Файл Регистрации показывай.
ща
________
посл. ред. 24.10.2020 в 13:02; всего 1 раз(а); by danzo
________
посл. ред. 24.10.2020 в 13:02; всего 1 раз(а); by danzo
php
<?php require_once ('system/func.php'); $title = 'Регистрация'; require_once ('system/header.php'); noauth(); // Закроем от не авторизованных echo '<div class="title"> Регистрация </div>'; echo '<div class="block center">'; if(isset($_REQUEST['success'])){ $name = text($_POST['name']); $email = text($_POST['email']); $pass = text($_POST['pass']); $repass = text($_POST['repass']); $sex = text($_POST['sex']); $side = text($_POST['side']); $sql = mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `login` = '$name'"); // Доступность логина $sqli = mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `email` = '$email'"); // Доступность email if(empty($name)) $err = 'Введите логин'; if(empty($email)) $err = 'Введите email'; elseif(empty($pass)) $err = 'Введите пароль'; elseif(empty($repass)) $err = 'Введите пароль еще раз'; elseif (!preg_match('|^[a-z0-9\-]+$|i', $pass)) $err = 'Кириллица в пароле запрещена'; elseif(mysql_result($sql, 0) > 0) $err = 'Такой логин уже занят'; elseif(mysql_result($sqli, 0) > 0) $err = 'Такой email уже занят'; elseif(mb_strlen($name) > 20 or mb_strlen($name) < 3) $err = 'Логин не может быть короче 3 и длиннее 20 символов'; elseif(mb_strlen($email) > 40 or mb_strlen($name) < 3) $err = 'email не может быть короче 3 и длиннее 40 символов'; elseif(mb_strlen($pass) > 20 or mb_strlen($pass) < 3) $err = 'Пароль не может быть короче 3 и длиннее 20 символов'; elseif($pass != $repass) $err = 'Пароли не совпадают'; elseif($name == $pass) $err = 'Логин и пароль не должны совпадать'; if(!$err){ if(mysql_query("INSERT INTO `users` SET `login` = '".$name."', `email` = '".$email."', `password` = '".($pass)."', `sex` = '".$sex."', `side` = '".$side."', `registr` = '".time()."',`silver` = '50000', `gold` = '1000'")){ if($_SESSION['ref']){ $id = mysql_insert_id(); mysql_query("update `users` set `id_partner` = '".$_SESSION['ref']."' where (`id` = '".$id."')"); } } if(mysql_num_rows(mysql_query('SELECT * FROM `users` WHERE `ip` = \''.$_SERVER['REMOTE_ADDR'].'\'')) != 0){ $_SESSION['msg'] = 'У вас уже есть аккаунт регестрировать более одного аккаута в игре ЗАПРЕЩЕНО.'; header('location: /'); exit; } /* ПРИСВАИВАЕМ КУКИ */ setcookie('login', $name, time()+86400*365, '/'); setcookie('password', ($pass), time()+86400*365, '/'); header('location: /'); exit(); }else{ $_SESSION['msg'] = $err; header('location: ?'); exit(); } } echo ' <form action="" method="post"> Логин:<br/> <input type="text" name="name" maxlength="50" value="" placeholder="Введите логин..." /><br/> Email:<br/> <input type="text" name="email" maxlength="50" value="" placeholder="Введите email..." /><br/> Пароль:<br/> <input type="password" name="pass" maxlength="50" value="" placeholder="Введите пароль..." /><br/> Пароль еще раз:<br/> <input type="password" name="repass" maxlength="50" value="" placeholder="Введите пароль еще раз..." /><br/> Ваш пол:<br /> <select name="sex"><option value="m">Мужской</option><option value="w">Женский</option></select><br/> Выберите сторону:<br /> <select name="side"><option value="good">Добро</option><option value="evil">Зло</option></select><br/> <input type="submit" value="Регистрация" name="success" class="btn"/> </form> '; echo '</div>'; require_once ('system/footer.php'); ?>
mysql_query("update `users` set `id_partner` = '".$_SESSION['ref']."' where (`id` = '".$id."')"); - грубая ошибка $_SESSION['ref']. Открытие SQL-инъекции.
mysql_query('SELECT * FROM `users` WHERE `ip` = \''.$_SERVER['REMOTE_ADDR'].'\'')) != 0) - как и тут. SQL-инъекция.
mysql_query('SELECT * FROM `users` WHERE `ip` = \''.$_SERVER['REMOTE_ADDR'].'\'')) != 0) - как и тут. SQL-инъекция.
Toruz (24.10.2020 в 13:09)
mysql_query("update `users` set `id_partner` = '".$_SESSION['ref']."' where (`id` = '".$id."')"); - грубая ошибка $_SESSION['ref']. Открытие SQL-инъекции.
mysql_query('SELECT * FROM `users` WHERE `ip` = ''.$_SERVER['REMOTE_ADDR'].''')) != 0) - как и тут. SQL-инъекция.
mysql_query("update `users` set `id_partner` = '".$_SESSION['ref']."' where (`id` = '".$id."')"); - грубая ошибка $_SESSION['ref']. Открытие SQL-инъекции.
mysql_query('SELECT * FROM `users` WHERE `ip` = ''.$_SERVER['REMOTE_ADDR'].''')) != 0) - как и тут. SQL-инъекция.
а как закрыть?
danzo (24.10.2020 в 13:01)
Данные в таблицу записывается.
php
<?php require_once ('system/func.php'); $title = 'Регистрация'; require_once ('system/header.php'); noauth(); // Закроем от не авторизованных echo '<div class="title"> Регистрация </div>'; echo '<div class="block center">'; if(isset($_REQUEST['success'])){ $name = text($_POST['name']); $email = text($_POST['email']); $pass = text($_POST['pass']); $repass = text($_POST['repass']); $sex = text($_POST['sex']); $side = text($_POST['side']); $sql = mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `login` = '$name'"); // Доступность логина $sqli = mysql_query("SELECT COUNT(`id`) FROM `users` WHERE `email` = '$email'"); // Доступность email if(empty($name)) $err = 'Введите логин'; if(empty($email)) $err = 'Введите email'; elseif(empty($pass)) $err = 'Введите пароль'; elseif(empty($repass)) $err = 'Введите пароль еще раз'; elseif (!preg_match('|^[a-z0-9-]+$|i', $pass)) $err = 'Кириллица в пароле запрещена'; elseif(mysql_result($sql, 0) > 0) $err = 'Такой логин уже занят'; elseif(mysql_result($sqli, 0) > 0) $err = 'Такой email уже занят'; elseif(mb_strlen($name) > 20 or mb_strlen($name) < 3) $err = 'Логин не может быть короче 3 и длиннее 20 символов'; elseif(mb_strlen($email) > 40 or mb_strlen($name) < 3) $err = 'email не может быть короче 3 и длиннее 40 символов'; elseif(mb_strlen($pass) > 20 or mb_strlen($pass) < 3) $err = 'Пароль не может быть короче 3 и длиннее 20 символов'; elseif($pass != $repass) $err = 'Пароли не совпадают'; elseif($name == $pass) $err = 'Логин и пароль не должны совпадать'; if(!$err){ if(mysql_query("INSERT INTO `users` SET `login` = '".$name."', `email` = '".$email."', `password` = '".($pass)."', `sex` = '".$sex."', `side` = '".$side."', `registr` = '".time()."',`silver` = '50000', `gold` = '1000'")){ if($_SESSION['ref']){ $id = mysql_insert_id(); mysql_query("update `users` set `id_partner` = '".$_SESSION['ref']."' where (`id` = '".$id."')"); } } if(mysql_num_rows(mysql_query('SELECT * FROM `users` WHERE `ip` = ''.$_SERVER['REMOTE_ADDR'].''')) != 0){ $_SESSION['msg'] = 'У вас уже есть аккаунт регестрировать более одного аккаута в игре ЗАПРЕЩЕНО.'; header('location: /'); exit; } /* ПРИСВАИВАЕМ КУКИ */ setcookie('login', $name, time()+86400*365, '/'); setcookie('password', ($pass), time()+86400*365, '/'); header('location: /'); exit(); }else{ $_SESSION['msg'] = $err; header('location: ?'); exit(); } } echo ' <form action="" method="post"> Логин:<br/> <input type="text" name="name" maxlength="50" value="" placeholder="Введите логин..." /><br/> Email:<br/> <input type="text" name="email" maxlength="50" value="" placeholder="Введите email..." /><br/> Пароль:<br/> <input type="password" name="pass" maxlength="50" value="" placeholder="Введите пароль..." /><br/> Пароль еще раз:<br/> <input type="password" name="repass" maxlength="50" value="" placeholder="Введите пароль еще раз..." /><br/> Ваш пол:<br /> <select name="sex"><option value="m">Мужской</option><option value="w">Женский</option></select><br/> Выберите сторону:<br /> <select name="side"><option value="good">Добро</option><option value="evil">Зло</option></select><br/> <input type="submit" value="Регистрация" name="success" class="btn"/> </form> '; echo '</div>'; require_once ('system/footer.php'); ?> Toruz (24.10.2020 в 13:16)
Данные в таблицу записывается.
Данные в таблицу записывается.
?
danzo , Данные пишутся, код авторитизации кинь. В нем проблема.
________
посл. ред. 24.10.2020 в 13:36; всего 1 раз(а); by TuT
________
посл. ред. 24.10.2020 в 13:36; всего 1 раз(а); by TuT