so eine art diebgame

nihilis

Grünschnabel
so eine art diebgame / reload Sperre

Also ich möchte, dass der User Punkte bekommt der "neu" auf die Homepage geht, ich möchte also durch Cookie 1 Tag, sowie IP Sperre(Proxys auch vorgesehen HTTP_X_FORWARDED_FOR ...) von einem Tag einsetzen, ich habs versucht jedoch klappt es mit meinem Code nicht :confused: , bitte um Hilfe

Code:
<?
// Datenbankangaben
$host = "localhost"; // SQL server
$db = "dname"; // Datenbankname
$user = "username"; // Benutzerlogin
$pw = ""; // Benutzerpasswort

$serverid  = @mysql_connect  ( $host, $user, $pw) or die ("Verbindung zur Datenbank nicht möglich!");

@session_start();
function userip() {
  // Falls Proxy
  if(getenv("HTTP_X_FORWARDED_FOR"))
    $ip = getenv("HTTP_X_FORWARDED_FOR");
  else
    // IP Adresse des Users
    $ip = getenv("REMOTE_ADDR");
 return $ip;
}

$usernameid = $_GET['usernameid'];
$ip = userip();
srand((double)microtime()*1000000);
$gewinnspielID = md5(uniqid(rand()));
$date = date("t");
$disagree= "warst schon hier";
$agree= "du hast5 punkte";

echo "$usernameid";
if (isset($_COOKIE['gewinnspiel']) or $_SESSION['gewinnspiel'] == "1337") {
  echo $disagree;
}
else {
     $sqlbefehl= "Select * FROM tblGewinnspiel where dtIP=$ip";
     $ergebnis  = mysql_query($sqlbefehl, $serverid);
     // wenn es keine 0 Zeilen sind, soll man schauen op die IP einen Tag alt ist
     if (@mysql_num_rows($ergebnis) == 0) {
      $sqlbefehl  =  "INSERT INTO tblGewinnspiel (fiUsernameID, dtPunkte, dtIP, dtDate, dtGsID) VALUES ('$usernameid', '5','$ip','$date','$gewinnspielID')";
      echo "$sqlbefehl";
      if ($ergebnis  = mysql_query($sqlbefehl, $serverid)) {
        setcookie ("gewinnspiel",  $gewinnspielID, time()+3600*24);
        $_SESSION['gewinnspiel'] = "1337";
        echo $agree;
      }
      else {echo "fu hard";};
     }
     else {
       $gs = @mysql_fetch_array ($ergebnis);
       $date2= $gs[dtDate];
       $tag = $date2["t"];
       $tagcheck = $date - $tag;
       echo $tagscheck;
       // wenn die IP nicht älter als einen Tag ist soll es in der DB gespeichert werden
       if ($tagcheck != 0) {
         $addgs  =  "INSERT INTO  tblGewinnspiel (fiUsernameID, dtPunkte, dtIP, dtDate, dtGsID) VALUES ('$usernameid', '5','$ip','$date','$gewinnspielID')";
         // wenn gespeichert werden sessionid und cookie gesetzt
         if ($add  = mysql_query($addgs, $serverid)) {
           echo $agree;
           $_SESSION['gewinnspiel'] = "1337";
           setcookie ("gewinnspiel",  $gewinnspielID, time()+3600*24);
         }
 	   }
       // wenn IP älter als einen Tag
       else { echo $disagree; }
     }
}
?>

danke im vorraus
 
Zuletzt bearbeitet:
Wenn du ein Cookie erstellen willst, darf der Header ncoh nicht gesetzt sein, also noch vor jeglicher Ausgabe muss du den Cookie setzen.
 
if ($ergebnis = mysql_query($sqlbefehl, $serverid)) {


das problem ist er bleibt in der kondition schon hängen...
ich hab die zeile mit dem sqlbefehl rausgegeben und im phpmyadmin getestet es klappt, nur warum hier nicht, bin am verzweifelt ich hasse alle comp sprachen...
 
Achso ok ja sorry, hab gestern schon gelesen, dass es Pflicht ist, jedoch hatte ich zu derzeit schon alles geschrieben, wir hier auch auf die neue Rechtschreibung geachtet, denn mit der kenn ich mich net wirklich aus :eek:

naja egal wär jetzt ma froh über nützliche Hilfe :>
 
Auf die neue Rechtschreibung musst Du nicht unbedingt achten.
Such Dir eine Rechtschreibung aus und an die haeltst Du Dich dann.
Ich find auch, dass die neue Rechtschreibung sozusagen "Deutsch fuer Doofe" ist und hab sie deswegen von Anfang an ignoriert.
 
Code:
if (!isset($_COOKIE['gewinnspiel']) or !isset($_SESSION['gewinnspiel'])) {
  $sqlbefehl= "Select * FROM tblGewinnspiel where dtIP=$ip";
  $ergebnis  = mysql_query($sqlbefehl, $serverid);
  // wenn 0 Zeilen User noch nicht hier
  if (@mysql_num_rows($ergebnis) == 0) {
    setcookie ("gewinnspiel",  $gewinnspielID, time()+3600*24);
    $_SESSION['gewinnspiel'] = $gewinnspielID;
    $sqlbefehl  =  "INSERT INTO  tblGewinnspiel (fiUsernameID, dtPunkte, dtIP, dtDate, dtGsID) VALUES ('$usernameid', '5','$ip','$date','$gewinnspielID')";
    if ($ergebnis = mysql_query($sqlbefehl, $serverid)) {
      echo "$agree";
    }
  }
  else {
    $gs = @mysql_fetch_array ($ergebnis);
    $date2= $gs[dtDate];
    $tag = $date2["t"];
    $tagcheck = $date - $tag;
    // wenn die IP älter als einen Tag ist soll es in der DB gespeichert werden
    if ($tagcheck != 0) {
      setcookie ("gewinnspiel",  $gewinnspielID, time()+3600*24);
      $_SESSION['gewinnspiel'] = $gewinnspielID;
      $sqlbefehl  =  "INSERT INTO  tblGewinnspiel (fiUsernameID, dtPunkte, dtIP, dtDate, dtGsID) VALUES ('$usernameid', '5','$ip','$date','$gewinnspielID')";
      if ($ergebnis  = mysql_query($sqlbefehl, $serverid)) {
      echo "$agree"; }
    }
  }
}
else {
  echo "$disagree";
}

jetzt hab ich es nochmal umgeschrieben, jetzt schreibt er zwar in die DB rein und cookie sperre funktioniert auch, jedoch funktioniert die IP Sperre nicht mehr :confused:
bringt ne session Sperre eigentlich was? die kann man ja auch wie die Cookies löschen, also nein oder?
 
Zurück