Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

PHP: Cookies

Hi,
Ich will nen Voting für nen Game erstellen... klappt auch mittlerweile alles... bis auf die IP sperre...
Aber woran liegt das?

Zitat
<h2>Rating:</h2>
1 = Sehr schlecht / 10 = Sehr gut<br>
<form name="Rating" action="Diablo2lod.php">
<input type="radio" name="Wert" value="1">1
<input type="radio" name="Wert" value="2">2
<input type="radio" name="Wert" value="3">3
<input type="radio" name="Wert" value="4">4
<input type="radio" name="Wert" value="5">5
<input type="radio" name="Wert" value="6">6
<input type="radio" name="Wert" value="7">7
<input type="radio" name="Wert" value="8">8
<input type="radio" name="Wert" value="9">9
<input type="radio" name="Wert" value="10">10<br>
<br>
<input type="submit" name="Abstimmen" value="Abstimmen">
</form>
<?php
$Diab2Rate = "Diab2Rate.csv";
$Rate = array();
$y = 0;
if($_REQUEST['Abstimmen'])
{
  print_r($_COOKIE);
  if(isset($diablo2lod))
  {
    if(empty($_REQUEST['Wert'])) echo "Bitte alle Felder ausf&uuml;llen!<br>";
    else
    {
      $fp = fopen($Diab2Rate,"a");
      flock($fp,2);
      fputs($fp,$_REQUEST['Wert']."#");
      flock($fp,3);
      fclose($fp);
      header('Location: Diablo2lod.php');
      $ip = getenv ("REMOTE_ADDR");
      setcookie ("diablo2lod",$ip,time()+86400);
    }
  }
  else echo "Huilentz";
}
else echo $_REQUEST['Wert'];

if(file_exists($Diab2Rate)) {
  $fp = fopen($Diab2Rate,"r");
  while($Zeile = fgetcsv($fp,500,"#")) {
    array_push($Rate,$Zeile);
  }
  $Diff1 = count($Rate[0]);
  $Diff = $Diff1-1;
  $RateS = array_sum($Rate[0]);
  $Rating = $RateS/$Diff*10;
  echo "Rating: ".round($Rating,0)."% bei $Diff Stimme(n).";
  fclose($fp);
}
else echo "<span class=comment>Noch nicht Abgestimmt.</span>";
?>

Vielen dank schonmal...

Gruß Marcel

PS: Die seite wird direkt angesprochen... also nicht über ne Subdomain... (hatte das nämlich auch mal)
« Letzte Änderung: 15.04.07, 14:31:31 von terminated »

Antworten zu PHP: Cookies:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
... klappt auch mittlerweile alles... bis auf die IP sperre...

Könnte man das auch so formulieren, dass man sich das aktuelle Verhalten des Skripts nicht erst selber erdenken muss? "Klappt nicht" ist keine Problembeschreibung.

Im Skript an sich fallen ein paar Dinge auf, die schonmal nicht funktionieren können. Wo wird denn jemals die Variable $diablo2lod gesetzt? Denn diese steht ja als Bedingung in der if-Klausel, wird aber nirgends initialisiert, somit ergibt isset($diablo2lod) logischerweise immer false. Einer von vielen Nebeneffekten ist, dass dein Cookie praktisch nie gesetzt wird.

Auch scheint dir fremd zu sein, dass alle Anweisungen nach einem header()-Redirect ignoriert werden (Terminierung mit exit; fehlt obendrein). Wenn vor einer header()-Anweisung Ausgaben gemacht werden, müsste es auch Fehlermeldungen hageln (sofern nicht durch zu tolerantes error_reporting verhindert).

Da gibt's also noch einiges für dich zu tun :)

greez 8)
JoSsiF

emm, hört sich alles noch kompliziert an, aber ich les mir das noch ca. 537 mal durch, dann werds auch ich raffen...
Danke für den Tipp mit header... klar eigentlich, aber man muss dabeí eben denken.. und das scheint bei mir ne Schwäche.

Also... vielen dank!!!

Gruß

Emm ja, hab ne Lösung gefunden...
Wie gesagt, das mit header war dann klar... das Cookie war gesetzt und ich hab die Abfrage
If $_REQUEST <-- auf den Submitbutton gelegt und nicht auf das Formular...
Naja... Anfängerfehler...
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
und ich hab die Abfrage
If $_REQUEST <-- auf den Submitbutton gelegt und nicht auf das Formular...

*nixversteh*

Aber wenn's funktioniert... ;)

« PS3 NetworkHTML: aktiven link anzeigen »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Gameport
Der Gameport ist ein Anschluss, der auf vielen frühen PCs und seit Ende der 1980er Jahre auch auf PC Soundkarten zu finden war. Während in den frühen 1980e...

Gamescom
Die gamescom ist Europas bedeutendste Messe für interaktive Unterhaltungselektronik, insbesondere für Computer- und Videospiele. Die Gamescom findet jährli...

Eingabefelder
Als Eingabefelder werden in einem Programm oder in Online-Formularen die Stellen bezeichnet, an denen Informationen eingetippt werden können. Die Beschriftung neben ...