Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Generator Problem!

Einklappen

Neue Werbung 2019

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

  • PHP Generator Problem!

    Also ums schnell zu machen:

    Ich habe auf einer Seite einen Generator gesehen und aus irgend einen Grund hab ich mir dann auch einen gebastelt....

    Ist nur bestimmt ein ganz dummer Fehler reingekommen

    Also hier ist mein Code:

    PHP-Code:
    <html>
    <head>
    <title>Formular erstellen!</title>
    </head>
    </html>


    <form method="post" action="mypage-test.php">
    <table>
    <tr><td>Seiten Name:</td><td><input type="text" name="titel"></td></tr>
    <tr><td>Formular Name:</td><td><input type="text" name="fname"></td></tr>
    <tr><td>Seiten-Form (.php, .html):</td><td><input type="text" name="form"></td></tr>
    <tr><td>1. Feld</td><td><input type="text" name="feld1"></td></tr>
    <tr><td>2. Feld</td><td><input type="text" name="feld2"></td></tr>
    <tr><td>3. Feld</td><td><input type="text" name="feld3"></td></tr>
    <tr><td>4. Feld</td><td><input type="text" name="feld4"></td></tr>
    <tr><td>5. Feld</td><td><input type="text" name="feld5"></td></tr>
    <tr><td>Button Name:</td><td><input type="text" name="button"></td></tr>
    <tr><td><input type="submit" name="acc" value="Erstellen"></td></tr>

    </form></table>



    <?php
    $titel 
    $_POST['titel'];
    $fname $_POST['fname'];
    $form $_POST['form'];
    $feld1 $_POST['feld1'];
    $feld2 $_POST['feld2'];
    $feld3 $_POST['feld3'];
    $feld4 $_POST['feld4'];
    $feld5 $_POST['feld5'];
    $butto $_POST['button'];


    if(
    $_POST['acc'])
    {
    echo 
    "<br/><br/>Und hier ist dein erstellter Script:<br/>
    <textarea cols='100' rows='20'>


    <head>
    <title></title>
    </head>
    <h2>
    $fname</h2>
    <form method="
    post" action="$titel;$form">
    <table>
    <tr><td>
    $feld1</td><td><input type="text" name="$feld1"></td></tr>
    <tr><td>
    $feld2</td><td><input type="text" name="$feld2"></td></tr>
    <tr><td>
    $feld3</td><td><input type="text" name="$feld3"></td></tr>
    <tr><td>
    $feld4</td><td><input type="text" name="$feld4"></td></tr>
    <tr><td>
    $feld5</td><td><input type="text" name="$feld5"></td></tr>
    </table>
    <input type="
    submit" value=" $button "> 
    </form>






    </textarea><br/>(Einfach nur noch in deine Seite einfügen!)"
    ;
    }

    ?>
    Wie ihr vieleicht gemerkt habt durch diesen dummen Fehler bin ICH NOCH NEU!
    Bitte helft mir

  • #2
    Nur leider ging da irgendwas schief
    *kopfschüttel*
    "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

    Kommentar


    • #3
      Kontrolliere mal die Anführungszeichen in dem String, den du per echo ausgibst. Das Problem wird auch durch das Syntaxhighlighting hier im Forum offensichtlich.

      Kommentar


      • #4
        Du darfst die Unterschiede selbst raussuchen, hab grad keine Lust alles im Detail zu erklären. Bei Fragen, frag.

        Grundsätzlich solltest du bein Testen deines Scriptes immer ein
        error_reporting(E_ALL | E_STRICT | E_NOTICE);
        ganz an den Anfang deines Scripts einfügen.

        Dann würdest du evtl. auch selbst herausfinden, was du falsch gemacht hast.

        Du solltest auch immer daran denken Hochkommas " richtig durch ihre Escape-Sequenz \" zu ersetzen. Das gleiche gilt für einfache Hochkommas '.

        PHP-Code:
        <?php error_reporting(E_ALL E_STRICT E_NOTICE); ?>
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
        <html>
        <head>
          <title>Formular erstellen!</title>
        </head>
        <body>

        <form method="post" action="mypage-test.php">
            <table>
                <tr><td>Seiten Name:</td><td><input type="text" name="titel"></td></tr>
                <tr><td>Formular Name:</td><td><input type="text" name="fname"></td></tr>
                <tr><td>Seiten-Form (.php, .html):</td><td><input type="text" name="form"></td></tr>
                <tr><td>1. Feld</td><td><input type="text" name="feld1"></td></tr>
                <tr><td>2. Feld</td><td><input type="text" name="feld2"></td></tr>
                <tr><td>3. Feld</td><td><input type="text" name="feld3"></td></tr>
                <tr><td>4. Feld</td><td><input type="text" name="feld4"></td></tr>
                <tr><td>5. Feld</td><td><input type="text" name="feld5"></td></tr>
                <tr><td>Button Name:</td><td><input type="text" name="button"></td></tr>
                <tr><td><input type="submit" name="acc" value="Erstellen"></td></tr>
            </table>
        </form>

        <?php

        if( isset($_POST['acc']) )
        {
            
        $titel $_POST['titel'];
            
        $fname $_POST['fname'];
            
        $form $_POST['form'];
            
        $feld1 $_POST['feld1'];
            
        $feld2 $_POST['feld2'];
            
        $feld3 $_POST['feld3'];
            
        $feld4 $_POST['feld4'];
            
        $feld5 $_POST['feld5'];
            
        $button $_POST['button'];

            echo 
        "<br/><br/>Und hier ist dein erstellter Script:<br/>
        <textarea cols='100' rows='20'>
        <h2>
        $fname</h2>
        <form method=\"post\" action=\"
        $titel;$form\">
            <table>
                <tr><td>
        $feld1</td><td><input type=\"text\" name=\"$feld1\"></td></tr>
                <tr><td>
        $feld2</td><td><input type=\"text\" name=\"$feld2\"></td></tr>
                <tr><td>
        $feld3</td><td><input type=\"text\" name=\"$feld3\"></td></tr>
                <tr><td>
        $feld4</td><td><input type=\"text\" name=\"$feld4\"></td></tr>
                <tr><td>
        $feld5</td><td><input type=\"text\" name=\"$feld5\"></td></tr>
            </table>
            <input type=\"submit\" value=\" 
        $button \">
        </form>
        </textarea><br/>(Einfach nur noch in deine Seite einfügen!)"
        ;
        }

        ?>
        </body>
        </html>
        Was du mit action=\"$titel;$form\" erreichen willst, bleibt mir übrigens unklar.

        Zur Vollständigigkeit, auch wenn es bei dir wohl nicht nötig ist: Bevor du Daten, die vom Benutzer kommen einfach so asugibst, solltest du die Daten vorher maskieren. Sonst ist deine Webseite XSS-Anfällig.

        z.B. wenn $_POST["fname"] = '</textarea><script type="text/javascript">alert("Hallo Welt!");</script>'
        Probier es einfach mal aus

        Kommentar


        • #5
          Es kann nicht schaden, auch mal ins Handbuch zu gucken (PHP: Strings - Manual) und in den "Lerne Grundlagen"-Thread (http://www.php.de/php-einsteiger/489...rundlagen.html).

          Ein kleiner Tipp: HTML-Code macht sich am besten in einfachen Anführungszeichen (und lässt sich auch völlig ohne echo ausgeben), in denen dann allerdings keine Variablen automatisch ersetzt werden:

          PHP-Code:
          $title 'php.de';
          echo 
          '<a href="http://php.de/">' .$title '</a><br />'
          PS: E_ALL enthält E_NOTICE (=> error_reporting(E_ALL | E_STRICT).

          Kommentar


          • #6
            Zitat von mermshaus Beitrag anzeigen
            PS: E_ALL enthält E_NOTICE (=> error_reporting(E_ALL | E_STRICT).
            Hmm stimmt, aber schaden tuts auch net
            Finde das generell sinnlos in PHP, dass E_ALL eben nicht alle Flags enthält.

            Naja so ist das mit gewachsenen Sprachen.

            Wenigstens sind E_RECOVERABLE_ERROR, E_DEPRECATED und E_USER_DEPRECATED Teil von E_ALL, die aber auch alle erst nach E_STRICT eingeführt wurden.

            Danke für den Hinweis, jetzt kann ichs mir endlich merken

            Kommentar


            • #7
              Scheint so. PHP: Predefined Constants - Manual

              Holzhammer:

              PHP-Code:
              // Report all PHP errors
              error_reporting(-1); 
              PHP: error_reporting - Manual

              Kommentar

              Lädt...
              X