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.SU » PHP » Программирование на PHP » Регистрация аккаунта

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

1. 888putnik888 - 05 Февраля, 2008 - 16:30:12 - перейти к сообщению
Проблемка в том что я незнаю можно ли сделать чтоб при регистрации аккаунта он создовался всразу в двух базах данных . если можно то что нужно поправить или добавить вот в этом скрипте
2. Dastar - 05 Февраля, 2008 - 16:56:50 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if(ereg("^([a-zA-Z0-9_-])*$", $_POST['account']) && ereg("^([a-zA-Z0-9_-])*$", $_POST['password']) && ereg("^([a-zA-Z0-9_-])*$", $_POST['password2']))
  4. {
  5.         if ($page="index.php" && $_POST['account'] && strlen($_POST['account'])<16 && strlen($_POST['account'])>3 && $_POST['password'] && $_POST['password2'] && $_POST['password']==$_POST['password2'])
  6.         {      
  7.                 $check=mysql_query("select * from accounts where login='".$_POST['account']."'");
  8.                 $check1=mysql_num_rows($check);
  9.                 if($check1>0)
  10.                 {
  11.                         echo "<p clss='error'><b>Ошибка  при регистрации: такой аккаунт уже сущетвует.</b></p>";
  12.                 }
  13.                 else
  14.                 {
  15.                         mysql_query("INSERT INTO accounts (login, password, access_level) VALUES ('".$_POST['account']."', '".base64_encode(pack('H*', sha1($_POST['password'])))."', 0)", $link);
  16.                         mysql_close($link);
  17.                         print '<p class="error"><b>Р Е Г И С Т Р А Ц И Я---П Р О Ш Л А---У С П Е Ш НО !!!!</b></p>';
  18.                 }
  19.         }
  20.         else
  21.         {
  22.         print '<p class="error"><b> </b></p>'.mysql_error();
  23.         }
  24. }
  25. else
  26. {
  27.         echo "Введенные вами данные не прошли проверку на безопасность. Пожалуйста, попробуйте зарегистрироваться с другим логином и паролем.";
  28. }
  29.  
  30. ?>
  31.  

В следующий раз, плз, делай копипаст скрипта, так как не все хотят что-то скачивать.
3. 888putnik888 - 05 Февраля, 2008 - 17:02:44 - перейти к сообщению
Я сделал )) мне написали что слишком большой об.ем сообщения
4. HDD - 06 Февраля, 2008 - 14:15:05 - перейти к сообщению
вот измененный код, должно работать. Улыбка

PHP:
скопировать код в буфер обмена
  1.  
  2. $link['1'] = mysql_connect("localhost", "root", "") or die("Ошибка соединения: ".mysql_error());
  3. $link['2'] = mysql_connect("localhost", "root", "") or die("Ошибка соединения: ".mysql_error());
  4.  
  5. mysql_select_db("db1",$link['1']);
  6. mysql_select_db("db2",$link['2']);
  7. if(ereg("^([a-zA-Z0-9_-])*$", $_POST['account']) && ereg("^([a-zA-Z0-9_-])*$", $_POST['password']) && ereg("^([a-zA-Z0-9_-])*$", $_POST['password2']))
  8. {
  9.     if ($page="index.php" && $_POST['account'] && strlen($_POST['account'])<16 && strlen($_POST['account'])>3 && $_POST['password'] && $_POST['password2'] && $_POST['password']==$_POST['password2'])
  10.     {    
  11.         $check="select * from accounts where login='".$_POST['account']."'";
  12.         $check['1']=mysql_num_rows(mysql_query($check, $link['1']));
  13.         $check['2']=mysql_num_rows(mysql_query($check, $link['2']));
  14.         if($check['1']>0 && $check['2']>0)
  15.         {
  16.             echo "<p clss='error'><b>Ошибка  при регистрации: такой аккаунт уже сущетвует.</b></p>";
  17.         }
  18.         else
  19.         {
  20.          $sql = "INSERT INTO accounts (login, password, access_level) VALUES ('".$_POST['account']."', '".base64_encode(pack('H*', sha1($_POST['password'])))."', 0)";
  21.              mysql_query($sql, $link['1']);
  22.              mysql_query($sql, $link['2']);
  23.              mysql_close($link['1']);
  24.              mysql_close($link['2']);
  25.              print '<p class="error"><b>Р Е Г И С Т Р А Ц И Я---П Р О Ш Л А---У С П Е Ш НО !!!!</b></p>';
  26.         }
  27.     }
  28.     else
  29.     {
  30.       print '<p class="error"><b> </b></p>'.mysql_error();
  31.     }
  32. }
  33. else
  34. {
  35.     echo "Введенные вами данные не прошли проверку на безопасность. Пожалуйста, попробуйте зарегистрироваться с другим логином и паролем.";
  36. }
  37.  
