Formulaire en php/css

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Formulaire en php/css

Re: Formulaire en php/css

par xTG » 23 janv. 2012, 09:55

Des éclaircissements sur quoi ? Ton erreur ou sur tes connaissances du fonctionnement de PHP ?

Pour ton erreur c'est très simple. Tu as un formulaire, tu as deux champs portant le même nom.
C'est comme quand tu livres une lettre et que deux personnes à l'adresse de livraison portent le même nom et le même prénom.
Comment savoir à qui la remettre ? Bah tu sais pas... Donc PHP il est pas plus intelligent que toi donc il l'a donne au dernier.
Dans ton formulaire le premier champs email n'est pas transmis à ta page PHP de ce fait.

Re: Formulaire en php/css

par xénoo » 23 janv. 2012, 02:50

Ok. Comme dit j'ai suivis un tuto... je viens de revérifié, mon code est identique.
Tu a sans doute raison, peut tu m'éclaircir sil-te-plaît ?

Re: Formulaire en php/css

par xTG » 22 janv. 2012, 20:00

Sauf que le PHP c'est fait pour générer du HTML... Le code source que tu as via le navigateur ne contient pas de PHP, c'est celui là qui est testé au validateur.

Concernant ton erreur : tu as deux champs input nommé email...

Re: Formulaire en php/css

par xénoo » 22 janv. 2012, 19:38

W3C c'est pas seulement pour l'Html ? ma page php ne peut être testé.
Par contre peut tu m'expliqué l'erreur faite. J'ai vérifié le code et pourtant j'ai répété mot pour mot... ?

Merci au fait.

Re: Formulaire en php/css

par Calimero » 22 janv. 2012, 19:25

Problème de nommage de tes champs de formulaire (deux champs avec un attribut name="email" identique).

N'hésite pas à passer tes pages au validateur HTML (je sais bien, on a beau le conseiller, personne ne le fait jamais, et pourtant ça règlerait tellement de problèmes...) : http://validator.w3.org/

Re: Formulaire en php/css

par xenno » 22 janv. 2012, 19:17

Mon dernier code est celui ci :
<?php

if(empty($_POST))
{
        extract($_POST);
        $valid=true;
        $valid=(empty($nom) || empty($email) || !filter_var($email,FILTER_VALIDATE_EMAIL) || empty($message)) ?false:true;
        $erreurnom=(empty($nom)) ? 'Indiquez un nom' : NULL;
        $erreuremail=(empty($email) || !filter_var($email,FILTER_VALIDATE_EMAIL)) ?'Indiquez un email valide' : NULL;
        $erreurmessage=(empty($message)) ? 'Indiquez un message' : NULL;
        $valid = true;
        if($valid)
        {
                $nom=strip_tags($nom);
                $email=strip_tags($email);
                $message=strip_tags($message);
				
           
           
                try{
                                $bdd = new PDO('mysql:host=mysql51-50.perso;dbname=hlpicturessai','hlpicturessai', 'HJct6J9R') or die(print_r($bdd->errorInfo()));
                                $bdd->exec('SET NAMES utf8');
                }
           
                catch(Exeption $e){
                die('Erreur:'.$e->getMessage());
                }
           
                $req = $bdd->prepare('INSERT INTO contact (nom,email,message) VALUES (:nom,:email,:message)');
                $req->execute(array(':nom'=>$nom,':email'=>$email,':message'=>$message));
                $req->closeCursor();
           
           
                $to = '[email protected]';
                $subject = ucwords($nom).' vous envoi un message';
                $message = nl2br($message);
           
                $headers = 'From:'.$email."\r\n";
                $headers.='MIME-version: 1.0'."\r\n";
                $headers.='Content-type: text/html; charset=utf-8'."\r\n";
				
				if(mail($to,$subject,$message,$headers))
				{
					unset($nom);
					unset($email);
					unset($message);
				}
        }
}
?>
avec :
<h2 id="contact">Contact</h2>
  

 <div id="contenu">
 

 <form action="index.php" method="post">
 
 <?php if(isset($erreurnom)):?>
 <label class="error" for="nom"><?php if(isset($erreurnom)) echo $erreurnom;?>:</label>
 <input type="text" class="error" name="nom" value="<?php if(isset($nom)) echo $nom;?>" />
 <?php else:?>
  <label for="nom">Nom :</label>
 <input type="text" name="nom" value="<?php if(isset($nom)) echo $nom;?>" />
 <?php endif;?>
 
 
 
 <?php if(isset($erreuremail)):?>
 <label class="error" for="email"><?php if(isset($erreuremail)) echo $erreuremail;?>:</label>
  <input type="text" class="error" name="email" value="<?php if(isset($email)) echo $email;?>" />
 <?php else:?>
  <label for="email">Email :</label>
 <input type="text" name="email" value="<?php if(isset($email)) echo $email;?>" />
 <?php endif;?>

 
 <?php if(isset($erreurmessage)):?>
 <label class="error" for="message"><?php if(isset($erreurmessage)) echo $erreurmessage;?>:</label>
 <textarea class="error" name="message"><?php if(isset($message)) echo $message;?></textarea>
 <?php else:?>
  <label for="message">Message :</label>
 <textarea name="message"><?php if(isset($message)) echo $message;?></textarea>
 <?php endif;?>

 
 
 <input type="submit" value="Envoyer"/>
 
 </form>

 
 
 </div>

