[gastenboek] datum probleem en bericht-per-pagina
Bulevardi - 07/11/2007 13:55
Nieuw lid
Weet iemand hoe ik dit gastenboek in orde kan krijgen?
Hij geeft elke keer dezelfde datum/uur weer van het moment dat je het gastenboek bekijkt. Bij elk bericht staat dus dezelfde datum/uur.
Weet er ook iemand hoe ik bijvoorbeeld 10 berichten per pagina kan weergeven? En zodat hij automatisch een link naar een tweede/derde/vierde/... pagina genereert?
Dit is het formulier:
<form action="gbscript.php" method="post" >
<br>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
From: <input name="naam" maxlength="50">
<input name="datum" value="<?php echo date("d-m-Y H:i:s", time()); ?>" type="hidden">
</td>
</tr>
<tr>
<td>
E-mail: <input name="email" maxlength="50">
</td>
</tr><tr>
<td>
Website: <input name="website" maxlength="50">
</td>
</tr>
<tr>
<td>
<textarea name="bericht" rows="3" cols="10" maxlength="600">Typ hier uw bericht!</textarea><br>
<input type="submit" name="submit" value="Bericht plaatsen!">
</td>
</tr>
</table>
</form>
<form action="gbscript.php" method="post" >
<br>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
From: <input name="naam" maxlength="50">
<input name="datum" value="
<?php echo date ( "d-m-Y H:i:s" , time ( ) ) ; ?> " type="hidden">
</td>
</tr>
<tr>
<td>
E-mail: <input name="email" maxlength="50">
</td>
</tr><tr>
<td>
Website: <input name="website" maxlength="50">
</td>
</tr>
<tr>
<td>
<textarea name="bericht" rows="3" cols="10" maxlength="600">Typ hier uw bericht!</textarea><br>
<input type="submit" name="submit" value="Bericht plaatsen!">
</td>
</tr>
</table>
</form>
gbscript.php:
<?php
if(isset($_REQUEST['submit'])) {
if(strlen($_REQUEST['naam']) == 0)
{
echo "You forgot to fill in the name of the sender!<br>";
echo "<a href=\"gastenboek.php\">Click here to return</a><br><p>";
}
if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $_REQUEST['email']))
{
echo "Incorrect e-mail adress of the sender!<br>";
echo "<a href=\"gastenboek.php\">Click here to return</a><br><p>";
}
$datum = $_REQUEST['datum'];
$bericht = $_REQUEST['bericht'];
$email = $_REQUEST['email'];
$website = $_REQUEST['website'];
$naam = $_REQUEST['naam'];
$bericht = str_replace("\n", "<br>", $bericht);
$sql = "INSERT INTO `gastenboek` ";
$sql .= "(naam, email, website, bericht, datum) ";
$sql .= "VALUES ";
$sql .= "('$naam', '$email', '$website', '$bericht', '$datum') ";
$sql .= "; ";
require_once('mysql_connect.inc.php');
$verbinding = @mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die(mysql_error());
mysql_select_db("bulevardibase") or die(mysql_error());
$toegevoegd = mysql_query($sql) or die(mysql_error());
mysql_close($verbinding);
// to post the results of the guestbook:
if($toegevoegd) {
require_once('mysql_connect.inc.php');
$verbinding = @mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die(mysql_error());
mysql_select_db("bulevardibase") or die(mysql_error());
$sql = "SELECT * FROM gastenboek ORDER BY id DESC";
$tonen = mysql_query($sql) or die (mysql_error());
while ($rij = mysql_fetch_assoc($tonen)) {
$datum = $rij["datum"];
$naam = $rij["naam"];
$email = $rij["email"];
$website = $rij["website"];
$bericht = $rij["bericht"];
echo $datum ;
echo "<br>";
echo $naam ;
echo "<br>";
echo $website ;
echo "<br>";
echo $bericht ;
echo "<br><hr><br>";
}
mysql_free_result($tonen);
mysql_close($verbinding);
}
}
else {
echo "Please, fill in the form above!<p><br>";
}
?>
Sponsored Links (We share ad revenue):
<?php
if ( isset ( $_REQUEST [ 'submit' ] ) ) { if ( strlen ( $_REQUEST [ 'naam' ] ) == 0 ) {
echo "You forgot to fill in the name of the sender!<br>" ; echo "<a href=\" gastenboek.php\" >Click here to return</a><br><p>" ; }
if ( ! eregi ( "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$" , $_REQUEST [ 'email' ] ) ) {
echo "Incorrect e-mail adress of the sender!<br>" ; echo "<a href=\" gastenboek.php\" >Click here to return</a><br><p>" ; }
$datum = $_REQUEST [ 'datum' ] ;
$bericht = $_REQUEST [ 'bericht' ] ;
$email = $_REQUEST [ 'email' ] ;
$website = $_REQUEST [ 'website' ] ;
$naam = $_REQUEST [ 'naam' ] ;
$sql = "INSERT INTO `gastenboek` " ;
$sql .= "(naam, email, website, bericht, datum) " ;
$sql .= "VALUES " ;
$sql .= "('$naam ', '$email ', '$website ', '$bericht ', '$datum ') " ;
$sql .= "; " ;
require_once ( 'mysql_connect.inc.php' ) ;
// to post the results of the guestbook:
if ( $toegevoegd ) {
require_once ( 'mysql_connect.inc.php' ) ;
$sql = "SELECT * FROM gastenboek ORDER BY id DESC" ;
$datum = $rij [ "datum" ] ;
$naam = $rij [ "naam" ] ;
$email = $rij [ "email" ] ;
$website = $rij [ "website" ] ;
$bericht = $rij [ "bericht" ] ;
}
}
}
else {
echo "Please, fill in the form above!<p><br>" ; }
?>
Sponsored Links (We share ad revenue):
Iemand een oplossing? Ik ben je hartelijk dankbaar!
7 antwoorden
Gesponsorde links
Wim - 07/11/2007 13:57 (laatste wijziging 07/11/2007 14:12)
Crew algemeen
http://www.site...amp;id=767
$bericht = str_replace("\n", "<br>", $bericht);
=>
nl2br();
er is trouwens een mysql-functie NOW() aanwezig, deze geeft de huidige datum & uur in je mysql command, wat je dus bij het toevoegen zal gebruiken in dit geval. veldtype best datetime
Bulevardi - 08/11/2007 13:57
Nieuw lid
Ok, de datum werkt al...
Nu enkel nog zien dat ik bijvoorbeeld 5 berichten per pagina op mijn scherm krijg...
Ik probeer volgende tutorial:
http://www.phphulp.nl/php/scripts/6/236 /
Maar ik krijg altijd volgende error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-5`, `5`' at line 1
Hij geeft wel bovenaan wel al de links weer '1' - '2', ... maar die werken ook niet blijkbaar.
Dan komt er volgende error:
Warning: include(2.php) [function.include]: failed to open stream: No such file or directory ... on line 227
Hoe kan je er voor zorgen dat die meteen een nieuwe pagina aanmaakt?
Ik gebruik volgende code:
...
$page = isset($_GET['pagina']) ? $_GET['pagina'] : 1;
$message_per_page = 5;
$offset = ($page - 1) * $message_per_page;
$sql = "SELECT count(*) FROM `gastenboek`";
$res = mysql_query($sql);
$num = mysql_result($res, 0);
$page_nummers = ceil($num / $message_per_page);
echo '<small>';
for($i=1; $i<=$page_nummers; $i++) {
if($page == $i) { echo ' - <b>'.$i.'</b>'; }
else { echo ' - <a href="index.php?pagina='.$i.'" title="go to page '.$i.'">'.$i.'</a>'; }
}
echo ' -</small><br>';
$sql = "SELECT * FROM `gastenboek` ORDER BY `id` DESC LIMIT $offset, $message_per_page";
$res = mysql_query($sql);
while ($data = mysql_fetch_array($res)) {
...
...
$page = isset ( $_GET [ 'pagina' ] ) ?
$_GET [ 'pagina' ] : 1 ; $message_per_page = 5 ;
$offset = ( $page - 1 ) * $message_per_page ;
$sql = "SELECT count(*) FROM `gastenboek`" ;
$page_nummers = ceil ( $num / $message_per_page ) ;
for ( $i = 1 ; $i <= $page_nummers ; $i ++ ) {
if ( $page == $i ) { echo ' - <b>' . $i . '</b>' ; } else { echo ' - <a href="index.php?pagina=' . $i . '" title="go to page ' . $i . '">' . $i . '</a>' ; } }
$sql = "SELECT * FROM `gastenboek` ORDER BY `id` DESC LIMIT $offset , $message_per_page " ;
...
jvs - 08/11/2007 15:35
HTML beginner
Ik denk dat we de fout niet zullen vinden in dit stukje code aangezien er staat "on line 227" en het om een include-fout gaat denk ik
Bulevardi - 08/11/2007 16:07
Nieuw lid
Door volgend lijntje:
<a href="index.php?pagina='.$i.'"
wil hij de volgende berichten plaatsen op pagina=2 of pagina=3 , ...
Het probleem is dat die pagina's niet bestaan, vandaar dat hij volgende error geeft:
"Warning: include(2.php) [function.include]: failed to open stream: No such file or directory ... "
Als ik blanco files maak en die 2.php en 3.php etc... noem, dan worden die geopend als ik op link '2' of '3' klik, maar dan staat daar niets in.
De volgende berichten worden daar niet in geplaatst...
jvs - 08/11/2007 17:35 (laatste wijziging 08/11/2007 17:47)
HTML beginner
ik heb snel even een scriptje gemaakt vr het pagina systeem
miss moet je dit even proberen
<?
$aantalMessages = mysql_query("select count(*) from gastenboek");
$messagesPerPagina = 5;
$aantalPaginas = ceil($aantalMessages / $messagesPerPagina);
$offset2 = $messagesPerPagina * $_GET['pagina'];
$offset1 = $offset2 - $messagesPerPagina;
$selectMessage = mysql_query("select * from gastenboek order by id desc limit $offset1, $offset2");
while ($message = mysql_fetch_object($selectMessage)){
echo"".$message->titel."<BR />";
}
for($i = 1, $i == $aantalPaginas, $i ++){
echo"<a href=\"?pagina=".$i."\">".$i."</a>";
}
?>
<?
$aantalMessages = mysql_query ( "select count(*) from gastenboek" ) ; $messagesPerPagina = 5 ;
$aantalPaginas = ceil ( $aantalMessages / $messagesPerPagina ) ; $offset2 = $messagesPerPagina * $_GET [ 'pagina' ] ;
$offset1 = $offset2 - $messagesPerPagina ;
$selectMessage = mysql_query ( "select * from gastenboek order by id desc limit $offset1 , $offset2 " ) ;
echo "" . $message -> titel . "<BR />" ;
}
for ( $i = 1 , $i == $aantalPaginas , $i ++ ) {
echo "<a href=\" ?pagina=" . $i . "\" >" . $i . "</a>" ;
}
?>
Tussen quotes is idd het beste het is al even geleden dat ik nog php heb geschreven
Bulevardi - 09/11/2007 12:35
Nieuw lid
Dank je, ... Maar nu blijkt het nog niet te werken. Na enkele errors die ik heb opgelost krijg ik nu het volgende van errors:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-5, 0' at line 1
Ik heb deze code gebruikt:
require_once('mysql_connect.inc.php');
$verbinding = @mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die(mysql_error());
mysql_select_db("bulevardibase") or die(mysql_error());
$sql = "SELECT count(*) FROM `gastenboek`";
$aantalMessages = mysql_query($sql) or die (mysql_error());
$messagesPerPagina = 5;
$aantalPaginas = ceil($aantalMessages / $messagesPerPagina);
$offset2 = $messagesPerPagina * $_GET['inh'];
$offset1 = $offset2 - $messagesPerPagina;
$sql = "SELECT * FROM `gastenboek` order by `id` DESC LIMIT $offset1, $offset2";
$tonen = mysql_query($sql) or die (mysql_error());
while ($message = mysql_fetch_assoc($selectMessage)){
echo "".$message->titel."<BR />";
$datum = $rij["datum"];
$tijd = $rij["tijd"];
$naam = $rij["naam"];
$email = $rij["email"];
$website = $rij["website"];
$bericht = $rij["bericht"];
echo " ". $datum . " at " . $tijd ." ";
echo "<br>";
echo $naam ;
echo "<br>";
echo $website ;
echo "<br>";
echo $bericht ;
echo "<br><hr><br>";
}
for($i = 1; $i == $aantalPaginas; $i ++){
echo "<a href=\"?pagina=".$i."\">".$i."</a> ";
}
mysql_free_result($tonen);
mysql_close($verbinding);
require_once ( 'mysql_connect.inc.php' ) ;
$sql = "SELECT count(*) FROM `gastenboek`" ;
$messagesPerPagina = 5 ;
$aantalPaginas = ceil ( $aantalMessages / $messagesPerPagina ) ; $offset2 = $messagesPerPagina * $_GET [ 'inh' ] ;
$offset1 = $offset2 - $messagesPerPagina ;
$sql = "SELECT * FROM `gastenboek` order by `id` DESC LIMIT $offset1 , $offset2 " ;
echo "" . $message -> titel . "<BR />" ;
$datum = $rij [ "datum" ] ;
$tijd = $rij [ "tijd" ] ;
$naam = $rij [ "naam" ] ;
$email = $rij [ "email" ] ;
$website = $rij [ "website" ] ;
$bericht = $rij [ "bericht" ] ;
echo " " . $datum . " at " . $tijd . " " ;
}
for ( $i = 1 ; $i == $aantalPaginas ; $i ++ ) {
echo "<a href=\" ?pagina=" . $i . "\" >" . $i . "</a> " ;
}
Gesponsorde links
Dit onderwerp is gesloten .