html in echos wird nicht richtig angezeigt

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

  • html in echos wird nicht richtig angezeigt

    Hallo,
    ich habe hier ein Problem mit einem Codeabschnitt der per Ajax in eine andere Datei nachgeladen wird. Die einzelnen Echos sollten eigentlich den HTML Teil ausgeben, was sie aber leider nicht tun.
    Es sieht fast so aus als ob irgendwo ein Zeichen fehlt (was ich aber nicht finde), weil plötzlich auch echo-Befehle als Text erscheinen.

    error_reporting und display_errors ist gesetzt - jedoch keine Fehler.

    PHP-Code:
    <?php
    ini_set
    ('display_errors'1);
    error_reporting(E_ALL);
      if (isset(
    $_GET['hook'])) { $sethook $_GET['hook']; } else { $sethook ""; }   
      if (
    $sethook == 'resetpass') {
        
    $ziel "reset_complete";
      }
      else {
        
    $ziel "reset_pass";
      }
    ?>
    <form name=reset method=post action="methode.php?hook=<?php echo $ziel?>">
    <table>
      <?php
      
    if ($sethook != 'resetpass') { 
        echo 
    '<tr><td>LogIn Name</td>';
        echo 
    '<td><input type="text" ID="forgetpassword_name" name="forgetpassword_name"></td></tr><tr>';
        echo 
    '<td>E-Mail</td>';
        echo 
    '<td><input type="text" ID="forgetpassword_mail" name="forgetpassword_mail"></td></tr>';
      }
      else {
        if (isset(
    $_GET['ID'])) {$reset_code $_GET['ID']; } else { $resetcode ""; }
        echo 
    '<tr><td>Bestaetigungscode</td><td>'
        echo 
    '<input type="text" name="forgetpassword_code" ID="forgetpassword_code" value="'.htmlspecialchars($reset_code).'"></td></tr>';
        echo 
    '<tr><td>Neues Passwort</td><td>';
        echo 
    '<input type="password" name="forgetpassword_newpass" ID="forgetpassword_newpass"></td></tr>';
        echo 
    '<tr><td>Neues Passwort bestaetigen</td><td>';
        echo 
    '<input type="password" name="forgetpassword_newpass_2" ID="forgetpassword_newpass_2"></td></tr>';
      } 
      
    ?>
      <tr>
        <td colspan=2>
          <center><input type="button" name="forgetpassword_reset" 
    ID="forgetpassword_reset" onclick="<?php if ($sethook == 'resetpass') { echo 'fp_validate()';} 
    else { echo 
    'fp_checkfield()'; } ?>" value="Zur&uuml;cksetzen"></center>
        </td>
      </tr>
    </table>
    </form>
    Ehrlich gesagt bin ich ratlos, weil den Fehler nicht finden kann..
    Anzeigen tut er übrigens in etwas das hier
    Code:
    LogIn Name'; echo '	
    '; echo 'E-Mail'; echo '	
    '; } else { if (isset($_GET['ID'])) {$reset_code = $_GET['ID']; } else { $resetcode = ""; } echo 'Bestaetigungscode	'; echo '
    '; echo 'Neues Passwort	'; echo '
    '; echo 'Neues Passwort bestaetigen	'; echo '
    '; } ?>
    Für Hilfe wäre ich sehr dankbar!

    gruß
    cravion

  • #2
    häng doch mal die php datei bitte im forum an.

    Kommentar


    • #3
      http://de3.php.net/manual/de/function.echo.php
      "Nicht jeder Mensch kann und soll Programmieren[...]".

      Kommentar


      • #4
        Hallo,

        mit print(); ging es auch nicht - aber danke für den Tipp.

        Hab die Datei mal als zip (wg den Einstllungen im Forum) angehängt Vielen Dank schonmal!

        gruß
        cravion
        Angehängte Dateien

        Kommentar


        • #5
          Das Script scheint völlig in Ordnung zu sein. Der HTML-Code ist zwar nicht valide, aber das ist ein anderes Problem.

          Wie sieht der Ajax-Code aus, der das Script aufruft?
          Unter welchem Namen hast du das gepostete Script auf dem Server gespeichert?

          Kommentar


          • #6
            gute frage. wird php überhaupt geparst?

            Kommentar


            • #7
              Sicher nicht, er hat es bestimmt als .js gespeichert und alles zwischen <? und ?> ist für ihn im Browser nicht sichtbar ...

              Kommentar


              • #8
                Also,

                der Aufruf befindet sich in einer externen js-Datei die ich per <script....></script> einbinde.
                Code:
                function forgetpassword() {
                    var myAjax= new Ajax()
                    myAjax.url="data/forgetpassword.html";
                    myAjax.onSuccess=successHandler;
                    myAjax.onError=errorHandler;
                    myAjax.doRequest();
                }
                Die Ajay Engine ist nochmals in einer externen Datei.
                Wie man sehen kann ist die Datei auf dem Server also auch unter forgetpassword.html gespeichert.
                Insgesamt kommen noch 2 php Dateien hinzu die einzelnen funktionen beinhalten, welche aber fehlerfrei sind beim Aufruf.

                Das was mich am meisten irritiert ist aber das der erste php Bereich einwandfrei geparst wird und er wenn er das erste echo ausgibt die Fehlerhafte Ausgabe beginnt.

                Ich habe mal print(); verwendet und das gesamte HTML in jeweils zwei print() geschrieben. Dort ist es ähnlich.
                Das erste Pront funktioniert einwandfrei bis dieses wieder beendet wird "); Ab hier schreibt er alles als sichtbaren Text.

                gruß
                cravion

                Kommentar


                • #9
                  Benenne die Datei in forgetpassword.php um.

                  (Erbarmt sich jemand und erklärt ihm was hier los ist?)

                  Kommentar


                  • #10
                    Dein Problem ist das Dateien mit der Endung .html nicht vom PHP Hypertext Processor geparst werden. Wenn du die Datei jetzt um benennst erkennt der Webserver das in der Datei PHP Code stehen könnte und reicht sie dann weiter.
                    Ein weiteres Problem könnte sein, dass du die Anführungszeichen nicht richtig setzt und dadurch Code direkt ausgegeben wird.
                    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                    Kommentar

                    Lädt...
                    X