Loading...   Upload Image

Internal Server Error beim Poll ScriptForum » Tutorials » Help » Internal Server Error beim Poll Script

Neues Thema verfassen Neues Thema

  • Steffi2012User ist offline
    Newbie



    Registriert: 18.02.2012
    Beitraege: 15

    12.04.2012 um 00:50 Uhr

    Hi Alice,

    ich habe versucht das Poll Script in meine Homepage einzubauen. Anfangs hat es auch problemlos geklappt, allerdings bekomme ich prompt den Fehler vom Browser angezeigt

    Internal Server Error
    
    The server encountered an internal error or misconfiguration and was unable to complete your request.
    
    Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.
    
    More information about this error may be available in the server error log.


    sobald ich in einer Umfrage etwas abgestimmt habe. Ich vermute, dass der Fehler irgendwo bei "function show_ergebnis($id)" liegt, weil "function abstimmen($poll_id)" geklappt hat. Sobald ich auch die Zeile 80 in der poll.php "show_ergebnis($id); // Auswertung anzeigen" entferne, wird mir die index.php ganz normal angezeigt (allerdings natürlich ohne Auswertung).
    Ich habe übrigens lediglich die Tabellennamen geändert und ich müsste sie eigentlich überall angepasst haben...

    Funktioniert das Script unter PHP5?

    Vielen Dank für den guten Support, Alice. :)

    Liebe Grüße
    Steffi



  • AliceUser ist offline
    Admin


    Alice

    Registriert: 14.12.2006
    Beitraege: 1059

    12.04.2012 um 01:08 Uhr

    Hallo Steffi,

    das Script laeuft auch unter PHP 5, wenn man mal von ein paar Notices allá Notice: Undefined index: absieht, wobei man die ja ausblenden lassen kann, die stoeren ja nicht die Funktion des Scriptes.

    Ich hatte mir auch grad noch mal die Dateien aus dem Tutorial heruntergeladen, wenn du es so nutzt wie es dort ist muesste rein theoretisch alles funktionieren, auch unter PHP5.

    Mhh, funktionierte es denn reibungslos bevor du die Tabellennamen geaendert hattest?

    Liebe Gruesse
    Alice





    ... { signatur } ...
  • Steffi2012User ist offline
    Newbie



    Registriert: 18.02.2012
    Beitraege: 15

    12.04.2012 um 01:26 Uhr

    Hallo,

    erstmal danke für die rasche Antwort. :)
    Also ich habe die Tabellennamen mal wieder umbenannt und die original Dateien hochgeladen, leider mit demselben Ergebnis. Könntest du das Script eventuell mal auf deinem Server testen?
    Ansonsten werde ich mal meinen Hoster fragen, der kann ja einen Blick ins Error Log werfen...

    Liebe Grüße
    Steffi



  • AliceUser ist offline
    Admin


    Alice

    Registriert: 14.12.2006
    Beitraege: 1059

    12.04.2012 um 21:24 Uhr

    Hallo Steffi,

    ich kann den 500er Error nicht nachvollziehen.

    Hab das Script bei mir auf den Server geladen und lasse es unter PHP 5.3 laufen - funktioniert...

    Kannst du gerne selbst testen: http://unnecessary.de/grafixx_poll/index.php53

    Was spricht denn der Errorlog?

    Liebe Gruesse
    Alice



    ... { signatur } ...
  • Steffi2012User ist offline
    Newbie



    Registriert: 18.02.2012
    Beitraege: 15

    14.04.2012 um 12:11 Uhr

    Hmmm, mein hoster meint, dass es ein Problem beim Eintrag in die Datenbank gibt.
    Das sagt der error log:

    Access denied with code 500 (phase 4). Pattern match "(?:\b(?:(?:s(?:elect list because it is not contained in (?:an aggregate function and there is no|either an aggregate function or the) GROUP BY clause|upplied argument is not a valid (?:(?:M(?:S |y)|Postgre)SQL|O(?:racle|DBC)))|S(?:yntax error converti ..." at RESPONSE_BODY. [file "/etc/apache2/security/modsecurity_crs_50_outbound.conf"] [line "23"] [id "970003"] [msg "SQL Information Leakage"] [severity "WARNING"] [tag "LEAKAGE/ERRORS"]



  • Steffi2012User ist offline
    Newbie



    Registriert: 18.02.2012
    Beitraege: 15

    15.04.2012 um 23:08 Uhr

    Hmm, hab gerade nochmal in den Code geguckt, aber keine Ahnung warum's nicht geht.
    Weißt du eventuell weiter?



  • AliceUser ist offline
    Admin


    Alice

    Registriert: 14.12.2006
    Beitraege: 1059

    16.04.2012 um 00:08 Uhr

    Aehm ja ...

    Versuch mal in der Datei poll.php die DB Abfrage der function show_ergebnis

    $umfrage = mysql_query("SELECT a.frage, SUM(b.stimmen) AS total FROM grafixx_poll a INNER JOIN grafixx_antworten b ON a.id = b.poll_id WHERE a.id = '$id'");


    durch diese hier zu ersetzten:
    $umfrage = mysql_query("SELECT frage, SUM(stimmen) AS total FROM grafixx_poll INNER JOIN grafixx_antworten ON grafixx_poll.id = grafixx_antworten.poll_id WHERE grafixx_poll.id = '$id'");


    Und schau mal ob es dann funktioniert ...

    Liebe Gruesse
    Alice



    ... { signatur } ...
  • Steffi2012User ist offline
    Newbie



    Registriert: 18.02.2012
    Beitraege: 15

    16.04.2012 um 21:43 Uhr

    Hat leider nichts gebracht. Das Problem liegt bei SUM(stimmen). Ich habe es jetzt so abgeändert:

    function show_ergebnis($id){ // Abstimmungsergebnis anzeigen
    
    	if(is_int($id)){ // Sofern ID uebergeben wurde und ID = Zahl
    
    		// Frage auslesen => nur aktiver Umfragen | INNER JOIN => Anzahl aller abgegebenen Stimmen zaehlen
    		$umfrage = mysql_query("SELECT frage, stimmen AS total FROM grafixx_poll INNER JOIN grafixx_antworten ON grafixx_poll.id = grafixx_antworten.poll_id WHERE grafixx_poll.id = '$id'");
    		$stimmen = mysql_query("SELECT SUM(stimmen) AS stimmenzahl FROM grafixx_poll INNER JOIN grafixx_antworten ON grafixx_poll.id = grafixx_antworten.poll_id WHERE grafixx_poll.id = '$id'");
    		$poll = mysql_fetch_object($umfrage);
    				
    		echo "<ul class=\"poll\">\n";
    		echo "<li><h2>".$poll->frage."</h2></li>\n"; // Frage ausgeben
    	
    		// Antworten auslesen
    		$abfrage = mysql_query("SELECT antwort, stimmen FROM grafixx_antworten  WHERE poll_id = '$id'");
    
    		$total = $poll->total; // Anzahl aller bisher abgegebener Stimmen
    
    		while($row = mysql_fetch_object($abfrage)){ // Antworten ausgeben
    		
    	
    			if($row->stimmen > 0){ // Prozent berechnen
    				$prozent = round($row->stimmen * 100 / $total);
    			}else{
    				$prozent = 0;
    			}	
    
    			echo "<li><div class=\"rate\"><div style=\"width: ".$prozent."%;\" class=\"vote\">&nbsp;</div>".$prozent."%</div>\n";
    			echo $row->antwort."</li>\n";
    		}
    		$row = mysql_fetch_assoc($stimmen);
    		$stimmenzahl = $row['stimmenzahl'];
    		echo "</ul>\n <small>Anzahl abgegebener Stimmen: ".$stimmenzahl."</small>\n";
    		
    	} // close id
    } // close function show_ergebnis


    Habe eine seperate Abfrage hinzugefügt, die nur die Stimmen zählt. Klappt alles problemlos!


    EDIT: Ist es eigentlich nicht möglich 2 oder mehrere Umfragen auf einer Seite anzuzeigen? Da alle Forms denselben Namen "Abstimmen" haben, wird jede Umfrage ausgeführt...



    Der Beitrag wurde insgesamt 1 mal editiert, zuletzt 16.04.2012 um 22:44 Uhr ...
  • AliceUser ist offline
    Admin


    Alice

    Registriert: 14.12.2006
    Beitraege: 1059

    17.04.2012 um 12:17 Uhr

    Zitat von Steffi2012:
    Habe eine seperate Abfrage hinzugefügt, die nur die Stimmen zählt. Klappt alles problemlos!

    Gerade die wollte ich ja mit dem Innerjoin eigentlich vermeiden ^^
    Ich muss mir das noch mal genauer anschauen, warum das nicht funktioniert. Ich hab da grad keinen Kopf zu, wobei es ja auf meinen Servern problemlos funktioniert o.0

    EDIT: Ist es eigentlich nicht möglich 2 oder mehrere Umfragen auf einer Seite anzuzeigen? Da alle Forms denselben Namen "Abstimmen" haben, wird jede Umfrage ausgeführt...

    Ersetzt die function show_poll durch diese hier, dann sollte es klappen...
    function show_poll($id){ // Umfrage ausgeben
    	
    	if(is_int($id)){ // Pruefen ob $id = Zahl
    	
    		// Frage auslesen => nur aktiver Umfragen
    		$umfrage = mysql_query("SELECT frage FROM grafixx_poll WHERE id = '$id' AND status = 'aktiv'");
    		$row = mysql_fetch_object($umfrage);
    		 
    		$user_ip = $_SERVER['REMOTE_ADDR']; // IP
    			
    		// pruefen ob schon abgestimmt wurde => DB Abfragen
    		$select = mysql_query("SELECT ip FROM grafixx_poll_ip WHERE poll_id = '$id' AND ip = '$user_ip'");
    		$check_ip = mysql_num_rows($select); 
    	
    		if($check_ip > 0){ // Wenn schon abgestimmt wurde
    				
    			show_ergebnis($id); // Auswertung anzeigen
    				
    		}else{ // Wenn noch nicht abgestimmt wurde => Optionen anzeigen
    	
    			if(isset($_POST['abstimmen']) && ($_POST['gpoll_id'] == "$id")){ // Wenn Abstimmen gedrueckt
    			
    				abstimmen($id); // Abstimmen
    
    			}else{ // Wenn nicht abstimmen gedrueckt
    	
    				// Formular ausgeben
    				echo "<form action=\"\" method=\"post\">\n";
    				echo "<ul class=\"poll\">\n";
    				echo "<li><h2>".$row->frage."</h2></li>\n";	// Frage ausgeben
    		
    				// Antworten auslesen
    				$abfrage = mysql_query("SELECT id, antwort FROM grafixx_antworten WHERE poll_id = '$id'");
    			
    				while($row = mysql_fetch_object($abfrage)){ // Antworten ausgeben
    					echo "<li><input type=\"radio\" name=\"vote\" value=\"".$row->id."\" class=\"radio\" /> ".$row->antwort."</li>\n";
    				}
    				
    				echo "<input type=\"hidden\" name=\"gpoll_id\" value=\"".$id."\" />\n";
    				echo "<li><input type=\"submit\" name=\"abstimmen\" value=\"Abstimmen\" class=\"button\" /></li>";	
    				echo "</ul>\n";
    				echo "</form>";
    	
    			} // close submit
    		} // close Check_ip
    	} // close id
    } // close function show_poll


    Liebe Gruesse
    Alice



    ... { signatur } ...
  • Steffi2012User ist offline
    Newbie



    Registriert: 18.02.2012
    Beitraege: 15

    26.04.2012 um 00:53 Uhr

    Danke. Es klappt prima. Danke für den tollen Support und deine Skripte. :)




[ 1 ] Seite 1 von 1


Affiliates:   Chibi Graphics  •   Pat DG  •   Design Grafixx  •   Blue-Graphics  •   Gallery Yuri  •   The Seduction  •   Colorful Gfx  • Show all ...
designenlassen.de - Der Design-Marktplatz für Webdesign, Logo-Design, Flyerdesign u.v.m.        ALL-INKL.COM - Webhosting Server Hosting Domain Provider