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

Форум PHP

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

 

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

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

тема: Странный fwrite
 
 автор: SnooPI   (17.05.2007 в 16:08)   письмо автору
 
 

Здравствуйте...
столкнулся со странной проблемой....
[code]<?php
$bdusers = 'base.txt';
$bdusers_file = file_get_contents($bdusers);
$bdusers_fh = explode("\r\n", $bdusers_file);
if (in_array($sendto, $bdusers_fh)) {
$isreg = 1;
} else {
$isreg = 0;
}
if (strtolower($msg_text) == "add") {
if ($isreg == 1)
{
$send = "Ваш номер уже имеется в базе данных!";
} else {
if ($handle = fopen($bdusers, "ab")) {
fwrite($handle, $sendto."\r\n");
fclose($handle);
$send = "Номер ".$sendto." успешно добавлен в базу данных бота";
} else {
$send = "Ошибка записи";
}
}?>[/php]
Вообщем проблемы в том, что если я пишу первый раз команду add, то мой ICQ номер ( $sendto ) добавялется в файл....
так вот....если я второй раз пишу эту команду, то он почему то опять добавляет меня в файл, хотя должен уже написать "Ваш номер уже имеется в базе данных!"
А как только 2 раза запишет в файл, то пишет , то что должен писать после 1 раза...
ПОомгите избавиться от данной проблемы

   
 
 автор: mefestofel   (17.05.2007 в 16:23)   письмо автору
 
   для: SnooPI   (17.05.2007 в 16:08)
 

При беглом просмотре, проблемы с расстановкой фигурных скобок.
так правильнее:

<?php
$bdusers 
'base.txt';
$bdusers_file file_get_contents($bdusers);
$bdusers_fh explode("\r\n"$bdusers_file);
if (
in_array($sendto$bdusers_fh))
   {
    
$isreg 1;
    }
    else
   {
    
$isreg 0;
   }
if (
strtolower($msg_text) == "add")
 {
    if (
$isreg == 1)
   {
    
$send "Ваш номер уже имеется в базе данных!";
   }
 }
   else
   {
if (
$handle fopen($bdusers"ab"))
   {
fwrite($handle$sendto."\r\n");
fclose($handle);
$send "Номер ".$sendto." успешно добавлен в базу данных бота";
   }
   else
   {
$send "Ошибка записи";
   }
 }
?>

   
 
 автор: mefestofel   (17.05.2007 в 16:33)   письмо автору
 
   для: mefestofel   (17.05.2007 в 16:23)
 

какой смысл Вы вкладываете в переменную $msg_text?

   
 
 автор: mefestofel   (17.05.2007 в 16:35)   письмо автору
 
   для: mefestofel   (17.05.2007 в 16:33)
 

Вот рабочий код:

<?php
$sendto 
'icq_number';
$bdusers 'base.txt';
$bdusers_file file_get_contents($bdusers);
$bdusers_fh explode("\r\n"$bdusers_file);
if (
in_array($sendto$bdusers_fh))
   {
    
$isreg 1;
    }
    else
   {
    
$isreg 0;
   }
if (
$isreg == 1)
   {
    
$send "Ваш номер уже имеется в базе данных!";
   }
   else
   {
if (
$handle fopen($bdusers'a+'))
   {
fwrite($handle$sendto."\r\n");
fclose($handle);
$send "Номер ".$sendto." успешно добавлен в базу данных бота";
   }
   else
   {
$send "Ошибка записи";
   }
 }
 print 
$send;
?>

   
 
 автор: Valick   (17.05.2007 в 16:50)   письмо автору
 
   для: mefestofel   (17.05.2007 в 16:35)
 

Если не ошибаюсь, то "Ошибка открытия файла" вместо "Ошибка записи"

   
 
 автор: mefestofel   (17.05.2007 в 17:06)   письмо автору
 
   для: Valick   (17.05.2007 в 16:50)
 

ну да... ;-))
Кстати, Valick, до Вас письма не доходят 6 раз пытаюсь...

   
 
 автор: Valick   (17.05.2007 в 17:13)   письмо автору
 
   для: mefestofel   (17.05.2007 в 17:06)
 

Попробуйте седьмой)
kam-val собака mail.ru

   
Rambler's Top100
вверх

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