Seite 2 lässt sich nicht aufrufen

xenomjay

Mitglied
Hi Leute,
ich habe hier aus dem Forum die Anleitung zum Bau eines PHP-SQL-GB benutzt und alles klappte hervorragend, bis ich genügend Einträge für eine 2. Seite bekam. Wenn ich jetzt auf die "2" klicke um die nächste Seite anzuzeigen passiert nichts. Kann mir bitte einer helfen? Danke schonmal im voraus.

Hier der Code:
PHP:
<? 
include("admin/config.php");
?>
<link href="style_inhalte.css" rel="stylesheet" type="text/css" />


<title>www.Autoplausibel.de - Der Rest ist selbsterkl&auml;rend</title><table width="100%" border="0" align="center">
  <tr>
    <td align="left"><h3>G&auml;stebuch</h3></td>
  </tr>
</table>
<form name="form" action='index.php?action=gb' method='post'>
  <table border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td><table border='0' cellspacing='3' cellpadding='5'>
      <tr>
        <td width="79">Name * </td>
        <td width="192"><input type='text' name='name' /></td>
      </tr>
      <tr>
        <td>eMail * </td>
        <td><input type='text' name='mail' /></td>
      </tr>
      <tr>
        <td>Website</td>
        <td><input type='text' name='hp' /></td>
      </tr>
      <tr>
        <td>ICQ# </td>
        <td><input type='text' name='icq' /></td>
      </tr>
    </table>      </td>
    <td valign="top"></tr>
  <tr>
    <td>&nbsp;</td>
    <td>  
    <td valign="top">  
  </tr>
  <tr>
    <td>Eintrag *<br />

<textarea name='eintrag' rows='7' cols='60'></textarea>
<?
if($smilies == true)
{ ?>
<script language='JavaScript' type='text/javascript'>
<!--
function icon(obj) 
{
document.form.eintrag.value += obj.getAttribute('alt');
document.form.eintrag.focus();
}
//-->
</script>
<br />
<img src="smilies/bigeek.gif" width="15" height="15" onClick="icon(this);"  alt=":-O" /> 
<img src="smilies/biggrin.gif" width="15" height="15" onClick="icon(this);" alt=":-D" /> 
<img src="smilies/bigrazz.gif" width="15" height="15" onClick="icon(this);" alt=":-P" /> 
<img src="smilies/cool.gif" width="15" height="15" onClick="icon(this);" alt="8-)" /> 
<img src="smilies/cry.gif" width="15" height="15" onClick="icon(this);" alt=":-(" /> 
<img src="smilies/dead.gif" width="15" height="15" onClick="icon(this);" alt="X-(" /> 
<img src="smilies/laugh.gif" width="15" height="15" onClick="icon(this);" alt=":->" /> 
<img src="smilies/love.gif" width="15" height="15" onClick="icon(this);" alt=":love:" /> 
<img src="smilies/mad.gif" width="15" height="15" onClick="icon(this);" alt=":-<" /> 
<img src="smilies/no.gif" width="15" height="15" onClick="icon(this);" alt=":no:" /> 
<img src="smilies/none.gif" width="15" height="15" onClick="icon(this);" alt=":-|" /> 
<img src="smilies/rolleyes.gif" width="15" height="15" onClick="icon(this);" alt="%-)" /> 
<img src="smilies/smile.gif" width="15" height="15" onClick="icon(this);" alt=":-)" /> 
<img src="smilies/smilewinkgrin.gif" width="15" height="15" onClick="icon(this);" alt=":-P" /> 
<img src="smilies/wink.gif" width="15" height="15" onClick="icon(this);" alt=";-)" /> 
<img src="smilies/yes.gif" width="15" height="15" onClick="icon(this);" alt=":yes:" /></td>
 <? } ?> </td>
    <td valign="top">  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>  
    <td valign="top">  </tr>
  <tr>
    <td><input type='submit' name='submit' value='Eintragen' />
(* Pflichtfelder) </td>
    <td>  
    <td valign="top">  </tr>
</table>

  </form>

