webForumDet fria alternativet

Gästbok i PHP?

39 svar · 718 visningar · startad av mike · sida 2 av 2

mikeMedlem sedan mars 2000168 inlägg
#21

Jag fick "test" gästboken att funka (tack Matti), och har nu gjort en konfiguerad gästbok. Det har väll gått rätt bra hittils, men jag får ett fel

Parse error: parse error in /web/sites/23/mikelind/www.mikael.f2s.com/Nya/gastbok.php3 on line 26

<font face=

när jag skickar ett meddelande. Här är koden för gastbok.php3

<html>
<head>
<title>Gästbok</title>
<meta http-equiv="refresh" content="3;URL=gbok_index.php3">
</head>
<body bgcolor="#CCCC33">
<font face="Verdana, Arial, Helvetica, sans-serif" size="1"><?php

/* Copyright (c) 2000 Matti Kolu and Joakim Ewenson. All rights reserved.

This program may be used and modified free of charge by anyone, so
long as this copyright notice remain intact. 

*/

if ($namn == "") {
	echo('<p> Opps, du glömde visst skriva in ditt namn, tryck tillbaka. </font> 
<p></p>
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">'); } elseif ($meddelande 
== "") { echo('</font> 
<p><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Opps, du glömde visst skriva in ditt meddelande, tryck tillbaka.</font></p>
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">'); } elseif ($meddelande 
== "Ditt meddelande") { echo('</font> 
<p><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Opps, du glömde visst skriva in ditt meddelande, tryck tillbaka.</font></p>
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">'); } else { echo("</font> 
<p><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Tack så mycket! Du skickas till baka om 3 sekunder</font></p>
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">"); } /* Byt ut de 
tecken som inte passar */ $meddelande = ereg_replace("å","&aring;",$meddelande); 
$meddelande = ereg_replace("ä","&auml;",$meddelande); $meddelande = ereg_replace("ö","&ouml;",$meddelande); 
$meddelande = ereg_replace("\n","<br>
",$meddelande); $meddelande = preg_replace("/<.*?>/","",$meddelande); $today = 
date("Y-m-d"); /* Här skrivs informationen in i gästboken */ $nyhetsfil="gbok.txt"; 
$hela .="</font> 
<p align=left><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Namn: 
  <a href=mailto:$email>$namn</a></b><br>
  "; $hela .="<b>Hemsida:</b> <a href=file:///D%7C/G%C4STBOK/$hemsida target=nytt>$hemsida</a><br>
  "; $hela .="<b>Datum:</b> $today"; $hela .="<br>
  <b>Meddelande:</b><br>
  $meddelande</font></p>
<hr width=100% align=left noshade size="1" color="cccc33">
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">"; $fpread = fopen($nyhetsfil, 
'r') or die; $hela .= ltrim(Chop(fread($fpread, 99999))); fclose ($fpread); $fpwrite 
= fopen($nyhetsfil, 'w') or die; fputs($fpwrite,$hela); fclose($fpwrite); ?> </font> 
</body>
</html>

Som så många andra gånger är jag tacksam för hjälp ;).

------------------
Flax on /Mikael

MattiMedlem sedan dec. 19996 592 inlägg
#22

För rörig kod för att jag ska hitta nåt fel som den nybörjade jag är.

------------------
M a tti Kolu
Qui tacet, consentit.

PhOrPhErMedlem sedan feb. 20002 300 inlägg
#23

Hmm...

Jag tog mig friheten att ordna till lite i koden.

Du hade använt " istället för ' på vissa ställen...

<html>
<head>
<title>Gästbok</title>
<meta http-equiv="refresh" content="3;URL=gbok_index.php3">
</head>

<body bgcolor="#CCCC33">

<font face="Verdana, Arial, Helvetica, sans-serif" size="1">

<?php

/* Copyright (c) 2000 Matti Kolu and Joakim Ewenson. All rights reserved.

This program may be used and modified free of charge by anyone, so
long as this copyright notice remain intact.

*/

if ($namn == "")
{
 echo('
       <p> Opps, du glömde visst skriva in ditt namn, tryck tillbaka.</font>
       <p></p>
       <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
 ');
}

elseif ($meddelande == "")
{
 echo('
       </font>
       <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Opps, du glömde visst skriva in ditt meddelande, tryck tillbaka.</font></p>
       <font face="Verdana, Arial, Helvetica, sans-serif" size="1">'
 );
}

elseif ($meddelande == "Ditt meddelande")
{
 echo('
       </font>
       <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Opps, du glömde visst skriva in ditt meddelande, tryck tillbaka.</font></p>
       <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
 ');
}

else
{
 echo('
       </font>
       <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1">Tack så mycket! Du skickas till baka om 3 sekunder</font></p>
       <font face="Verdana, Arial, Helvetica, sans-serif" size="1">
 ');
}

/* Byt ut de tecken som inte passar */
$meddelande = ereg_replace("å","å",$meddelande);
$meddelande = ereg_replace("ä","ä",$meddelande);
$meddelande = ereg_replace("ö","ö",$meddelande);
$meddelande = ereg_replace("\n","<br>",$meddelande);
$meddelande = preg_replace("/<.*?>/","",$meddelande);
$today = date("Y-m-d");

/* Här skrivs informationen in i gästboken */
$nyhetsfil="gbok.txt";
$hela .='</font><p align=left><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Namn:<a href=mailto:$email>$namn</a></b><br>';
$hela .='<b>Hemsida:</b> <a href=file:///D%7C/G%C4STBOK/$hemsida target=nytt>$hemsida</a><br>"; $hela .="<b>Datum:</b> $today';
$hela .='<br><b>Meddelande:</b><br>$meddelande</font></p><hr width=100% align=left noshade size="1" color="cccc33"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">';

$fpread = fopen($nyhetsfil,'r') or die;
$hela .= ltrim(Chop(fread($fpread, 99999)));
fclose ($fpread);

$fpwrite = fopen($nyhetsfil, 'w') or die;
fputs($fpwrite,$hela);
fclose($fpwrite);

?>

</font>
</body>
</html>

------------------
- Erik Hellström -
http://3d.burken.nu

mikeMedlem sedan mars 2000168 inlägg
#24

Tack så mycket Phorpher! Jag har fått ordning på koden innan jag läste ditt, men det där med fonten har jag inte tänkt på, så jag tackar för det :).

Min gästbok är nästan klar, men jag har stött på ett ganska konstigt problem. Det är så att jag först tänkte ha en linje (<HR> ) för att separera meddelande och uppgifter om skrivarna. Det funkar som det ska med <hr> tagen, men när man byter färg på den, som tex <hr color="#CCCC33"> så funkar inte gästboken :q. Rätt knasigt tycker jag, iochmed att det inte är något fel på <hr> koden, eller?

Så jag tänkte separera med en bild istället, 1 pixel hög och 100% bred. Jag lägger in den i koden utan att göra något konstigt, men detta funkar inte heller. Så här ser det ut.

$hela .="Besök <a href=$hemsida>$namn's</a> hemsida.<br><img src="pixel_gran.gif" width="100%" height="1">";

Vad är fel? Kan man inte lägga in vilken HTML kod som helst i PHP koder? Adressen till gästboken är http://www.mikael.f2s.com/Nya/gbok_index.php3 föresten. Tacksam för hjälp :).

------------------
Flax on /Mikael

nicclasMedlem sedan feb. 20001 050 inlägg
#25

Problemet är precis som PhOrPhEr antyder att du måste "escapa" dina citationstecken. Prova

echo "<hr color=\"#CCCC33\">";

och

$hela .="Besök <a href=$hemsida>$namn's</a> hemsida.<br><img src=\"pixel_gran.gif\" width=\"100%\" height=\"1\">";

dvs echo "\""; skriver ett " till klienten.

/nicclas @ http://www.nic-sys.se

[Redigerat av nicclas den 03 jun 2000]

MattiMedlem sedan dec. 19996 592 inlägg
#26

eller så använder du '..
för är det inte så att
echo ("<img src='bild.jpg'>");
är samma sak som
echo ('<img src="bild.jpg">');

?

------------------
M a tti Kolu
Qui tacet, consentit.

[Redigerat av Matti den 03 jun 2000]

mikeMedlem sedan mars 2000168 inlägg
#27

Bilden funkar nu, tack alla! Men <font> funkar inte hur jag än vänder på det. Vart ska den ligga, ska den skrivas på något specielt sätt? Sista problemet, sen funkar det som det ska :).

------------------
Flax on /Mikael

mikeMedlem sedan mars 2000168 inlägg
#28

Så här ser koden ut förtillfället föresten:

<html>
<head>
<meta http-equiv="refresh" content="2;URL=gbok_index.php3">
<title>;-D</title>
</head>
<body bgcolor="cccc33"><font face="Verdana, Arial, Helvetica, sans-serif size="1"><?php

/* Copyright (c) 2000 Matti Kolu and Joakim Ewenson. All rights reserved.

This program may be used and modified free of charge by anyone, so
long as this copyright notice remain intact.

*/

if ($namn == "") {
        echo('<p>

Du gl&ouml;mde att skriva ditt namn<p></p>');
        }
elseif ($meddelande == "") {
        echo('<p>Du gl&ouml;mde att skriva ett meddelande</p>');
        }
elseif ($meddelande == "Ditt meddelande") {
        echo('<p>Du gl&ouml;mde att skriva ett meddelande</p>');
        }
else {
        echo("<p>Tack för dina kommentarer</p>");
        }
/* Byt ut de tecken som inte passar */
$meddelande = ereg_replace("å","&aring;",$meddelande);
$meddelande = ereg_replace("ä","&auml;",$meddelande);
$meddelande = ereg_replace("ö","&ouml;",$meddelande);
$meddelande = ereg_replace("\n","<br>",$meddelande);
$meddelande = preg_replace("/<.*?>/","",$meddelande);
$today = date("d/m/Y");
/* Här skrivs informationen in i gästboken */
$nyhetsfil="gbok.txt";
$hela .="<p align=left><b>Meddelande:</b> $meddelande<br><img src=\"pixel_gran.gif\" width=\"100%\" height=\"1\"><br>";
$hela .="Skickat av <a href=mailto:$email>$namn</a> $today.<br>";
$hela .="Besök <a href=$hemsida>$namn's</a> hemsida.<br><img src=\"pixel_gran.gif\" width=\"100%\" height=\"1\"></font>";

$fpread = fopen($nyhetsfil, 'r') or die;
$hela .= ltrim(Chop(fread($fpread, 99999)));
fclose ($fpread);
$fpwrite = fopen($nyhetsfil, 'w') or die;
fputs($fpwrite,$hela);
fclose($fpwrite);
?>
</font>
</body>
</html>

Hej svejs.

------------------
Flax on /Mikael

woodiMedlem sedan feb. 20001 270 inlägg
#29

Matti
Jag har lagt märke till ditt något annorlunda sätt att skriva dina echo satser..
Varför skriver Du:
echo ("bla bla");

Mindre kod blir dte ju om Du skriver:
echo "bla bla";

Bara en petig tanke från en miljöskadad dåre! :)

------------------
woodi

Svenska FF1
www.johan-skog.nu

mikeMedlem sedan mars 2000168 inlägg
#30

Ingen som vet hur man fixar font-storleks problemet?

------------------
Flax on /Mikael

woodiMedlem sedan feb. 20001 270 inlägg
#31

Mike
Jag förstår inte vad Du menar.. <Font>-taggen är bara att använda som vanligt, lägg den vart Du vill i koden..

------------------
woodi

Svenska FF1
www.johan-skog.nu

mikeMedlem sedan mars 2000168 inlägg
#32

Woodi: Om det skulle vara så enkelt så skule jag inte fråga, men det funkar inte att läga <font> koden i gastbok.php3's PHP kod. Jag har testat att lägga en <font face bla bla> utan </font> i gbok_index.php3 också, men det funkar inte heller.

------------------
Flax on /Mikael

MattiMedlem sedan dec. 19996 592 inlägg
#33

Woodi, därför att jag vill sätta min personliga prägel på koden :e Direkt när man ser min kod ska man se att det är jag som skrivit den :p

------------------
M a tti Kolu
Qui tacet, consentit.

woodiMedlem sedan feb. 20001 270 inlägg
#34

mike
echo "<font face='verdana' size='1'>"; eller $hela.="<font face='verdana' size='1'>"; är den koden du behöver lägga till beroende på om det är vid utskriften eller sparandet i filen som Du vill ha <font>-taggen ligga..
Och jag kan garantera Dig att detta fungerar i vilket php-script som helst.. :)

Matti
:D

------------------
woodi

Svenska FF1
www.johan-skog.nu

[Redigerat av woodi den 04 jun 2000]

mikeMedlem sedan mars 2000168 inlägg
#35

Ahh, tack så mycket Woodi, funkar perfa nu :). Gå in på www.mikael.f2s.com/Nya/gbok_index.php3 och se för er själva :).

