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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Регистрация на PHP

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
nekojiru-sou
Отправлено: 25 Июля, 2006 - 15:33:06
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2006  


Помог: 0 раз(а)




Подскажите как сделать скрипт регистрации на php. Данные должны записыватся в существующую базу данных (с проверкой чтобы 2 поля были уникальны к примеру логи и e-mail). и чтобы заполнялось поле id в базе данных автоматически тоесть присваиался свободный номер id. может где уже есть готовые подобные скрипты. спасибо буду очень признателен.

P.S. b и ещё хочу спросить как проверять данные чтобы небыло sql инекций (например передачи их php фаилу таким образом inf.php?id=8984)
 
 Top
valenok
Отправлено: 25 Июля, 2006 - 16:37:17
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




С любым методом передачи данных можно добиться инъекции.
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.  


Приблизительно так..


-----
Truly yours, Sasha.
 
My status
 Top
nekojiru-sou
Отправлено: 25 Июля, 2006 - 17:22:14
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2006  


Помог: 0 раз(а)




А в каком месте опечатка в коде )))
 
 Top
valenok
Отправлено: 26 Июля, 2006 - 16:07:01
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




PHP:
скопировать код в буфер обмена
  1.  <?
  2. $res=mysql_detch_row(mysql_query("SELECT `id` FROM `users` WHERE `mail`='".$mail."' OR `nick`='".$nick."'"$link));
  3.  


-----
Truly yours, Sasha.
 
My status
 Top
nekojiru-sou
Отправлено: 27 Июля, 2006 - 12:04:40
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2006  


Помог: 0 раз(а)




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
 
 Top
f0rm4t
Отправлено: 27 Июля, 2006 - 14:18:05
Post Id



Посетитель


Покинул форум
Сообщений всего: 433
Дата рег-ции: Июнь 2006  


Помог: -1 раз(а)




Делай так:
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. )

Хотя это не принципиально.
 
 Top
nekojiru-sou
Отправлено: 27 Июля, 2006 - 15:51:55
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Июль 2006  


Помог: 0 раз(а)




Спасибо работает ))
 
 Top
-SCHATTEN-
Отправлено: 01 Августа, 2006 - 22:28:01
Post Id



Пользователь


Покинул форум
Сообщений всего: 615
Дата рег-ции: Июль 2006  
Откуда: Оттуда !


Помог: 0 раз(а)




А можно немного переделать этот скрипт чтоб он работал вообще без баз данных ?

/* или невозможно ?
 
 Top
f0rm4t
Отправлено: 01 Августа, 2006 - 23:36:06
Post Id



Посетитель


Покинул форум
Сообщений всего: 433
Дата рег-ции: Июнь 2006  


Помог: -1 раз(а)




-SCHATTEN- пишет:
/* или невозможно ?

А как ты думаешь работает ExBB?
 
 Top
valenok
Отправлено: 03 Августа, 2006 - 09:21:39
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Ну смотри - где то надо держать имена и пароли от них.
Если придумаешь ещё какоето место кроме БД можешь хранить их там.


-----
Truly yours, Sasha.
 
My status
 Top
Boss
Отправлено: 03 Августа, 2006 - 10:18:57
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Июнь 2006  
Откуда: Bakal City


Помог: 0 раз(а)




Можно использовать "плоские файлы" ...
А пароли можно в обычном файле хранить, предворительно зашифровав их ...


-----
Специалист IT
http://www[dot]labnit[dot]ru - Лаборатория Новых Информационных Технологий
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB