Avatar billede human Nybegynder
23. januar 2003 - 13:35 Der er 15 kommentarer og
1 løsning

Gæstebog, der burde virke.

Nogen der kan fortælle mig hvorfor denne gb ikke virker efter hensigt?
Den vil ikke komme med formen når jeg trykker.
Den vil heller ikke udskrive forrige og næste forneden.
link: http://192.168.1.3/martin/gaestebog.php


<?
$pr_side = "3";

 
include("conn.php");


if (!isset($s)) {
    $s = "0";
}

#gem
if ($_POST) {

$comm = stripslashes($comm);
$comm = str_replace("\"","&quot;",$comm);
$comm = str_replace("<","&lt;",$comm);
$comm = str_replace(">","&gt;",$comm);
$comm = str_replace("\n","<BR>",$comm);
$comm = str_replace("\\","&#92;",$comm);
$comm = str_replace("http://","",$comm);
$comm = ereg_replace("((w{3}|W{3})+.[a-zA-Z0-9:%_.~#-?&]+)",  "<a href=\"http://\\1\" CLASS=\"tekstlink\" TARGET=\"_blank\">\\1</a>",$comm);
$comm = ereg_replace("([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z0-9._-]+)", "<a href=\"mailto:\\1\" CLASS=\"tekstlink\">\\1</a>",$comm);
$comm = str_replace("'","&#39;",$comm);

$insert = "INSERT INTO gb(tid,navn,email,comm)
        VALUES(NOW(),'$navn','$email','$comm')";
mysql_query($insert) || die(mysql_error());
}



print "<center><a href=\"gaestebog.php?action=skriv\">Skriv indlæg</a></center><br />";

if($action == "skriv") {
?>

<form action="" method="post">
<table border="0" cellpadding="5" cellspacing="0">
<tr><td align="right"><font size="-1" face="Verdana">Navn:</font></td><td><input type="text" name="navn" size="15" maxsize="20" style="border-color:#336699" style="color:#336699; style="border-width: thin;"></td></tr>
<tr><td align="right"><font size="-1" face="Verdana">Email:</font></td><td><input type="text" name="email" size="15" maxsize="20" style="border-color:#336699" style="color:#336699; style="border-width: thin;"></td></tr>
<tr><td align="right" valign="top"><font size="-1" face="Verdana">Kommentar:</font></td><td><textarea cols="28" rows="10" name="comm" style="border-color:#336699" style="color:#336699; style="border-width: thin;"></textarea></td></tr>
<tr><td></td><td><input type="submit" value="Send" Class="submit" name="send"></td></tr>
</form>
</table>
<?
}
if($action == "skriv") {
    print "<br /><br /><hr color=#336699>";   
}



#Gæstebogen
$query = "SELECT * FROM gb ORDER BY tid DESC
        limit $s,$pr_side";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
   
    print "<table>";
    print "<tr>";
    print "<td>";
    print "<b>Navn:</b> $row[navn]<br /></font>";
    print "<b>Email:</b> <a href='mailto:$row[email]'>$row[email]</a><br />";
    print "<font size=-2><b>Tidspunkt:<b> $row[tid]</font>";
    print "</td>";
    print "</tr>";
    print "<td><br />";
    print "$row[comm]";
    print "</td>";
    print "</td>";
    print "</table>";
    print "<hr color=#336699>";   
}

$g_total = mysql_query("select count(*) as total from gb") or die(mysql_error());
$total = mysql_result($g_total,0);


    print "<br /><br /><center>";


if ($s >= $pr_side) {
$previous_s = $s-$pr_side;
print "<a href='?s=$previous_s'>Forrige</a> ";
}

$page = 1;
for($start=0; $total > $start; $start=$start+$pr_side){
if ($start != $s) {
print "<a href='?s=$start'>$page</a> ";
    } else {
print "$page ";
}
$page++;
}

if ($total > $s+$pr_side) {
$next_s = $s+$pr_side;
print "<a href='?s=$next_s'>Næste</a>";
}

    print "</center><br />";



mysql_close($conn);
?>
Avatar billede iqzero Nybegynder
23. januar 2003 - 14:06 #1
Prøv at lav if($action == "skriv") om til

