Gå til innhold

php kode - problemer med gjestebok [LØST]


Anbefalte innlegg

Hei!

 

Holder på å lære meg php og har i den forbindelse prøvd å lage en gjestebok etter en tutorial i en bok. Jeg har tre filer. Det er gjestebok.php gjestebok_ny.php og gjestebok_vis.php.

 

 

Når jeg skriver inn i gjesteboken, så sendes ikke det jeg skriver til filen jeg har sagt den skal skrive til. Filen er lastet opp på samme plass som de tre andre filene ligger. Jeg har testet at dersom jeg skriver noe i filen selv, så kommer det frem når jeg trykker "se hva andre har skrevet". Altså virker det som problemet er å få skrevet til filen.

 

Jeg vet at dette antagelig er en ganske primitiv kode, men jeg tenkte å prøve å få til en enkel modell før jeg bygger mer på den.

 

Noen som ser hva som kan være galt?

 

 

gjestebok.php

<h3>Gjestebok</h3>

<form action="gjestebok_ny.php" method"post">
<table border="0">

<tr>
<td width="150"> Skriv inn navnet ditt </td>
<td><input type="text" name="navn"></td>
</tr>

<tr>
<td width="150"> Skriv inn en hilsen </td>
<td><textarea name="hilsen" cols="25" rows="3">
</textarea></td>
</tr>
<tr>
<td width="150">Adresse til din hjemmeside </td>
<td><input type="text" name="www" size="30"
value="http://"></td>
</tr>

<tr>


<td>Send informasjonen: <input type="submit" value="Legg inn"></td>
<td><a href="gjestebok_vis.php">Se hva andre har skrevet</a></td>

</tr>
</table>
</form>

 

 

 

gjestebok_ny.php

 

<?php
$fp = fopen(gjester.txt, "a+"); //filpeker på slutten av fil
$linje = $_POST['navn'] . "***---***";
$linje = $_POST['hilsen'] . "***---***";
$linje = $_POST['www'] . "***---***";
fwrite($fp, $linje); //skriver strengen til fil
fwrite($fp, "\n"); //sikrer at neste gang startes det på neste linje
fclose($fp);
?>

 

gjestebok_vis.php

 

<?php
$matrise = file("gjester.txt");

foreach ($matrise as $linje) {
$neste = explode("***---***", $linje);
echo "<h2>" . $neste[0] . "</h2>";
echo "<blockquote>" . $neste[1] . "</blockquote>";
echo "Besøk min <a href='" . $neste[2] . "'hjemmeside </a>";
 echo "<hr>";
}

?>

Endret av swj
Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet+142

gjestebok_ny.php

 

PHP
<?php

$fp fopen(gjester.txt"a+"); //filpeker på slutten av fil

$linje $_POST['navn'] . "***---***";

$linje .= $_POST['hilsen'] . "***---***";// hvis det var meningen at det bare skal fortsette, ikke overskrive variabelinnholdet skal .= brukes istedenfor =

$linje .= $_POST['www'] . "***---***";  

fwrite($fp$linje); //skriver strengen til fil

fwrite($fp"\n"); //sikrer at neste gang startes det på neste linje

fclose($fp);

?>

 

 

gjestebok_vis.php endret

 

PHP
<?php

 $matrise file("gjester.txt");

 

foreach ($matrise as $linje) {

$neste explode("***---***"$linje);

echo "<h2>" $neste[0] . "</h2>";

echo "<blockquote>" $neste[1] . "</blockquote>";

echo "Besøk min <a href='" $neste[2] . "'>hjemmeside </a>";  // lagt til en ">"

echo "<hr>";

}

 

?>

 

 

 

endret litt i begge kodene over.. kanskje det kan virke

Lenke til kommentar

En liten feil i gjestebok.php, som gjør at infoen sendes i URL'en(GET), og ikke sammen med HTTP-request(POST).

Gamle:

<form action="gjestebok_ny.php" method"post">

Nye:

<form action="gjestebok_ny.php" method="post">

Et mangel på '=' i method var alt som skulle til.

 

DU bør også ta en titt på empty() og isset() til videre bruk av gjesteboken.

Mer om dette finner du i mange andre tråder i dette forumet.

Endret av M4rTiN
Lenke til kommentar

Takk dere for hjelp og takk for tips ang hva jeg bør fokusere på etter dette. Jeg rettet "=" feilen. Det løste ikke problemet. Har chmodet tekstfilen til 777 uten at det løste problemet heller.

 

Når jeg velger "se hva andre har skrevet", så får jeg bare opp en blank side. Dvs den har ikke fått lest inn noe. Men, som beskrevet over. Dersom jeg selv skriver noe i tekstfilen, så kommer det frem når jeg velger "se hva andre har skrevet".

Lenke til kommentar

Fant ut av feilen. Når jeg legger inn en tekstfil med navn gjester.txt, så blir den av en eller annen (merkelig?)grunn til gjestertxt (altså uten . mellom gjester og txt.) Dvs i vis - filen, så må jeg skrive gjestertxt og i ny filen må jeg skrive gjester.txt

 

Jeg skjønner ikke hvorfor, men nå virker det, og da kan jeg jobbe videre med prosjektet!

 

Tusen takk for engasjement til dere som har svart!!

Lenke til kommentar
Gjest Slettet+142

PHP

<?php

 

$fp fopen(gjester.txt"a+"); //gammel

 

$fp fopen("gjester.txt""a+"); //ny

 

?>

 

du glemte fnutter (") rundt gjester.txt :p

Lenke til kommentar
PHP

<?php

 

$fp = fopen(gjester.txt, "a+"); //gammel

 

$fp = fopen("gjester.txt", "a+"); //ny

 

?>

 

du glemte fnutter (") rundt gjester.txt :p

7057675[/snapback]

 

:eek: Er det det som kalles å ikke se skogen for bare trær?

 

Tusen takk!!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...