Gå til innhold

PHP Gjestebok sortering


Anbefalte innlegg

Har laget en gjestebok som bruker en fil som database. Kunne brukt MySQL og ja, jeg vet det ville vært enklere, men jeg vil prøve noe nytt.

 

Akkurat nå sliter jeg med en liten ting, jeg vil prøve å sortere innleggene. Altså, det nye kommer øverst. Hva bør jeg gjøre?

 

Her finner du strukturen av scripte:

 

http://anigma.sitees.com/Guestbook/index.phps

http://anigma.sitees.com/Guestbook/lagre.phps

 

Her kan du prøve selve scripte:

 

http://anigma.sitees.com/Gjestebok/index.php

 

Jeg vet at scripte er litt rotete og man ikke burde bruke html slik jeg gjør det. Men bare se vekk fra det og hjelp meg med sortering :)

 

Hilsen Alen

Lenke til kommentar
Videoannonse
Annonse

i index.php kan du endre dette:

 

<?php 
$file = "innlegg.txt"; 

if (fopen($file, "r")) { 
$fil = "innlegg.txt"; 
$fo = fopen ($fil, "r"); 
$con = fread ($fo,filesize ($fil)); 
fclose ($fo); 
echo "$con"; 
} else { 
echo "Beklager, tekniske problemer."; 
} 
?>

 

til dette:

 

<?php
$file = "innlegg.txt";
$file = file($file); // Gjør filen om til en array
$file = array_reverse($file); //reverserer arrayen
$file = implode("\r\n", $file);
echo "$file";

if(!file_exists("innlegg.txt")) { 
echo "Filen eksisterer ikke"; }

?>

 

Tror det skal fungere :thumbup:

Endret av -Magne-
Lenke til kommentar

Har gjort noen få endringer:

lagre.php:

 

 

<?php
$file           = "innlegg.txt";
$dato        = date("d.m.y g:i");
$navn        = $_POST['navn'];
$epost        = $_POST['epost'];
$innlegg      = $_POST['innlegg'];
$innlegg  = stripslashes($innlegg);
$epost  = stripslashes($epost);
$navn = stripslashes($navn);
$innlegg = str_replace ("<","<",$innlegg);
$innlegg = str_replace ("\n","<br>",$innlegg);
$epost = str_replace ("<","<",$epost);
$epost = str_replace ("\n","<br>",$epost);
$navn = str_replace ("<","<",$navn);
$navn = str_replace ("\n","<br>",$navn);

if(empty($navn) || empty($epost) || empty($innlegg)) {
   echo "Alle felt må fyldes ut!";
} else {
$gamle_innlegg = file_exists($file)?file_get_contents($file):"";
$fp = fopen($file,"w");

fwrite($fp, '
<table width="390" cellspacing="1">
<tr><td style="width: 100px">Dato:</td>
<td style="width: 290px">'.$dato.'</td></tr>
<tr><td>Navn:</td>
<td><a href="mailto:'.$epost.'">'.$navn.'</a></td></tr>
<tr><td valign="top">Kommentar:</td>
<td>'.$innlegg.'</td></tr>
</table><br />
'.$gamle_innlegg);

fclose($fp);

echo 'Takk '.$navn.', for at du signerte gjesteboken min.</p>';
}
?>

<?php
echo "<p><a href='index.php'>Tilbake til gjesteboken</a></p>";
?>

 

 

index.php:

 

 

<html>
<head>
<title>joheim.no</title>
</head>
<body>

<h2>Gjestebok</h2>

<u>Skrive i gjesteboken:</u><br />

<br />
<form method="post" action="lagre.php">
<table width="390" cellspacing="1">
<tr><td style="width: 100px">Navn:</td>
<td><input type="text" name="navn" /></td></tr>
<tr><td>Epost:</td>
<td><input type="text" name="epost" /></td></tr>
<tr><td valign="top">Kommentar:</td>
<td><textarea name="innlegg" rows="4" cols="40" style="width: 278px;"></textarea></td></tr>
<tr><td></td>
<td><input type="submit" value="Send hilsen" /></td></tr>
</table>
</form>

<u>Innlegg:</u><br /><br />

<?php
$file = "innlegg.txt";

if (file_exists($file)) {
$fil = "innlegg.txt";
$fo = fopen ($fil, "r");
$con = fread ($fo,filesize ($fil));
fclose ($fo);
echo "$con";
} else {
echo "Beklager, ingen innlegg";
}
?>

</body>
</html>

 

 

 

EDIT: For at alle innelggene skal komme i omvendt rekkefølge, så avhenger det av at filen (innlegg.txt) ikke innholder noen innlegg som er i riktig rekkefølge, hvis du mener hva jeg forstår ;)

Endret av kakkle
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...