5. 888putnik888 - 06 Февраля, 2008 - 18:34:04 - перейти к сообщению
Я так пробовал ... невышло .... вообщем перебрал все варианты и получилось ток так :
Соеденился с мускулем , выбрал базу_1 , вставил данные из формы , закрыл соеденение.
Соеденился с мускулем , выбрал базу_2 , вставил данные из формы , закрыл соеденение.
6. valenok - 06 Февраля, 2008 - 18:38:04 - перейти к сообщению
1. Зачем дважды подключатсья к мускулю.
2. Можно использовать конструкцию db.table вместо выбора базы и работы с таблицей.
7. 888putnik888 - 06 Февраля, 2008 - 20:43:58 - перейти к сообщению
Ну откровенно говоря я очень плохо знаю РНР )))) но очень хорошо и быстро всему обучаюсь )))
8. EuGen - 07 Февраля, 2008 - 09:45:08 - перейти к сообщению
Здесь скорее поможет понимание SQL чем знание PHP, хотя последнее будет явно не лишним.
9. strong - 07 Февраля, 2008 - 12:39:14 - перейти к сообщению
EuGen пишет:
Здесь скорее поможет понимание SQL чем знание PHP, хотя последнее будет явно не лишним.



SQL а ты попробуй обработать инфу для записи в БД. Я считаю самый безопасный способ с помощью PHP. А SQL тут можно сказать минимум. Только 3-4 функции используется и все!
(Добавление)
valenok пишет:
1. Зачем дважды подключатсья к мускулю.
2. Можно использовать конструкцию db.table вместо выбора базы и работы с таблицей.


Для новичков уже сильно все переверчено.

PHP
1)Получили данные из формы
2)подготовили например в function? то что будет хаписыватся в БД
SQL
3)Подключились к MySQL
4)Зашли в одну БД использовали функцию свою
5)Зашли во вторую БД и так же использовали функцию

Код очень легко редактируется из за использования одной и той же функции всегда в обе БД запишится одно и тоже.

А загрузка SQL языка PHP по моим наблюдениям только будет притормаживать. Правдо почти не заметно. А с моим принципом перемешки минимум!
10. Dastar - 07 Февраля, 2008 - 16:44:35 - перейти к сообщению
Ты что-то путаешь!
SQL не язык подсоединения к базе данных. SQL язык для обработки информации из баз даных!
11. EuGen - 07 Февраля, 2008 - 17:52:29 - перейти к сообщению
Исходя из http://ru[dot]wikipedia[dot]org/wiki/SQL
SQL - это универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Вопреки существующим заблуждениям, SQL является информационно-логическим языком, а не языком программирования.

соответственно, при чем тут обработка данных внутри скрипта.
12. strong - 07 Февраля, 2008 - 19:32:36 - перейти к сообщению
Dastar пишет:
Ты что-то путаешь!
SQL не язык подсоединения к базе данных. SQL язык для обработки информации из баз даных!


Извините! А я где-то утверждал что это не так?

Напишите почему мой принцип хуже выше описаного!
(Добавление)
EuGen пишет:
Исходя из http://ru[dot]wikipedia[dot]org/wiki/SQL
SQL - это универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. Вопреки существующим заблуждениям, SQL является информационно-логическим языком, а не языком программирования.

соответственно, при чем тут обработка данных внутри скрипта.


А прием переменных и проверка по регулярным выражениям? Помойму это запутает новичков. А ведь они тут спрашивают совет, не так ли? А сделав все понятней разберется каждый. Извините но когда я зашел, тот код показался мусорным ведром в моих глазаг. Такой код не нужно скидывать для новичков, но можно использовать в своих работах!

