Mistä johtuu, että vieraskirjani tallentaa aina viestin päälle, eikä tee uutta viestiä?
<?php if ($_POST["sender"]&&$_POST["msg"]&&$_POST["ha"]&&$_POST["hn"]) { $sender=$_POST["sender"]; $msg=$_POST["msg"]; $ha=$_POST["ha"]; $hn=$_POST["hn"]; if ($sender!=""&&$msg!=""&&$ha!=""&&$hn!="") { htmlentities($sender); htmlentities($msg); htmlentities($ha); htmlentities($hn); $msg=str_replace("\r\n","!@@",$msg); $messages=fopen("messages.txt","r"); $senders=fopen("messagesSender.txt","r"); $times=fopen("messagesTime.txt","r"); $dates=fopen("messagesDate.txt","r"); $homepageNames=fopen("messagesHomepage.txt","r"); $homepageAddresses=fopen("messagesHomepageAddr.txt","r"); $menossa=0; while (!feof($messages)) { $viestit[$menossa]=fgets($messages, 1000); $lahettajat[$menossa]=fgets($senders, 1000); $ajat[$menossa]=fgets($times, 1000); $paivat[$menossa]=fgets($dates, 1000); $kotisivuNimet[$menossa]=fgets($homepageNames, 1000); $kotisivuOsoitteet[$menossa]=fgets($homepageAddresses, 1000); $menossa++; } $paljonko=$menossa; fclose($messages); fclose($senders); fclose($times); fclose($dates); fclose($homepageNames); fclose($homepageAddresses); $messages=fopen("messages.txt","w"); $senders=fopen("messagesSender.txt","w"); $times=fopen("messagesTime.txt","w"); $dates=fopen("messagesDate.txt","w"); $homepageNames=fopen("messagesHomepage.txt","w"); $homepageAddresses=fopen("messagesHomepageAddr.txt","w"); $viesti_usr=$msg; $lahettaja_usr=$sender; $aika_usr=time(); $paiva_usr=date("d.m.Y"); $kotisivuNimi_usr=$hn; $kotisivuOsoite_usr=$ha; fwrite($messages, $viesti_usr); fwrite($senders, $lahettaja_usr); fwrite($times, $aika_usr); fwrite($dates, $paiva_usr); fwrite($homepageNames, $kotisivuNimi_usr); fwrite($homepageAddresses, $kotisivuOsoite_usr); print ("menossa: " . $menossa); $menossa=$paljonko; while ($menossa>0) { fwrite($messages, $viestit[$menossa]); fwrite($senders, $lahettajat[$menossa]); fwrite($times, $ajat[$menossa]); fwrite($dates, $paivat[$menossa]); fwrite($homepageNames, $kotisivuNimet[$menossa]); fwrite($homepageAddresses, $kotisivuOsoitteet[$menossa]); $menossa--; } fclose($messages); fclose($senders); fclose($times); fclose($dates); fclose($homepageNames); fclose($homepageAddresses); header("Location: index.php?page=guestbook"); } else { print ("Tietoja puuttuu! Täytä tiedot kunnolla!"); } } else { print ("Tietoja puuttuu! Täytä tiedot kunnolla!"); } ?>
EDIT: Tuossa on sitten toi mun systeemi et rivinvaihdot viestissä, korvataan !@@ merkeillä koska viestin täytyy tulla tiedostoon yhdelle riville.
Varmaanki siitä et avaat tiedoston w-tilaan (tyhjennys ja kirjotus), etkä a:han (loppuun lisäys)
Kun tarkotus on saada uudet viestit ekaks...
No jos haluut uudet viestit ekaks ni ne kantsii sit jotenki temppuilla siinä viestien näyttämisvaiheessa. Mieti ite, älä pyydä valmista koodia.
kun olen miettiny tätä jo koko illan
No filellä sinä kuitenkin sen tiedoston luet, samahan se on käydä tulostusvaiheessa se taulukko oikein- tai nurinpäin läpi.
Blaze kirjoitti:
No filellä sinä kuitenkin sen tiedoston luet, samahan se on käydä tulostusvaiheessa se taulukko oikein- tai nurinpäin läpi.
Eiku se lukee fgetsillä. :(
Muuntelin muttei toimi.
<?php if ($_POST["sender"]&&$_POST["msg"]&&$_POST["ha"]&&$_POST["hn"]) { $sender=$_POST["sender"]; $msg=$_POST["msg"]; $ha=$_POST["ha"]; $hn=$_POST["hn"]; if ($sender!=""&&$msg!=""&&$ha!=""&&$hn!="") { htmlentities($sender); htmlentities($msg); htmlentities($ha); htmlentities($hn); $msg=str_replace("\r\n","!@@",$msg); $messages=fopen("messages.txt","a"); $senders=fopen("messagesSender.txt","a"); $times=fopen("messagesTime.txt","a"); $dates=fopen("messagesDate.txt","a"); $homepageNames=fopen("messagesHomepage.txt","a"); $homepageAddresses=fopen("messagesHomepageAddr.txt","a"); fwrite($messages, $msg); fwrite($senders, $sender); fwrite($times, date("i:H")); fwrite($homepageNames, $hn); fwrite($homepageAddresses, $ha); fwrite($dates, date("j.m.Y")); fclose($messages); fclose($senders); fclose($times); fclose($dates); fclose($homepageNames); fclose($homepageAddresses); header("Location: index.php?page=guestbook"); } else { print ("Tietoja puuttuu! Täytä tiedot kunnolla!"); } } else { print ("Tietoja puuttuu! Täytä tiedot kunnolla!"); } ?>
...Millä tavalla ei toimi :<
Viesti menee toisen päälle eikä seivaudu uudeks viestiks
Ettei menis perään? Miten luet sitä tiedostoa nyt? Ettei puuttus rivinvaihdon lisäys viestin perään?
<?php htmlentities($sender); htmlentities($msg); htmlentities($ha); htmlentities($hn); ?>
Se sijotus puuttuu. Entäs ku joku iskee viestii "!&&"?
Ekassa koodinpätkässä on paljon turhia muuttujia.
Sain nyt toimimaan vieraskirjani. Lopullinen koodi oli melkolailla erilainen...
Aihe on jo aika vanha, joten et voi enää vastata siihen.