Ankündigung

Einklappen
Keine Ankündigung bisher.

IF-Selektion funktioniert nicht

Einklappen

Neue Werbung 2019

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

  • IF-Selektion funktioniert nicht

    OK, folgendes:

    die Variable wird aus einer Datei ausgelesen und zwar mit folgendem Script (global_variablen.php):
    PHP-Code:
    <?php
    $datei4 
    file('test.txt'); 

                       foreach (
    $datei4 as $search)
                               if (
    substr($search,0,strlen('Keep')) == 'Keep') {
                                  
    $keep str_replace("Keep ","",$search);
                                  break;
                               } 
    ?>
    (Die Variable hat JETZT bei mir den Wert Off)

    in einer anderen Datei möchte ich diese Variable auswerten.
    Und zwar so:

    PHP-Code:
    <?php
           
    include 'global_variablen.php'#global.php einfuegen
             
             
    echo $keep;
             echo 
    "<select name=keep id=keep>\n";
             echo 
    "<option " .($keep == 'On' "selected" "") . ">On</option>\n";
             echo 
    "<option " .($keep == 'Off' "selected" "") . ">Off</option>\n";
             echo 
    "</select>\n";  
    ?>
    Das Problem: es zeigt immer On (es wird weder On noch Off 'selected') an egal was ich mache, hab mehrere IF-Selektionen probiert, keine hat funktioniert.
    Ich hoffe Ihr könnt mir helfen oder ist was für die Profis ??
    :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

  • #2
    Ich hoffe Ihr könnt mir helfen oder ist was für die Profis ??
    Sicher doch ...

    Kommentar


    • #3
      Probier mal das. Wenn das hilft, hast Du irgendwelche Zeichenfehler in Deinem zweiten Script. Wenn nicht, stimmt was mit dem ersten Script nicht.

      <?php
      include 'global_variablen.php'; #global.php einfuegen

      echo $keep;
      echo "<select name=keep id=keep>\n";
      echo "<option name=\"keep\" value=\"on\""; if ($keep == 'On') {print " selected";} print ">On</option>\n";
      echo "<option name=\"keep\" value=\"off\""; if ($keep == 'Off') {print " selected";} print ">Off</option>\n";
      echo "</select>\n";
      ?>

      Kommentar


      • #4
        Zitat von bombel
        Probier mal das. Wenn das hilft, hast Du irgendwelche Zeichenfehler in Deinem zweiten Script. Wenn nicht, stimmt was mit dem ersten Script nicht.

        <?php
        include 'global_variablen.php'; #global.php einfuegen

        echo $keep;
        echo "<select name=keep id=keep>\n";
        echo "<option name=\"keep\" value=\"on\""; if ($keep == 'On') {print " selected";} print ">On</option>\n";
        echo "<option name=\"keep\" value=\"off\""; if ($keep == 'Off') {print " selected";} print ">Off</option>\n";
        echo "</select>\n";
        ?>
        Danke für die Ultra schnelle Antwort. Werde es heute Abend testen sobald ich wieder zuhause bin. nochmals danke.

        und ansonsten werde ich mich wieder melden
        :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

        Kommentar


        • #5
          Habs nochmal korrigieren müssen, verwende also nicht den Text aus deinem Zitat.

          Kommentar


          • #6
            In der letzten Zeile der test.txt steht "KeepOff" ohne whitespace davor oder dahinter? Wenn nein, steht in $keep vieles, aber nicht "Off".

            Das könntest Du prüfen, indem Du mal nachsiehst, was in $keep wirklich drinsteht, z.B. mit var_dump().

            Der Beitrag wurde verschoben, wegen...
            ... Postings im falschen Forum. Bitte beim nächsten Mal darauf achten..

            Bemerkung:
            Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen. Dazu: http://www.phpfriend.de/forum/viewtopic.php?t=21515

            moved to PHP - Anfänger
            mod = master of disaster

            Kommentar


            • #7
              Zitat von Waq
              In der letzten Zeile der test.txt steht "KeepOff" ohne whitespace davor oder dahinter? Wenn nein, steht in $keep vieles, aber nicht "Off".

              Das könntest Du prüfen, indem Du mal nachsiehst, was in $keep wirklich drinsteht, z.B. mit var_dump().
              var_dump() zeigt: string(4) "Off "

              die Lösung von bombel hat nicht funktioniert wer kann mir weiterhelfen?
              :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

              Kommentar


              • #8
                Zitat von Waq
                In der letzten Zeile der test.txt steht "KeepOff" ohne whitespace davor oder dahinter?
                @dsmcg:
                Hat das dein eben gepostetes Ergebnis von var_dump() bestätigt, oder nicht?

                Kommentar


                • #9
                  Zitat von karl-150
                  Zitat von Waq
                  In der letzten Zeile der test.txt steht "KeepOff" ohne whitespace davor oder dahinter?
                  @dsmcg:
                  Hat das dein eben gepostetes Ergebnis von var_dump() bestätigt, oder nicht?
                  versteh ich ned ...

                  ich hab doch nur gefragt was ich machen muss damit das richtige selected wird, man ist hier ja im Anfänger Forum oder etwa nicht?? (in diesem Thread gets ned um das)

                  bleiben wir beim Thema was muss ich in meinem Script ändern damits auch funktioniert?
                  :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

                  Kommentar


                  • #10
                    Zitat von dsmcg
                    ... bleiben wir beim Thema ...
                    genau und mein voriger post war auch genau beim thema.
                    du überprüfst ob $keep == 'On' oder $keep == 'Off'. Dass das in keinem der Fälle zutrifft sollte dir doch das var_dump()-Ergebnis bestätigt haben. Ändere diese Zeile mal:
                    PHP-Code:
                    <?php
                    $keep 
                    str_replace("Keep ","",$search);
                    ?>
                    so:
                    PHP-Code:
                    <?php
                    $keep 
                    trim(str_replace("Keep ","",$search));
                    ?>
                    Und?

                    Kommentar


                    • #11
                      var_dump() gibt jetzt

                      string(3) "Off"

                      aus, funktioniert aber trotzdem nicht
                      :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

                      Kommentar


                      • #12
                        hm ist es vileicht trotzdem nichts für das Anfänger Forum
                        :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

                        Kommentar


                        • #13
                          Du solltest weniger Jammern und mehr selbst für die Lösung tun.

                          Der Code, den Du gepostet hast, erweitert um das trim(), funktioniert übrigens.
                          mod = master of disaster

                          Kommentar


                          • #14
                            Zitat von Waq
                            Du solltest weniger Jammern und mehr selbst für die Lösung tun.

                            Der Code, den Du gepostet hast, erweitert um das trim(), funktioniert übrigens.
                            ach wenn du wilst kann ich dir schon paar versuche von mir posten

                            auf welchem System hast du es den getestet? bei mir funkts ned..
                            :arrow: [URL="http://tiny.cc/0xlvv"]Wie man Fragen richtig stellt[/URL]

                            Kommentar


                            • #15
                              Zitat von dsmcg
                              ach wenn du wilst kann ich dir schon paar versuche von mir posten
                              Du solltest vielmehr nachvollziehen, was genau passiert, also was wann in welcher Variable genau drinsteht. var_dump() macht sich hier ganz gut, da entdeckt man z.B. schnell zusätzlichen Whitespace. Alternativ ein Debugger.

                              So lange Du als Fehlerbeschreibung nur "geht nicht" schreibst...

                              Zitat von dsmcg
                              auf welchem System hast du es den getestet? bei mir funkts ned..
                              Auf Linux mit drei verschiedenen und unterschiedlich konfigurierten PHP-Versionen.
                              mod = master of disaster

                              Kommentar

                              Lädt...
                              X