2010-08-07 5 views
3

À l'heure actuelle, j'ai créé un formulaire pour une section de commentaire, une section Connexion et l'envoi d'un courriel pour un site que je suis en train de faire. Le code que j'utilise provient d'un didacticiel que j'ai appris et contient trop de code HTML. C'était la seule façon de savoir créer un formulaire et valider les données. Je voulais demander s'il y avait une meilleure façon de créer des formulaires et s'il y avait un moyen de créer un formulaire dans PHP OOP? Je veux apprendre à aller au-delà des choses de base à la POO.Quelle est la bonne pratique pour utiliser des formulaires en PHP? Pouvez-vous utiliser PHP OOP dans un formulaire?

Voici un exemple du code I en utilisant pour le moment:

<?php include 'includes/validation.php' ?> 

<!-- START CONTENT --> 
    <div id="mainContent"> 
    <div class="portContentTop"><img src="graphx/image.gif" alt="" border="0" /></div> 
    <div class="portContent"> 
    <img src="graphx/image.gif" alt="Contact Me" border="0" /><h1 class="hidden">Contact</h1><br /> 
      If you wish to contact me, please fill out the form or send me an email at <a href="mailto:[email protected]">[email protected]</a>. 
    <br /> 
      <? if(isset($_POST['send'])&& (!validateName($_POST['name']) || !validateEmail($_POST['email']) || !validateMessage($_POST['message']))):?> 
      <div id="errorMessage"> 
      <ul> 
       <? if(!validateName($_POST['name'])):?> 
       <li>Your name must be 4 characters long.</li> 
        <? endif ?> 
        <? if(!validateEmail($_POST['email'])):?> 
        <li>Your email address has an error.</li> 
    <? endif ?> 
        <? if(!validateMessage($_POST['message'])):?> 
        <li>Your comment must be 10 characters long.</li> 
        <? endif ?> 
      </ul> 
      </div> 
      <?php elseif(isset($_POST['send'])):?> 
      <?php 
    $name=strip_tags($_POST['name']); 
    $email=strip_tags($_POST['email']); 
    $message=strip_tags($_POST['message']); 
    $subject= "A message from me was submitted by ".$name." "; 
    $sentto= "[email protected]"; 

    $contents = "Name: ".$name. "\n". 
     "Email: ".$email. "\n". 
     "Message: ".$message. "\n"; 

    mail($sentto, $subject, $contents); 

    ?> 
      <div id="errorMessage"> 
       <ul class="errorValid"> 
       <li>Your message has been sent.</li> 
      </ul> 
      </div> 
      <? endif?> 
    <form method="post" id="customForm" name="customForm" action="" > 
      <table border="0" align="center" cellpadding="0" cellspacing="0" style="padding:0px; margin:0px;"> 
        <tr valign="top"> 
        <td align="center"><img src="graphx/h_name.gif" border="0" alt="Name:" /></td> 
        <td><input class="contactInput" id="name" name="name" type="text" size="30" /></td> 
        </tr> 
        <tr valign="top"> 
        <td align="center"><img src="graphx/h_email.gif" border="0" alt="Email:" /></td> 
        <td><input class="contactInput" id="email" name="email" type="text" size="30" /></td> 
        </tr> 
        <tr valign="top"> 
        <td align="center"><img src="graphx/h_comments.gif" border="0" alt="Comments:" /></td> 
        <td><textarea id="message" name="message" cols="30" rows="15" wrap="off" class="contactInput2"></textarea></td> 
        </tr> 
        <tr valign="top"> 
        <td></td> 
        <td align="left"><input id="send" name="send" type="submit" value="Submit" ></td> 
        </tr> 
       </table> 
      </form> 
</div> 
<!-- END CONTENT --> 

Répondre

3

Oui, il existe des moyens « meilleurs » de la création de formulaires. Vous pourriez vouloir regarder comment les cadres populaires le font.

Voilà exemple de Zend Framework http://www.framework.zend.com/manual/en/zend.form.quickstart.html

$form = new Zend_Form(); 
    $form->setAction('/user/login') 
     ->setMethod('post'); 

    // Create and configure username element: 
    $username = $form->createElement('text', 'username'); 
    $username->addValidator('alnum') 
      ->addValidator('regex', false, array('/^[a-z]+/')) 
      ->addValidator('stringLength', false, array(6, 20)) 
      ->setRequired(true) 
      ->addFilter('StringToLower'); 

    // Create and configure password element: 
    $password = $form->createElement('password', 'password'); 
    $password->addValidator('StringLength', false, array(6)) 
      ->setRequired(true); 

    // Add elements to form: 
    $form->addElement($username) 
     ->addElement($password) 
     // use addElement() as a factory to create 'Login' button: 
     ->addElement('submit', 'login', array('label' => 'Login')); 
+0

C'est cool. Y at-il un tutoriel ou un moyen de le faire sans cadres? J'essaie d'apprendre sans cadre maintenant pour voir si je peux le faire. – blackbull77

+0

Les patForms sont meilleurs à tous points de vue! analytik

Questions connexes