IF Script Problem

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

  • IF Script Problem

    Hi Leute,

    ich habe folgendes Problem mit meinem Script:

    PHP-Code:
    <?

        $filename = "C:\\XAMPP\\xampp\\htdocs\\logs\\ip.log";

        $filepointer = fopen($filename, "r");
        
        $data = fread($filepointer, filesize($filename)); 
        
        $teil = explode(",", $data);
        
        $user_ip = str_replace(".","",getenv("REMOTE_ADDR"));
        $cteil = count($teil);
        
        for($i=0; $i<$cteil; $i++) {
        
           if($teil[$i] == $user_ip) {

            $status = "s1";

            };
            
         };
         
        fclose($filepointer);
        
        
        if($status != "") {
            echo "Du bist noch nicht geloggt!";
        } else {
            echo "Du bist bereits geloggt!";
        }

    ?>
    Die IP.log ist folgendermaßen aufgebaut:

    ,80144210171,84113888,84132210241,845951,828387235,21354224102
    usw.

    Wenn ich das Script in meine Seite include gibt er mir IMMER aus "Du bist noch nicht geloggt!" auch wenn ich jenes schon bin


    Hat jemand ne Idee was mit dem Script nicht stimmt ?

    Freue mich ueber jede Rueckmeldung


    Schöne Grüße
    kreek

  • #2
    PHP-Code:
    if($status != "") {
            echo 
    "Du bist noch nicht geloggt!";
        } else {
            echo 
    "Du bist bereits geloggt!";
        } 
    Ich würde sagen, du solltest die beiden echos tauschen

    $status ist nicht leer, also heisst es "Du bist noch nicht eingeloggt!"

    Kommentar


    • #3
      das ist doch nicht ernsthaft dein script um zu prüfen wer eingeloggt ist und wer nicht????

      was ist mit AOL-Usern die ständig die IP wechseln?

      schau dir lieber mal die session-funktionen an!
      Anwälte in Vulkane werfen -
      Wer anderen eine Bratwurst brät, der besitzt ein Bratwurstbratgerät!

      Kommentar


      • #4
        Ja ist auch gerade relativ egal, es geht darum das IMMER DASSELBE ausgefuehrt wird, immernur der 1. Teil der IF Abfrage egal ob IP inner Log steht oder nicht.

        Und nein das ist nicht mein einlog script, da wird normal was included hab das jetzt nur Beispielhaft abgeaendert

        Kommentar


        • #5
          ...IMMER DASSELBE ausgefuehrt wird, immernur der 1. Teil der IF Abfrage egal ...
          Was dann aber dafür spricht, dass $status nie leer ist. Hast du dir $status mal per var_dump() ausgeben lassen ? Ist es der erwartete Wert ? Hast du etwa in der Datei in die dieses Script inkludiert wird eine Var $status und überschreibst sie immer ?

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            Hast du etwa in der Datei in die dieses Script inkludiert wird eine Var $status und überschreibst sie immer ?
            Nein die Variable wird nirgendwo verwendet ausser in diesem Script.

            Per var_dump hab ich net ausgeben lassen, es kann nur irgendwas mit diesem jenem Script sein was ich gepostet habe, aber was ?

            Kommentar


            • #7
              Dann lass dir den Wert per var_dump() ausgeben und schau ihn genau an

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Per var_dump hab ich net ausgeben lassen,
                Dann wird es wohl höchste eisenbahn! *autsch*

                Kommentar


                • #9
                  PHP-Code:
                  if(isset($status)) {
                          echo 
                  "Du bist bereits eingeloggt!";
                      } else {
                          echo 
                  "Du bist nicht geloggt!";
                      } 
                  Probier mal noch das

                  Gruss

                  tobi

                  p.s. ach ja und stell dein error_reporting schärfer ein
                  PHP-Code:
                  error_reporting(E_ALL); 
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    error_reporting(E_ALL); bringt keinen Fehler ans Tageslicht.


                    isset habe ich vorher schon drinne gehabt und schon durch das status != ersetzt

                    Andere Vorschläge ?

                    Kommentar


                    • #11
                      Andere Vorschläge ?
                      VAR_DUMP($status) aber pronto !!

                      Gruss

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        PHP-Code:
                        for($i=0$i<$cteil$i++) {
                            
                               if(
                        $teil[$i] == $user_ip) {

                                
                        $status "s1";

                                };
                                
                             };
                        //oder einfacher
                        if(in_array($user_ip,$teil) === true){
                            
                        $status 'blabla';
                        }
                        else{
                            
                        //was immer du willst

                        Gruss

                        tobi
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar

                        Lädt...
                        X