регистрация в нескольких бд

Статус
В этой теме нельзя размещать новые ответы.

irmscher

Создатель
Регистрация
12 Авг 2008
Сообщения
37
Реакции
0
Здраствуйте, подскажите возможно ли сделать так, чтобы при регистрации введенная юзером информация сохранялась в 3-х бд. (без объединения всех баз в одну)

Имеется 3 сайта на денвере сайт1 сайт2 и сайт3 и базы база1 база2 и база3.

в базе1 есть таблица users1 в ней строки userName1 и password1
в базе2 есть таблица users2 в ней строки userName2 и password2
в базе3 есть таблица users3 в ней строки userName3 и password3

как сделать так чтобы при регистрации введенный юзером логин сохранялся сразу в разных бд соответственно userName1 userName2 userName3 и пароли соответственно. т.е. чтобы юзер мог 1 раз зарегится и использовать свои данные на трех сайтах.
 
PHP:
$db1 = mysql_connect ('localhost','root','');
mysql_select_db('base1', $db1);

$db2 = mysql_connect ('localhost','root','');
mysql_select_db('base2', $db2);

$db3 = mysql_connect ('localhost','root','');
mysql_select_db('base3', $db3);


mysql_query('запрос',$db1);
mysql_query('запрос',$db2);
mysql_query('запрос',$db3);

Примерно так можно)
 
Для уменьшения захламленности БД и дублирования информации идельано было бы иметь только одну таблицу с юзерами и обращаться к ней с каждого из сайтов.
 
Для уменьшения захламленности БД и дублирования информации идельано было бы иметь только одну таблицу с юзерами и обращаться к ней с каждого из сайтов.


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

просто хотелось бы организовать единую регистрацию для всех сайтов, а на самих этих сайтах ее отключить. Чтобы была общая возможность управления юзерами. н-р если бан то сразу на всех сайтах

Добавлено через 54 минуты
Подскажите пожалуйста где ошибка
Код:
<?
$db1 = mysql_connect ('localhost','root',''); 
mysql_select_db('indexsite', $db1); 
$db2 = mysql_connect ('localhost','root',''); 
mysql_select_db('testsite1', $db2); 
$db3 = mysql_connect ('localhost','root',''); 
mysql_select_db('testsite2', $db3);
$db4 = mysql_connect ('localhost','root',''); 
mysql_select_db('testsite3', $db4); 
if (($_POST['login']!='') || 
    ($_POST['pass1']!='') || 
    ($_POST['pass2']!='') || 
    ($_POST['email']!='')) { // если все данные для регистрации введены, то продолжаем
    $pass1 = $_POST['pass1'];
    $pass2 = $_POST['pass2'];
    if (strcmp($pass1, $pass2) == 0) {// если пароли совпадают, то продолжаем
      $login = $_POST['login'];
      $email = $_POST['email'];
      //проверяем наличие в БД пользователя с логином $login
      $sql='SELECT * FROM users WHERE login='.$login; // поиск по логину в таблице users
      if (!($res=mysql_query($sql)) || (mysql_num_rows($res) == 0)) { // если количество найденых записей ноль, то продолжаем
	  // sql-скрипт для добавления даных в таблицу
$sql1 = 'INSERT INTO users(login, pass, email) 
		  VALUES("'.$login.'", "'.$pass1.'", "'.$email.'")';
$sql2 = 'INSERT INTO users(login, pass, email) 
		  VALUES("'.$login.'", "'.$pass1.'", "'.$email.'")';
$sql3 = 'INSERT INTO users(login, pass, email) 
		  VALUES("'.$login.'", "'.$pass1.'", "'.$email.'")';
$sql4 = 'INSERT INTO users(login, pass, email) 
		  VALUES("'.$login.'", "'.$pass1.'", "'.$email.'")';
mysql_query('$sql1',$db1); 
mysql_query('$sql2',$db2); 
mysql_query('$sql3',$db3); 
mysql_query('$sql4',$db4);
if(mysql_query($sql)) {// выполняем скрипт
	    echo 'Пользователь '.$_POST['login'].' успешно зарегистрирован! <a href="index.php">Форма для входа</a>.';
	  } else {
	    echo 'При регистрации произошла ошибка, <a href="register.php">повторите попытку</a>.';
	  }
	} else echo 'Пользователь с таким логином уже зарегистрирован!';
    } else echo 'Введенные пароли не совпадают, <a href="/register.php">повторите попытку</a>.';
} else {
?>
  <form method='post' action='register.php'>
  Введите Логин: <input type='text' size='30' name='login' /><br />
  Введите e-mail: <input type=text size=30 name='email' /><br />
  Пароль: <input type='password' name='pass1' size='30' /><br />
  Повторите пароль: <input type='password' name='pass2' size='30' /><br />
  <input type='submit' value='Регистрация' />
<?  
}
?>

после того как исправил ...WHERE login="'.$login.'"'; // поиск по ... по совету jo0o00nyy регистрация проходит. пишет "Пользователь USER успешно зарегистрирован! Форма для входа." но в таблицах с юзерами по прежнему пусто
 
Можно только догадываться где ошибка и какого хар-тера она... но предположу, что в "mysql_query($sql)". Раз используете мульти-подключение к БД, то для "простых" запросов тоже необходимо выбирать с какой БД соединяться.
 
indexsite я использую как простой сайт на котором производится регистрация для разных движков. Я не уверен, что для него нужна своя база, но сделал ее для того, чтобы юзеры не регились под одинаковми именами. т.е.:

Код:
 //проверяем наличие в БД пользователя с логином $login
      $sql='SELECT * FROM users WHERE login='.$login; // поиск по логину в таблице users
      if (!($res=mysql_query($sql)) || (mysql_num_rows($res) == 0)) { // если количество найденых записей ноль, то продолжаем

поиск имен юзеров производится по ней
остальные базы testsite1 testsite2 testsite3 это базы допустим форума блога и чата.

Подскажите пожалуйста как правильно сделать sql запросы
 
Кстати о птичках, тут значение $login в запросе к мускулю не экранировано.
...WHERE login='.$login; // поиск по ...
...WHERE login="'.$login.'"'; // поиск по ...

Код:
//проверяем наличие в БД пользователя с логином $login
      $sql='SELECT * FROM users WHERE login='.$login; // поиск по логину в таблице users
      if (!($res=mysql_query($sql)) || (mysql_num_rows($res) == 0)) { // если количество найденых записей ноль, то продолжаем
 
Подскажите пожалуйста где ошибка. В Php знания не очень хорошие. Как можно это все реализовать?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху