RonneldMcDonald
Mitglied
Hallo und vorab ...
... ich hab jetzt hier schon einige Post zu Reloadsperren oder Mysql-vergleichen reingezogen und leider immer noch nüscht kapiert, ich steig da einfach nicht durch - verdammich noch mal ...
Ich finde auch nirgendwo (auch mit Google) irgendein klitzekleines praktisches Beispiel, welches ich einfach nur anpassen könnte und für meinen Zweck verwenden könnte - Zumindest habe ich rausgelesen, dass es besser wäre, per Sessioncookie oder Mysql-IP-Vergleich anstatt mit Javascript-Cookie zu hantieren, um zu verhindern, dass sinnloserweise in die Shoutbox (Script folgt unten...) mehrmals reingepostet wird.
Aber eine Ip-übergabe ist mit dem momentanen Script ja nicht vorgesehen, also bliebe da einfacherweise nur der Sessioncookie, oder? Also am Liebsten möchte ich nur einen Mysql-Eintrag pro Session und/oder pro Tag zulassen:
Kann mir da jemand einen praktischen Codeschnippsel anbieten, ich bring das nicht auf die Reihe?
Hier der komplette momentane Code - habe das als Zitat eingefügt, da die endlose horizontale Scrollerei bei den PHP-Tags echt nervt:
Grüße RonMcDon
... ich hab jetzt hier schon einige Post zu Reloadsperren oder Mysql-vergleichen reingezogen und leider immer noch nüscht kapiert, ich steig da einfach nicht durch - verdammich noch mal ...
Ich finde auch nirgendwo (auch mit Google) irgendein klitzekleines praktisches Beispiel, welches ich einfach nur anpassen könnte und für meinen Zweck verwenden könnte - Zumindest habe ich rausgelesen, dass es besser wäre, per Sessioncookie oder Mysql-IP-Vergleich anstatt mit Javascript-Cookie zu hantieren, um zu verhindern, dass sinnloserweise in die Shoutbox (Script folgt unten...) mehrmals reingepostet wird.
Aber eine Ip-übergabe ist mit dem momentanen Script ja nicht vorgesehen, also bliebe da einfacherweise nur der Sessioncookie, oder? Also am Liebsten möchte ich nur einen Mysql-Eintrag pro Session und/oder pro Tag zulassen:
Kann mir da jemand einen praktischen Codeschnippsel anbieten, ich bring das nicht auf die Reihe?
Hier der komplette momentane Code - habe das als Zitat eingefügt, da die endlose horizontale Scrollerei bei den PHP-Tags echt nervt:
Die eingebaute Blätterfunktion stammt übrigens auch aus einer längeren Hilfeaktion dieses Forums ...<?
global $DOCUMENT_ROOT;
//Hier den Pfad zur config.php mit Serververzeichniss angeben !
require("$DOCUMENT_ROOT/.......");
//include"config.php";
if(!mysql_table_exist($dbname,$tblshoutbox))
{
die("Please run installer.php to setup table '$tblshoutbox' in your '$dbname' name");
}
if($HTTP_POST_VARS[yousay]&&$HTTP_POST_VARS[name]):
$date = strftime("%m/%d/%Y",$vntime);
$time = strftime("%H:%M:%S",$vntime);
$yousay=trim($yousay);
$yousay=str_replace("\\","",$yousay);
$yousay=addslashes($yousay);
$save_db="INSERT INTO $tblshoutbox VALUES('','$name','$email','$url','$yousay','".time()."')";
$act_save_db=mysql_db_query($dbname,$save_db,$connection);
endif;
?>
<table width="100%" align="right" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<form method="post" id="message">
<table width="100%" align="right" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<input type="text" name="name" size="12" class="textfield" onFocus="if(this.value=='IRGENDWER')this.value=''" onBlur="if(this.value=='')this.value='IRGENDWER'" value="IRGENDWER" maxlength="15">
</td>
<td class="navitext"><b>Name</b>
</td>
</tr><tr>
<td><input name="yousay" type="text" class="textfield" onFocus="if(this.value=='hatte nix zu sagen ...')this.value=''" onBlur="if(this.value=='')this.value='hatte nix zu sagen ...'" value="hatte nix zu sagen ..." size="12" maxlength="66">
</td>
<td class="navitext"><b>Message</b>
</td>
</tr><tr>
<td colspan="2"><input type="submit" value="Nur 1 Versuch ..." class="button">
</td></tr>
</table>
</form>
</tr>
<?
$query=mysql_db_query($dbname,"SELECT * FROM $tblshoutbox ORDER BY id DESC",$connection);
$total=mysql_num_rows($query);
$max = "2";
//$total = "198";
if (! $page > 0) {
$page = 1;
}
if (intval($total/$max)+1 < $page) {
$page=1;
}
if ($total >= $page*$max) {
$lastrec = $page*$max;
}
else {
$lastrec = (($page-1)*$max) + ($total % $max);
}
echo "<tr><td><hr align=\"center\"></td></tr>";
for ($j=($page-1)*$max; $j<$lastrec; $j++):
$p_usr=mysql_result($query,$j,"name");
$p_email=mysql_result($query,$j,"email");
$p_url=mysql_result($query,$j,"url");
$p_say=mysql_result($query,$j,"yousay");
$p_date=mysql_result($query,$j,"insecond");
$date = strftime("%d.%m.%y",$p_date);
$time = strftime("%H:%M",$p_date);
$div_p_say = explode(" ",$p_say);
$count_p_say = count($div_p_say);
for($i=0;$i<=$count_p_say;$i++):
if (ereg("^.+@.+\\..+$", $div_p_say[$i])):
$div_p_say[$i] = "[<a href=\"mailto:$div_p_say[$i]\">e-mail</a>]";
$check = true;
elseif ((eregi("^[http://].+http://www.+\\..",$div_p_say[$i])) || (eregi("www.+\\..",$div_p_say[$i]))):
$div_p_say[$i] = str_replace("http://","",$div_p_say[$i]);
$div_p_say[$i] = "[<a href=\"http://$div_p_say[$i]\" target=\"_blank\">homepage</a>]";
$check = true;
else:
$check = false;
endif;
if((strlen($div_p_say[$i])>20) && ($check==false)):
$div_p_say[$i] = wordwrap($div_p_say[$i],24," ",1);
if(!eregi("^[_\.0-9a-z-]",$div_p_say[$i])):
$newtext .= "{f} ";
else:
$newtext .= $div_p_say[$i].' ';
endif;
else:
$newtext .= $div_p_say[$i].' ';
endif;
endfor;
?>
<tr>
<td class="message"><b><?=$p_usr?></b> am:<br><span style="color:#8B8B7A;font-family:arial;font-size:7pt">[<?=$date?> | <?=$time?>]</span></td>
</tr>
<tr>
<td class="message"><?=$newtext?></td>
</tr>
<tr>
<td><hr align="center"></td>
</tr>
<?
unset($newtext);
endfor;
echo "<tr><td class=\"navitext\">";
echo "<b>goto:</b> ";
////-------- Zurück- und Vorblättern Neu Anfang
$range= 2; // Seitenzahl von der jetzigen Seite - 3 bis + 3 werden angezeigt.
if ($page - $range > 1){ // immer Seite 1 anzeigen, wenn weitergeblättert
echo "<a href=\"$PHP_SELF?page=1\">1</a>";
}
if($page -1 > 0){
echo "<a href=\"$PHP_SELF?page=".($page-1)."\"><<<</a>";
}
//niedrigste Seitenzahl bestimmen und verhindern dass kleiner 1
if ($page - $range <= 0){
$start = 1;
}
else {
$start = $page - $range;
}
// höchste Seitenzahl bestimmen und verhindern dass größer $total und vehindern das leere Seite angezeigt wird
if ($page + $range > $total/$max){
if($total%$max > 0){
$ende = intval($total/$max) +1;
}
else{
$ende = intval($total/$max);
}
}
else {
$ende = $page + $range;
}
for ($i=$start; $i<= $ende; $i++) { // Start und Endwerte einsetzen.
if ($i != $page) {
echo "<a href=\"$PHP_SELF?page=$i\">$i</a>";
}
else {
echo "<span class=\"navizahl\">$i</span>";
}
print " ";
}
if ($page < intval($total/$max)){
echo "<a href=\"$PHP_SELF?page=".($page+1)."\">>>></a>";
}
if ( $page < ($total/$max)-$range){ //Letzte Seitenzahl nur anzeigen wenn sie nicht sowieso schon angezeigt wird ...
if($total%$max > 0){
$ende = intval($total/$max) +1;
echo "<a href=\"$PHP_SELF?page=$ende\">$ende</a>";
}
else{
$ende = intval($total/$max);
echo "<a href=\"$PHP_SELF?page=$ende\">$ende</a>";
}
}
////-------- Zurück- und Vorblättern Neu Ende
echo "</td></tr>";
?>
</table>
Grüße RonMcDon
Zuletzt bearbeitet: