Guggedal Skrevet 20. september 2007 Del Skrevet 20. september 2007 Heisann. Bruker ett simpelt shoutbox script: "addshout.php" <?php /* ------------------------------------------------------- ShoutBox v1.1 By: Mark Lethbridge, 2007 ------------------------------------------------------- Install notes: Only thing that needs to be changed in this file is the line: $shoutbox_page = "index.php"; You simple change "index.php" into the correct page that the shoutbox will appear in. -------------------------------------------------------- */ $fp = fopen("shouts.txt","a"); fwrite($fp,$_POST['user'].":".$_POST['shout']."\n"); fclose($fp); $shoutbox_page = "index.php"; header("Location: $shoutbox_page"); ?> "index.php" <html> <head> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <//------- Start copying from this point --------> <table class="shoutBox"> <tr><td class="shoutBox"> <p class="heading"><b>.:Brøleboksen:.</b></p> <p> <?php $fp = fopen("shouts.txt","r"); while(($shout = fgetcsv($fp,1000,":")) !== FALSE) { echo "<b>".$shout[0]." : </b>".$shout[1]."<br>"; } fclose($fp); ?> </p> <hr> <center> <form name="shoutForm" method="POST" action="addShout.php"> Name: <input type="text" name="user" size="15"><br> Shout: <input type="text" name="shout" size="15"><br> <input type="submit" value="Brøl det ut!"> </center> </form> </td></tr> </table> <//------- Finish copying from this point --------> </body> </html> Alt blir lagret i en txt fil... Problemet er at etterhvert så blir det en del som blir lagt ut, mens shoutboxen bare fortsetter og bre seg nedover siden... Kan man sette inn en sperre så bare de 5 siste viser? Lenke til kommentar
Ståle Skrevet 20. september 2007 Del Skrevet 20. september 2007 (endret) edit; jo ja selvfolgelig. lenge siden jeg har kodet noe merker jeg =/ drittskole Endret 20. september 2007 av Ståle Lenke til kommentar
kakkle Skrevet 20. september 2007 Del Skrevet 20. september 2007 (endret) Vel, Ståle... I ditt eksempel, vil vel $shout være ukjent, pluss at hvis den hadde vært kjent, så ville bare de 5 første innleggene bli vist... Prøv dette: $file = file("shouts.txt"); $last = array_reverse($file); for($i=0;$i<5;$i++) { $shout = explode(":", $last[$i]); echo "<b>".$shout[0]." : </b>".$shout[1]."<br>"; } evt $file = file("shouts.txt"); $ant = count($file); for($i=$ant;$i>$ant-5;$i--) { $shout = explode(":", $file[$i-1]); echo "<b>".$shout[0]." : </b>".$shout[1]."<br>"; } Alt utestet.... Endret 20. september 2007 av kakkle Lenke til kommentar
Guggedal Skrevet 23. september 2007 Forfatter Del Skrevet 23. september 2007 Det fungerte nok ikke, nei... :/ Lenke til kommentar
kakkle Skrevet 23. september 2007 Del Skrevet 23. september 2007 (endret) Hehe... Har du litt mer informasjon om hva som skjer ? Jeg vil tro at den øverste koden er greiest. Evt for å debugge, kan du skrive ut : echo "<pre>"; echo print_r($last); echo "</pre>"; etter $last = $last = array_reverse($file); og se om du får ut hver linje fra den siste til den første... Hver linje bør vel se noe ala dette ut: Bruker: Rop EDIT: Testet det kjapt hos meg, og funker kjempefint. Du byttet ut: $fp = fopen("shouts.txt","r"); while(($shout = fgetcsv($fp,1000,":")) !== FALSE) { echo "<b>".$shout[0]." : </b>".$shout[1]."<br>"; } fclose($fp); med: $file = file("shouts.txt"); $last = array_reverse($file); for($i=0;$i<5;$i++) { $shout = explode(":", $last[$i]); echo "<b>".$shout[0]." : </b>".$shout[1]."<br>"; } Jeg ville også lagt denne delen inn i test som sjekker om filen finnes: if(file_exists("shouts.txt")) { $file = file("shouts.txt"); $last = array_reverse($file); for($i=0;$i<5;$i++) { $shout = explode(":", $last[$i]); echo "<b>".$shout[0]." : </b>".$shout[1]."<br>"; } Endret 23. september 2007 av kakkle Lenke til kommentar
Guggedal Skrevet 23. september 2007 Forfatter Del Skrevet 23. september 2007 Tror nok jeg setter det sammen litt feil her... <?php /* ------------------------------------------------------- ShoutBox v1.1 By: Mark Lethbridge, 2007 ------------------------------------------------------- Install notes: Only thing that needs to be changed in this file is the line: $shoutbox_page = "index.php"; You simple change "index.php" into the correct page that the shoutbox will appear in. -------------------------------------------------------- */ $file = file("shouts.txt"); $last = array_reverse($file); echo "<pre>"; echo print_r($last); echo "</pre>"; for($i=0;$i<5;$i++) { $shout = explode(":", $last[$i]); echo "<b>".$shout[0]." : </b>".$shout[1]."<br>"; } if(file_exists("shouts.txt")) { $file = file("shouts.txt"); $last = array_reverse($file); for($i=0;$i<5;$i++) { $shout = explode(":", $last[$i]); echo "<b>".$shout[0]." : </b>".$shout[1]."<br>"; } ?> Lenke til kommentar
kakkle Skrevet 23. september 2007 Del Skrevet 23. september 2007 (endret) Okei.. du har misforstått litt her. Filen du skal endre på, er index.php, og ikke addshout.php. Legg merke til hvilken del du skal bytte ut Og den siste koden jeg la inn, er en kode som er istedetfor den jeg skrev først. For å sjekke at filen finnes. Dersom filen ikke finnes, så får du opp en feilmelding, uten denne sjekken. og den print_r og <pre> saken, var kun ment for å sjekke at variabelen inneholder noe... Uansett. Glem nå alt som jeg skrev over og les under : i filen index.php, bytt ut: <?php $fp = fopen("shouts.txt","r"); while(($shout = fgetcsv($fp,1000,":")) !== FALSE) { echo "<b>".$shout[0]." : </b>".$shout[1]."<br>"; } fclose($fp); ?> med: <?php if(file_exists("shouts.txt")) { $file = file("shouts.txt"); $last = array_reverse($file); for($i=0;$i<5;$i++) { $shout = explode(":", $last[$i]); echo "<b>".$shout[0]." : </b>".$shout[1]."<br>"; } } ?> Bare spør igjen, dersom det var utydelig. Bedre å spørre en gang for mye enn en gang for lite. Spør også dersom du har problemer med å forstå hva som skjer. Alltid veldig greit å skjønne hva som skjer i koden. Da blir det enklere å bruke lignende i andre sammenhenger. EDIT: Manglet en } i koden Det gjør forresten ikke noe om filen ikke finnes, den vil bli opprettet, så snart noen legge inn "et rop" EDIT 2: Ser forresten at mitt forrige innlegg om "delen i testen" er dårlig formulert, så det beklager jeg. Skulle også spesifisert hvilken fil du skulle editere... Endret 23. september 2007 av kakkle Lenke til kommentar
Guggedal Skrevet 24. september 2007 Forfatter Del Skrevet 24. september 2007 Herlig, det funker flesk! Takker stort for hjelpen! Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå