AbBa: Variable in der Variable

Hallo :D
*Alle wege führen zu Selfhtml*

Hab hier ein Code:
----------
$pull ="checkuser.php";

$ptxt ="
else if ($cuthema == ".$thema."){
unlink($datei);
header(Location: edittext.html);
}";

$dis = fopen ($pull, "a+");
fwrite($dis, $ptxt);
fclose($dis);
-----------
Was dann in checkuser.php steht ist folgendes:
-----------
else if ( == Bsp){
unlink();
header(Location: edittext.html);
}
-----------
Die Variablen sind verschwunden, obwohl ich sie genau da haben wollte..

Wäre hammer wenn jemand diesen fehler findet.
Danke im voraus!:D

  1. Hallo!

    Die Variablen sind verschwunden, obwohl ich sie genau da haben wollte..

    Nö, die sind nicht verschwunden.

    Wäre hammer wenn jemand diesen fehler findet.

    Der Fehler sind die Gänsefüßchen. Wenn Variablen in Gänsefüßchen ("$var") stehen so werden sie interpretiert, soll heißen, dass der Wert eingetragen wird.
    Was du suchst sind einfache Anführungszeichen ('$var').

    --
    Lg,
    Snafu
    1. ich meine aber nicht $thema sondern eher $cuthema...
      Die steht nicht in Gänsefüßchen.

      1. Also an der Mosel mach ich mal kein Urlaub :D

        umgedreht ... $thema steht in anführungsstrichen, $cuthema nicht.

        ich meine aber nicht $thema sondern eher $cuthema...
        Die steht nicht in Gänsefüßchen.

        1. umgedreht ... $thema steht in anführungsstrichen, $cuthema nicht.

          Nein, umgekehrt.

            
          $ptxt = " // anfang gf  
           else if ($cuthema == ".$thema."){ // ende gf und wieder anfang gf  
           unlink($datei);  
           header(Location: edittext.html);  
           }"; // ende gf  
          
          

          Was lernen wir daraus?
          $cuthema und $datei stehen in Gänsefüßchen und werden deshalb interpretiert.
          $thema steht weder in Gänsefüßchen noch in einfachen Anführungszeichen und wird deshalb sowieso interpretiert.

          Mach aus deinen Gänsefüßchen einfache Anführungszeichen und die Sache hat sich.

          --
          Lg,
          Snafu
          1. Mach aus deinen Gänsefüßchen einfache Anführungszeichen und die...

            Sache hat sich nicht!
            syntax error, unexpected T_IS_EQUAL
            und die Variablen werden immer noch nicht angezeigt...
            ich habe jetzt stehen:

            ------
            $pull ="checkuser.php";

            $ptxt ="
            else if ($cuthema =='.$thema.'){
            unlink($datei);
            header('Location: edittext.html');
            }";

            $dis = fopen ($pull, "a+");
            fwrite($dis, $ptxt);
            fclose($dis);
            ------

            Am ende bleibt als Test stehen:
            -----
            else if ( =='.ABCD.'){
            unlink();
            header('Location: edittext.html');
            }
            -----
            Abc ist der Name...

            1. Hey ich habs weiter geschafft!
              Jetzt klappt nur noch das Header nicht weil ich diese
              Zeichen wegmachen musste...
              Kennt da auch jemand ne Lösung?

              1. Hello,

                Kennt da auch jemand ne Lösung?

                ja, bitte befasse dich eingehend mit escaping, das ist bei solchen Konstruktionen mehr als überfällig.

                MfG
                Rouven

                --
                -------------------
                Ambition is the last refuge of failure.  --  Oscar Wilde (Irish Poet, Novelist, Dramatist and Critic, 1854-1900)
                1. Danke! ICH HABS RAUS!
                  Danke!TAUSEND DANK!(leicht übertreben)

                  schöne grüße von der Mosel :D -AbBa

            2. Tach,

              Sache hat sich nicht!

              $ptxt ="
              else if ($cuthema =='.$thema.'){
              unlink($datei);
              header('Location: edittext.html');
              }";

              was sind das für Anführungszeichen in der ersten und letzten Zeile, und welche wolltest du verwenden?

              mfg
              Woodfighter

            3. Hallo

              $pull ="checkuser.php";

              $ptxt ="
              else if ($cuthema =='.$thema.'){
              unlink($datei);
              header('Location: edittext.html');
              }";

              Am ende bleibt als Test stehen:

              else if ( =='.ABCD.'){
              unlink();
              header('Location: edittext.html');
              }

              Benutze zur Einleitung, Unterbrechung und am Ende des Strings die gleichen Anführungszeichen (" oder ') und befolge die damit verbundenen Regeln.

              Benutzt du " ([Shift+2]), werden im String notierte Variablen, wie von Snafu mehrfach angemerkt, interpretiert. Sind sie leer, kommt dann z.B. das raus: unlink();. Wenn die Namen im String dargestellt werden sollen, muss das Dollarzeichen mit einem Backslash maskiert werden.

              Ansonsten benutze durchgängig ' ([Shift+#]), dabei werden Variablen _nicht_ interpretiert sondern ihre Namen im String dargestellt. Aber auch das wurde hier schon angesprochen.

              Tschö, Auge

              --
              Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
              (Victor Hugo)
              <dingdong /><dingdong /><toc /><toc /><toc /><shout>Florence!</shout>
              Veranstaltungsdatenbank Vdb 0.2
  2. Hi,

    ohne mich jetzt groß zu dem Sinn dieses Code's zu äußern..

    PHP interpretiert auch Variablen wenn sie in doppelten Anführungstrichen stehen. Probier es mal mit einfachen Anführungszeichen (') oder escape das doller mit einem Slash ($).

    Viele Grüße,
    cg

    Hallo :D
    *Alle wege führen zu Selfhtml*

    Hab hier ein Code:

    $pull ="checkuser.php";

    $ptxt ="
    else if ($cuthema == ".$thema."){
    unlink($datei);
    header(Location: edittext.html);
    }";

    $dis = fopen ($pull, "a+");
    fwrite($dis, $ptxt);
    fclose($dis);

    Was dann in checkuser.php steht ist folgendes:

    else if ( == Bsp){
    unlink();
    header(Location: edittext.html);
    }

    Die Variablen sind verschwunden, obwohl ich sie genau da haben wollte..

    Wäre hammer wenn jemand diesen fehler findet.
    Danke im voraus!:D