Если запись существует - не дописывать...

Статус
В этой теме нельзя размещать новые ответы.
варіант Mr.Emm даже не понял куда писать, но спасибо за усердия. Варіант BKK работает, а можно еще что то с датой придумать, а пока что БОЛЬШОЙ ФЕНКС!!! п.с. а что делают кукисы, или то время которые они установлены?
это типа флуд контроль на 200 секунд, можешь поставть поменьше :smmne:
 
  • Автор темы
  • Заблокирован
  • #12
да нет я так балуюсь... и учусь у таких профи як у вас)))
а если за 3 минуты зайдет 5 человек, то запишется 1 логин:пасс?
 
Намного легче бы было сделать все это с БД.
Или тебе принципиально что бы была ФС?
 
  • Автор темы
  • Заблокирован
  • #14
Да нет в принцыпе создать базу данных не проблема, только вот соединить и сделать что бы работало.. вот это....
 
насколько я помню фейки делаются простыми как мычание коровы, чтобы не усиливать нагрузку на сервер или не вызывать какие то ошибки связанные с замудренной логикой. собранные данные сортируются и обрабатываются уже после сбора инфы одним скриптом, один раз. не усложняйте то, что должно быть простым.
 
  • Автор темы
  • Заблокирован
  • #16
ну я не собираю всё подряд, так что, нагрузки на сервак не будет, а вот так все сделать, єто проблема...
 
ну я не собираю всё подряд, так что, нагрузки на сервак не будет, а вот так все сделать, єто проблема...

а в чем проблема то? создай таблицу, сделай три поля - логин, пароль, логин+пароль+дата. потом натяни индекс на третье поле, которое и будет твоим "хэшем". при вставке в таблицу, если хэш будет неуникальным, вставки просто не будет, соответственно на выходе в таблице ты будешь иметь только уники по логину паролю и дате
 
зачем еще какойто хеш?
PHP:
$login = $_POST['login'];
$result = mysql_query("SELECT * FROM `users` WHERE `login`='$login'");
$num_rows = mysql_num_rows($result);
if($num_rows > 0){
die("Такой логин уже существует.");
}
Ну а вот тебе набросанный скрипт... что бы все работало:
Создаешь таблицу с именем users //Можно любое название, но тогда и в скрипте смени
В таблице 2 поля: login, passw. Ну а дальше php
PHP:
$dbname = "nameDB";
$connect = mysql_connect("localhost", "login", "password"); //сменить
mysql_select_db($dbname, $connect);
$Login = $_POST['login']; // Логин 
$Pass = $_POST['passwd']; // Пароль 

$result = mysql_query("SELECT * FROM `users` WHERE `login`='$login'");
$num_rows = mysql_num_rows($result);
if($num_rows > 0){
die("Такой логин уже существует.");
}else{
$add = mysql_query("INSERT INTO `users` (`login`, `passw`) VALUES ('$Login','$Pass')");
echo "<html><head><META HTTP-EQUIV='Refresh' content ='0; URL=http://.....'></head></html>"; // куда пошлем пользователя после того как он ввел данные! 
}
?>
 
зачем еще какойто хеш?
PHP:
$login = $_POST['login'];
$result = mysql_query("SELECT * FROM `users` WHERE `login`='$login'");
$num_rows = mysql_num_rows($result);
if($num_rows > 0){
die("Такой логин уже существует.");
}
Ну а вот тебе набросанный скрипт... что бы все работало:
Создаешь таблицу с именем users //Можно любое название, но тогда и в скрипте смени
В таблице 2 поля: login, passw. Ну а дальше php
PHP:
$dbname = "nameDB";
$connect = mysql_connect("localhost", "login", "password"); //сменить
mysql_select_db($dbname, $connect);
$Login = $_POST['login']; // Логин 
$Pass = $_POST['passwd']; // Пароль 
$result = mysql_query("SELECT * FROM `users` WHERE `login`='$login'");
$num_rows = mysql_num_rows($result);
if($num_rows > 0){
die("Такой логин уже существует.");
}else{
$add = mysql_query("INSERT INTO `users` (`login`, `passw`) VALUES ('$Login','$Pass')");
echo "<html><head><META HTTP-EQUIV='Refresh' content ='0; URL=http://.....'></head></html>"; // куда пошлем пользователя после того как он ввел данные! 
}
?>


прикол в том что пользователь мог ошибиться со вводом пароля какой то раз, а в приведенном примере он после первого же ввода будет игнориться. собирать надо уники не просто по логину, но по связке логин+пасс. а "хэшем" я назвал конкатенацию этих полей просто для удобства обозначения
 
Ну тогда пока вижу только такой выход: сначала проверять на правильность вводимых данных через CURL, а уже после заносить вбазу - если все правильно... Думаю логика понятна...;)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху