Jag har hittat en gästbok utan paging och ett pagingscript av kjell här på webforum.
Nu har jag problem att sätta ihop dem tillsammans.
Problemet är att pagingen kommer fram men alla meddelanden ligger på alla sidor. Den delar inte upp meddelandena på olika sidor!
ps. har tagit bort lite kod då denna posten blev för stor annars
Jag har gjort så här än så länge och då blir det fel:
<?php
if(isset($_GET['tabort']) && $_SESSION['admin'] == "admin"){
$sql = "DELETE FROM gast WHERE id = '{$_GET['tabort']}' LIMIT 1";
mysql_query($sql);
}
if(isset($_GET['banna']) && $_SESSION['admin'] == "admin"){
$sql = "UPDATE gast SET blockad = 1 WHERE id = '{$_GET['banna']}' LIMIT 1";
mysql_query($sql);
}
if(isset($_POST['logga_in'])){
if($_POST['user'] == "admin" && $_POST['pass'] == "petronella"){ //byt ut $ett_losenord mott det lösenord du vill använda
$_SESSION['admin'] = $_POST['user'];
}else{
echo "Fel användarnamn och /eller Lösenord";
}
}
if(isset($_GET['logga_ut'])){
session_unset();
session_destroy();
}
if($_SESSION['admin'] == "admin"){
echo "Admin läge";
}
if(isset($_POST['submit'])){
// Tag bort eventuella blanksteg i början eller slutet
foreach($_POST as $key => $val){
$_POST[$key] = trim($val);
$_POST[$key] = ucfirst($val);
}
//Kolla efter tomma fält
if (empty($_POST['namn']) || empty($_POST['epost']) ||
empty($_POST['mess'])) {
$reg_error[] = 0;
}
// Kolla om e-post kan tänkas vara ok
if (!preg_match('/^[-A-Za-z0-9_.]+[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+)*[.][A-Za-z]{2,8}$/', $_POST['epost'])) {
$reg_error[] = 1;
}
// Inga fel? skicka inlägget
if (!isset($reg_error)) {
$datum = date("Y-m-d H:i");
$ip = $REMOTE_ADDR;
$text = preg_replace('#(\r\n|\r|\n)#', '<br>', $_POST['mess']);
$texten= censur(strtolower($text));
$sql = "INSERT INTO gast(namn, epost, text, ip, datum)
VALUES('{$_POST['namn']}', '{$_POST['epost']}', '$texten', '$ip', '$datum')";
mysql_query($sql) or die("Kunde inte skriva till gästboken...");
} // inga fel kollen
} //submitt kollen
?>
<head>
<link href="../css/default.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="subnav">
</div>
<div id="news"><p>Gästbok</p>
<dl>
<?php
$sql = "SELECT * FROM gast ORDER BY id DESC";
$result = mysql_query("$sql");
while($row=mysql_fetch_array($result)){
echo "<dt>
<a href='mailto:" .$row['epost']."'>" .$row['namn']. "</a> ";
echo "" .$row['datum']. "<br></dt>";
echo "<dd>" .preg_replace('#(<br>)#', '<br>', htmlentities(ucfirst(censur($row['text'])))). "</dd>";
if($_SESSION['admin'] == "admin"){ echo " <dd><a href='?tabort=" .$row['id']. "'>Ta bort</a> <a href='?banna=" .$row['id']. "'>Banna</a>"; }
echo "</dd>";
}
?>
<?php
/* -= Paging =- *
* ------------------------------------------------------------- *
* Dela upp ett större antal poster från MySQL på flera sidor *
* *
* Exempel: *
* +-----------------------------------------------------------+ *
* | Sida 3 av 12 | *
* | << < 12345 > >> | *
* +-----------------------------------------------------------+ *
* *
* Uppdaterad: 2004-12-22 *
* http://member.webforum.nu/kjell/paging.txt *
* */
$max_per_page = 7;// Antal poster att visa per sida
$max_page_num = 2;// Antal valbara sidor från aktuell sida
/* Använda en select som meny istället *
* Exempel: *
* +-----------------------------------------------------------+ *
* | Sida 3 av 12 | *
* | Sida 3 visar posterna 21-30 | *
* +-----------------------------------------------------------+ *
* */
$select_style = false;// true or false
if (isset($_GET['page']) AND preg_match("/^[0-9]+$/", $_GET['page'])) {
$page_num = $_GET['page'];
} else {
$page_num = 1;
}
$from_records = ($max_per_page*$page_num)-$page_num;
$result_records = mysql_query("SELECT COUNT(*) AS rows FROM gast");
$num_records = mysql_result($result_records, 0, "rows");
mysql_free_result($result_records);
$total_pages = ceil($num_records/$max_per_page);
$results = mysql_query("SELECT * FROM gast ORDER BY column LIMIT " . $from_records . "," . $max_per_page);
if ($num_records > $max_per_page) {
$tbl_start = '<dd><table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td align="center">Sida <b>' . $page_num . '</b> av <b>' . $total_pages . '</b></td>
</tr>
<tr>
<td align="right">';
if ($select_style) {
$pages = '<form name="menu">' . "\n";
$pages .= '<select name=links onChange="self.location.href=this.options[this.selectedIndex].value;">' . "\n";
while ($cur_page++ < $total_pages) {
$start_records = ($cur_page*$max_per_page)-($max_per_page-1);
$end_records = $start_records+($max_per_page-1);
if ($cur_page== $page_num ) { $selected_page = ' selected'; } else { $selected_page = ''; }
$pages .= '<option value="' . $_SERVER['PHP_SELF'] . '?page=' . $cur_page . '"' . $selected_page . '>Sida ' . $cur_page . ' visar posterna ' . $start_records . '-' . $end_records . '</option>' . "\n";
}
$pages .= '</select>' . "\n";
$pages .= '</form>' . "\n";
} else {
if ($page_num > 1) {
$prev_page = $page_num-1;
$prev_link = '<a href="' . $_SERVER['PHP_SELF'] . '?page=' . $prev_page . '" title="Föregående sida"><</a> ';
}
if ($page_num < $total_pages) {
$next_page = $page_num+1;
$next_link = ' <a href="' . $_SERVER['PHP_SELF'] . '?page=' . $next_page . '" title="Nästa sida">></a>';
}
while ($cur_page++ < $total_pages) {
if (($cur_page <= $page_num-$max_page_num || $cur_page >= $page_num+$max_page_num) && $max_page_num != 0) {
if ($cur_page == 1) {
$first_link = '<a href="' . $_SERVER['PHP_SELF'] . '?page=' . $cur_page . '" title="Första sidan"><<</a> ';
}
if ($cur_page == $total_pages) {
$last_link = ' <a href="' . $_SERVER['PHP_SELF'] . '?page=' . $cur_page . '" title="Sista sidan">>></a>';
}
} else {
if ($cur_page == $page_num) {
$pages .= '<b>' . $cur_page . '</b> ';
} else {
$pages .= '<a href="' . $_SERVER['PHP_SELF'] . '?page=' . $cur_page . '" title="Sida ' . $cur_page . '">' . $cur_page . '</a> ';
}
}
}
}
$tbl_end = ' </td></tr></table>' . "\n";
}
echo $tbl_start . $first_link . $prev_link . $pages . $next_link . $last_link . $tbl_end;
while ($result = mysql_fetch_array($results)) {
// Skriv ut resultatet från MySQL...
}
?>
</dl>
</div>
<div id="sidebar">
<img class="indexbild" src="../images/img_spel.jpg" height="60" width="414" />
<dl>
<dt>
<form action="gastbok.php" method="post">
<dd><table>
<tr>
<td>Namn:</td>
<td><input name="namn" type="text" size="30">
<input type="hidden" value="submit" name="submit" checked></td>
<td rowspan="3"> </td>
</tr>
<tr>
<td>Epost:</td>
<td><input name="epost" type="text"size="30"></td>
</tr>
<tr>
<td valign="top">Meddelande:</td>
<td><textarea name="mess" cols="24" rows="3"></textarea></td>
</tr>
<tr>
<td>
</td>
<td><input type="submit" class="button" value="Skicka"></td>
</tr>
</table>
</form>
<?php
$sql = "SELECT ip FROM gast WHERE blockad = 1";
$result = mysql_query("$sql");
$row=mysql_fetch_array($result);
if(empty($row)){
$row[]="toffla";
}
if(in_array($REMOTE_ADDR, $row)){
echo "<h2 align='center' style='color: #00000'>Du är bannad från denna gästboken!!!</h2>";
}else{
?>
<?
} //slutet på bann -if 'et
?>
<?php
if (isset($reg_error)){
// Felmeddelanden
$error_list[0] = "Alla fält är inte infyllda";
$error_list[1] = "Felaktig e-postadress";
echo "<br>Något blev fel:<br>";
echo "<ul style='color:#FF0000'>";
for ($i=0; $i<sizeof($reg_error); $i++) {
echo "<li>{$error_list[$reg_error[$i]]}</li>";
}
echo "</ul>";
} //regerror
?>
</dd>
</dt>
</dl>
<dl>
<dt>
<?php
if(!isset($_GET['logga_in']) && !isset($_SESSION['admin'])){
echo "<div align='center'><a href='?logga_in='>Logga in</a></div>";
}elseif(isset($_SESSION['admin'])){
echo "<div align='center'><a href='?logga_ut='>Logga ut</a></div>";
}else{?>
<form action="gastbok.php" method="post" name="loggar_in">
<table>
<tr>
<td>Namn: </td>
<td><input type="text" name="user">
<input type="hidden" value="logga_in" name="logga_in" checked></td>
</tr>
<tr>
<td>Pass: </td>
<td><input type="password" name="pass">
<input type="submit" value="Logga in"></td>
</tr>
</table>
</form>
<?php
}//logga in slutet
?>
</dt>
</dl>
</div>
</body>
</html>