[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регистрация
Gans1g
Здраствуйте !Опять я =)) сделал скрипт проста так так вот он сырой и с дырами..проблема с запесью в базу...постоянно у меня кривой какойта палучаеться запрос тыкнете туда где бред..



Свернутый текст
PHP
error_reporting(E_ALL);
include(
'config.php');
$link = mysql_connect($DBSERVER, $DBUSER, $DBPASS) or die("Не могу подключиться" );
// сделать $DB текущей базой данных
mysql_select_db($DB, $link) or die ('Не могу выбрать БД');

if(isset(
$_POST['do']))
{
    $nick        = $_POST['nick'];
    $password    = $_POST['password'];
    $rpassword   = $_POST['rpassword'];
    $name        = $_POST['name'];
    $email       = $_POST['email'];
    $STEAM_ID    = $_POST['STEAM_ID'];
    
    if
(trim($nick) == '')
    {
        $error ='Введите логин';
    }
    else if(!preg_match("/^[a-zA-Z0-9]+$/",  $nick))
    {
        $error ='Русские буквы в Нике запрещены';
    }
    $query = "SELECT * FROM `vtm_user`  WHERE `nick`='{$nick}' LIMIT 1";
    $sql = mysql_query($query) or die(mysql_error());
    
    if 
(mysql_num_rows($sql) == 1)
    {
    $error = 'Такой Логин уже есть';
    }
    if(trim($password) =='' || trim($rpassword) =='' || $password != $rpassword)
    {
        $error ='Введенные пароли не совподают';
    }
    else if (trim($password) && strlen("$password") < 3)
    {
        $error ='Пароль не должен содержать меньше 3 символов';
    }
    if(trim($name) =='')
    {
        $error ='Введите имя';
    }
    if(trim($email) =='')
    {
        $error ='Введите E-mail';
    }
    elseif(!preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$|i",  $email))
    {
        $error ='E-mail введен не коректно';
    }
    $query = "SELECT * FROM `vtm_user`  WHERE `email`='{$email}' LIMIT 1";
    $sql = mysql_query($query) or die(mysql_error());
    
    if 
(mysql_num_rows($sql) == 1)
    {
    $error = 'Такой E-mail уже есть';
    }
    
    if
(strlen("$STEAM_ID") < 10)
    {
        $error ='STEAM_ID меньше 10 символов';
    }
    if(strlen("$STEAM_ID") > 10)
    {
        $error ='STEAM_ID больше 10 символов';
    }
    if(!preg_match("/^[0-1]:([0-9])+$/",  $STEAM_ID))                         
    
{
        $error ='Введен не корректно STEAM_ID';
    }
    $query = "SELECT * FROM `vtm_user`  WHERE `STEAM_ID`='{$STEAM_ID}' LIMIT 1";
    $sql = mysql_query($query) or die(mysql_error());
    
    if 
(mysql_num_rows($sql) == 1)
    {
    $error = 'Такой STEAM_ID уже есть';
    }
    if(trim($STEAM_ID) =='')
    {
        $error ='Введите STEAM_ID';
    }

    if(isset($error) == '')
{
    
      $query 
= ("INSERT INTO vtm_user VALUES (NULL, '".$nick."','".md5($password)."','".$name."','".$email."','".$STEAM_ID."','".date("d-m-Y")."','0')");
?>
<div>Новость добавлена</div>
<?php

}
}

 if(!isset($_POST['do']) || isset($error) != '')
{
?>
<?=
isset($error);?>
<form action="" method="post" name="register">
<table width="350" border="1">
  <tr>
    <td>Ник</td>
    <td><input name="nick" type="text" size="30"></td>
  </tr>
  <tr>
    <td>Пароль</td>
    <td><input name="password" type="password" size="30"></td>
  </tr>
  <tr>
    <td>Повторите пароль</td>
    <td><input name="rpassword" type="password" size="30"></td>
  </tr>
  <tr>
    <td>Имя</td>
    <td><input name="name" type="text" size="30"></td>
  </tr>
  <tr>
    <td>E-mail</td>
    <td><input name="email" type="text" size="30"></td>
  </tr>
  <tr>
    <td>STEAM_0:</td>
    <td><input name="STEAM_ID" type="text" size="30"></td>
  </tr>
</table>
<br>
<input name="do" value="Зарегестрироваться" type="submit">
</form>
<?php
 
}




Спустя 9 минут, 25 секунд (4.07.2009 - 18:01) twin написал(а):
PHP
$error ='STEAM_ID больше 10 символов';

интересно, а что такое STEAM_ID?

Спустя 4 минуты, 31 секунда (4.07.2009 - 18:05) gooder отдыхающий написал(а):
а что за проект?

Спустя 11 минут, 19 секунд (4.07.2009 - 18:16) Sylex написал(а):
PHP
<?php
error_reporting
(E_ALL);
include(
'config.php');

/**
 * Убирает экранирующие слэши (если включены) и лишние пробелы
 *
 * @param mixed $value
 * @return mixed
 */
function var_filter($value)
{
    if (
is_array($value)) {
        
$value array_map('var_filter'$value);
    } else {
        
$value trim($value);
        if (
get_magic_quotes_gpc())
        
$value stripslashes($value);
    }
    return 
$value;
}

$_POST var_filter($_POST);


$link mysql_connect($DBSERVER$DBUSER$DBPASS) or die("Не могу подключиться");
// сделать $DB текущей базой данных
mysql_select_db($DB$link) or die ('Не могу выбрать БД');

if(isset(
$_POST['do']))
{
    
$nick        mysql_real_escape_string($_POST['nick']);
    
$password    mysql_real_escape_string($_POST['password']);
    
$rpassword   mysql_real_escape_string($_POST['rpassword']);
    
$name        mysql_real_escape_string($_POST['name']);
    
$email       mysql_real_escape_string($_POST['email']);
    
$STEAM_ID    mysql_real_escape_string($_POST['STEAM_ID']);
    
    
$error = array();
    
    if(empty(
$_POST['nick']))
    {
        
$error[] = 'Введите логин';
    }
    else if(!
preg_match("/^[a-zA-Z0-9]+$/",  $_POST['nick']))
    {
        
$error[] = 'Русские буквы в Нике запрещены';
    }
    
$query "SELECT * FROM `vtm_user`  WHERE `nick`='{$nick}' LIMIT 1";
    
$sql mysql_query($query) or die(mysql_error());
    
    if (
mysql_num_rows($sql) > 0)
    {
        
$error[] = 'Такой Логин уже есть';
    }
    if (empty(
$_POST['password']) || empty($_POST['rpassword']) || $_POST['password'] != $_POST['rpassword'])
    {
        
$error[] = 'Введенные пароли не совподают';
    }
    else if (
strlen($_POST['password']) < 3)
    {
        
$error[] ='Пароль не должен содержать меньше 3 символов';
    }
    if(empty(
$_POST['name']))
    {
        
$error[] = 'Введите имя';
    }
    if(empty(
$_POST['email']))
    {
        
$error[] = 'Введите E-mail';
    }
    elseif(!
preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$|i"$_POST['email']))
    {
        
$error[] = 'E-mail введен не коректно';
    }
    
$query "SELECT * FROM `vtm_user` WHERE `email`='{$email}' LIMIT 1";
    
$sql mysql_query($query) or die(mysql_error());
    
    if (
mysql_num_rows($sql) > 0)
    {
        
$error[] = 'Такой E-mail уже есть';
    }
    if(empty(
$_POST['STEAM_ID']))
    {
        
$error[] ='Введите STEAM_ID';
    } else {
        if(
strlen($_POST['STEAM_ID']) < 10)
        {
            
$error[] = 'STEAM_ID меньше 10 символов';
        }
        if(
strlen($_POST['STEAM_ID']) > 10)
        {
            
$error[] = 'STEAM_ID больше 10 символов';
        }
        if(!
preg_match("/^[0-1]:([0-9])+$/"$_POST['STEAM_ID']))                         
        {
            
$error ='Введен не корректно STEAM_ID';
        }
        
$query "SELECT * FROM `vtm_user` WHERE `STEAM_ID`='{$STEAM_ID}' LIMIT 1";
        
$sql mysql_query($query) or die(mysql_error());
        
        if (
mysql_num_rows($sql) > 0)
        {
            
$error[] = 'Такой STEAM_ID уже есть';
        }
    }
    
// если ошибок нет
    
if (sizeof($error) == 0)
    {
        
$query "INSERT INTO `vtm_user` VALUES (NULL, '{$nick}','".md5($password)."','{$name}','{$email}','{$STEAM_ID}',NOW(),'0')";
        
$sql mysql_query($query) or die (mysql_error());
        
?>
        <div>Новость добавлена</div>
        <?php
    
}
}

if ( !isset(
$_POST['do']) || sizeof($error) > 0)
{
?>
<?php
if (sizeof($error)>0) {
    foreach (
$error as $er) echo "$er</ br>";
}
?>
<form action="" method="post" name="register">
<table width="350" border="1">
  <tr>
    <td>Ник</td>
    <td><input name="nick" type="text" size="30" value="<?=htmlspecialchars($_POST['nick'])?>"></td>
  </tr>
  <tr>
    <td>Пароль</td>
    <td><input name="password" type="password" size="30"></td>
  </tr>
  <tr>
    <td>Повторите пароль</td>
    <td><input name="rpassword" type="password" size="30"></td>
  </tr>
  <tr>
    <td>Имя</td>
    <td><input name="name" type="text" size="30" value="<?=htmlspecialchars($_POST['name'])?>"></td>
  </tr>
  <tr>
    <td>E-mail</td>
    <td><input name="email" type="text" size="30" value="<?=htmlspecialchars($_POST['email'])?>"></td>
  </tr>
  <tr>
    <td>STEAM_0:</td>
    <td><input name="STEAM_ID" type="text" size="30" value="<?=htmlspecialchars($_POST['STEAM_ID'])?>"></td>
  </tr>
</table>
<br>
<input name="do" value="Зарегестрироваться" type="submit">
</form>
<?php
}

Спустя 7 минут, 38 секунд (4.07.2009 - 18:24) glock18 написал(а):
PHP
else if(!preg_match("/^[a-zA-Z0-9]+$/",  $nick))
    {
        
$error ='Русские буквы в Нике запрещены';
    }


крутая проверка и ошибка)))) юзвер вводит <user>, а ему хитрый сайт "Ты чеее?! Нельзя буквы русские использовать! Ваще что ли?" :-D по-моему, проверочку эту по-любому надо пересмотреть.

