Ankündigung

Einklappen
Keine Ankündigung bisher.

Variablenname aus Datenbank auswerten

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Variablenname aus Datenbank auswerten

    Hallo!

    Das erste mal das ich das Forum benutze und dann habe ich schon eine frage.
    Hoffe mir kann einer weiterhelfen.

    Zur Erklärung:

    In einem Textfeld, lege ich einen vordefinierten Text fest.
    Um diesen Text etwas Benutzer spezifischer zu gestalten, will ich in diesem Textfeld Variablen benutzen.

    So z.B sieht das aus:

    Hallo $user

    deine Email: $email usw.

    Diesen Text speichere ich dann in der Datenbank ab.
    (Ohne mysq_real_escape_String).

    In der Datenbank erscheint alles genau so wie ich das haben möchte.

    Weiter geht's.

    In meinem Backend klicke ich jetzt z.B Text an Benutzer senden.

    Mit dem Klick wird die ID (per GET) des Benutzers mitgeschickt.

    Zum Codeteil:

    Zuerst hole ich mir den oben genannten Text aus der Datenbank:

    PHP-Code:
    $nick "SELECT * FROM einstellungen";
    $ergebnis mysql_query($nick);
    while(
    $einstellungen mysql_fetch_object($ergebnis))
       {
    $text $einstellungen->text;

    Dann die Daten des Benutzers mit der mitgeschickten ID:

    PHP-Code:
    $nick "SELECT * FROM users where id = '$id'";
    $ergebnis mysql_query($nick);
    while(
    $user mysql_fetch_object($ergebnis))
       {
    $nick $user->nick;
    $email $user->email;
    $zeit date("d.m.Y H:i:s"$user->time);
    $als $user->als;
    $ip $user->ip
    Im nächsten Teil, verschicke ich den Text per Email an die Mailadresse die ich gerade ausgelesen habe:

    PHP-Code:
    $empfaenger "$email"//Mailadresse
    $absender   "ich@ich.de";
    $betreff    "Hallo $nick";
    $antwortan  "noreply@ich.de";

    mail$empfaenger,
          
    $betreff,
          
    $text);
          }
          }
    //Sendmail ende
    echo "Der User mir dem nick: $nick wurde soeben informiert. <br /> $text
    <br /> 
    $nick <br />$email";
    }
    else
    {
    echo 
    "Error1!";

    In der Erfolgsmeldung habe ich die Variablen eingeschrieben um zu überprüfen ob sie überhaupt korrekt aus der Datenbank geholt werden.
    Was sie auch tun.
    Auch wird die Mail erfolgreich verschickt doch die Variablen die ich im Text benutze werden nicht umgewandelt.

    Sprich: Statt Hallo Eratech! deine Email: ich@ich.de

    bekomme ich nur: Hallo $nick deine Email: $email

    Darin liegt auch mein Problem.
    Anstatt das die Variablen in der Variable $text in die aus der Datenbank kommenden Informationen umgewandelt werden, werden sie einfach so ausgegeben wie sie ins Textfeld geschrieben wurden. also $nick statt Eratech und $email statt ich@ich.de

    Hoffe mir kann wer weiterhelfen.

    LG und vielen Dank im vorraus.

    Patrick


  • #2
    Er holt den Text aus der Datenbank - davon, dass du Textteile durch andere ersetzen willst, steht da nichts. PHP müsste ja sonst den Text wie Programmcode ausführen, aus sicherlich verständlichen Sicherheitsaspekten wird das natürlich nicht getan. Und PHP müsste Variablen ersetzen die es noch nicht hat - du liest ja schliesslich den Text aus, bevor die Variablen bekannt sind. Was du suchst ist

    [MAN]str_replace[/MAN] oder
    [MAN]strtr[/MAN]
    You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.

    Kommentar


    • #3
      Ein Text wird nunmal nicht geparst. Dafür müsste bspw. ein Include benutzt werden, der Text also in einer PHP Umgebung definiert werden (an eine Variable zugewiesen). Zudem müssen die Variablen dort (genauer der ganze Text) in "" notiert werden und die Variablen müssen an dieser Stelle bereits "bekannt" sein.
      --

      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


      --

      Kommentar


      • #4
        Unter Beachtung der ganzen Gefahren natürlich auch eval().

        Kommentar


        • #5
          Danke schon mal für die Antworten.

          Nur weiß ich leider nicht wie ich in meinem Fall str_replace anwenden soll.

          So ???
          PHP-Code:
          $text str_replace($nick$emailusw.) 
          Oder ganz anders?

          Hoffe mir kann da noch einer nen kleinen schubs in die richtige Richtung geben.

          LG und danke
          Patrick

          Kommentar


          • #6
            schau dir mal die anleitung zu str_replace an !!!
            PHP-Code:
            if ( $humans >= ) {
               
            war ();

            Kommentar


            • #7
              So wird das nüscht.

              http://www.php.de/php-einsteiger/489...rundlagen.html

              [MOD: Thread geschlossen]
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar

              Lädt...
              X