zeitweiser auftrettender Whitescreen

wildthingtch

Mitglied
Noch n problemfall
mein votingskript mit IP-sperre macht mir sorgen
zeitweise gibt es bei einigen usern mit offener IP (sprich die revote-sperre ist abgelaufen oder es ist ein neuer user) statt dem redirekt einen whitescreen ohne weitere Folgen (Hänger?)
hier der code meiner vote.php:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
include('admin/config.php');
$vote= $_POST['platz'];
$timestamp= time();
$repost_sperre= 60*10;
$ip=$_SERVER['REMOTE_ADDR'];
$goto="http://hitparade.radio-powerdream.ch/index.php";	
	
	$sql88 = "SELECT * FROM `spam` ORDER BY `Zeit` DESC";
		$result88 = mysql_query($sql88) ;
		if(mysql_num_rows($result88)) {
			while($row88 = mysql_fetch_array($result88)) {
				if($row88['Zeit']<($timestamp-$repost_sperre)){
					$result="";
					$tempid=$row88['id'];
					$result=mysql_query("DELETE FROM `spam` WHERE `id` = $tempid LIMIT 1;");
					if(!$result){
						die("Konnte die Abfrage nicht ausf?hren: " . mysql_error());
					}
				}
			}
		}
			
	
	$sql891 = "SELECT * FROM spam";
	$result891 = mysql_query($sql891); 
	if(mysql_num_rows($result891)) {
		while($row891 = mysql_fetch_array($result891)) {
			if($row891['IP']==$ip){
				$form_fehler=1;
				$post_allowed_in=($repost_sperre-($timestamp-$row891['Zeit']));
				echo "Sie haben bereits gevotet, Sie k?nnen erst wieder in ".$post_allowed_in." Sekunden voten.<br />";
				?><a href=<?$goto?>>back</a><?
				break;
			}
		}
	}
	
	else{

		$result=mysql_query("INSERT INTO `spam` (`IP` , `Zeit`) VALUES ('$ip', '$timestamp');");
		
			
mysql_query ("UPDATE `hitlist` SET `VOTES`=`VOTES`+1 WHERE `PLATZ`=$vote");

 header("location:$goto"); }
sieht jemand das problem?
url des skriptes siehe $goto
 
Ich versteh einen Satz nicht?

"...statt dem redirekt einen whitescreen ohne weitere Folgen (Hänger?)"


Füge doch einfach mal ein paar else{ } Pfade ein, vielleicht wird einer angesprochen, welchen du gar nicht einplanst, weil der Zustand nie erreicht werden kann, außer durch einen unerwarteten Fehler.


Kleiner Tipp zur Übersichtlichkeit:
aus
PHP:
?><a href=<?$goto?>>back</a><?
folgendes:
PHP:
echo("<a href='".$goto."'>back</a>");
Kein Muss, es klappt ja auch so!
 
Zuletzt bearbeitet:
PHP:
   else{ 

        $result=mysql_query("INSERT INTO `spam` (`IP` , `Zeit`) VALUES ('$ip', '$timestamp');"); 
         
             
mysql_query ("UPDATE `hitlist` SET `VOTES`=`VOTES`+1 WHERE `PLATZ`=$vote"); 

 header("location:$goto"); }
gemeint ist dieser abschnitt, der den votenden dann zurück auf die Startseite schickt

du meinnst also ich solle jede if mit ner else überprüfen
 
Ja um zu gucken, wo der Fehler ist!

also wird der headerbefehl nicht ausgeführt?
Wenn er wirklich zu der Seite kommt, würde ich auch an index?XXX=1 senden und dann mit $_GET[XXX] == 1 prüfen,damit er weiß, das er erfolgreich einen Eintrag vorgenommen hat.
 
nein steusi das problem ist folgendes
der user gibt auf der index die kennziffer seines Favoriten ab
var 1 er hat vor weniger als 10 min gevotet->Text mit Votingsperre x Sekunden erscheint, zurück mit hyperlink, skript hält an der break-anweissung
und bei normalem voting sollte das skript durchlaufen und dann nach dem db-eintrag automatisch wieder auf die index.php zurück springen.
jedoch gibt es manchmal bei gewissen usern über den Zeitraum von ca 2 stunden einen whitescreen, der vote ist weder in der Datenbank noch in der ip-datenbank ersichtlich.
ergo vermute ich das ich beim scriptaufbau n fehler hab, jedoch funktioniert das skript bei 70 prozent der votings einwandfrei was es wieder ausklammert:confused:
 
Zurück