PHP
strlen("$password")

такая передача параметра тоже не круто.

Спустя 12 минут, 9 секунд (4.07.2009 - 18:36) gooder отдыхающий написал(а):
glock18
не проверочку пересмотреть, а всего лишь написать, какие символы нужны
в логины, имхо, еще надо включить черточки, типа
#a-z0-9_-#i


так что за проект?

и с чего это стим не может быть больше 10 символов?

Спустя 7 минут, 51 секунда (4.07.2009 - 18:44) Gans1g написал(а):
вводиться толька 1:11354036 вот это уже учтено STEAM_0: это не проект пока так как ооочень я еще плохо владею пхп а так соберался для своей команды делать сайт так как увлекаюсь киберспортом.

Спустя 6 минут, 48 секунд (4.07.2009 - 18:51) Sylex написал(а):
Gans1g
давай я те за бабки такой сайт схлопаю, что я сам офигею! smile.gif

мне чет деньги нужны млин, мало осталось smile.gif

Спустя 1 минута, 13 секунд (4.07.2009 - 18:52) gooder отдыхающий написал(а):
Sylex
что это эксперты без работы? happy.gif

Спустя 2 минуты, 29 секунд (4.07.2009 - 18:55) Sylex написал(а):
бывает такое... расходы покрывают доходы наглухо... "подводные камни", бюрократия, ненасытный желудок - все жрет деньги... блин, и правда мы потребители... ohmy.gif

