Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > faq из текстового файла


Автор: s1lver 19.5.2009, 17:24
В общем проблема, такая. Есть в текстовом файле  faq.txt набор вопросов и ответов.

Вот так я обращаюсь к нему, но у меня постоянно вылазит что файл не найден, даже не проверишь, работает он или нет smile 

Код


<?
if (! file_exists("faq.txt"));
exit ("Error! Not file found!");

$m= file("faq.txt");
echo "<b>FAQ</b>";
$nd=1;
for ($i=0; $i<count($m); $i+=2)
{
    echo "<b>".$nd.$f[$i]."</b><br/>";
    echo $f[$i+1];
    echo "<br/>";
    $nd++;
}
?>
<form action="faq.php" method="post">
<textarea name="sun" rows="10" cols="10"></textarea>
<input type="submit" name="sub">
</form>

<?
if (isset($_POST['sub']))
{
    if($_POST['$sun']=="")
    exit ("Enter text!");
    $f=fopen("faq.txt","a");
    fwrite($f,$_POST['$sun']);
    fclose($f);
}
?>



Автор: Veve 19.5.2009, 17:34
 smile  Cмешно! После if ()  ; - не пробовал убрать! 
Код

if (! file_exists("faq.txt")) 
exit ("Error! Not file found!");

Автор: s1lver 19.5.2009, 17:37
Вот, ***, а я и не заметил что поставил, главное во втором случае написал нормально smile 

Автор: Photon 19.5.2009, 17:45
А это что такое?

Код

if($_POST['$sun']=="")


Откуда в качестве индекса массива $_POST переменная $sun, да еще и в одинарных кавычках?

Автор: s1lver 19.5.2009, 17:45
та же ерунда, не видит файл и все тут smile

Добавлено через 1 минуту и 5 секунд
Цитата


Откуда в качестве индекса массива $_POST переменная $sun, да еще и в одинарных кавычках? 


это текстареа там

Автор: bars80080 19.5.2009, 17:48
файл-то в той же директории, что и скрипт?

Автор: s1lver 19.5.2009, 17:51
Цитата

файл-то в той же директории, что и скрипт? 


да, и там больше ничего нет, перезалил все заново, та же проблема


user posted image

вот код сейчас выглядит
Код


<?
if (! file_exists("1.txt"))
exit ("Error! Not file found!");

$m= file("1.txt");
echo "<b>FAQ</b>";
$nd=1;
for ($i=0; $i<count($m); $i+=2)
{
    echo "<b>".$nd.$f[$i]."</b><br/>";
    echo $f[$i+1];
    echo "<br/>";
    $nd++;
}
?>
<form action="faq.php" method="post">
<textarea name="sun" rows="10" cols="10"></textarea>
<input type="submit" name="sub">
</form>

<?
if (isset($_POST["$sub"]))
{
    if($_POST["$sun"]=="")
    exit ("Enter text!");
    $f=fopen("1.txt","a");
    fwrite($f,$_POST["$sun"]);
    fclose($f);
}
?>

Автор: bars80080 19.5.2009, 18:10
мда? а почему до этого открывал faq.txt?

Автор: s1lver 19.5.2009, 18:15
Цитата

мда? а почему до этого открывал faq.txt? 


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

Автор: bars80080 19.5.2009, 19:25
ну, поповоду записи уже было сказано про непонятное $_POST["$sun"]
sun - это ведь имя поля, почему оно вдруг в переменную превратилось?

Добавлено через 1 минуту и 31 секунду
а с чтением надо разбираться. попробуйте указать абсолютный путь, через $SERVER['DOCUMENT_ROOT'].'/ваш_каталог/1.txt';

Автор: s1lver 21.5.2009, 14:18
Вот, поправил код. Все выводит, но несколько не правильно. В самом начале выводт вопрос и ответ в одну строку и не выделяет вопрос и номер жирным, второй вопрос все нормально показывает.  smile 


Код

<?
if (!file_exists("faq.txt"))
die ("Error! File not found!");
$s=file_get_contents("faq.txt");
$m=file("faq.txt");
$m=explode("*",$s); 
$n=1;
for ($i=0; $i<count($m)-1; $i+=2, $n++)
{
echo "<b>".$n.$m[$i]."</b>";
echo $m[$i+1]."<br/>";
}
?>
<form name="form1" action="faq.php" method="post">
<textarea name="text"></textarea>
<input type="submit" name="sub" />
</form>
<?
if(isset($_POST['sub']))
{
$str=trim($_POST['text']);
$a=strrpos($str,63);
if(strlen($str)==0) die("<br> Enter text!");
elseif (!$a)
{
die("Not found simbol - ?");
}
else 
echo "<br> Yahooo!";
$f=fopen("faq.txt","a");
fwrite($f,"*".$str."\r\n");
fclose($f);
}
?>


Подсобите разобраться, горю smile 

Автор: bazzjr 21.5.2009, 15:54
Зачем используется strrpos?

У меня все работает вот этот код:

Код

if (!file_exists("faq.txt"))die ("Error! File not found!");
$s=file_get_contents("faq.txt");
$m=file("faq.txt");
$m=explode("*",$s); 
$n=1;
for ($i=0; $i<count($m)-1; $i+=2, $n++)
{
echo "<b>".$n."-".$m[$i]."</b> - Ответ ".$m[$i+1]."<br/>";
}
?>
<form name="form1" action="faq.php" method="post">
<textarea name="text"></textarea>
<input type="submit" name="sub" />
</form>
<?
if(isset($_POST['sub'])){
$str=trim($_POST['text']);
//$a=strrpos($str,33);
if(strlen($str)==0) {die("<br> Enter text!");
//}elseif (!$a){die("Not found simbol - ?");
}else {echo "<br> Yahooo!";}
$f=fopen("faq.txt","a");
fwrite($f,"\r\n*".$str."\r\n");
fclose($f);
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)