Avatar billede foxmulder58 Praktikant
20. juli 2005 - 13:23 Der er 13 kommentarer og
1 løsning

Simpel gæstebog søges!

Hej Er der en der har et linkt til en MEGET simpel gæstebog i PHP.


PS! helst uden for meget redigering!


mvh
Mads
Avatar billede saucer Nybegynder
20. juli 2005 - 13:53 #1
Hej..

Jeg har lavet et her som kan frit downloades : http://saucer.dk/scripts.php
Avatar billede Slettet bruger
20. juli 2005 - 14:07 #2
skal den køre via. mysql?
Avatar billede Slettet bruger
20. juli 2005 - 14:12 #3
<?php
if ($_REQUEST['skrivTag'] == "skriv") {
$dato = date("d. F, y´ - H:i:s");
mysql_query("INSERT INTO gb (forfatter, besked, dato) VALUES ('$_POST[forfatter]', '$_POST[besked]', '$dato')");
}

$query = mysql_query("SELECT forfatter, besked, dato FROM gb ORDER BY id DESC") or die(mysql_error());
while ($foo = mysql_fetch_assoc($query)) {

echo "$foo[forfatter], $foo[dato]<br />$foo[besked]";
}
?>

<form method="post" action="" name="skrivTag">
<input name="forfatter" type="text" /> Navn*<br />
<input type="hidden" name="skrivTag">
<textarea name="besked" type="text"></textarea><br />
<input value="skriv" name="skrivTag" type="submit">
</form>

--
den kan vidst ikke blive mere simpel!
Avatar billede Slettet bruger
20. juli 2005 - 14:14 #4
og så skal du selvfølgelig connecte din database øverst!
Avatar billede foxmulder58 Praktikant
20. juli 2005 - 14:24 #5
ja jeg har kigget på Saucers Tagwall men der er noget galt, den connecter ikke til databasen i linie 26 men ifølge han readme må man ikke rette i denne linie, se her!:

http://www.netausupport.frac.dk/gaestebog_heidi/tagwall.php


Mvh
Mads
Avatar billede foxmulder58 Praktikant
20. juli 2005 - 14:26 #6
saucer >>

du sige i din readme at disse linier ikke skal rettes:

// Skal ikke rettes.
mysql_connect($cfg['mysql']['host'],$cfg['mysql']['username'],$cfg['mysql']['password']);
mysql_select_db($cfg['mysql']['database']);

men kigger du i mit link er der fejl i disse linier....ved du hvorfor??

mvh
Mads
Avatar billede saucer Nybegynder
20. juli 2005 - 14:53 #7
Det er nok pga. du ikke har skrevet det rigtige mysql informationer lidt laengere oppe i kolden
Avatar billede foxmulder58 Praktikant
20. juli 2005 - 14:54 #8
jo det har jeg og det er det jeg ikke fatter!!!

mvh
Mads
Avatar billede Slettet bruger
20. juli 2005 - 14:59 #9
Her er en nem gæstebog kun med .txt-fil

opret en tom fil gaestebog.txt

gem nedenstående kode som gaestebog.php i en mappe sammen med gaestebog.txt

upload det eller kør den lokalhost hvis du har apache/php installeret.

Nedenstående fil er fint dokumenteret:
.......

<?php
// Definer navn på txt-fil og tjek at den findes, og hvis ikke, så lav den.
$filnavn = "gaestebog.txt";

if(!file_exists($filnavn)) {

$fp = fopen($filnavn, 'w+');
if ($fp) {
fputs($fp, "");
fclose($fp);
    }
chmod($filnavn, 0777);
}
clearstatcache();

