2013-03-08 6 views
1

Итак, мы делаем в классе своего рода журнал. Существует окно ввода и кнопка. Каждый раз, когда нажимается кнопка, PHP будет писать в текстовом файле и печатать текущий журнал. Теперь текст появляется внизу, и нам нужно, чтобы текст появился сверху. Теперь как мы это сделаем?PHP написание текстового файла в начале

Мы пытались сделать это с помощью многоклассников, но все это привело к странным поведенческим действиям. (Как текст печатается более одного раза и т. Д.)

Спасибо большое!

EDIT: К сожалению, вот код:

<html lang="en"> 
<head> 
    <title>php script</title> 
    <link rel="stylesheet" href="style.css"> 
</head> 
<body> 
    <form name="orderform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
    <input type="text" name="text"/> 
    <input type="submit" value="Submit" /> 
    <?php 
     //Basic variables 
     echo("<br/>"); 
     $myFile = "log.txt"; 
     $logfile = fopen($myFile,'r+'); 
     $theData = fread($logfile,filesize($myFile)); 

     //Cookie stuff so the username is rememberd. 
     $username = $_COOKIE['gebruikerscookie'];; 
     if(isset($_POST['username'])){ 
      $gebruiker = $_POST['username']; 
      if($_COOKIE['gebruikerscookie'] == $gebruiker){ 
       $username = $_COOKIE['gebruikerscookie']; 
       echo("Welcome back"); 
      }else{ 
       setcookie("gebruikerscookie", $gebruiker); 
       $username = $_COOKIE['gebruikerscookie']; 
       echo("Welcome dude!"); 
      }   
     } 

     //Checks if theres something inside 
     if(isset($_POST['text'])){ 
      $message = "<br/>". $username ." : " . $_POST['text']; 
      fwrite($logfile, $message ,strlen($message)); 
     } 
     echo($theData); 
    ?> 
    </form> 
</body> 

+0

Моя догадка вы используете ** а ** или ** а + ** при открытии журнала с 'FOPEN()', вы должны используйте ** r + ** вместо ''r +' \t Открыть для чтения и записи; поместите указатель файла в начало файла. ' – HamZa

+0

Добавлен код извините – Dallox

ответ

1

Проверьте fopen руководство по режимах: http://www.php.net/manual/en/function.fopen.php

Попробуйте 'r+' Open for reading and writing; place the file pointer at the beginning of the file.

Altough без кода это трудно ответ.

+0

Tis не будет работать. –

+0

Что это значит? Это будет прекрасно работать –

+0

Добавлен код извините – Dallox

-1
$log = file('log.txt'); 
krsort($log); 
foreach($log as $line) echo "$line<br>\n"; 
1
<?php 
$contentToWrite = "Put your log content here \n"; 
$contentToWrite .= file_get_contents('filename.log'); 
file_put_contents('filename.log', $file_data); 
?> 

Это добавит предыдущее содержимое файла после того, как ваш контент cureent и писать на файл.

Ответьте, если у вас есть какие-либо сомнения.

+1

Tis - разумный. –

0

вы просто отсутствует

fclose(); 

я предполагаю, так как не закрывает дескриптор может вызвать много странных ошибок, как это.

Так

$myFile = "log.txt"; 
$logfile = fopen($myFile,'r+'); 
........ 
//Checks if theres something inside 
if(isset($_POST['text'])){ 
    $message = "<br/>". $username ." : " . $_POST['text']; 
    fwrite($logfile, $message ,strlen($message)); 
} 
fclose($logfile); // close it outside the if-condition! 
echo($theData); 

должен сделать трюк

+0

Не закрывая его, он дал мне 0 ошибок. Но дело не в ошибках. Я хочу, чтобы мой текстовый файл читался снизу вверх. – Dallox

+0

хорошо, что вы поступили странно, как вы сказали. и это ОШИБКА. Конечно, не для php-скрипта (на него все равно), но для вас это так. – itsid

Смежные вопросы