Avatar billede crazykiddo Nybegynder
01. oktober 2001 - 23:21 Der er 12 kommentarer og
1 løsning

Lille problem med simple php gæstebog.

Jeg er meget ny på dette område og har en lille gæstebog hvor den poster via dette

<?
$fil = fopen(\"entry.php\", \"a\");
fwrite($fil, \"<span style=\'background-color:yellow; width:580\'>$navn <br>\");
fwrite($fil, \"<a href=\'mailto:$mail\'>$mail</a> <br>\");
fwrite($fil, \"<a href=\'$hjemmeside\'>$hjemmeside</a> <br><br>\");
fwrite($fil, \"$kommentar <br><hr color=red></span><br><br>\");
fclose($fil);
?>

men den poster den nyeste post nederst..hvordan får jeg den til at poste øverst ??

Håber nogle som gider svare mit dumme Q her..

Crazy
- Area568.dk
Avatar billede razmuz_dk Nybegynder
01. oktober 2001 - 23:27 #1
Af en eller anden mærkelig grund KAN mani PHP, ikke poste DIREKTE i toppen af en fil. Men der findes alternativer. Jeg plejer at bruge følgende:
<?
$fp = fopen(\"fil.txt\",w+);
$temp = fread($fp,9999999); // her læser jeg hele filen
fwrite(\"noget<br>\"); // her fylder jeg noget NYT i og fordi der står w+ i $fp sletter den alt andet
fwrite($temp); // her fylder jeg så det der stod i filen før vi slettede i IGEN ..
fclose($fp);
?>
Avatar billede morw Nybegynder
01. oktober 2001 - 23:28 #2
$fil = fopen(\"entry.php\", \"w\");
Avatar billede razmuz_dk Nybegynder
01. oktober 2001 - 23:29 #3
Jeg har aldrig brugt \"fwrite\" ... plejer at bruge fputs() .. Dit eksempel ville jeg nok skrive sådan:

<?
$fil = fopen(\"entry.php\", \"w+\");
$temp = fread($fp,999999999999);
fputs($fil, \"<span style=\'background-color:yellow; width:580\'>$navn <br>\");
fputs($fil, \"<a href=\'mailto:$mail\'>$mail</a> <br>\");
fputs($fil, \"<a href=\'$hjemmeside\'>$hjemmeside</a> <br><br>\");
fputs($fil, \"$kommentar <br><hr color=red></span><br><br>\");
fputs($temp);
fclose($fil);
?>

\\\\ -> RAZ
Avatar billede Lasse Novice
01. oktober 2001 - 23:29 #4
det du gør er at appende... det vil sige ligge til... man kan ikke umiddelbart ligge til i toppen af gæstebogen.

det man som regel gør når man leger med filer(og ikke databaser, hvor det er MEGET nemmere), er at man enten laver et shell script(sikkert ikke muligt i dit tilfælde), eller også bliver man nødt til at læse hele gæstebogs filen ind, proppe det nye ind foran, og skrive den ud igen.
Avatar billede morw Nybegynder
01. oktober 2001 - 23:30 #5
$fil = fopen(\"entry.php\", \"aw\");

hov
Avatar billede razmuz_dk Nybegynder
01. oktober 2001 - 23:30 #6
Morw -> Så vidt jeg ved sletter \"w\" bare alt indhold i filen, hvorefter den putter det nye data ind.
Avatar billede razmuz_dk Nybegynder
01. oktober 2001 - 23:31 #7
\'w\' - Open for writing only; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.
Avatar billede morw Nybegynder
01. oktober 2001 - 23:32 #8
bruge begge altså aw
Avatar billede razmuz_dk Nybegynder
01. oktober 2001 - 23:32 #9
hov - så det ik\'! :D
Avatar billede morw Nybegynder
01. oktober 2001 - 23:44 #10
Hmm, den må jeg nok æde tilbage igen. Det virker ikke med aw for mig - det stod ellers som en kommentar fra en bruger på php.net
Avatar billede coderdk Praktikant
02. oktober 2001 - 00:38 #11
fputs er et alias for fwrite...
For at putte noget i toppen af filen:

$contents = join(\"\",file(\"filen.txt\"));
$fp = fopen(\"filen.txt\",\"w\");
fwrite($fp,\"whatever\");
fwrite($fp,$contents);
fclose($fp);
Avatar billede trasher Nybegynder
02. oktober 2001 - 11:45 #12
Det jeg laver er flg.

// $filename er filens navn
// $response er de data der ligger i filen
// $put_i_fil er de data der skal ligges øverst i filen

$fp = fopen( $filename,\"r\");
$response = fread ($fp, filesize ($filename));
fclose( $fp );

$fp = fopen( $filename,\"w\");
fwrite( $fp, $put_i_fil.$response, strlen($put_i_fil.$response));
fclose( $fp );

Dette virker fint for mig jeg bruger det selv på mit forum.
/Trasher
Avatar billede crazykiddo Nybegynder
02. oktober 2001 - 13:14 #13
Okay tak...men jeg kan godt leve med det som det er nu..men nu er der et andet problem.
check www.area568.dk
og prøv at læse og skrive i GBen.
Kim
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester