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.SU

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


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

> Описание: нужно чтоб в две базы
888putnik888
Отправлено: 05 Февраля, 2008 - 16:30:12
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2008  


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




Проблемка в том что я незнаю можно ли сделать чтоб при регистрации аккаунта он создовался всразу в двух базах данных . если можно то что нужно поправить или добавить вот в этом скрипте
Скачать файл: reg3.php
Скачан раз: 139
 
 Top
Dastar
Отправлено: 05 Февраля, 2008 - 16:56:50
Post Id



Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Янв. 2008  
Откуда: Израиль


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




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.  

В следующий раз, плз, делай копипаст скрипта, так как не все хотят что-то скачивать.


-----
Не знаешь - молчи.
 
 Top
888putnik888
Отправлено: 05 Февраля, 2008 - 17:02:44
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2008  


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




Я сделал )) мне написали что слишком большой об.ем сообщения
 
 Top
HDD
Отправлено: 06 Февраля, 2008 - 14:15:05
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Февр. 2008  


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




вот измененный код, должно работать. Улыбка

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.  

(Отредактировано автором: 06 Февраля, 2008 - 14:20:29)

 
 Top
888putnik888
Отправлено: 06 Февраля, 2008 - 18:34:04
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2008  


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




Я так пробовал ... невышло .... вообщем перебрал все варианты и получилось ток так :
Соеденился с мускулем , выбрал базу_1 , вставил данные из формы , закрыл соеденение.
Соеденился с мускулем , выбрал базу_2 , вставил данные из формы , закрыл соеденение.
 
 Top
valenok Модератор
Отправлено: 06 Февраля, 2008 - 18:38:04
Post Id



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


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


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




1. Зачем дважды подключатсья к мускулю.
2. Можно использовать конструкцию db.table вместо выбора базы и работы с таблицей.


-----
Truly yours, Sasha.
 
My status
 Top
888putnik888
Отправлено: 06 Февраля, 2008 - 20:43:58
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Февр. 2008  


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




Ну откровенно говоря я очень плохо знаю РНР )))) но очень хорошо и быстро всему обучаюсь )))
 
 Top
EuGen Администратор
Отправлено: 07 Февраля, 2008 - 09:45:08
Post Id


Профессионал


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


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




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


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
strong
Отправлено: 07 Февраля, 2008 - 12:39:14
Post Id



Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Авг. 2007  
Откуда: Украина


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




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



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


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

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

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

А загрузка SQL языка PHP по моим наблюдениям только будет притормаживать. Правдо почти не заметно. А с моим принципом перемешки минимум!


-----
http://strety[dot]com/
http://spystamp[dot]net/
http://nigma.ru/m&alen_stoycheva/
 
My status
 Top
Dastar
Отправлено: 07 Февраля, 2008 - 16:44:35
Post Id



Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Янв. 2008  
Откуда: Израиль


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




Ты что-то путаешь!
SQL не язык подсоединения к базе данных. SQL язык для обработки информации из баз даных!


-----
Не знаешь - молчи.
 
 Top
EuGen Администратор
Отправлено: 07 Февраля, 2008 - 17:52:29
Post Id


Профессионал


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


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




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

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


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
strong
Отправлено: 07 Февраля, 2008 - 19:32:36
Post Id



Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Авг. 2007  
Откуда: Украина


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




Dastar пишет:
Ты что-то путаешь!
SQL не язык подсоединения к базе данных. SQL язык для обработки информации из баз даных!


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

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

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


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

Есть определенные правила оформления! Художник же не разводит используемые краски скраю. Или еще ближе - не по кусочкам рисует картину, на обрывках, а потом склеивает!


-----
http://strety[dot]com/
http://spystamp[dot]net/
http://nigma.ru/m&alen_stoycheva/
 
My status
 Top
valenok Модератор
Отправлено: 07 Февраля, 2008 - 20:03:39
Post Id



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


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


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




По списку сообщений вышеописанный способ этой мой..
А описываемый принцип :
одно подключение к бд и два запроса.

Чем он лучше вашего?
Как минимум тем что даже не вникая в написанное - у вас 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 язык для обработки информации из баз даных!
Это скорее язык коммуникации с базой нежели обработки чего либо.


-----
Truly yours, Sasha.
 
My status
 Top
strong
Отправлено: 08 Февраля, 2008 - 11:50:21
Post Id



Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Авг. 2007  
Откуда: Украина


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




Цитата:
тут зачем то была полная цитата всего предыдущего сообщения..



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

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

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


Отредактировано модератором: valenok, 08 Февраля, 2008 - 12:00:00


-----
http://strety[dot]com/
http://spystamp[dot]net/
http://nigma.ru/m&alen_stoycheva/
 
My status
 Top
valenok Модератор
Отправлено: 08 Февраля, 2008 - 12:07:22
Post Id



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


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


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




Цитата:
Вы разберите саму базу и найдете там теже файлы

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

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


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

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

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


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


-----
Truly yours, Sasha.
 
My status
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB