[Variablen] Remote_addr

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #31
    naja gut, sicherer geht esnicht, außer mit cookies und ipadressen, also muss ich das wohl so machen, loginscript kann ich ausschließen. könntet ihrt mit evtl helfen das scriptzu schreiben, denn alleine bekomme ich das wahrscheinlich nicht hin. also die funktion ip_sperre mit einer ip-sperre sowie einem cookie sio umschreiben, damit es relativ sicher ist.

    wenn ihr mir beim schreiben des scripts helfen könntet wäre ich sehr sehr dankbar !!!!

    Kommentar


    • #32
      PHP-Code:
      $ipbarrier 60//Zeit in der die IP-Sperre gilt
      $ip $_SERVER['REMOTE_ADDR'];
      $proxyip $_SERVER['HTTP_X_FORWARDED_FOR'];

      function 
      exists(){
       global 
      $ip,$proxyip;
       if(isset(
      $_COOKIE['bla']) && $_COOKIE['bla']=="blo"){
        return 
      true;
       }

       
      $lines file("ips.txt");
       foreach(
      $lines as $line_x){
        
      $line explode("##",$line_x);
        if(
      $line[1] == $ip || $line[2] == $proxyip){
         if(
      $line[0] >= time()){
          return 
      true;
         }
        }
       }
       return 
      false;
      }
      /* dein Eintrag in die Textdatei sieht dann so aus:
      $text = (time()+$ipbarrier)."##".$ip."##".$proxyip."\n";
       */ 
      und dann fragst du ab:

      if(exists()){/* existiert leider schon */}else{/* Punkte Dazu, existiert noch net */}

      damit solltest du es wohl schaffen

      Kommentar


      • #33
        Original geschrieben von general_xxx wenn ihr mir beim schreiben des scripts helfen könntet wäre ich sehr sehr dankbar !!!! [/B]
        ok, fangen wir, eh du, mal ganz klein an, dein script zu schreiben. vorerst nur auf ip-basis.

        dir steht also eine mysql-db zur verfügung, also benutzen wir die auch für die ips und keine txt-dateien.
        zwei felder dürften genügen: ip und timestamp.

        so, seite wird aufgerufen:
        1. query, das alle ips löscht, deren timestamp älter als x stunden ist
        2. ip herausfinden (vorerst nur $_SERVER['REMOTE_ADDR']; - habe da gerade noch ne gute funktion gefunden) und abfragen, ob ip bereits in der tabelle
        3. wenn 2 'ja' - ausgabe "bereits beklaut ..."
        4. wenn 2 nein - ausgabe "alles ok - später dann noch berechnungen" und die ip mit dem aktuellen timestamp in db eintragen

        so, jetzt hast du erstmal etwas zu tun

        Kommentar


        • #34
          so, ich habe das script jetzt soi gut ich kann geschjrieben, und es klappt leider noch nicht ganz :-(

          also das ist mein bearbeitetes script:

          PHP-Code:
          <?php
          session_start
          ();
          require(
          "connect.inc.php");
          include 
          "config.inc.php";
          srand(microtime()*10000000);

          $ipbarrier 86400//Zeit in der die IP-Sperre gilt
          $ip $_SERVER['REMOTE_ADDR'];
          $proxyip $_SERVER['HTTP_X_FORWARDED_FOR'];


          function 
          schreiben($datei,$mode) { 
             global 
          $ip,$proxyip
             
          $fp = @fopen($datei,$mode); 
             
          flock($fp,2); 
             
          fwrite($fp,(time()+$ipbarrier)."##".$ip."##".$proxyip."\n"); 
             
          flock($fp,3); 
             
          fclose($fp);

          }

          function 
          exists(){

          if(!
          file_exists("ips.txt")) { 
                
          $datei fopen("ips.txt","w+"); 
                
          fclose($datei); 
             } 

          global 
          $ip,$proxyip;
           if(isset(
          $_COOKIE['bla']) && $_COOKIE['bla']=="blo"){
            return 
          true;
           }

           
          $lines file("ips.txt");
           foreach(
          $lines as $line_x){
            
          $line explode("##",$line_x);
            if(
          $line[1] == $ip || $line[2] == $proxyip){
             if(
          $line[0] >= time()){
              return 
          true;
             }
            }
              else
              {
              
          schreiben("ips.txt","a+");
              }
           }
           return 
          false;
          }

          $abfrage=mysql_query("select * from dieb_user_".$digit.
          WHERE `id` = '"
          .$_GET['id']."'");

          while (
          $row2 mysql_fetch_array($abfrage))
          {
          $names $row2["user"];
          $bekid $row2["bekid"];
          $punkte $row2["geld"];
          $aktiviert $row2["aktiviert"];
          }

          $text '<B>"'.$names.'"</b>hat durch Sie einen 
          Punkt bekommen. Er ist dem Jackpot nun wieder einen 
          Schritt näher gekommen!'
          ;

          if(
          $aktiviert == '0') {
               
          $inhalt .= '<form action="spiel.php" method="post">';
               
          $inhalt .= '<p align="center">Der Account ist noch nicht aktiviert,
           der Benutzer kann noch keine Punkte 

          sammeln!<br><br>'
          ;
               
          $inhalt .= '<input type="hidden" name="username"
           value="'
          .$_POST['username'].'">';
               
          $inhalt .= '<input type="submit" name="zurueck"
           value="Zur&uuml;ck"></p>'
          ;
               
          $inhalt .= '</form>';
               
               }elseif(
          exists()==false) {
          $inhalt .= $text;
          $neuepunkte $punkte+1;
          $neubekid $bekid+1;
          $beklauteins beklauteins+1;
          mysql_query("update dieb_user_".$digit." Set geld = 
          '"
          .$neuepunkte."', bekid = '".$neubekid."' WHERE id = 

          '"
          .$_GET['id']."'");
          $inhalt .= '<BR><BR>Der User "'.$names.'" hat jetzt 
          '
          .$neuepunkte.' '.$waehrung.'!';
          $inhalt .= '<BR><BR>Insgesammt wurden bis jetzt 
          "'
          .$beklauteins.'" Leute überfallen !';
          }
          else
          {
          $inhalt .= 'Sie können pro Tag nur ein mal beklaut werden!!!';
          }
          $inhalt .= '<BR><BR>Wollen sie auch ein Dieb werden ? Dann melden 
          sie sich an, oder informieren sie sich.<BR><a 

          href="registrieren.php">Weiter zur Anmeldung!</a><BR>
          <a href="index.php?seite=info">Was ist "Diebspiel" ?</a>'
          ;
          $template implode("",file("template/style.html"));
          $template str_replace("<?inhalt?>"$inhalt$template);
          echo (
          $template);
          ?>
          leider wird nix in die ips.txt geschrieben, und die ipsperre funktionier dadurch auch nich. Weiß jemand von euch, warum das nicht finktioniert ?


          thx für eure Hilfe
          Zuletzt geändert von general_xxx; 12.08.2006, 01:13.

          Kommentar

          Lädt...
          X