// Er der klikket på submitknappen?
if (isset($_POST['navn'], $_POST['email'], $_POST['homepage'], $_POST['besked'])) {

//hvis textarea-feltet er tomt, er der ingen grund til at skrive noget i textfilen
    if(empty($_POST['besked'])) {
header("Location:". $_SERVER['PHP_SELF'] ."");
exit;
    }

//definerer $felter som et array, for nemmere at kunne "bearbejde" input
$felter = array();

// en foreach til at bearbejde inputs
// 1. Fjerne html tags
// 2. Fjerne alle | tegn da de bruges til at holde info adskilt
// 3. Gøre brug af LJweb\'s tagster
foreach($_POST as $value) {
$value = strip_tags($value);
$value = ereg_replace("(\|)", "", $value);

// LJweb's tagster, som kan findes på "http://ljweb.biz" eller "http://lars.jensen.name"
// Spørg mig IKKE om hvordan den virker, men den virker! :O) (steffen)
  $value = " ".$value;
  $value = eregi_replace("([[:space:]{()\"'\[~#=;\&?\_-])((ftp|http|https|telnet|news|nttp|nntp|file):\/\/[a-z0-9~#%@\&\(\):;=\?\/\.,_-]+(\\[|\\]|[a-z0-9~#%@\&:;,=\?\/_\+-])+)", "\\1<A HREF=\"\\2\" TARGET=\"_blank\">\\2</A>", $value);
  $value = eregi_replace("([[:space:]{()\"'\[~#=;\&?\_-])(www\.[a-z0-9~#%@\&\(\):;=\?\/\.,_-]+[a-z0-9~#%@\&:;,=\?\/_\+-]+)", "\\1<A HREF=\"http://\\2\" TARGET=\"_blank\">\\2</A>", $value);

  $value = eregi_replace("([_\.0-9a-z-]+@([0-9a-z-]+)+\.[a-z]{2,4})","<A HREF=\"mailto:\\1\">\\1</A>", $value);
// Slut på tagster


//Undgå at \ bliver sat før ' og " når der skrives til filen
$value = stripslashes($value);

// Bruger array'et $felter
// $felter[0] starter med første input felt, $_POST['navn'], o.s.v.
$felter[] = $value;
    }

//Omdan f.eks. æ til htmlkode, lagt her for ikke at "forstyrre" tagsteren
$felter[0] = htmlentities($felter[0]);
$felter[3] = htmlentities($felter[3]);

// Erstatter entertryk fra textarea'et med en enkelt <br>-tag så linieskift osse vil blive vist
$felter[3] = ereg_replace("(\r\n|\n\r|\n|\r)+", "<br>", $felter[3]);


// Hvis navn $felter[0] ikke er indtastet, skriver vi anonym i stedet
    if(empty($felter[0])) {
$felter[0] = "Anonym";
    }

// finder tidspunkt
$tid=date("d-m-Y : H:i:s",time());

// Den streng som skal skrives til textfilen, startende med tidspunkt og afluttet med en ny linie
$str = $tid ."|". $felter[0] ."|". $felter[1] ."|". $felter[2] ."|". $felter[3] ."\n";   


// Åben txt-filen for skrivning
$fp = fopen($filnavn, 'a+');
if ($fp) {
fputs($fp, $str);
fclose($fp);

    }
//redirecte til filen selv
header("Location:". $_SERVER['PHP_SELF'] ."");
exit;
}
?><html><head><title>G&aelig;stebog</title>
<style type="text/css">
body, td, th {font-family: arial; font-size: 0.8em; color: black; background-color: #F7F4E8;}
a:link {color: #4f0000; text-decoration: underline;}
a:visited {color: black; text-decoration: underline;}
a:hover {color: #4f0000; text-decoration: none;}
a.menu:hover {color: #4f0000; text-decoration: none; background-color: #cfd192;}

.big {font-size: 2.4em;}
.input {color: black; background-color: #ffffff; font-family: arial; font-size: 0.9em; border-color: black; border-width: 1px;}
.submit {font-family: arial; font-size: 0.8em; border-width: 1px; border-color: black;}
.fra {background-color: #999966; color: white;}
.besked {background-color: #eaeaea;  color: black; padding-left: 16px; padding-left: 10px;}
</style>
</head>
<body>
<center>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table border="0" width="70%" cellspacing="0" cellpadding="4"><tr>
    <td class="big" align="center">G&aelig;stebog</td>
</tr><tr>
    <td align="center" style="border-bottom: solid black; border-width: 1px;"><table border="0" cellspacing="0" cellpadding="4"><tr>

<td>Dit navn:<br>
<input type="text" name="navn" size="24" class="input"></td>
<td>Din email:<br>
<input type="text" name="email" size="24" class="input"></td>
</tr><tr>
<td colspan="2">Din hjemmeside:<br>
<input type="text" name="homepage" size="52" value="http://" class="input"></td>
</tr><tr>
<td colspan="2" align="center"><textarea cols="48" rows="8" name="besked" class="input"></textarea><br>
<input type="submit" value="Tilf&oslash;j indl&aelig;g" class="submit"></td>

</tr></table></td>

</tr><?php

$indhold = file($filnavn);

// for-løkke til at hente hver linie ud af txt-filen.
// Startende med sidste linie først! Tak til jakoba og tipsen fra eksperten for hjælp
for ($i = count($indhold)-1; $i >=0; $i--) {

// Del hver linie op efter " | " og "ignorer" nylinie tegn, "chop"
$vis = split("\|", chop($indhold[$i]));

// Lav output
echo"<tr>\n";
echo"    <td class=\"fra\" style=\"border-left: solid black; border-right: solid black; border-width: 1px;\">Indl&aelig;g af ". $vis[1] ." d. ". $vis[0] ." &nbsp; &nbsp; Email: ". $vis[2] ." &nbsp; &nbsp; ". $vis[3] ."</td>\n";
echo"</tr><tr>\n";
echo"    <td class=\"besked\" style=\"border-left: solid black; border-right: solid black; border-bottom: solid black; border-width: 1px;\">". $vis[4] ."</td>\n";
echo"</tr>";
    }
?></table>
</form>
</center>
</body></html>
Avatar billede foxmulder58 Praktikant
20. juli 2005 - 15:33 #10
smid et svar gandso jeg brugte din løsning!


mvh
Mads

PS! saucer ved ikke hvad er gik galt!
Avatar billede Slettet bruger
20. juli 2005 - 15:36 #11
super!
Avatar billede foxmulder58 Praktikant
20. juli 2005 - 17:29 #12
Gandso,

Kan man med din æstebog ikke for php til at lave et mellemrum (<br>) mellem hvert indlæg fra brugeren?


mvh
mads
Avatar billede mysli Nybegynder
20. juli 2005 - 18:00 #13
$query = mysql_query("SELECT forfatter, besked, dato FROM gb ORDER BY id DESC") or die(mysql_error());
while ($foo = mysql_fetch_assoc($query)) {

echo "$foo[forfatter], $foo[dato]<br />$foo[besked] <br /><br />";
}

Ellers kan du bruge <hr>
Avatar billede foxmulder58 Praktikant
20. juli 2005 - 18:01 #14
jeps det fandt jeg også ud af i mellemtiden mysli, 1000 tak fordi du svarede!


ha det godt

mvh
Mads
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