if($_GET['action]== "skriv")
Avatar billede iqzero Nybegynder
23. januar 2003 - 14:08 #2
Der manglede en apostrof...

if($_GET['action']== "skriv")
Avatar billede human Nybegynder
23. januar 2003 - 14:12 #3
Ja.. det virkede. Men når jeg trykker "Send" forsvinder formen ikke, det burde den.

Og forrige og næste virker heller ikke optimalt.
Men prøv kig engang :)
Avatar billede human Nybegynder
23. januar 2003 - 14:12 #4
Nå ja.. Og så kommer det heller ikke til at stå noget i felterne, de forbliver tomme :(
Avatar billede human Nybegynder
23. januar 2003 - 14:13 #5
tiden kommer frem som det eneste, men ikke de andre.

Tiden står også i db'en. Men der er ikke noget i de andre felter.
Avatar billede avminarm Juniormester
23. januar 2003 - 14:38 #6
der mangler hvad action er i formen du har flg. stående: <form action=""  det skal være <form action="sendfilen.php"  / måske $_SERVER['PHP_SELF']
Avatar billede tipsen Nybegynder
23. januar 2003 - 15:18 #7
avminarm: Godt set - det er næsten en standard fejl hos de folk der kun tester i IE fordi den gætter på filen selv, hvis der ikke er angivet en action.... - meget dårlig stil...
Avatar billede tipsen Nybegynder
23. januar 2003 - 15:20 #8
human: Det er lidt svært at teste, når du angiver et internt ip-nummer.. :-/
Avatar billede tipsen Nybegynder
23. januar 2003 - 15:22 #9
human: Alle de variable der stammer fra url'en skal du lave om til at bruge GET-arrayet - dvs. $_GET['varnavn'] og alle de variable der bliver postet med form'en skal du bruge POST-arrayet - dvs. $_POST['varnavn'] - ret alle de ting og vend tilbage med din nye kode og evt. en url der virker.
Avatar billede human Nybegynder
23. januar 2003 - 15:55 #10
Tipsen, kan du ikke prøve at sætte det ind i koden, er ikke helt med på hvad du mener :/

<?
$pr_side = "5";

 
include("conn.php");


if (!isset($s)) {
    $s = "0";
}

#gem
if ($_POST) {

$comm = stripslashes($comm);
$comm = str_replace("\"","&quot;",$comm);
$comm = str_replace("<","&lt;",$comm);
$comm = str_replace(">","&gt;",$comm);
$comm = str_replace("\n","<BR>",$comm);
$comm = str_replace("\\","&#92;",$comm);
$comm = str_replace("http://","",$comm);
$comm = ereg_replace("((w{3}|W{3})+.[a-zA-Z0-9:%_.~#-?&]+)",  "<a href=\"http://\\1\" CLASS=\"tekstlink\" TARGET=\"_blank\">\\1</a>",$comm);
$comm = ereg_replace("([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+.[a-zA-Z0-9._-]+)", "<a href=\"mailto:\\1\" CLASS=\"tekstlink\">\\1</a>",$comm);
$comm = str_replace("'","&#39;",$comm);

$insert = "INSERT INTO gb(tid,navn,email,comm)
        VALUES(NOW(),'$navn','$email','$comm')";
mysql_query($insert) || die(mysql_error());
}



print "<center><br /><a href=\"gaestebog.php?action=skriv\">Skriv indlæg</a></center><br />";

if($_GET['action']== "skriv") {
?>

<form action="gaestebog.php" method="post">
<table border="0" cellpadding="5" cellspacing="0">
<tr><td align="right"><font size="-1" face="Verdana">Navn:</font></td><td><input type="text" name="navn" size="15" maxsize="20" style="border-color:#336699" style="color:#336699; style="border-width: thin;"></td></tr>
<tr><td align="right"><font size="-1" face="Verdana">Email:</font></td><td><input type="text" name="email" size="15" maxsize="20" style="border-color:#336699" style="color:#336699; style="border-width: thin;"></td></tr>
<tr><td align="right" valign="top"><font size="-1" face="Verdana">Kommentar:</font></td><td><textarea cols="28" rows="10" name="comm" style="border-color:#336699" style="color:#336699; style="border-width: thin;"></textarea></td></tr>
<tr><td></td><td><input type="submit" value="Send" Class="submit" name="send"></td></tr>
</form>
</table>
<?
}
if($_GET['action']== "skriv") {
    print "<br /><br /><hr color=#336699>";   
}



#Gæstebogen
$query = "SELECT * FROM gb ORDER BY tid DESC
        limit $s,$pr_side";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
   
    print "<table>";
    print "<tr>";
    print "<td>";
    print "<b>Navn:</b> $row[navn]<br /></font>";
    print "<b>Email:</b> <a href='mailto:$row[email]'>$row[email]</a><br />";
    print "<font size=-2><b>Tidspunkt:<b> $row[tid]</font>";
    print "</td>";
    print "</tr>";
    print "<td><br />";
    print "$row[comm]";
    print "</td>";
    print "</td>";
    print "</table>";
    print "<hr color=#336699>";   
}

$g_total = mysql_query("select count(*) as total from gb") or die(mysql_error());
$total = mysql_result($g_total,0);


    print "<br /><br /><center>";


if ($s >= $pr_side) {
$previous_s = $s-$pr_side;
print "<a href='?s=$previous_s'>Forrige</a> ";
}

$page = 1;
for($start=0; $total > $start; $start=$start+$pr_side){
if ($start != $s) {
print "<a href='?s=$start'>$page</a> ";
    } else {
print "$page ";
}
$page++;
}

if ($total > $s+$pr_side) {
$next_s = $s+$pr_side;
print "<a href='?s=$next_s'>Næste</a>";
}

    print "</center><br />";



mysql_close($conn);
?>
Avatar billede human Nybegynder
23. januar 2003 - 15:57 #11
Avatar billede bobcats Nybegynder
23. januar 2003 - 17:19 #12
Du må have en fejl et eller andet sted.. Jeg har hentet din kode og testet den men vær gang jeg starter gaestebog.php opretter den selv noget i database...
Avatar billede tipsen Nybegynder
23. januar 2003 - 17:43 #13
human: Det gider jeg ikke... - men det er der nok andre som gider.
Avatar billede human Nybegynder
23. januar 2003 - 18:26 #14
bobcats: Kan du ikke prøve at uddybe det lidt...?
Avatar billede human Nybegynder
26. januar 2003 - 18:32 #15
Nå... Må bare lave en ny fra bunde af så :(
Avatar billede human Nybegynder
26. januar 2003 - 18:32 #16
lukket
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