2016-11-23 2 views
0

У меня проблема. Я попытаюсь изо всех сил объяснить это. Поэтому у меня есть код, в котором у вас есть 2 ссылки, первая ссылка - это то место, где вы можете поместить свой адрес и адрес электронной почты в текстовое поле, и вы можете оставить сообщение. Вторая ссылка восстановит эту информацию на приятной странице, но после 6 строк следующая страница будет генерироваться, поэтому, если вы поместите в поле сообщения более 1 строки слов, она все превратит в беспорядок, на самом деле трудно объяснить, что это достаточно информации. Если есть что-то, что вы не понимаете в моем вопросе, дайте мне знать спасибо за помощь. Есть 4 кода. здесь все коды:PHP Enter В текстовом поле

Первый файл называется "opdracht32.php":

<!DOCTYPE html> 
<html lang="nl"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Gastenboek</title> 
    </head> 
    <body> 
     <h2>Gastenboek met PHP</h2> 
     <hr> 
     <?php echo date("d-m-Y, G:i");?> 
     <hr> 
     <br> 
      Wat wil je gaan doen? 
     <ul> 
      <li><a href="gastenboekschrijven.php"> 
      Schrijf in het gastenboek</a></li> 
      <br> 
      <li><a href="gastenboeklezen.php"> 
      Lees het gastenboek</a></li> 
     </ul> 
    </body> 
</html> 

Второй файл называется "gastenboekschrijven.php":

<!DOCTYPE html> 
<html lang="nl"> 
    <head> 
     <meta charset="utf-8"> 
     <title>In het gastenboek schrijven</title> 
    </head> 
    <body> 
     <form action="opslaan.php" method="post"> 
     <p> 
      De gegevens die u via het volgende 
      formulier invult, worden op het 
      gastenboek geplaatst en zullen voor 
      iedereen zichtbaar zijn. 
     </p> 
     <p> 
      Naam: <br> 
     <input name="naam" type="text" size="40" tabindex="1"> 
     </p> 
     <p> 
      E-mail: (optioneel)<br> 
     <input name="email" type="text" size="40" tabindex="2"> 
     </p> 
     <p> 
      Woonplaats: (optioneel)<br> 
     <input name="woonplaats" type="text" size="40" tabindex="3"> 
     </p> 
     <p> 
      Uw bericht: <br> 
     <textarea name="bericht" rows="8" cols="40" tabindex="4"> 
     </textarea> 
     </p> 
     <p> 
     <input type="submit" name="submit" value="Verstuur" title="Verstuur dit formulier" tabindex="5"> 
     </p> 
     </form> 
    </body> 
</html> 

Третий файл под названием «gastenboeklezen.php «:

<!DOCTYPE html> 
<html lang="nl"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Het gastenboek lezen</title> 
    </head> 
    <body> 
     <?php 
      $bestandsnaam = "gastenboek.txt"; 
      // aantal regels per bijdrage om in te lezen 
      // elke bijdrage bestaat uit 5 regels 
      $aantal_regels = 6; 
      // teller om bij te houden hoeveel regels 
      // zijn gelezen 
      $teller = 0; 
      // Aantal bijdragen wordt bijgehouden. 
      $aantal_bijdragen = 0; 
      // gastenboek openen om te lezen 
      if (file_exists($bestandsnaam)){ 
      $fp = fopen($bestandsnaam, "r"); 
      } 
      else{ 
      echo "<h2>Het gastenboek is nog leeg!</h2> 
      <a href= 'gastenboekschrijven.php'> 
      Wees de eerste die erin schrijft!</a> "; 
      exit; 
      } 
      while (!feof($fp)){ 
      $regel = fgets($fp); 
      if (!feof($fp)){ 
      if ($teller % $aantal_regels == 0){ 
      // kop afdrukken 
      $aantal_bijdragen++; 
      // echo "<hr>"; 

      echo "<h3>Bijdrage: $aantal_bijdragen</h3>"; 

      } 
      } 
      // regel afdrukken 
      echo "$regel <br>"; 
      // echo "<hr>"; 
      $teller++; 

      } 

      echo "<a href='opdracht32.php'>Terug naar de 
      homepage</a>"; 
     ?> 
    </body> 
</html> 

последний файл под названием "opslaan.php":

