jens65m: am verzweifeln...echo / variable

folgendes Problem:

ich habe eine Variable die ihren Wert durch eine Funktion bekommt.

function example($x, $y)  
{	  
   if($_GET["bla"])  
   {  
       return $_GET["bla"];  
   }  
}  
  
$var = example($x, $y);

gebe ich nun $var aus erscheint der wert den ich gerne haben möchte.
versuche ich diesen wert in verbindung mit require_once zu verwenden

require_one(/pfad/".$var."/zur/datei.php);

funktioniert das nicht.
Der Fehler der ausgegeben wird:
No such file or directory (/pfad//zur/datei.php);

das merkwürdige ist, dass ich den richtigen wert durch

echo $var

ausgeben kann.
setze ich $var manuelle vor require_once:

$var = "value";  
require_one(/pfad/".$var."/zur/datei.php);

wird die datei "/pfad/value/zur/datei.php" verwendet!?

lg

  1. im übrigen erhalte ich auch ein notice: Undefined index: bla

    ist gesetzt !

  2. Hallo,

    naja du nutzt ja garnicht $x und $y. außerdem stehen da zwei slashes. da kann was nicht stimmen. undefined index wäre zB. wenn $_GET["bla"] nicht existiert.

    Der Fehler der ausgegeben wird:
    No such file or directory (/pfad//zur/datei.php);

    ^^
    Gruß

    jobo

    1. mal von $x und $y abgesehen, die ich aus dem beispiel hätte rausnehmen sollen da sie nichts zur sachen tun.

      Wie bereits gesagt

      $_GET["bla"] existiert.

      Ich erhalte:

      echo $_GET["bla"]

      Ergebnis: "value"

      require("/pfad/".$_GET["bla"]."/zur/datei.php")

      => Datei (/pfad//zur/datei.php); kann nicht gefunden werden anstatt dass die Datei

      "/pfad/value/zur/datei.php" verwendet wird.

      daher auch der doppelslash, weil er die variable nicht einsetzt.

  3. require_one(/pfad/".$var."/zur/datei.php);

    Das erzeugt mit Sicherheit einen fatalen Fehler. Schau dir die Anführungszeichen nochmal an.

    Dein Notice liegt vermutlich daran, dass du den Wert nicht übergist. Du prüfst auch nicht, ob er existiert sondern oder gefüllt ist. Du willst die die Doku zu isset() durchlesen.

    1. ich setz den wert im moment selbst und hab isset rausgenommen.
      Den Wert $_GET["bla"] habe ich selbst in die adresszeile eingeben. er existiert in diesem test definitiv.

      1. ich setz den wert im moment selbst und hab isset rausgenommen.
        Den Wert $_GET["bla"] habe ich selbst in die adresszeile eingeben. er existiert in diesem test definitiv.

        Wieso sagst du denn nicht, dass du keine Hilfe willst? Denn wenn du die wolltest, würdest du den tatsächlichen Code posten und keine Bruchstücke, bei denen relevante Teile fehlen.

  4. ums nochmal genau darzustellen:

    Meine Adressleiste:

    "http://localhost/unterordner/index.php/option/?bla=ausgabewert"

    Meine index.php:

    function example()  
    {  
        return $_GET["bla"];  
    }  
      
    $var = example();  
      
    echo $var;  
    //Erzeugt: "ausgabewert"  
      
    require("pfad/".$var."/zur/datei.php");  
    //Erzeugt Fehler weil Datei ("pfad//zur/datei.php) nicht gefunden.  
    //=> setzt variable nicht ein
    

    lg

    1. @@jens65m:

      nuqneH

      "http://localhost/unterordner/index.php/option/?bla=ausgabewert"
      […]
      //Erzeugt: "ausgabewert"

      Und "http://localhost/unterordner/index.php/option/?bla=<script>alert(42)</script>" erzeugt was?

      Denke daran, alle Nutzereingaben vor der Ausgabe zu behandeln (zumindest mit htmlspecialchars()), um keine Sicherheitslücken (XSS) aufzureißen!

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. Hi!

        Und "http://localhost/unterordner/index.php/option/?bla=<script>alert(42)</script>" erzeugt was?

        Falscher Kontext. Der übergebene Wert soll in einen Dateipfad eingefügt werden.

        Denke daran, alle Nutzereingaben vor der Ausgabe zu behandeln (zumindest mit htmlspecialchars()), um keine Sicherheitslücken (XSS) aufzureißen!

        Keine Ausgabe, nix mit XSS - andere Baustelle - anderes Gefährdungspotential.

        Lo!

  5. http://localhost/unterordner/index.php/option/?bla=ausgabewert
                                          ^^^^^^^^

    damit hängts wohl zusammen.

    für ich das ganze so aus

    http://localhost/unterordner/index.php?bla=ausgabewert

    funktionierts.

    Aber warum?!