Регистрация на PHP @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 33 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
fil
новый человек
0
Сообщения: 50
Зарегистрирован: 10.10.04
Откуда: spb
Заголовок сообщения: Регистрация на PHP
Сообщение Добавлено: 8 Декабрь 2004, 21:22:05 
Вот код. Объясните пожалуйста, почему я заполняю все поля, но все равно появляется сообщение "Не все поля заполнены" Не могу найти ошибку... (
Код:
<?php
 $message="";
echo "
<form action='reg.php' name=form>
<input type=text name=user>
<br>
<br>
<input type=password name=pass1>
<br>
<br>
<input type=password name=pass2>
<br>
<br>
<input type=submit>
</form>
";
$user=Extreme;
$db=login;
$pass=ghjuhfvvf;
$link=mysql_connect("localhost", $user, $p);
mysql_select_db($db);




if ( empty($form[user])  ||
 empty ($form[pass1]) ||
 empty ($form[pass2]))
   {   
$message .="<font color=red><b>Не все поля заполнены</b></font>";
   }

if ($form[pass1] != $form[pass2])
   {
$message.="<fonr color=red><b>Ваши пароли не совпадают</b></font>";
   }



if (strlen($form[login])>15)
{$message.="<fonr color=red><b>Длина ника не может быть больше 15 символов</b></font>";}

if (strlen($form[pass1])>25)
{$message.="<fonr color=red><b>Длина пароля должна быть менее 25 символов</b></font>";}


if ($message==="")
{
   $query="insert into users(user, password) values('$name', '$pass1')";
   mysql_query($query);
}



if ($message!="")
{print $message;}

?>

_________________
::Касечественно и без ачепяток наебру лобые тескты::
Akela
Констататор
12
Сообщения: 3239
Зарегистрирован: 03.05.02
Откуда: Европа
Сообщение Добавлено: 8 Декабрь 2004, 21:52:33 
Сорри, я не понял что куда передаётся при этом? Можно полный код?
Loki1zI Муж.
новый человек
1
Сообщения: 141
Зарегистрирован: 27.10.04
Откуда: poznyaki.kiev.ua
Сообщение Добавлено: 8 Декабрь 2004, 21:56:39 
Код:
if ($message==="")
{
    $query="insert into users(user, password) values('$name', '$pass1')";
    mysql_query($query);
}

по-моему надо проверить всего лишь на ==, а не на ===…
и потом - зачем эта вся котовасия... код можно сократить примерно в 5 раз, если сразу ипользовать вывод ошибки на экран... ну и массив создавать - тоже по-моему лишнее...
модератор
новый человек
0
Сообщения: 82
Зарегистрирован: 10.07.04
Откуда: :адуктО
Сообщение Добавлено: 8 Декабрь 2004, 22:02:12 
ты где скрипт этот взял. он вообще не рабочий. вот исправил:

Код:
<?php
$message="";
echo "
<form action='reg.php' name=form>
<input type=text name=form[user]>
<br>
<br>
<input type=password name=form[pass1]>
<br>
<br>
<input type=password name=form[pass2]>
<br>
<br>
<input type=submit name=form[submit]>
</form>
";


$user='Extreme';
$pass='ghjuhfvvf';
$db='login';
$link=mysql_connect("localhost", $user, $pass);
mysql_select_db($db);


if ( isset( $form['submit'] ) )
{

if ( empty($form['user'])  ||
empty ($form['pass1']) ||
empty ($form['pass2']))
    {     
$message .="<font color=red><b>Не все поля заполнены</b></font>";
    }

if ($form['pass1'] != $form['pass2'])
    {
$message.="<fonr color=red><b>Ваши пароли не совпадают</b></font>";
    }



if (strlen($form['user'])>15)
{$message.="<fonr color=red><b>Длина ника не может быть больше 15 символов</b></font>";}

if (strlen($form['pass1'])>25)
{$message.="<fonr color=red><b>Длина пароля должна быть менее 25 символов</b></font>";}


if ($message==="")
{
    $query="insert into users(user, password) values('$form[user]', '$form[pass1]')";
    mysql_query($query);
}

}

if ($message!="")
{print $message;}

?>
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 8 Декабрь 2004, 23:32:44 

модератор писал(а):
$query="insert into users(user, password) values('$form[user]', '$form[pass1]')";



Благодарю за публикацию примера на тему "как ни в коем случае не нужно писать на PHP".

Но одного примера остаточно. Типа намек.
fil
новый человек
0
Сообщения: 50
Зарегистрирован: 10.10.04
Откуда: spb
Сообщение Добавлено: 9 Декабрь 2004, 07:15:43 
Это полный код

_________________
::Касечественно и без ачепяток наебру лобые тескты::
модератор
новый человек
0
Сообщения: 82
Зарегистрирован: 10.07.04
Откуда: :адуктО
Сообщение Добавлено: 9 Декабрь 2004, 11:10:11 

Crazy писал(а):

модератор писал(а):
$query="insert into users(user, password) values('$form[user]', '$form[pass1]')";



Благодарю за публикацию примера на тему "как ни в коем случае не нужно писать на PHP".

Но одного примера остаточно. Типа намек.



а блин, точно. я в слепую писал, проверял без всех этих бд. так работать не будет. айм сорри. надо так:

$user = $form['user'];
$pass = $form['pass1'];

$query="insert into users(user, password) values('$user', '$pass')";

спасибо за публикацию публикации примера на тему …
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 9 Декабрь 2004, 12:27:05 
Стало на 10% лучше.

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
CutCopyPaste Муж.
соучастник
0
Сообщения: 516
Зарегистрирован: 21.06.03
Откуда: Москва
Сообщение Добавлено: 9 Декабрь 2004, 13:31:18 
модератор,

$query="insert into users(user, password) values('".$user."', '".$pass."')";

еще 10%

=)))