<?php 
$bestandsnaam = "gastenboek.txt"; 
$datum = date("d-m-Y, G:i"); 
// gastenboek openen of maken 
if (!$fp = fopen($bestandsnaam, "a+")){ 
echo "<h2>Het lukt niet om het gastenboek te openen</h2>"; 
exit; 
} 
// het wegschrijven van de gegevens 
fputs($fp, "Datum: ".$datum); 
fputs($fp, "\r\n"); 
fputs($fp, "Naam: ".$_POST["naam"]); 
fputs($fp, "\r\n"); 
fputs($fp, "Email: ".$_POST["email"]); 
fputs($fp, "\r\n"); 
fputs($fp, "Woonplaats: ".$_POST["woonplaats"]); 
fputs($fp, "\r\n"); 
fputs($fp, "Bericht: ".$_POST["bericht"]); 
fputs($fp, "\r\n"."\r\n"); 
fclose($fp); 
echo "<h2>Klaar</h2>"; 
echo "<p>De bijdrage is opgeslagen</p>"; 
echo "<a href = 'opdracht32.php'>Terug naar het 
beginscherm</a>"; 
?> 

ответ

0

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

Я предпочитаю использовать базу данных для хранения комментариев, но если вам нужно использовать файлы, вот мой подход.

  1. Перед сохранить комментарий к файлу добавить специальный маркер, чтобы определить свой комментарий, как [start-of-comment]
  2. Когда дисплей комментарии, используйте этот маркер, чтобы разделить каждый комментарий независимо от количества линий.

Комментарии в файле будет выглядеть следующим образом:

[start-of-comment] 
Datum: 23-11-2016, 14:23 
Naam: name 
Email: email 
Woonplaats: *** 
Bericht:  -***-*/*-/-* 


[start-of-comment] 
Datum: 23-11-2016, 14:23 
Naam: fgh 
Email: fghf 
Woonplaats: dfgh 
Bericht:  dfhfghgfh 

Чтобы проверить это, я внес изменения в следующих файлах: opslaan.php и gastenboeklezen.php заменить их с файлами и ясном gastenboek.txt файл и попробовать его

opslaan.php

<?php 
$bestandsnaam = "gastenboek.txt"; 
$datum = date("d-m-Y, G:i"); 
// gastenboek openen of maken 
if (!$fp = fopen($bestandsnaam, "a+")){ 
echo "<h2>Het lukt niet om het gastenboek te openen</h2>"; 
exit; 
} 
// het wegschrijven van de gegevens 
fputs($fp, "[start-of-comment]\r\n"); 
fputs($fp, "Datum: ".$datum); 
fputs($fp, "\r\n"); 
fputs($fp, "Naam: ".$_POST["naam"]); 
fputs($fp, "\r\n"); 
fputs($fp, "Email: ".$_POST["email"]); 
fputs($fp, "\r\n"); 
fputs($fp, "Woonplaats: ".$_POST["woonplaats"]); 
fputs($fp, "\r\n"); 
fputs($fp, "Bericht: ".$_POST["bericht"]); 
fputs($fp, "\r\n"."\r\n"); 

fclose($fp); 
echo "<h2>Klaar</h2>"; 
echo "<p>De bijdrage is opgeslagen</p>"; 
echo "<a href = 'opdracht32.php'>Terug naar het 
beginscherm</a>"; 
?> 

gastenboeklezen.php

<!DOCTYPE html> 
<html lang="nl"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Het gastenboek lezen</title> 
    </head> 
    <body> 
     <?php 
      $bestandsnaam = "gastenboek.txt"; 
      // aantal regels per bijdrage om in te lezen 
      // elke bijdrage bestaat uit 5 regels 
      $aantal_regels = 6; 
      // teller om bij te houden hoeveel regels 
      // zijn gelezen 
      $teller = 0; 
      // Aantal bijdragen wordt bijgehouden. 
      $aantal_bijdragen = 0; 
      // gastenboek openen om te lezen 
      if (file_exists($bestandsnaam)){ 
      $fp = fopen($bestandsnaam, "r"); 
      } 
      else{ 
      echo "<h2>Het gastenboek is nog leeg!</h2> 
      <a href= 'gastenboekschrijven.php'> 
      Wees de eerste die erin schrijft!</a> "; 
      exit; 
      } 
      while (!feof($fp)){ 
      $regel = fgets($fp); 
      if (!feof($fp)){ 
       if($regel !== "[start-of-comment]\r\n"){ 
        echo "$regel <br>"; 
       }else{ 
        $aantal_bijdragen++; 
        echo "<h3>Bijdrage: $aantal_bijdragen</h3>"; 

       } 
      } 

      $teller++; 

      } 

      echo "<a href='opdracht32.php'>Terug naar de 
      homepage</a>"; 
     ?> 
    </body> 
</html> 
Смежные вопросы