Nu funkar ju gästboken och så, men det är två saker som jag vill fråga er om för att göra den fullkommlig.

1. Gästboken kan ju bli rätt så trög om man har hur många meddelanden som helst, så hur gör man för att skapa flera sidor, med 20 meddlenade på varje?

2. Hur gör man för att visa hur många meddelande gästboken har, tex "Gästboken har 4 meddelanden"?

Tack för all hjälp jag fått :).

------------------
Flax on /Mikael

MattiMedlem sedan dec. 19996 592 inlägg
#36

1. Du måste köra med databas, eller det går iofs att göra utan databaser men det blir väldigt krångligt.

2. Gör så att gästboken skriver +1 till en fil varje gång någon skriver till gästboken, sedan läser du in siffran i filen med include. Se mina tidigare inlägg om detta.

------------------
M a tti Kolu
Qui tacet, consentit.

mikeMedlem sedan mars 2000168 inlägg
#37

Hmm, skulle det bli något sånt här då:

echo("<p>Tack för dina kommentarer</p>$fpwrite = count.txt '+1'");

eller var ska man +1:a det? :)

------------------
Flax on /Mikael

MattiMedlem sedan dec. 19996 592 inlägg
#38
<?php

	{ 

            $file = "inlagg.txt";
		if(file_exists($file))
		{
		$fp = fopen($file,"r");
		$contents = fread($fp,filesize($file));
		fclose($fp);
		$contents++;
		}
		else $contents=1;
		$fp = fopen($file,"w+");
		fwrite($fp,$contents);
		fclose($fp);

	}	

?>

CHMODa inlagg.txt.. koden ovan lägger du alltså till i gastbok.php3.. tror att det fungerar.. sen includar du bara filen på index sidan :)

------------------
M a tti Kolu
Qui tacet, consentit.

SweyMedlem sedan apr. 20003 971 inlägg
#39

Vad ska { och } runt om koden vara bra för :q

------------------
/mvh Swey
- Ta dagen som den kommer

MattiMedlem sedan dec. 19996 592 inlägg
#40

Kopierade den koden från ett annat rätt komplext skript jag har.. och som sagt så vill jag sätta en personlig prägel på koden med onödiga tecken :e

------------------
M a tti Kolu
Qui tacet, consentit.

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