_________________
Пьяный русский хакер практически непобедим!
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 9 Декабрь 2004, 14:20:32 
Такими темпами до квотинга мы дойдем где-то к Новому Году. :)

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
fil
новый человек
0
Сообщения: 50
Зарегистрирован: 10.10.04
Откуда: spb
Сообщение Добавлено: 9 Декабрь 2004, 18:45:35 
Спасибо всем, я добился результата к которому шел... )

_________________
::Касечественно и без ачепяток наебру лобые тескты::
модератор
новый человек
0
Сообщения: 82
Зарегистрирован: 10.07.04
Откуда: :адуктО
Сообщение Добавлено: 10 Декабрь 2004, 00:06:38 
CutCopyPaste, так

$query="insert into users(user, password) values('$user', '$pass')";

вообщето тоже работает. там куча способов, как это можно исполнить:

Код:
<?
$query="insert into users(user, password) values('$user', '$pass')";
$query='insert into users(user, password) values("'.$user.'", "'.$pass.'")';
$query="insert into users(user, password) values('".$user."', '".$pass."')";
$query="insert into users(user, password) values(\"".$user."\", \"".$pass."\")";
$query='insert into users(user, password) values(\''.$user.'\', \''.$pass.'\')';
?>


личные предпочтения каждого, как писать. не понимаю разницы.

и не понимаю почему эта разница так точно в процентах выражается.
fil
новый человек
0
Сообщения: 50
Зарегистрирован: 10.10.04
Откуда: spb
Сообщение Добавлено: 10 Декабрь 2004, 07:44:33 
ЕЩЕ ВОПРОС:
Как проверить не зарегестрирован ли уже такой пользователь???
Код:
function getRow()
{
$result= mysql_query("SELECT * FROM users where user='$ttt'");
$row=mysql_fetch_array($result);
}
if ( isset($row[0]))
{$message.="<font color=red><b>Такой пользователь уже существует</b></font><br>";}

Так не работает...

_________________
::Касечественно и без ачепяток наебру лобые тескты::
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 10 Декабрь 2004, 11:45:04 

модератор писал(а):
личные предпочтения каждого, как писать. не понимаю разницы.



Разница в том, что разные способы написания в разной степени провоцируют написание ошибочного кода.

Но, поскольку все приведенные тобой варианты одинаково непригодны к использованию, разница в них -- в пределах 10%.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 10 Декабрь 2004, 11:46:18 

fil писал(а):
$result= mysql_query("SELECT * FROM users where user='$ttt'");



Купи книжку типа "SQL для чайников" и прочитай про функцию count.
модератор
новый человек
0
Сообщения: 82
Зарегистрирован: 10.07.04
Откуда: :адуктО
Сообщение Добавлено: 10 Декабрь 2004, 17:51:44 

Crazy писал(а):

модератор писал(а):
личные предпочтения каждого, как писать. не понимаю разницы.



Разница в том, что разные способы написания в разной степени провоцируют написание ошибочного кода.

Но, поскольку все приведенные тобой варианты одинаково непригодны к использованию, разница в них -- в пределах 10%.



какого ошибочного кода??? если у тебя одна строка хоть как написана и ошибки не создает, то можно смело на нее забивать, пусть работает как хочет. не знаю, сколько пишу, ничего не провоцирую, всё работает. это всего то война между кавычками и апострофами, не запутаться да и все. от того как она написана, не зависит ничего.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 10 Декабрь 2004, 19:43:30 

модератор писал(а):
если у тебя одна строка хоть как написана и ошибки не создает, то можно смело на нее забивать, пусть работает как хочет.



Очень печальное заблуждение. У большинства программистов вылечивается при столкновении с необходимостью поддерживать свои проекты.
модератор
новый человек
0
Сообщения: 82
Зарегистрирован: 10.07.04
Откуда: :адуктО
Сообщение Добавлено: 10 Декабрь 2004, 21:07:40 
аа. вообще да. но в своем то коде мне не сложно будет разобраться. к тому же у меня свой стиль выработался, т е запросы я пишу так, что-то еще пишу так.

CutCopyPaste,
Код:
<?
$sql = "INSERT INTO " . VOTE_USERS_TABLE . " (vote_id, vote_user_id, vote_user_ip)
               VALUES ($vote_id, " . $userdata['user_id'] . ", '$user_ip')";
?>


