Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запись данных в файл с проверкой
 
 автор: Utenok   (22.01.2008 в 15:21)   письмо автору
 
 

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

<form action="register.php" method="post"> 
<input type="text" name="login">
<input type="text" name="password">
<input type="submit" value="Зарегистрироваться">
</form>

register.php:

<?php 
$login 
$_POST['login'];
$password $_POST['password']; 
$file fopen("database.txt""a");
fwrite($file,  $login." - ".$password."
"
);
?>



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

   
 
 автор: KPETuH   (22.01.2008 в 16:20)   письмо автору
 
   для: Utenok   (22.01.2008 в 15:21)
 

<?php  
$mass
=file('database.txt');
for (
$i=0;$i<=count($mass);$i++)
{
    list(
$log,$pas)=explode('-',trim($mass[$i]));
    if (
$log==$_POST['login']) $error='Такой пользователь уже сущетсвует';
}
if (empty(
$error))
{
    
$file fopen("database.txt""a"); 
    
fwrite($file,  $_POST['login']." - ".$_POST['password']." "); 
}
else echo 
$error;
?>

   
 
 автор: Utenok   (22.01.2008 в 17:34)   письмо автору
 
   для: KPETuH   (22.01.2008 в 16:20)
 

точно так же, информация просто добавляется в файл и все....
а проверка не происходит...

   
 
 автор: Nemezis   (22.01.2008 в 17:45)   письмо автору
 
   для: Utenok   (22.01.2008 в 17:34)
 

Наверное так:

<?
list($log,$pas)=explode(' - ',trim($mass[$i])); 

(Не было пробелов вокруг тире)

   
 
 автор: Indemion   (22.01.2008 в 17:55)   письмо автору
 
   для: Nemezis   (22.01.2008 в 17:45)
 

А почему не ";" или табуляция?
Еще хорошо бы проверять $_POST на "лишние" символы.

   
 
 автор: Utenok   (22.01.2008 в 18:57)   письмо автору
 
   для: Indemion   (22.01.2008 в 17:55)
 

Большое спасибо за скрипт! :)

   
 
 автор: Utenok   (22.01.2008 в 20:43)   письмо автору
 
   для: Utenok   (22.01.2008 в 18:57)
 

а еще подскажите пожалуйста, как заключить данные в кавычки, когда они записываются в файл...

<?php   
$mass
=file('database.txt'); 
for (
$i=0;$i<=count($mass);$i++) 

    list(
$log,$pas)=explode('" "',trim($mass[$i])); 
    if (
$log==$_POST['login']) $error='Такой пользователь уже сущетсвует'

if (empty(
$error)) 

    
$file fopen("database.txt""a");  
    
fwrite($file$_POST['login']."\" \"".$_POST['password']."\"
"
);  echo 'vse norm';

else echo 
$error
?>


я вокруг password'a поставил \" чтобы появлялись кавычки, а как сделать, чтобы перед логином тоже появлялись...?

   
 
 автор: KPETuH   (22.01.2008 в 20:44)   письмо автору
 
   для: Utenok   (22.01.2008 в 20:43)
 

а в чем смысл?

   
 
 автор: Utenok   (22.01.2008 в 20:57)   письмо автору
 
   для: KPETuH   (22.01.2008 в 20:44)
 

смысл в том, что эти данные будет считывать игра, а ей нужны данные формата:
"login" "password" "z" "a"
z и а - это не меняется, просто дописывается, тоже для игры...

   
 
 автор: KPETuH   (22.01.2008 в 21:29)   письмо автору
 
   для: Utenok   (22.01.2008 в 20:57)
 

а вы уверены что игра ваша считывает с кавычками? )
например так
<?
'"'.$_POST['login'].'" "'.$_POST['password'].'"'

   
 
 автор: Utenok   (22.01.2008 в 22:20)   письмо автору
 
   для: KPETuH   (22.01.2008 в 21:29)
 

насчет игры то да...
только вот я не понимаю, куда это вставлять то:

<? 
'"'.$_POST['login'].'" "'.$_POST['password'].'"'


я совсем недавно с html начал иметь дело, а тут...поэтому извините меня, если я такой глупый...

   
 
 автор: KPETuH   (23.01.2008 в 05:27)   письмо автору
 
   для: Utenok   (22.01.2008 в 22:20)
 

а причем тут html вы же в файл пишете ), я вам привел пример изходя из вашей задачи :)

   
 
 автор: Utenok   (23.01.2008 в 12:35)   письмо автору
 
   для: KPETuH   (23.01.2008 в 05:27)
 


<?php   
$mass
=file('database.txt'); 
for (
$i=0;$i<=count($mass);$i++) 

    list(
$log,$pas)=explode('" "',trim($mass[$i])); 
    if (
$log==$_POST['login']) $error='Такой пользователь уже сущетсвует'

if (empty(
$error)) 

    
$file fopen("database.txt""a");  
    
fwrite($file$_POST['login']."\" \"".$_POST['password']."\"
"
);  echo 'vse norm';

else echo 
$error
?>


вот это добавляет данные как:
login" "password"

а нужна еще одна кавычка перед логином, ставлю $_POST['login']. вот это \"
но пишет ошибку...
подскажите, как сделать то...

   
 
 автор: KPETuH   (23.01.2008 в 12:43)   письмо автору
 
   для: Utenok   (23.01.2008 в 12:35)
 

то вариант который я вам предложил не подходит?

   
 
 автор: Utenok   (23.01.2008 в 14:08)   письмо автору
 
   для: KPETuH   (23.01.2008 в 12:43)
 

нет, я просто не понял что с ним делать и куда его вставлять, говорю же...

   
 
 автор: KPETuH   (23.01.2008 в 14:13)   письмо автору
 
   для: Utenok   (23.01.2008 в 14:08)
 

сюда fwrite

   
 
 автор: Utenok   (23.01.2008 в 21:04)   письмо автору
 
   для: KPETuH   (23.01.2008 в 14:13)
 


<?php    
$mass
=file('database.txt');  
for (
$i=0;$i<=count($mass);$i++)  
{  
    list(
$log,$pas)=explode('" "',trim($mass[$i]));  
    if (
$log==$_POST['login']) $error='Такой пользователь уже сущетсвует';  
}  
if (empty(
$error))  
{  
    
$file fopen("database.txt""a");   
    
fwrite($file'"'.$_POST['login'].'" "'.$_POST['password'].'"'"\" 
"
);  echo 'vse norm'
}  
else echo 
$error;  
?> 

так чтоли???

   
 
 автор: Faraon   (23.01.2008 в 21:44)   письмо автору
 
   для: Utenok   (23.01.2008 в 21:04)
 

fwrite($file, "\"".$_POST['login']."\" \"".$_POST['password']."\"
");  echo 'vse norm';

   
 
 автор: Utenok   (23.01.2008 в 22:11)   письмо автору
 
   для: Faraon   (23.01.2008 в 21:44)
 

теперь проверка данных в текстовом файле не работает :(

   
 
 автор: Faraon   (23.01.2008 в 22:26)   письмо автору
 
   для: Utenok   (23.01.2008 в 22:11)
 

Код проверки приведите.

   
 
 автор: KPETuH   (23.01.2008 в 23:36)   письмо автору
 
   для: Utenok   (23.01.2008 в 22:11)
 

Естетсвенно она и не будет работать ведь строка стала другой.

[поправлено модератором]

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования