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

Форум PHP

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

 

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

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

тема: Запись в файл
 
 автор: @ndry   (12.08.2005 в 21:28)   письмо автору
 
 

Вот скрипт для записи новостей в сайт:

<?
session_start
();    // Maintain session state
header("Cache-control: private");
$filename="usersnews.php";
$file file($filename);

for(
$i 0$j 5$i++)
{
    
$oldLines[$i+1] = $file[$i];
    if ((
strcmp(substr($oldLines[$i], 03), "<b>")) == 0$j++;
}

if(
$_SESSION['permission'] == 2)
{
$data="<font color=red><b>".date("d.m.Y").": </b><br> ".nl2br(htmlspecialchars(@$_POST[text]))." (from ".@$_SESSION["user"].")</font><br>\r\n";
}
elseif(
$_SESSION['permission'] == 1)
{
$data="<font color=green><b>".date("d.m.Y").": </b><br> ".nl2br(htmlspecialchars(@$_POST[text]))." (from ".@$_SESSION["user"].")</font><br>\r\n";
}
else
{
$data="<b>".date("d.m.Y").": </b><br> ".nl2br(htmlspecialchars(@$_POST[text]))." (from ".@$_SESSION["user"].")<br>\r\n";
}
$oldLines[0]=$data;
$fp fopen($filename"w");
for(
$i 0$i sizeof($file)+1$i++){
@
fwrite($fp$oldLines[$i]);
}
fclose($fp);
$msg=@htmlspecialchars($_POST[text]);
$translit=@EncodeString($_POST[text]);
//do mail delivery
$filename="mailusers.php";
$mfile file($filename);
$totalLines sizeof($mfile);
for(
$i 0$i $totalLines$i++){
    if(
"  " != substr($mfile[$i], 02)){
        @list(
$type$usr$passwd$address) = explode("|"$mfile[$i]);
        if(
$type==1){
            
mail($address"??????? @ndrySite",$msg"From: News@andrysite.hut1.ru");
        }else if(
$type==2){
            
mail($address,"",$translit"From: @ndrySite");
        }        
    }
}
function 
encodestring($st)
{
// ??????? ???????? "??????????????" ??????.
$st=strtr($st,"??????????????????????????",
"abvgdeeziyklmnoprstufh'iei");
$st=strtr($st,"??????????????????????????",
"ABVGDEEZIYKLMNOPRSTUFH'IEI");
// ????? — "???????????????".
$st=strtr($st,array(
"?"=>"zh""?"=>"ts""?"=>"ch""?"=>"sh"
"?"=>"shch","?"=>"""?"=>"yu""?"=>"ya",
"?"=>"ZH""?"=>"TS""?"=>"CH""?"=>"SH"
"?"=>"SHCH","?"=>"""?"=>"YU""?"=>"YA",
"?"=>"i""?"=>"Yi""?"=>"ie""?"=>"Ye"
));
// ?????????? ?????????.
return $st;
}
include(
"index.php");
?>



Но он не работает, почему? Когда его запускаеш, то страница грузиться до бесконечности!

   
 
 автор: cheops   (12.08.2005 в 22:34)   письмо автору
 
   для: @ndry   (12.08.2005 в 21:28)
 

А много записей в usersnews.php?

   
 
 автор: @ndry   (12.08.2005 в 22:44)   письмо автору
 
   для: cheops   (12.08.2005 в 22:34)
 

1, больше не добавляет, а нужно чтоб добавляло в конец файла, с ограничением 15 записей! Если их больше 15, то удаляем пследнюю!

   
 
 автор: cheops   (12.08.2005 в 23:22)   письмо автору
 
   для: cheops   (12.08.2005 в 22:34)
 

А где дело происходит? На хостинге или на локальной машине? Проверьте отправку нескольких писем в отдельном скрипте - иногда хостеры намеренно ставят задержку или ещё что-то? Как протекает отправка быстро или нет?

   
 
 автор: @ndry   (12.08.2005 в 23:26)   письмо автору
 
   для: cheops   (12.08.2005 в 23:22)
 

Это происходит на локальной машине, хочу обяснить:

это срипт новостей, посланая новость записываеться в файл и отправляеться по почте (отравка происходит удачно).

   
 
 автор: cheops   (12.08.2005 в 23:48)   письмо автору
 
   для: @ndry   (12.08.2005 в 23:26)
 

Если закоментировать mail() не быстрее выполняется скрипт?

   
 
 автор: @ndry   (12.08.2005 в 23:51)   письмо автору
 
   для: cheops   (12.08.2005 в 23:48)
 

Он выполняеться если закомплеировать

for($i = 0; $j < 5; $i++) 

    $oldLines[$i+1] = $file[$i]; 
    if ((strcmp(substr($oldLines[$i], 0, 3), "<b>")) == 0) $j++; 
}

!!!!!!

   
 
 автор: mbyte   (20.08.2005 в 16:58)
 
   для: @ndry   (12.08.2005 в 23:51)
 

Он будет выполнятся до бесконечности, пока у тебя не будет выполнятся условие, а оно, видимо, не выполняется. Внимательно пересмотри, что у тебя в тексте, и что за експрешн.

   
 
 автор: Киналь   (20.08.2005 в 20:03)   письмо автору
 
   для: @ndry   (12.08.2005 в 23:51)
 

Читай for внимательно. Цикл по $i, а условие выхода - $j < 5.

   
Rambler's Top100
вверх

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