пример из этого форума. posting.php
обрати пожалуйста внимание на $user_ip.
эти разработчики ребята умные, так что 10% поделим на двоих.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 11 Декабрь 2004, 00:00:13 

модератор писал(а):
аа. вообще да. но в своем то коде мне не сложно будет разобраться.



Вторая печальная ошибка. Разобраться в своем коде, написанном год-другой назад, гораздо сложнее, чем кажется.
модератор
новый человек
0
Сообщения: 82
Зарегистрирован: 10.07.04
Откуда: :адуктО
Сообщение Добавлено: 11 Декабрь 2004, 00:35:31 
да не то чтобы год-другой, а хотя-бы месяц назад. только сложности возникают не с кавычками и апострофами, а со структурой: со включаемыми файлами, с самодельными классами, функциями и тд.
fil
новый человек
0
Сообщения: 50
Зарегистрирован: 10.10.04
Откуда: spb
Сообщение Добавлено: 12 Декабрь 2004, 05:47:50 
Ну как все-таки проверить есть-ли такой юзер?

_________________
::Касечественно и без ачепяток наебру лобые тескты::
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 12 Декабрь 2004, 08:19:58 
Купи книжку типа "SQL для чайников" и прочитай про функцию count.

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
модератор
новый человек
0
Сообщения: 82
Зарегистрирован: 10.07.04
Откуда: :адуктО
Сообщение Добавлено: 12 Декабрь 2004, 10:50:21 
fil,
Код:
<?
 $count = mysql_query("SELECT COUNT(*) FROM users WHERE user_id='$user_id'");
 if ( $count > 0 )
 {
   $message.="<font color=red><b>Такой пользователь уже существует</b></font><br>";
 }
?>


чувак, книжку ты не ту читаешь. лучше в документацию загляни.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 12 Декабрь 2004, 12:43:05 
модератор, в последний раз прошу прекратить постить бредовый код. В следующий раз будет замечание.

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
модератор
новый человек
0
Сообщения: 82
Зарегистрирован: 10.07.04
Откуда: :адуктО
Сообщение Добавлено: 12 Декабрь 2004, 13:44:38 
в каком месте он бредовый то? это я его пример исправил. в приват еиу что-ли отправлять?

сама программа плохо устроена. но я тоже так же начинал. я даже из какой книги пример. пусть учится.

может уже сам тогда напиши, а то чего чувака в заблуждение вводить...
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 12 Декабрь 2004, 13:57:56 

модератор писал(а):
в каком месте он бредовый то?



Код:
$count = mysql_query("SELECT COUNT(*) FROM users WHERE user_id='$user_id'");
if ( $count > 0 )


Открой книжку и узнай, что возвращает mysql_query и как извлечь собственно значение колонки.


Цитата:
это я его пример исправил.



В его примере был еще mysql_fetch_array.
модератор
новый человек
0
Сообщения: 82
Зарегистрирован: 10.07.04
Откуда: :адуктО
Сообщение Добавлено: 12 Декабрь 2004, 14:35:56 
ладно, исправляюсь:
Код:
<?
$result = mysql_query("SELECT COUNT(*) AS count FROM users WHERE user_id='$user_id'");
$row = mysql_fetch_array( $result );
if ( $row['count'] > 0 )
{
   $message.="<font color=red><b>Такой пользователь уже существует</b></font><br>";
}
?>


можно еще так

Код:
<?
$result = mysql_query("SELECT * FROM users WHERE user_id='$user_id'");
$count = mysql_num_rows( $result );
 if ( $count > 0 )
 {
   $message.="<font color=red><b>Такой пользователь уже существует</b></font><br>";
}
?>
Akela
Констататор
12
Сообщения: 3239
Зарегистрирован: 03.05.02
Откуда: Европа
Сообщение Добавлено: 12 Декабрь 2004, 14:41:24 
У нас тут курсы открылись?
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 12 Декабрь 2004, 14:50:32 

модератор писал(а):
можно еще так



А вот так -- нельзя. "Почему нельзя" -- будет твоим домашним заданием.

P.S. "Нельзя" -- это не то же самое, что "Не будет работать".
модератор
новый человек
0
Сообщения: 82
Зарегистрирован: 10.07.04
Откуда: :адуктО
Сообщение Добавлено: 12 Декабрь 2004, 19:59:21 
не очень разбираюсь во всяких настройках, но у меня все работает (у меня денвер). я уже на всякий случай проверил. и так и так попробовал - результат правильный.

в чем ошибка, если не секрет?
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 12 Декабрь 2004, 20:20:47 

модератор писал(а):
я уже на всякий случай проверил. и так и так попробовал - результат правильный.



Перечитай "P.S.".
модератор
новый человек
0
Сообщения: 82
Зарегистрирован: 10.07.04
Откуда: :адуктО
Сообщение Добавлено: 12 Декабрь 2004, 21:08:10 
перечитал и еще раз проверил... работает, блин. может и не очень принципально написано, но работает. код из примера в такой же галимой книжке, но по функциональной части полностью нормальный... где ошибка то?
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 12 Декабрь 2004, 21:47:39 
Перечитай "P.S.". Столько раз, сколько потребуется, чтобы дошло, что в нем написано.

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 33 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100