Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Verschachtelung von inclcude echo aus db und wieder echo aus db

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Verschachtelung von inclcude echo aus db und wieder echo aus db

    Hallo,

    entweder habe ich ein Brett vorm Kopf oder ein nettes problem, wir werden sehen

    In Kurzform:
    in meiner index.php habe ich das Design fest gelegt und importiere da die content.php mit include. In der habe ich eine Datenbank abfrage siehe unten. Aus der Datenbank hole ich mir die inhalte der Seite wegen der mehrsprachigkeit. alles soweit ok. das problem ist nur das ich da ein gästebuch drin habe und das wird nicht verarbeitet. Statt mir das gästebuch zu zeigen gibt er den php-code zur hälfte aus. -> "datum; $name = $row->name; $text = $row->text; echo "test gaestebuch"; } } mysql_close($db); ?> " geht das so nicht oder muß ich das nur anders anordnen? Freue mich auf eure antworten. Danke!
    ps. Wer sich das live ansehen möchte findet das Problem auf Help Medical Service

    PHP-Code:
    *********Content.php********
    <?php

    include('db.php');

    if ( 
    $db )
    {
        
    $abfrage "SELECT $_REQUEST[lang] AS rowlang FROM content WHERE titel='$_REQUEST[content]'";
         
    $ergebnis mysql_query($abfrage);
            
            while(
    $row mysql_fetch_object($ergebnis)) 
            {
                   
    $id $row->id;
                   
    $rowlang $row->rowlang;
                   echo 
    "$rowlang";
               }


    mysql_close($db);
       
    ?>


    ********DB-inhalt********
    <div>
    <?php

    include('db.php');
        
    if ( 
    $db )
    {
        
    $abfrage "SELECT * FROM gaestebuch";
         
    $ergebnis mysql_query($abfrage);
            
            while(
    $row mysql_fetch_object($ergebnis)) 
            {
                   
    $datum $row->datum;
                   
    $name $row->name;
                
    $text $row->text;
                
                echo 
    "test gaestebuch";
               }


    mysql_close($db);
    ?>
    </div>

  • #2
    z.B. ist echo "$rowlang" falsch, es muss echo $rowlang heißen!
    MfG
    ~Capfly

    Kommentar


    • #3
      das hatte aber auch nichts gebracht, deswegen habe ich ja schon verschiede Arten versucht. aber danke

      Kommentar


      • #4
        Zitat von Capfly Beitrag anzeigen
        z.B. ist echo "$rowlang" falsch, es muss echo $rowlang heißen!
        Falsch ist das nicht, nur unnötig.

        Was "falsch" ist, ist z.B. der doppelt include('db.php'), das sollte schon einen Fehler erzeugen, wenn in der db.php z.B. Funktionen deklariert werden.

        Es sieht so aus, als würde der PHP Code nicht mehr ordnungsgemäß geparst ab dem 2. PHP Block... warum kann ich dir leider nicht sagen.

        Was sollen überhaupt diese HTML Tags <titel1> und <titel3> ? Derartige Tags gibt es nicht... Headlines werden mit <h1> bis <h6> angegeben.
        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

        Kommentar


        • #5
          PHP-Code:
          $ergebnis mysql_query($abfrage); 
          und
          PHP-Code:
          $ergebnis mysql_query($abfrage); 
          Wo ist die Connection?
          Look at This!
          Digital-Duty.DE
          Für Syntax-Fehler übernehme ich keine Haftung!

          Kommentar


          • #6
            @ lstegelitz

            also auch nur mit einem include geht es nicht

            und die Tags muß ich eh noch anpassen.

            @Tholi

            die connection ist in der db.php
            ---

            Wenn ich mir im Browser den Quellcode anzeigen lasse sehe ich das er sich ab der hälfte irgendwie ändert. ???

            Kommentar


            • #7
              ps. wenn ich das nicht über die Datenbank machen und mit dateien arbeite geht es ja. Schreibeich direkt in die home datei das include dann geht es aber steht das include in der Datenbenk geht es nicht. Wo ist da der unterschied?

              Kommentar


              • #8
                mysql_query(); erwartet als 2ten Parameter die Verbindung.

                Gibt es Fehler bei der Ausgabe?
                Look at This!
                Digital-Duty.DE
                Für Syntax-Fehler übernehme ich keine Haftung!

                Kommentar


                • #9
                  nein kein fehler...

                  wie schon unter ps geschrieben kann man vieleicht mehr sehen wenn man sich den quellcode vom browser ansieht. Dort steht dann

                  <div>
                  <?php include('irgendwas.php'); ?>
                  </div>

                  er verarbeitet den php-code nicht. ??? aber warum???

                  Kommentar


                  • #10
                    Ist es auch wirklich eine php-Datei? Nicht dass es blabla.php.txt ist
                    MfG
                    ~Capfly

                    Kommentar


                    • #11
                      Ja, sonst würde der rest nicht gehen. Also wenn ich in der DB nur

                      <div>text</div>

                      stehen habe geht es dann sehe ich text auf der HP

                      wenn ich aber

                      <?php
                      echo "text";
                      ?>

                      das kommt da nix und im Quelcode des Browsers steht
                      .
                      .
                      <div>
                      <?php echo "text"; ?>
                      </div>

                      dabei dürfte er doch da nicht phpcode anzeigen sondern müsste ihn ausführen.
                      Vieleicht wird das Problem jetzt klarer?

                      Kommentar


                      • #12
                        Ja ich denke das Problem wird nun klarer.

                        Du müsstest den Quellcode den du aus der Datenbank bekommst nochmal ausführen, allerdings ist das nicht schön. Andere können dir da sicher mehr erzählen

                        Kommentar


                        • #13
                          ok habe noch was gefunden.... der richtige weg????

                          statt echo $rowlang;

                          jetzt

                          eval('?>' . $rowlang . '<?');

                          dann geht das mit <?php echo "test"; ?> da bekomme ich text angezeigt

                          jetzt bekomme ich aber diesen fehler

                          Warning: mysql_close(): 8 is not a valid MySQL-Link resource in content.php on line 19

                          ging doch vorher???

                          Kommentar


                          • #14
                            ok, gelöst!

                            wie schon lstegelitz sagte gab es noch das problem mit demm doppelten öffnen und schließen der DB.

                            also ausgabe durch eval und inhalt ohne öffnen oder schließen der DB da diese ja schon offen ist.

                            Danke euch!

                            aber wie ist es mit der sicherheit????? wie kann ich diese art sicher machen das mir keiner code in die Datenbank schreiben kann?????

                            Kommentar


                            • #15
                              Code in einer DATENbank schreit förmlich nach Designfehler...

                              Speichere keinen Code in der Datenbank bzw. führe vorallem keinen eval() auf Datenbankinhalte aus!
                              Wenn du deinen Benutzern Eingabefelder zur Verfügung stellst, können die da alles mögliche reinschreiben (inklusive PHP Code). Das alleine ist noch nicht gefährlich, erst das Ausführen per eval() macht es gefährlich, da du nicht weißt, welche Art Code abgespeichert wurde.

                              Entweder: KEIN eval() auf Datenbankinhalte
                              oder: KEINE Benutzereingabe in das Feld, welches eval'd wird

                              Andere Alternativen gibt es nicht (es sei denn, du schreibst dir einen Parser, der potentiell gefährlichen Code von ungefährlichem unterscheiden kann - nicht ganz so einfach )
                              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                              Kommentar

                              Lädt...
                              X