En fait pour tester j'ai enlevé tout les codes d'erreurs pour voir (si j'allais avoir la même chose que sur l'image poster plus haut)
ceux la :
<?php if(isset($erreuremail)):?>
 <label class="error" for="email"><?php if(isset($erreuremail)) echo $erreuremail;?>:</label>
  <input type="text" class="error" name="email" value="<?php if(isset($email)) echo $email;?>" />
 <?php else:?>

J'ai bien reçus un mail. Mais vide.

Re: Formulaire en php/css

par xTG » 22 janv. 2012, 10:33

Pour pouvoir te répondre il nous faudra le script à jour.
Car ce n'est certainement pas avec le dernière script posté que tu envoies un email vu qu'il n'y a pas de fonction mail(). :)

Re: Formulaire en php/css

par xénoo » 21 janv. 2012, 15:54

En gros voilà le visuel :http://hlpictures.fr/Image2.jpg

Re: Formulaire en php/css

par xénoo » 21 janv. 2012, 13:01

Alors j'ai reussi à faire lancer le mail (qui est vide et que je reçois dans les indésirable de hotmail ^^)
<h2 id="contact">Contact</h2>
  

 <div id="contenu">


 <form action="index.php" method="post">
 
 <?php if(isset($erreurnom)):?>
 
 <label class="error" for="nom"><?php if(isset($erreurnom)) echo $erreurnom;?> :</label>
 <input type="text" class="error" name="nom" value="<?php if(isset($nom)) echo $nom;?>" />
 <?php else:?>
  <label for="nom">Nom :</label>
 <input type="text" name="nom" value="<?php if(isset($nom)) echo $nom;?>" />
 <?php endif;?>
 
 
 
 <?php if(isset($erreuremail)):?>
 <label class="error" for="email"><?php if(isset($erreuremail)) echo $erreuremail;?>:</label>
  <input type="text" class="error" name="email" value="<?php if(isset($email)) echo $email;?>" />
 <?php else:?>
  <label for="email">Email :</label>
 <input type="text" name="email" value="<?php if(isset($email)) echo $email;?>" />
 <?php endif;?>

 
 <?php if(isset($erreurmessage)):?>
 <label class="error" for="message"><?php if(isset($erreurmessage)) echo $erreurmessage;?>:</label>
 <textarea class="error" name="message"><?php if(isset($message)) echo $message;?></textarea>
 <?php else:?>
  <label for="message">Message :</label>
 <textarea name="message"><?php if(isset($message)) echo $message;?></textarea>
 <?php endif;?>

 
 
 <input type="submit" value="Envoyer"/>
 
 </form>

Problème avec ceci c'est qu'en testant mes barre sont rouge (comme si j'avais mal remplis quelque chose.)

Re: Formulaire en php/css

par xTG » 21 janv. 2012, 07:42

Tu as bien un service mysql qui tourne sur ton PC ?
Arrives-tu à y accéder via phpMyAdmin ou autre ?

Re: Formulaire en php/css

par xénoo » 20 janv. 2012, 22:04

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003] Can't connect to MySQL server on '127.0.0.1' (111)' in /homez.395/hlpictur/www/essai/index.php:21 Stack trace: #0 /homez.395/hlpictur/www/essai/index.php(21): PDO->__construct('mysql:host=127....', 'root', '') #1 {main} thrown in /homez.395/hlpictur/www/essai/index.php on line 21

Re: Formulaire en php/css

par xTG » 20 janv. 2012, 19:43

Remplaces localhost par 127.0.0.1 :)

Re: Formulaire en php/css

par xenno » 20 janv. 2012, 19:02

l'erreur si j'ai bien compris viens de la ligne 21 qui est la suivante :

$bdd = new PDO('mysql:host=localhost;dbname=essai','root', '') or die(print_r($bdd->errorInfo()));

Re: Formulaire en php/css

par xénoo » 20 janv. 2012, 18:50

c'est bon je suis en version : php 5.2.17

Par contre après avoir enlevé mon phpinfo (INFO_ALL);

j"ai ceci :

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)' in /homez.395/hlpictur/www/essai/index.php:22 Stack trace: #0 /homez.395/hlpictur/www/essai/index.php(22): PDO->__construct('mysql:host=loca...', 'root', '') #1 {main} thrown in /homez.395/hlpictur/www/essai/index.php on line 22

Re: Formulaire en php/css

par xénoo » 20 janv. 2012, 18:37

Comme dit j'ai suivis un tuto ... Je ne savais pas que sa influençais.
J'ai déjà un peu regardé et même essayé quelques techniques (qui ne fonctionne pas)

Quel est la meilleur manière de passé en php 5 ?