Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Vieraskirja ei toimi

Sivun loppuun

Meitsi [16.10.2004 22:40:20]

#

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.

tejeez [16.10.2004 23:01:22]

#

Varmaanki siitä et avaat tiedoston w-tilaan (tyhjennys ja kirjotus), etkä a:han (loppuun lisäys)

Meitsi [16.10.2004 23:01:56]

#

Kun tarkotus on saada uudet viestit ekaks...

tejeez [16.10.2004 23:02:43]

#

No jos haluut uudet viestit ekaks ni ne kantsii sit jotenki temppuilla siinä viestien näyttämisvaiheessa. Mieti ite, älä pyydä valmista koodia.

Meitsi [16.10.2004 23:03:08]

#

kun olen miettiny tätä jo koko illan

Blaze [16.10.2004 23:11:10]

#

No filellä sinä kuitenkin sen tiedoston luet, samahan se on käydä tulostusvaiheessa se taulukko oikein- tai nurinpäin läpi.

tejeez [16.10.2004 23:18:27]

#

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ä. :(

Meitsi [16.10.2004 23:20:03]

#

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!");
}
?>

tejeez [16.10.2004 23:22:07]

#

...Millä tavalla ei toimi :<

Meitsi [16.10.2004 23:23:14]

#

Viesti menee toisen päälle eikä seivaudu uudeks viestiks

tsuriga [16.10.2004 23:43:25]

#

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.

Meitsi [17.10.2004 00:41:06]

#

Sain nyt toimimaan vieraskirjani. Lopullinen koodi oli melkolailla erilainen...


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta