IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

attribut required


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 29
    Par défaut attribut required
    Salut!!

    Voilà, j'ai un code qui fonctioone en PHP pour vérifier si un champ est rempli ou non:

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?php
    $msg_erreur = "Erreur! Les champs suivants doivent etre obligatoirement remplis :<br/><br/>";
    $msg_ok = "Votre demande de contact a bien ete prise en compte!<br/>" . "Je vous repondrai des que possible." . "<br/>" . "Redirection en cours...";
    $message = $msg_erreur;
     
    define('MAIL_DESTINATAIRE','contactyanispc@gmail.com'); // Votre e-mail
    define('MAIL_SUJET','Demande de contact');	// L'objet du message
     
    // Vérification des champs
    if (empty($_POST['Civilite'])) 
    $message .= "Votre Civilite<br/>";
     
    if (empty($_POST['Prenom'])) 
    $message .= "Votre Prenom<br/>";
     
    if (empty($_POST['Nom'])) 
    $message .= "Votre Nom<br/>";
     
    if (empty($_POST['Email'])) 
    $message .= "Votre E-Mail<br/>";
     
    if (empty($_POST['Msg'])) 
    $message .= "Votre Message<br/>";
     
    // Si un champ est vide, on affiche le message d'erreur et on stop le script
    if (strlen($message) > strlen($msg_erreur)) {
       echo $message;
       die();
    }
     
    // Sinon c'est ok donc on continue
    foreach($_POST as $index => $valeur) {
      $$index = stripslashes(trim($valeur));
    }
     
    // Préparation de l'entête du mail:
    $mail_entete  = "MIME-Version: 1.0\r\n";
    $mail_entete .= "From:{$_POST['Prenom']}" . " " . "{$_POST['Nom']} " . "<{$_POST['Email']}>\r\n";
    $mail_entete .= 'Reply-To: '.$_POST['Email']."\r\n";
    $mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
    $mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
    $mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";
     
    // préparation du corps du mail
    $mail_corps  = "Demande de contact: $Civilite $Prenom $Nom\n";
    $mail_corps .= "Téléphone: $Telephone\n\n";
    $mail_corps .= "Informations supplementaires: $Msg";
     
    // Envoi du mail
    if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {
      // Le mail est bien expédié
      header('Location: ContactValide.html');
     
    } else {
      // Le mail n'a pas été expédié
      header('Location: ContactInValide.html');
    }
     
    ?>


    Mon problème est le suivant:
    Actuellement l'utilisateur clic sur le bouton envoyer d'un formulaire et cela appelle la fonction. Si les champs sont rempli, le formulaire est envoyé. Si un champ ne l'est pas, voilà ce qui ce passe:
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Si un champ est vide, on affiche le message d'erreur et on stop le script
    if (strlen($message) > strlen($msg_erreur)) {
       echo $message;
       die();
    }

    Avec die(); tout se trop.. Ca fonctionne mais c'est moche et ca oblige l'utilisateur à valider le formulaire avant de voir quel champ doit etre rempli..


    J'aimerai savoir qu'elles sont les modifications à apporter a mon code pour pouvoir dire a l'utilisateur que le champ doit être obligatoirement rempli lorsqu'il commence à taper dedans (onkeyup?)


    Merci d'avance!


    PS: mon code HTML au cas ou:
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <form method="post" action="TraitementMeContacter.php">
    	<fieldset>
    	<legend>Identité</legend>
    	<table>
    		<tr>
    			<td><label>Civilité: </label></td>
    			<td><input type="radio" name="Civilite" value="Mme" required/>Mme     <input type="radio" name="Civilite" value="Mlle" required/>Mlle     <input type="radio" name="Civilite" value="Mr" required/>Mr</td>
    		</tr>
     
    		<tr>
    			<td><label>Nom:</label></td>
    			<td><input type="text" name="Nom" size="30"  placeholder="DUPONT" required/></td>
    		</tr>
     
    		<tr>
    			<td><label>Prénom:</label></td>
    			<td><input type="text" name="Prenom" size="30" placeholder="Manon" required/></td>
    		</tr>
    	</table>
    	</fieldset>
     
    	<br>
     
    	<fieldset>
    	<legend>Contacts</legend>
    	<table>
    		<tr>
    			<td><label>Adresse E-Mail:</label></td>
    			<td><input type="text" name="Email" size="30" placeholder="manon.dupont@gmail.com" required/></td>
    		</tr>
     
    		<tr>
    			<td><label>Téléphone:</label></td>
    			<td><input type="text" name="Telephone" size="30" placeholder="06.07.08.09.10"/></td>
    		</tr>
    	</table>
    	</fieldset>
     
    	<br>
     
    	<fieldset>
    	<legend>Message:</legend>
    			<textarea name="Msg" rows="5" cols="100" required></textarea>
    	</fieldset>
    	<p id="buttons">
    		<input type="submit" value="Envoyer" />
    		<input type="reset" value="Effacer" />
    	</p>
    </form>


    EDIT: déplacé en JS par modo mais ce que j'aimerai c'est bien modifier ma fonction PHP please

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    les question php sont à poser sur le forum php
    le die tue le script en cours

    cette question a été posé de milliers de fois sur les forum php
    je propose de clore cette discu, que tu lise la faq php et que tu cherches dans le forum php les diverses solutions proposées.

    en tout cas rien a voir avec javascript.
    pour tout ceux qui seraient tenté de contre dire
    toute vérification javascript n'est que cosmétique elle ne garantie en rien que les données seront correctes lors de l'envoie au serveur et c'est donc bien sur le serveur qu'il faut faire cette dernière vérification. et celle-ci est dans se cas en PHP
    A+JYT

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par algerino77
    J'aimerai savoir qu'elles sont les modifications à apporter a mon code pour pouvoir dire a l'utilisateur que le champ doit être obligatoirement rempli lorsqu'il commence à taper dedans (onkeyup?)
    Je vois mal comment tu pourras faire ça en PHP...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre averti
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Octobre 2013
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 29
    Par défaut
    Citation Envoyé par sekaijin Voir le message
    les question php sont à poser sur le forum php
    le die tue le script en cours

    cette question a été posé de milliers de fois sur les forum php
    je propose de clore cette discu, que tu lise la faq php et que tu cherches dans le forum php les diverses solutions proposées.

    en tout cas rien a voir avec javascript.
    pour tout ceux qui seraient tenté de contre dire
    toute vérification javascript n'est que cosmétique elle ne garantie en rien que les données seront correctes lors de l'envoie au serveur et c'est donc bien sur le serveur qu'il faut faire cette dernière vérification. et celle-ci est dans se cas en PHP
    A+JYT
    Salut!

    C'est pour cela qu'a la base je l'ai posté dans le forum PHP mais un modo l'a déplacé ici je ne sais pas pk..
    Je veux bien lire la FAC PHP, mais peut tu me confirmer que c'est possible de le faire en PHP?


    Citation Envoyé par Bovino Voir le message
    Je vois mal comment tu pourras faire ça en PHP...
    Normalement il n'y a pas grand chose à modifier

  5. #5
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Citation Envoyé par algerino77 Voir le message
    Salut!...
    Normalement il n'y a pas grand chose à modifier
    Tu veux rire là je supose.

    revoir complètement ta façon de faire du PHP.
    apprendre le pattern de conception et les appliquer PRG, MVC etc.
    bannir tous les die et autre instruction qui interrompent le script.
    Utiliser les les try catch
    traiter les tous les cas d'erreur côté serveur
    redéfinir la navigation pour prendre en compte les cas d'erreur.

    et tout ça rien que du côté PHP
    lorsque le site est de nouveau opérationnel
    tu peux alors envisager d'embarquer du javascript pour facilité la saisie côté client.

    mais si tu fais ça sans avoir revu ta conception php tu auras toujours un die et donc un message pourri lorsque tu passera par là.

    A+JYT

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] [CKEditor] Supprimer l'attribut required
    Par stc074 dans le forum Symfony
    Réponses: 4
    Dernier message: 26/01/2013, 18h53
  2. [CSS 3] Action sur attribut required d'une autre balise
    Par Christophe Charron dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 12/09/2012, 10h50
  3. Réponses: 2
    Dernier message: 23/03/2012, 14h15
  4. [HTML 5] Attribut [required] pour formulaire
    Par natow dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 19/07/2011, 09h23
  5. Validator maison et attribut required
    Par sir_gcc dans le forum JSF
    Réponses: 4
    Dernier message: 11/05/2007, 13h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo