2016-11-23 68 views
0

我有一個問題,我會盡我所能解釋它。所以我有一個代碼,你有2個鏈接,第一個鏈接是你可以把你的姓名地址和電子郵件放在一個文本框中,你可以留言。第二個鏈接將這個信息恢復到一個不錯的頁面,但在6行之後,下一頁將生成,所以如果你在消息框中放置超過1行的單詞,它會把所有內容都弄亂,這是很難解釋的希望,這是足夠的信息。如果您對我的問題有任何不瞭解的地方,請告知我的幫助。有4個代碼。 這裏有所有的代碼:PHP Enter In textbox

稱爲 「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>