Formularüberprüfung mit Templates

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

  • Formularüberprüfung mit Templates

    Hallo,

    ich benutze Smarty als TE und habe in einem Template ein Formular.
    Ich überprüfe in der php-datei ob die felder leer sind.
    Wenn ich jetzt das Formular an sich selber schicke sagt er mir immer das ich keine Berechtigung habe die Seite anzusehen.

    php-datei:
    PHP-Code:
    if ($submit) {

             if(empty(
    "name")) 
             {
        
    $errorname "Bitte geben Sie Ihren Namen ein!";
        
    $error 1;
             }

             if (
    $error 1)
             {
        
    //dann schreib daten in db
             
    }

    tpl-datei:

    <form action="<?php echo $PHP_SELF; ?>" method="post">
    <table>
    <tr>
    <td align="right"><p>Name:<font color="#000000">*</font></p></td>
    <td><br></td>
    <td><input name="name" value="{$name}" size="40" class="tfield"></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td width="350" height="20">{$errorname}</td>
    </tr>
    <tr>
    <td colspan=2><br></td>
    <td align="left"><input type="submit" value="Abschicken" class="tfield">&nbsp;&nbsp;&nbsp; <input type="reset" value="Zurücksetzen" class="tfield"></td>
    </tr>
    </table>
    </form>

  • #2
    hi...

    ich würde zuerst mal schreiben

    if (isset($_POST['name']))

    und weiter unten

    if (empty($_POST['name']))

    Kommentar


    • #3
      OK, habe ich versucht geht aber auch nicht.

      ich habe die vermutung das es an dieser zeile liegt:

      <form action="[COLOR=red]<?php echo $PHP_SELF; ?>[/COLOR]" method="post">

      weil er mir das immer in die url reinschreibt.

      thx for help!

      Kommentar


      • #4
        laß mal die color-tags außen vor ...
        PHP-Code:
        <form action="<?php echo $PHP_SELF?>" method="post">
        sollte generell doch richtig sein, .... nur:

        *hüstel, es muß natürlich
        PHP-Code:
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        heißen ...

        wenn du nen template benutzt, hat der php-code da eigentlich nix zu suchen ... da sollte zumindest nen platzhalter oder so stehen ... imho.

        selber schicke sagt er mir immer das ich keine Berechtigung habe die Seite anzusehen.
        wer ER? fehlermeldung?
        Zuletzt geändert von derHund; 22.02.2004, 15:05.
        Die Zeit hat ihre Kinder längst gefressen

        Kommentar


        • #5
          was schreibt er in die url?

          gehts so hier: ??

          <form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post">

          Kommentar


          • #6
            PHP-Code:
                require('libs/Smarty.class.php');
                
            $tpl = new Smarty;

            $phpself $_SERVER['PHP_SELF'];

                if (
            $submit) {
                
                    if (empty(
            $_POST['name'])) 
                    {
                        
            $errorname "Bitte geben Sie Ihren Namen ein!";
                        
            $error 1;
                    }
                    if (
            $error 1)
                    {
                    
            //dann schreib daten in db
                    
            }
            }
                
            $tpl->display('entry_gb.tpl'); 
            <form action="{$phpself}" method="post">
            <table>
            <tr>
            <td align="right"><p>Name:<font color="#000000">*</font></p></td>
            <td><br></td>
            <td><input name="name" value="{$name}" size="40" class="tfield"></td>
            </tr>
            <tr>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td width="350" height="20">{$errorname}</td>
            </tr>
            <tr>
            <td colspan=2><br></td>
            <td align="left"><input type="submit" value="Abschicken" class="tfield">&nbsp;&nbsp;&nbsp; <input type="reset" value="Zurücksetzen" class="tfield"></td>
            </tr>
            </table>
            </form>

            Also so sehen jetzt meine beiden dateien aus, es funktioniert aber immer noch nicht.

            thx for help!

            Kommentar


            • #7
              es funktioniert aber immer noch nicht.
              bei solchen aussagen könnt ich in den schreibtisch beißen!

              was geht denn konkret nicht. beweg mal deinen popo und versuch festzustellen, was nicht geht. und schreib es dann hier hin.

              EDIT:
              hast du die idee von lx-club mal umgesetzt?
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar


              • #8
                du hast ja auch bei deinem input type=submit keinen namen angegeben und prüfst auf $submit.

                schreib mal noch einen namen dazu --> name="submit" und dann
                if (isset($_POST['submit'])) anstatt if($submit)

                Kommentar


                • #9
                  Danke lx-club,

                  es war der fehlende Name beim Submit-button.

                  Ich weiß, Idiotenfehler, aber manchmal sieht man nicht den Wald vor lauter bäumen nicht.

                  thx for help

                  Kommentar

                  Lädt...
                  X