<?

$start = $_GET["start"];
if (!$start) $start = 0;
$perpage = 10;

function showpages() {

global $start;
global $perpage;

$pages = ceil(mysql_num_rows(mysql_query("SELECT id FROM admyn_gbook"))/$perpage);
$next = 0;
$i = 1;

if ($pages > 1) {
echo "<div align='center'>Seite: ";
while ($i <= $pages) {
if ($next == $start) echo "<strong>$i</strong> ";
else echo "<a href='index.php?action=gb'>$i</a> ";
$next = $next+$perpage;
$i++;
}
echo "</div><br />";
}
}


 if($_POST["submit"])
{
	echo"<br />";
	$name = $_POST["name"];
	$mail = $_POST["mail"];
	$eintrag = $_POST["eintrag"];
	$icq = $_POST["icq"];
	$hp = $_POST["hp"];
		if(!$name or !$mail or !$eintrag or !ereg(".+@+.+\.+.",$mail) or $icq > "0" and !ereg("[0-9]",$icq))
		{
			echo "<span style='color:red'>Es wurden Felder falsch bzw. nicht ausgef&uuml;llt.</span><br />";
		}
		else {
			if(!ereg("http://",$hp) and $hp != "")
			{
				$hp = "http://".$hp;
			}
			$eintrag = ereg_replace("<","&lt;",$eintrag);
			$eintrag = ereg_replace(">","&gt;",$eintrag);
			echo "<span style='color:black'>Dein Eintrag wurde hinzugef&uuml;gt</span><br />";
			mysql_query("INSERT INTO admyn_gbook (hp, name, email, text, icq, date, ip) VALUES ('$hp', '$name', '$mail', '$eintrag', '$icq', '".time()."', '".$_SERVER['REMOTE_ADDR']."')") or die(mysql_error());
		}
}

//AUSGABE
$nr = mysql_num_rows(mysql_query("SELECT id FROM admyn_gbook"))-$start;

echo"<p>&nbsp;</p>";
echo"".showpages()."";

$result = mysql_query("SELECT * FROM admyn_gbook ORDER BY id DESC LIMIT $start,$perpage ");

echo"<table  width='100%' cellspacing='0' align='left'>"; 
while ($row = mysql_fetch_object($result)) 
{
$row->hp = str_replace("&","&amp;",$row->hp);
$row->text= htmlspecialchars($row->text);

//Smilies ersetzen
if($smilies == true)
{
$row->text = str_replace(":-O","<img src='smilies/bigeek.gif' alt='' />",$row->text); 
$row->text = str_replace(":-D","<img src='smilies/biggrin.gif' alt='' />",$row->text);
$row->text = str_replace(":-P","<img src='smilies/bigrazz.gif' alt='' />",$row->text);
$row->text = str_replace("8-)","<img src='smilies/cool.gif' alt='' />",$row->text);
$row->text = str_replace(":-(","<img src='smilies/cry.gif' alt='' />",$row->text);
$row->text = str_replace("X-(","<img src='smilies/dead.gif' alt='' />",$row->text);
$row->text = str_replace(":->","<img src='smilies/laugh.gif' alt='' />",$row->text);
$row->text = str_replace(":love:","<img src='smilies/love.gif' alt='' />",$row->text);
$row->text = str_replace(":-<","<img src='smilies/mad.gif' alt='' />",$row->text);
$row->text = str_replace(":no:","<img src='smilies/no.gif' alt='' />",$row->text);
$row->text = str_replace(":-|","<img src='smilies/none.gif' alt='' />",$row->text);
$row->text = str_replace("%-)","<img src='smilies/rolleyes.gif' alt='' />",$row->text);
$row->text = str_replace(":-)","<img src='smilies/smile.gif' alt='' />",$row->text);
$row->text = str_replace(":-P","<img src='smilies/smilewinkgrin.gif' alt='' />",$row->text);
$row->text = str_replace(";-)","<img src='smilies/wink.gif' alt='' />",$row->text);
$row->text = str_replace(":yes:","<img src='smilies/yes.gif' alt='' />",$row->text);
}

 echo"
  <tr>
    <td align='left' valign='top' style='border:1px $borderstyle $bordercolor; padding:10px;' nowrap width='20%'><span style='font-size:10px;'><em>Eintrag Nr. ".$nr."</em></span><br />
	<strong>".$row->name."</strong><br />".date("d.m.Y",$row->date)."&nbsp;-&nbsp;".date("H:i",$row->date)."<br />
	<a href='mailto:".$row->email."'><img style='border:0px;' src='mail.gif' alt='".$row->email."' /></a> ";
	if( $row->hp != "") { echo"<a href='".$row->hp."' target='_blank'><img style='border:0px;' src='home5.gif' alt='".$row->hp."' /></a> "; }
	if( $row->icq > 10000000 && is_numeric($row->icq)) { echo"<a href='http://wwp.icq.com/scripts/search.dll?to=".str_replace("-","",$row->icq)."'><img style='border:0px;' src='http://online.mirabilis.com/scripts/online.dll?icq=".str_replace("-","",$row->icq)."&amp;img=5' alt='".str_replace("-","",$row->icq)."' /></a> "; }
	echo"</td>
    <td align='left' valign='top' style='padding:10px; border:1px $borderstyle $bordercolor;'>".nl2br($row->text)."</td>
  </tr>
  <tr>
    <td style='height:30px;'>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>";
  $nr--;
}
echo"</table>";

