Forum Webscript.Ru

Программирование => PHP => Тема начата: andtar от 22 Июня 2002, 07:30:57

Название: Проверьте скрипт
Отправлено: andtar от 22 Июня 2002, 07:30:57
Скрипт находится по адресу http://ofp.dem.ru/temp/index.php. Заполнение формы: http://ofp.dem.ru/temp/index.php?action=send.

Страница почему-то не загружается, зависает, локально тоже висит. Если найдете в скрипте ошибки исправьте, plaese:


$file = "data/news.txt";
$data = date ("H:i. d.m.y");
function form() {
 ?>
 
 
 
 
 
 
 
 
Автор
E-mailНовость


function write($data, $name, $email, $news) {
  $f= fopen ($file, "r");
  $old = fread ($file, filesize($file));
  fclose ($f);
  $f = fopen ($file, "w+");
  fputs ($f, "$data\\n");
  fputs ($f, "$name\\n");
  fputs ($f, "$email\\n");
  fputs ($f, "$news\\n");
  $mess = ereg_replace ("\\n", " ", $mess);
  fputs ($f, "$mess\\n");
  fwrite ($f, $old);
  fclose ($f);
}
function main() {
  $f = fopen ($file, "r");
  while(1) {
    $data = fgets ($f, 10);
    $name = fgets ($f, 10);
    $email = fgets ($f, 10);
    $news = fgets ($f, 10);
    $mess = fgets ($f, 10);
    if (feof($f)) break;
    echo "
$news";
    echo "

";
    echo "Прислал: $name $data

";
   
    }
  fclose ($f);
  }
?>
if (action == "send") {
form();
} else {
main();
}
?>


Название: Проверьте скрипт
Отправлено: ThE0ReTiC от 22 Июня 2002, 10:54:07
Цитировать
while(1) {

Это ты сам придумал, или подсказал кто?
Цикл-то бесконечный. Потому и виснет.
Название: Проверьте скрипт
Отправлено: ThE0ReTiC от 22 Июня 2002, 11:03:36
И вообще:

function main() {
GLOBAL $file;
  $f = fopen ($file, "r");
  while(!feof($f)) {
    $data = fgets ($f, 10);
    $name = fgets ($f, 10);
    $email = fgets ($f, 10);
    $news = fgets ($f, 10);
    $mess = fgets ($f, 10);
    print("
$news");
    print("

");
    print( "$name $data

");
    }
  fclose ($f);
  }
Название: Проверьте скрипт
Отправлено: GotZfild от 22 Июня 2002, 13:15:37
Цитировать
if (action == "send") {

action - это константа?
Цитировать
function write($data, $name, $email, $news)

Лучше смени название функции (оно уже зарезервировано)
А где эта функция вообще используется?
function write_data($data, $name, $email, $news) {
  GLOBAL $mess;
  $f= fopen ($file, "r");
  $old = fread ($file, filesize($file));
  fclose ($f);
  $f = fopen ($file, "w");// зачем w+ ?
Название: Проверьте скрипт
Отправлено: ThE0ReTiC от 22 Июня 2002, 13:18:34
GotZfild
Забыл
GLOBAL $file
Название: Проверьте скрипт
Отправлено: GotZfild от 22 Июня 2002, 14:10:33
ThE0ReTiC, согласен.
$f= fopen ($file, "r");
  $old = fread ([u]$f[/u], filesize($file));
На счет $mess: у  тебя ведь даже в форме ее нет.
PS. ThE0ReTiC, это ты ради меня сменил сигнатуру? Польщен :). Только там было
"Нет, я не Байрон, я другой,
Еще неведомый избранник,
Как он, гонимый миром странник..."
(c) Лермонтов.
Название: Проверьте скрипт
Отправлено: ThE0ReTiC от 22 Июня 2002, 14:13:56
Цитировать
PS. ThE0ReTiC, это ты ради меня сменил сигнатуру? Польщен . Только там было
"Нет, я не Байрон, я другой,
Еще неведомый избранник,
Как он, гонимый миром странник..."
(c) Лермонтов.

[off]Я в курсе. :) Просто другое среденго рода как кое-что еще. Это вольная интерпретация :)[/off]
Название: Проверьте скрипт
Отправлено: andtar от 22 Июня 2002, 15:49:09
а все-равно что-то не работает, новости идут не в том формате, например: прислал, нет такого слова вообще.
Опять выкладываю на обработку вам:

$head = "новости";
require ("files/shablon1.php");


$file = "data/news.txt";
$data = date ("H:i. d.m.y");
function form() {
 ?>
 
 
 
 
 
 
 
 
Автор
E-mailНовость


function write_data($data, $name, $email, $news) {
   global $file;
  $f= fopen ($file, "r");
  $old = fread ($f, filesize($file));
  fclose ($f);
  $f = fopen ($file, "w");
  fputs ($f, "$data\\n");
  fputs ($f, "$name\\n");
  fputs ($f, "$email\\n");
  fputs ($f, "$news\\n");
  fwrite ($f, $old);
  fclose ($f);
}
function main() {
    GLOBAL $file;
  $f = fopen ($file, "r");
  while(!feof($f)) {
    $data = fgets ($f, 10);
    $name = fgets ($f, 10);
    $email = fgets ($f, 10);
    $news = fgets ($f, 10);
    $mess = fgets ($f, 10);
    print("
$news");
    print("

");
    print( "$name $data

");
    }
  fclose ($f);
  }
  ?>
if (action == "send") {
form();
} else {
main();
}

require ("files/shablon2.php");
?>
Название: Проверьте скрипт
Отправлено: ThE0ReTiC от 22 Июня 2002, 15:56:02
Цитировать
"

Тэг закрой. :abuse:
И пиши внимательнее.
Название: Проверьте скрипт
Отправлено: GotZfild от 22 Июня 2002, 16:17:01
И опять
Цитировать
if (action == "send") {

Ты ошибки, которые выдаются, не читаешь, что ли? Если не выдаются, поставь в начале файла
error_reporting(15);
Название: Проверьте скрипт
Отправлено: andtar от 24 Июня 2002, 06:12:55
Всё работает, сделал:

$file = "data/news.txt";
$data = date ("H:i. d.m.y");
function form() {
 ?>
 
 
 
 
 
 
 
Автор:
E-mail:
Новость:

 


function write_data($data, $name, $email, $news) {
   global $file;
  $f= fopen ($file, "r");
  $old = fread ($f, filesize($file));
  fclose ($f);
  $f = fopen ($file, "w");
  fputs ($f, "$data\\n");
  fputs ($f, "$name\\n");
  fputs ($f, "$email\\n");
  $news=ereg_replace("\\n","
",$news);
  fputs ($f, "$news\\n");
  fwrite ($f, $old);
  fclose ($f);
  echo "Спасибо, ваша новость уже на сайте.
Жмите сюда, чтобы посмотреть что вы там написали.";
}
function main() {
    GLOBAL $file;
  $f = fopen ($file, "r");
  while(!feof($f)) {
    $data = fgets ($f, 1000);
    $name = fgets ($f, 1000);
    $email = fgets ($f, 1000);
    $news = fgets ($f, 1000);
    print("
$news");
    print("
");
    print( "$name
$data
");
    }
  fclose ($f);
  }
  ?>
if ($action == "send") {
form();
} elseif ($ok == "ok") {
write_data($data, $name, $email, $news);
} else {
main();
}