пора вставать на путь Сознательной Эволюции Души!

Спустя 10 минут, 27 секунд (4.07.2009 - 19:05) waldicom написал(а):
Цитата (Sylex @ 4.07.2009 - 17:55)
бывает такое... расходы покрывают доходы наглухо... "подводные камни", бюрократия, ненасытный желудок - все жрет деньги... блин, и правда мы потребители... ohmy.gif

пора вставать на путь Сознательной Эволюции Души!

Лучше вставать на путь Дао. Или еще лучше на путь Мао. Мао Цзэдуна cool.gif

Спустя 4 минуты, 56 секунд (4.07.2009 - 19:10) Sylex написал(а):
waldicom
выбор пути зависит от особенностей индивида... и кому что подойдет - вопрос личный smile.gif

просто реально думаю, что программирование - это смерть мозгам... вроде оно их развивает... зато ТЕБЯ уводит от жизни... это истина

Спустя 2 минуты, 15 секунд (4.07.2009 - 19:12) waldicom написал(а):
Цитата (Sylex @ 4.07.2009 - 18:10)
waldicom
выбор пути зависит от особенностей индивида... и кому что подойдет - вопрос личный smile.gif

просто реально думаю, что программирование - это смерть мозгам... вроде оно их развивает... зато ТЕБЯ уводит от жизни... это истина