Есть определенные правила оформления! Художник же не разводит используемые краски скраю. Или еще ближе - не по кусочкам рисует картину, на обрывках, а потом склеивает!
13. valenok - 07 Февраля, 2008 - 20:03:39 - перейти к сообщению
По списку сообщений вышеописанный способ этой мой..
А описываемый принцип :
одно подключение к бд и два запроса.

Чем он лучше вашего?
Как минимум тем что даже не вникая в написанное - у вас 4 этапа,
а у меня всего три.


--

Цитата:
А загрузка SQL языка PHP по моим наблюдениям только будет притормаживать

Толи наблюдения, толи наблюдатель, толи фортуна виноваты..
Хотя может я не очень понял что такое загрузка SQL языка PHP.
mysql обрабатывает запросы с бешеной скоростью. Быстрее интерперетации.




Цитата:
Код очень легко редактируется из за использования одной и той же функции всегда в обе БД запишится одно и тоже.


Ну код почти всегда очень легко редактируется. Тем более в этом случае.
Вы мне объясните почему без использование пользовательской функции
не всегда запишутся те же данные в обе БД..

PHP:
скопировать код в буфер обмена
  1. mysql_query("INSERT INTO `tbl` (`field`) VALUES ('".$x."');".
  2. " INSERT INTO `tbl2` (`field`) VALUES ('".$x."');");




А вообще я не понял к чему вы клонили.
Возможно недопонимание.
В переводе следует читать те посты так:

- Можно использовать конструкцию db.table
- Ну откровенно говоря я очень плохо знаю РНР
- То о чём сказал первый - это не php, а sql


и ещё..
Для новичков уже сильно все переверчено.
Вы действительно так считаете?


--

Dastar, мне кажется ты тоже немножко заблуждаешься..
Не могу согласится с утверждением что
SQL язык для обработки информации из баз даных!
Это скорее язык коммуникации с базой нежели обработки чего либо.
14. strong - 08 Февраля, 2008 - 11:50:21 - перейти к сообщению
Цитата:
тут зачем то была полная цитата всего предыдущего сообщения..



Вы не сильно меня поняли!

Такие системы обычно используются в больших CMS. А там каждый раз заходит и исправлять участок записи в одну и туже БД неудобно. В будущем, сколько я раз сталкивался, иной раз приходиться добовлять новые колонки, а когда код насыщеный. То в Вашем случае нужно как минимум убить несколько минут, чтоб исправить и вторую БД. Я больше расматриваю "читабильность" (Ж)Ж)Ж)) кода.

Насчет MySQL - Вы разберите саму базу и найдете там теже файлы, просто сама структура БД позволяет работать одновременно и тысяци пользователей одновременно и уже меньше вероятности, что зациклится сценарий!!
15. valenok - 08 Февраля, 2008 - 12:07:22 - перейти к сообщению
Цитата:
Вы разберите саму базу и найдете там теже файлы

Да, действительно совсем немножко не допонял..
Добавление - Н утолько если вы имеете в виду что БД это куча файлов
и программа которая производит некие операции над ними.

Цитата:
Такие системы обычно используются в больших CMS. А там каждый раз заходит и исправлять участок записи в одну и туже БД неудобно. В будущем, сколько я раз сталкивался, иной раз приходиться добовлять новые колонки, а когда код насыщеный. То в Вашем случае нужно как минимум убить несколько минут, чтоб исправить и вторую БД. Я больше расматриваю "читабильность" (Ж)Ж)Ж)) кода.


.. Мы наверное о разных вещах говорим.
Ну давайте разберёмся тогда, а то я снова не понял почему мой код трудней отредактировать ..

Такие системы обыч..
Под системой вы подразумеваете ( Давайте упустим парочку этапов ) ?:

CODE (text):
скопировать код в буфер обмена
  1. 2)подготовили например в function? то что будет хаписыватся в БД
  2. 4)Зашли в одну БД использовали функцию свою
  3. 5)Зашли во вторую БД и так же использовали функцию


Могли бы вы написать на php в общем представлении эти 3 этапа ?

 

Powered by ExBB FM 1.0 RC1