showpages();
?>
 
Danke für die schnelle Antwort.
Ich weiß leider nicht was du meinst, da meine Kenntnisse in PHP als Anfänger eher beschränkt sind. Wie gesagt ich habe das GB unter ANLEITUNG gebaut und war erstmal froh, dass es überhaupt lief. Also wenn der Wert von $start nicht drin ist, dann ist er auch nirgends anders. Das ist der komplette Code.
 
PHP:
if ($pages > 1) {
echo "<div align='center'>Seite: ";
while ($i <= $pages) {
if ($next == $start) echo "<strong>$i</strong> ";
else echo "<a href='index.php?action=gb'>$i</a> ";
$next = $next+$perpage;
$i++;
}
echo "</div><br />";
}
}

ändere das mal in :

PHP:
if ($pages > 1) {
echo "<div align='center'>Seite: ";
while ($i <= $pages) {
if ($next == $start) echo "<strong>$i</strong> ";
else echo "<a href='index.php?action=gb&$start=".(($i-1)*$perpage)."'>$i</a> ";
$next = $next+$perpage;
$i++;
}
echo "</div><br />";
}
}
 
Zuletzt bearbeitet:
Wenn, dann so.
PHP:
else echo "<a href='index.php?action=gb&start=".(($i-1)*$perpage)."'>$i</a> ";

Das $-Zeichen war noch drinne, aber gehen könnte es. ;)
 
@ PowerCheat: Habe deinen Tipp ausprobiert aber es funktioniert leider immernoch nicht.

@DeluXe: Damit geht es. Danke. Wenn du mir jetzt noch kurz erklären könntest was falsch war, dann gebe ich dir ein Bier aus ;)
 
Zuletzt bearbeitet:
Stimmt Delux, das $ war noch in der Variable -.-

Also was Falschwar, kann man nicht sagen, es war lediglich der "start" wert nicht mit geliefert worden, wenn man auf eine seite verlinkt wurde.

Das wurde mit der änderung behoben.

Da die variable start den anfangs wert der abzurufenden werte ist.
 
noch etwas zur sicherheit:

PHP:
$start = $_GET["start"];
if (!$start) $start = 0;
$perpage = 10;

mit
PHP:
$start = $_GET["start"];
if (!isset($start) OR !is_numeric($start)) $start = 0;
$perpage = 10;

ersetzen. Sonst ist mysql injection möglich. idealer weise nutzt man überall wo daten in ein mysql Query eingetragen werden die funktion
PHP:
mysql_real_escape_string($variable)
 
Zuletzt bearbeitet:
Zurück