webForumDet fria alternativet

Fopen - gästbok

8 svar · 561 visningar · startad av Pluggis

PluggisMedlem sedan nov. 2006129 inlägg
#1

Hej
jag har en enkel gästbok som just nu skriver varje inlägg efter varrandra och dvs dom nya inläggen hamnar längre och längre ner för varje inlägg.

jag vill ist att det nya inlägget ska sparas på rad 1 hela tiden utan att radera dom förra inläggen. koden som ska ändras ser ut så här:
if (!$file_handle = fopen($file,"a+"))

jag vet dock inte vad jag ska använda ist för "a+" jag har testat massor av andra attribut men inget funkar korrekt :/

Fredde MannenMedlem sedan nov. 20014 054 inlägg
#2

r+ , Open for reading and writing; place the file pointer at the beginning of the file.
?

/red manualen: http://se.php.net/fopen

PluggisMedlem sedan nov. 2006129 inlägg
#3

men det tar bort dom gamla inläggen :S

metalboyMedlem sedan jan. 2005953 inlägg
#4

Du får först läsa in filens innehåll i en variabel, sedan öppna filen för skrivning och lägga in det nya inlägget följt av det gamla innehållet.

PluggisMedlem sedan nov. 2006129 inlägg
#5

aj då. jag som inte är så bra på php.

<?php
// Get the data from the 'Name' field of the form.
$data = '<b>Skrivet av:</b> '.$_POST['name'].' - <font size="-3"><i>Datum&Tid: <?php echo date("d-j-y, H:i:s"); ?></i></font>'.' - <font size="-3"><I>IP: <?php echo $_SERVER["REMOTE_ADDR"]; ?></I></font>'.'<br />';
// Get the data from the 'site' field of the form.
$data = $data.'<b>Hemsida: </b>'.'<a href="http://'.$_POST['site'].' ">'.$_POST['site'].'</a>'.'<br />';
// Get the data from the 'Message' field of the form.
$data = $data.'<p><b>Meddelande: </b><br />'.$_POST["message"].'</p><hr />';  
// $email is detecting if the 'Name' field is empty.
$name = $_POST['name'];
// $message is detecting if $spam words are in the 'Message' field.
$message = $_POST['message'];
// Specifications of the "bad words", spam, in the 'Message' field.
$spam = "/(porn|pussy|blowjob|cock|sexy|fuck|viagra|boobs|babes|fitta|kuk|hora)/i";
if (empty($name))
{
echo ('<br /><br /><center><div style="font-family:Arial;font-size:12px;border:5px groove #cc0000;width:300px;padding:5px;">Du glömde att fylla i ditt namn!</div></center>');
}
// Detects the $spam word and displays it in the warning.
if(preg_match($spam,$message,$matches))
{
echo ('<br /><br /><center><div style="font-family:Arial;font-size:12px;border:5px groove #cc0000;width:300px;padding:5px;">Spamfiltret upptäckte ett förbjudet ord!<br />'.'Ordet är: '.'<b>'.$matches[1].'</b>'.'<br />Ändra det!</div></center>');
}
elseif(preg_match($spam,$name,$matches))
{
echo ('<br /><br /><center><div style="font-family:Arial;font-size:12px;border:5px groove #cc0000;width:300px;padding:5px;">Spamfiltret upptäckte ett förbjudet ord!<br />'.'Ordet är: '.'<b>'.$matches[1].'</b>'.'<br />Ändra det!</div></center>');
}
else
{
// Check if the captcha image verified.
session_start();
if ($_POST["img_ver"] != $_SESSION["img_ver"] OR $_SESSION["img_ver"]=='')
{
echo('<br /><br /><center><div style="font-family:Arial;font-size:12px;border:5px groove #cc0000;width:300px;padding:5px;">Fel säkerhetskod!</div></center>');
}
else
{
// The file to write $data to (don't forget to CHMOD it to 666).
$file = "messages.txt";   
if (!$file_handle = fopen($file,"a+")) 
{ 
echo "Kan inte öppna filen!"; 
}  
if (!fwrite($file_handle,$data)) 
{ 
echo "Kan inte skriva i filen!"; 
}     
fclose($file_handle);  
echo ('<br /><br /><center><div style="font-family:Arial;font-size:12px;border:5px groove #00cc00;width:300px;padding:5px;">Tack för ditt inlägg!<br />-Du skickas nu vidare!</div></center>');
echo ('<meta http-equiv="Refresh" content="2;url=gb.php" />');
}
}
?>
itpastornMedlem sedan feb. 2007278 inlägg
#6

metalboy skrev:

Du får först läsa in filens innehåll i en variabel, sedan öppna filen för skrivning och lägga in det nya inlägget följt av det gamla innehållet.

$new = $my_new_line . file_get_contents('foobar.txt');
file_put_contents('foobar.txt');

Felkontroller tillkommer.

PluggisMedlem sedan nov. 2006129 inlägg
#7

va? förstår inte..
tillkommer den där strängen under "if (!$file_handle = fopen($file,"a+"))" ?

itpastornMedlem sedan feb. 2007278 inlägg
#8

Pluggis skrev:

va? förstår inte..
tillkommer den där strängen under "if (!$file_handle = fopen($file,"a+"))" ?

Nej.

http://php.net/file_get_contents

http://php.net/file_put_contents

PluggisMedlem sedan nov. 2006129 inlägg
#9

:S

132 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)