[PHP] If-Abfrage wird nicht "positiv" ;-)

Sascha91

KlammID: 236083
ID: 236083
L
4 Mai 2006
148
2
PHP:
for($nummer = 1; $nummer < $anzahlfahrer+1; $nummer++)
  {
    if(${"f".$nummer} == include("tipps/".$_POST["benutzername"]."_".$_GET["rennen"]."_2.txt"))
    {echo "<option value='".${"f".$nummer}."' selected>".${"f".$nummer}."</option>\n";}
    else
    {echo "<option value='".${"f".$nummer}."'>".${"f".$nummer}."</option>\n";}
  }
Wieso springt die Abfrage nicht in den "positiven Teil", wenn $f5 das gleiche ist wie in der TXT-Datei? Was würdet ihr anderst machen?
 
Mhhh...

Also so?
PHP:
      <?php
      for($nummer = 1; $nummer < $anzahlfahrer+1; $nummer++)
        {
        if(${"f".$nummer} == @readfile("tipps/".$_POST["benutzername"]."_".$_GET["rennen"]."_1.txt"))
          {echo "<option value='".${"f".$nummer}."' selected>".${"f".$nummer}."</option>\n";}
        else
          {echo "<option value='".${"f".$nummer}."'>".${"f".$nummer}."</option>\n";}
        }
        ?>
Sorry, bin nicht gerade gut in PHP. :D
 
Klar probiere ich es, denn nur so lernt man. Allerdings nervt es mich, wenn ich für eine solche über eine Stunde drann bin. :-(

Mit $f{$nummer} geht es auch auch nicht.
 
Ich weiss, ihr wollt mir helfen, das schätz ich auch sehr, aber ihr verwirrt mich. ;)

Also ist der Code, denn ich am Anfang gepostet habe NICHT fehlerhaft?
 
Prinzipiell falsch ist der nur aus einem einzigen Grund:

include() führt den Inhalt der includeten Datei direkt aus. In Deinem Fall wird ja wohl kein PHP-Code da drin stehen (und somit kein return), wodurch die Rückgabe von include() nur 1 sein dürfte, was bedeutet, dass die Datei erfolgreich includet wurde. Aber der Inhalt der Datei wird auch direkt an den Browser ausgegeben. Insofern ist readfile() auch nicht zu gebrauchen, da auch diese Funktion den Inhalt der Datei direkt ausgibt, was Du ja vermutlich nicht willst.

file_get_contents() ist das, was Du wohl benutzen willst...

Zum anderen ist diese Variablenfrickelei an einer Stelle, wo ein Array 1000x besser anzuwenden ist, einfach nur hässlich und führt zu Fehlern.
 
Zuletzt bearbeitet: