Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Регистрация на PHP
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Регистрация на PHP

Страниц (1): [1]
 

1. nekojiru-sou - 25 Июля, 2006 - 15:33:06 - перейти к сообщению
Подскажите как сделать скрипт регистрации на php. Данные должны записыватся в существующую базу данных (с проверкой чтобы 2 поля были уникальны к примеру логи и e-mail). и чтобы заполнялось поле id в базе данных автоматически тоесть присваиался свободный номер id. может где уже есть готовые подобные скрипты. спасибо буду очень признателен.

P.S. b и ещё хочу спросить как проверять данные чтобы небыло sql инекций (например передачи их php фаилу таким образом inf.php?id=8984)
2. valenok - 25 Июля, 2006 - 16:37:17 - перейти к сообщению
С любым методом передачи данных можно добиться инъекции.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $nick=mysql_escape_string($_POST['nick']);
  4. $mail=mysql_escape_string($_POST['mail']);
  5.   if(empty($nick) OR empty($mail)){die('Заполнять надо все поля.');}
  6. $res=mysql_detch_row(mysql_query("SELECT `id` FROM `users` WHERE `mail`='".$mail."'" OR `nick`='".$nick."'"$link));
  7. if(!empty($res[0])){ die('Ник занят или вы опять регистрируетесь..');}
  8.  


Приблизительно так..
3. nekojiru-sou - 25 Июля, 2006 - 17:22:14 - перейти к сообщению
А в каком месте опечатка в коде )))
4. valenok - 26 Июля, 2006 - 16:07:01 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  <?
  2. $res=mysql_detch_row(mysql_query("SELECT `id` FROM `users` WHERE `mail`='".$mail."' OR `nick`='".$nick."'"$link));
  3.  
5. nekojiru-sou - 27 Июля, 2006 - 12:04:40 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. $link = mysql_connect('localhost', 'root', '');
  5. mysql_select_db(main,$link);
  6.  $nick='rtt';
  7.  $mail='h';
  8.    if(empty($nick) OR empty($mail)){die('Заполнять надо все поля.');}
  9.  
  10. $res=mysql_detch_row(mysql_query("SELECT `id` FROM `users` WHERE `mail`='".$mail."' OR `nick`='".$nick."'"$link));
  11.  
  12.  if(!empty($res[0])){ die('Ник занят или вы опять регистрируетесь..');}
  13.  ?>
  14.  
  15.  


Возникает такая ошибка в чём может быть проблемма?
Parse error: parse error, unexpected T_VARIABLE in c:appservwwwgame222.php on line 9
6. f0rm4t - 27 Июля, 2006 - 14:18:05 - перейти к сообщению
Делай так:
PHP:
скопировать код в буфер обмена
  1. <?PHP  
  2.   $link = mysql_connect('localhost', 'root', '');
  3.   mysql_select_db('tmp',$link);
  4.   $nick='rtt';  
  5.   $mail='h';  
  6.   if(empty($nick) OR empty($mail)){die('Заполнять надо все поля.');}  
  7.   $num=mysql_num_rows(mysql_query("SELECT `id` FROM `users` WHERE `mail`='".$mail."' OR `nick`='".$nick."'",$link));  
  8.   if($num>0){ die('Ник занят или вы опять регистрируетесь..');} else mysql_query("INSERT INTO `users` VALUES ('','$nick','$mail')",$link);  
  9. ?>

Это для такой таблицы:
CODE (text):
скопировать код в буфер обмена
  1. CREATE TABLE `users` (
  2.   `id` int(11) NOT NULL auto_increment,
  3.   `nick` varchar(50) collate latin1_general_ci default NULL,
  4.   `mail` varchar(50) collate latin1_general_ci default NULL,
  5.   PRIMARY KEY  (`id`)
  6. )

Хотя это не принципиально.
7. nekojiru-sou - 27 Июля, 2006 - 15:51:55 - перейти к сообщению
Спасибо работает ))
8. -SCHATTEN- - 01 Августа, 2006 - 22:28:01 - перейти к сообщению
А можно немного переделать этот скрипт чтоб он работал вообще без баз данных ?

/* или невозможно ?
9. f0rm4t - 01 Августа, 2006 - 23:36:06 - перейти к сообщению
-SCHATTEN- пишет:
/* или невозможно ?

А как ты думаешь работает ExBB?
10. valenok - 03 Августа, 2006 - 09:21:39 - перейти к сообщению
Ну смотри - где то надо держать имена и пароли от них.
Если придумаешь ещё какоето место кроме БД можешь хранить их там.
11. Boss - 03 Августа, 2006 - 10:18:57 - перейти к сообщению
Можно использовать "плоские файлы" ...
А пароли можно в обычном файле хранить, предворительно зашифровав их ...

 

Powered by ExBB FM 1.0 RC1