Это был такой русский пошутайка, насчет Дедушки Мао.

Спустя 5 дней, 23 минуты, 52 секунды (9.07.2009 - 19:36) code9 написал(а):
Парни я в php пока особо не шарю) вот тут пишу рег. и авт. но скрипт не робит((
вот листинг

reg.php
PHP
<?
session_start();
include(
"connect.php");


if(!
$_POST['do'])
{
echo(
"<form method=\"POST\" action=\"\")<br />
Желаеиый ник:<div><input name=\"nick\" type=\"text\"><br />
Пароль:<div><input name=\"pass\" type=\"text\"><br />
Еще раз пароль<div><input name=\"rpass\" type=\"text\"><br />
<input name=\"do\" type=\"submit\" value=\"зарегистрировать\">
</form>"
);
}



$nick=$_POST["nick"];

mysql_query("SELECT * FROM users WHERE nick='".strtolower($nick)."'");
if(
mysql_affected_rows()==0) {

if(
$_POST['do'])
    {
if(
$_POST['pass'] != $_POST['rpass'])
    {
    echo 
"Введенные пароли не совпадают";
    exit();
    }
    }


if(
$_POST['pass'] !='' AND $_POST['rpass'] !='')
{
$pass $_POST['pass'];

$r="INSERT INTO users(nick,password) VALUES('".strtolower($nick)."','".md5($pass)."')";

mysql_query($r);
if(
$r)
    {
    echo 
"регистрация прошла успешно";
    }
}
} else {
    echo 
"Пользователь с таким ником уже зарегистрирован";
}



session_destroy();






вот

avt.php

PHP
<?
session_start();
include(
"connect.php");


if(!
$_POST['do'])
{
echo(
"<form method=\"POST\" action=\"\")<br />
Ник:<div><input name=\"nick\" type=\"text\"><br />
Пароль:<div><input name=\"pass\" type=\"password\"><br />
<input name=\"do\" type=\"submit\" value=\"Войти\"><br />
<a href=\"reg.php\">Регистрация</a>
</form>"
);
}

if(isset(
$_POST["nick"]) && isset($_POST["pass"]))
{
    
$login=mysql_real_escape_string($_POST["nick"]);
    
$pass=md5($_POST["pass"]);
    
    
$sr="SELECT 'id'
    FROM 'users'
    WHERE 'nick'={$login} AND password={$pass}
    LIMIT=1"
;

    
$zap=mysql_query($sr);
if(
mysql_num_rows($zap)==1)
    {
    
$mas=mysql_fetch_assoc($zap);
    
$_SESSION['user_id']=$mas['id'];
    echo 
"HI $login";

    } else {
        echo 
"такой логин  не найден";
    }
}




Спустя 5 минут, 26 секунд (9.07.2009 - 19:41) code9 написал(а):
Знаю что нухна фильтрация входяших данных, но пока мне достаточно былобыы наладить этот скрипт blink.gif точка опоры иак сказать user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.