Vous n'êtes pas identifié.

Annonce

#1 Formulaire de contact, dans "page" du 26-11-2010 16:51:12

jb
c00lnaute nouveau
Date d'inscription: 11-10-2010
Messages: 15

Formulaire de contact, dans "page"

Salut C00lman,

Je me repenche sur le site que j'étais en train de faire, j'ai bien avancé grâce à toi, énorme merci !

J'ai parcouru le forum pour voir si tu n'avais pas déjà répondu au problème que j'ai, j'ai trouvé un post "Free KO" mais ce n'est pas exactement mon problème.


Voici la colle :

J'ai crée un formulaire assez similaire au tiens, et pour être sûr que ça ne vienne pas de moi, j'ai repris celui que tu proposes dans le tuto sur www.creer-un-site.fr. Je l'ai mis en bas de la page "page.php" prise de ton tuto, je clic sur envoyé et BAM, je me retrouve sur l'index. Et ce même si je ne remplis pas certains champs ...

J'ai aussi mis un include du formulaire DANS une page "contact.php", qui figure dans mon menu, et lorsque je ne remplis pas tous les champs, il m'affiche correctement l'erreur.


gnee What's happening ?

Merci d'avance !
Bonne soirée


Hors ligne

 

26-11-2010 16:51:12

Mister $$$
Créer un site


#2 Re Formulaire de contact, dans "page" du 26-11-2010 21:36:29

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Formulaire de contact, dans "page"

Salut jb,

En faite ton soucis est normal et dois être dut à un manque d'attention de ta part 014 ou alors tu n'as pas tout comprit ...donc je vais faire dans le détail razz .

Dans l'entête de page.php, tu as ce code :

Code:

if (!isset($_GET["id"]) OR !is_numeric($_GET['id'])){
header('location:http://'.$_SERVER['HTTP_HOST'].'');
}

Ce code signifie en gros : Si la variable n'existe pas ou qu'elle n'est pas de type numérique, on redirige vers l'index du site.
Dans mon formulaire, tu as ce code :

Code:

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

La variable d'environnement $_SERVER["PHP_SELF"] renvoie le nom du fichier en cours d'exécution soit page.php.

Étant donné que le premier code ne trouve pas la variable $_GET["id"], il te renvoie alors automatiquement sur l'index.

Solution :

Compléter le contenu de la balise action en y insérant l'id de la page :

Code:

<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>?id=<?php echo $id_transmit;?>">

Hors ligne

 

#3 Re Formulaire de contact, dans "page" du 27-11-2010 21:11:09

jb
c00lnaute nouveau
Date d'inscription: 11-10-2010
Messages: 15

Re: Formulaire de contact, dans "page"

Bonsoir,

Comme d'habitude, rapide, efficace, détaillé. Merci encore ;)

Ca fonctionne très bien en effet, mais ça ne fonctionne pas pour le script que j'avais pondu, qui était un foutoir total (mélange de javascript et de PHP, je ne raconte même pas la taille du fichier content (130) )

Merci !

Bonne soirée
Jb


Hors ligne

 

#4 Re Formulaire de contact, dans "page" du 03-02-2012 14:21:17

Fred515
c00lnaute nouveau
Date d'inscription: 03-02-2012
Messages: 2

Re: Formulaire de contact, dans "page"

Bonjour,
J'ai créé des formulaires de contact avec http://www.ge-net.ch pour 2 de mes sites, les 2 fonctionnent correctement.
Je viens d'en créer 1 pour un nouveau site www.ecolovelo.fr/contact.php
ça me donne ces messages:
Notice: Undefined variable: ok_mail in /homez.504/ecolovel/www/contact.php on line 146

Notice: Undefined variable: erreur in /homez.504/ecolovel/www/contact.php on line 157

Ces 3 sites sont hébergés chez le même hébergeur en l'occurence OVH.
Quelqu'un peut-il m'aider?
Merci d'avance
Fred


Hors ligne

 

#5 Re Formulaire de contact, dans "page" du 03-02-2012 15:35:50

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Formulaire de contact, dans "page"

Bonjour Fred515,

Les erreurs indiquent que les variables "ok_mail" et "erreur" ne sont pas définit.Pour éviter ce genre de soucis, il faut vérifier au préalable si la variable existe.

Code:

if(isset($ok_mail)){
echo $ok_mail;
}

Il faut faire la même chose avec l'autre variable.

Hors ligne

 

#6 Re Formulaire de contact, dans "page" du 03-02-2012 16:33:11

Fred515
c00lnaute nouveau
Date d'inscription: 03-02-2012
Messages: 2

Re: Formulaire de contact, dans "page"

Merci beaucoup, je vais essayer ça. Ce qui est bizarre, c'est que ça marche bien sur mes 2 autres sites www.atafana.net et www.authentiquement-tropical.com
Bonne soirée


Hors ligne

 

#7 Re Formulaire de contact, dans "page" du 03-02-2012 18:38:19

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Formulaire de contact, dans "page"

Dans l'immédiat et selon ce que je vois sur votre site, toutes les erreurs sont de même types, PHP ne reconnait pas vos variables...le pourquoi du comment, je ne sais pas pour le moment :).

Hors ligne

 

#8 Re Formulaire de contact, dans "page" du 13-02-2012 19:14:00

guiguibap
c00lnaute nouveau
Date d'inscription: 13-02-2012
Messages: 4

Re: Formulaire de contact, dans "page"

Bonsoir,

Alors j'ai parcouru ce forum et je n'ai pas trouver de réponse a mon problème. J'ai donc récupéré une parti de code php et je l'ai modifié pour faire un formulaire. Je précise également que mon hébergeur est free. Donc pas de problème la page s'affiche bien, si il me manque une information il le dit, mais quand je valide avec le bouton "Envoyé" rien ne ce passe, enfin si le formulaire s’efface, mais il ne m’envoie pas le mail et affiche encore moins le message comme quoi il est envoyé. Voici le code de la parti de la page concerné:

Code:

<?php if ($_POST['Merci, votre message à été envoyé, il sera traité dans les plus berf délais'] == "") { ?>
<form id="Envoi email" name="Envoi email" method="post" action="">
  <p>
    <label for="Nom2">Votre Nom</label>
    <input type="text" name="Nom" id="Nom2" />
  </p>
  <p>
    <label for="email">Votre e-mail</label>
    <input type="text" name="email" id="email" />
  </p>
  <p>
    <label for="Sujet">Sujet du message</label>
    <input type="text" name="Sujet" id="Sujet" />
  </p>
  <p>
    <label for="Message">Message</label>
    <textarea name="Message" id="Message" cols="45" rows="5"></textarea>
    <input name="Envoyer" type="submit" id="Envoyer" onclick="MM_validateForm('Nom2','','R','email','','R','Sujet','','R','Message','','R');return document.MM_returnValue" value="Envoyer" />
</p>
</form>
<?php } else {
mail("monadresse@free.fr", $_POST['sujet'], $_POST['message'],"From: ".$_POST['nom2']."<".$_POST['email'].">"); 
?>
<p></p>
<?php } ?>

j’espère que vous allez pouvoir m'aider, passé une bonne soirée, à bientôt

Dernière modification par guiguibap (13-02-2012 19:14:32)


Hors ligne

 

#9 Re Formulaire de contact, dans "page" du 13-02-2012 20:57:44

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Formulaire de contact, dans "page"

Bonsoir guiguibap,

Il manque une sacré partie du formulaire visiblement et l'utilisation des variables est plutôt bizarre..

Code:

<?php if ($_POST['Merci, votre message à été envoyé, il sera traité dans les plus berf délais'] == "") { ?>

C'est la première fois que je vois ça...de plus, rien d'en votre formulaire ne comporte ce texte dans l'attribut "name"..?
La, cette partie du code dit grossièrement que si la variable $_POST['votre texte à rallonge'] est vide, il faut exécuter ce qu'il y a en dessous et comme votre variable ne fait référence à aucun champ du formulaire, bin il fait rien ^^!
De plus, votre formulaire ne peut rien envoyé puisque vous ne lui dite pas à quelle moment l'envoyé...

Code:

<?php 
//le bouton "Envoyer" est cliqué
if(isset($_POST['Envoyer'])){
//traitement du formulaire
$nom = stripcslashes(htmlspecialchars($_POST["Nom"]));
//etc..
//Gestion des erreurs
if(empty($nom)){
echo 'Le champ "Nom" est vide.';
}
//etc..
//Tout est ok
else{
//envoie du formulaire
@mail($webmaster, $subject, $msg, $mailheaders);
//message d'envoie
echo 'Merci, votre message à été envoyé, il sera traité dans les plus berf délais';
}
}
?>
Formulaire ici

Hors ligne

 

#10 Re Formulaire de contact, dans "page" du 14-02-2012 14:34:06

guiguibap
c00lnaute nouveau
Date d'inscription: 13-02-2012
Messages: 4

Re: Formulaire de contact, dans "page"

Bonjour,

merci de votre réponse, du coup j'ai repris votre formulaire (des tutos) et il fonctionne d'enfer. Par contre j'ai rajouter 2-3 catégorie, dont une qui pose une question de sécurité, par contre j'arrive pas à trouver le code, qui dit que cette case =5

Code:

elseif (????????????($_POST["verif"]))

mes point interrogations correspondent au code que je ne sais pas??

Merci de votre aide, bonne journée


Hors ligne

 

#11 Re Formulaire de contact, dans "page" du 14-02-2012 14:48:02

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Formulaire de contact, dans "page"

En supposant que votre formulaire dispose d'un simple captcha :

Code:

<input type="text" name="verif" id="verif" />

Vous récupérez sa valeur dans une variable :

Code:

$verif = $_POST["verif"];

Puis vous comparez :

Code:

//Si la variable est différent de 5
elseif($verif != "5"){
echo 'erreur';
}

Hors ligne

 

#12 Re Formulaire de contact, dans "page" du 14-02-2012 16:09:40

guiguibap
c00lnaute nouveau
Date d'inscription: 13-02-2012
Messages: 4

Re: Formulaire de contact, dans "page"

Merci de votre réponse si rapide.

Wouahhh, vraiment merci, chapeau bas, vraiment!! Des heures de cherche....pfffff...encore merci

Juste une petite question encore, dans un autre formulaire, j'aimerai une rubrique N° de client. Tous mes numéro de client commence par C0, j'ai donc utilisé le même principe que pour le 5, c'est a dire:

Code:

elseif ($_POST["numero"] !="C0[0-9a-z]")

Mais dans ce cas, il me dit tous le temps que mon numéro client est incorrect (erreur que j'ai nommé ainsi)...

J'aimerai également faire la même chose pour une liste déroulante composé de 4 choix, mais ça ne fonctionne pas... Je vous poste donc mon code que de la parti concerné

Code:

if (isset($_POST["buches"])) $_POST["buches"]=trim(stripslashes($_POST["buches"]));

Code:

elseif ($_POST["buches"] !="[choix1-choix3]") { //
        $erreur="Dimension non séléctionné";

Code:

<label for="buches">Bûches: </label>
        <br/>
        <select name="buches">
        <option value="Choix">Dimmension à choisir.</option>
        <option value="choix1">1 m</option>
        <option value="choix2">50 cm</option>
        <option value="choix3">33 cm</option>
        <option value="choix4">charbonnette</option>
        </select>

J’essaie, mais je n'y arrive pas...pffff
Encore merci.

Dernière modification par guiguibap (14-02-2012 17:21:02)


Hors ligne

 

#13 Re Formulaire de contact, dans "page" du 14-02-2012 19:10:52

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Formulaire de contact, dans "page"

Bon, je ne suis pas fan des expressions régulières (pas très doué dans le domaine ^^) mais la comparaison que vous tentez de faire ne peut pas aboutir puisque la chaîne [0-9a-z] peut comporter n'importe quelle lettre et chiffre...donc en gros vous ne pouvez pas comparer $_POST["numero"] à une chaîne aléatoire.

Pas certains que le code ci-dessous soit exacte...mais dans l'idée il contrôle uniquement si le numéro de client commence bien par "C0" suivit de chiffres et/ou lettres :

Code:

if(!preg_match("#^C0[0-9a-z]*$#", $_POST["numero"]))
{
  echo 'Le numéro de client est incorrecte!';
}

L'idéal et le plus simple étant de faire soit transiter le numéro de client dans l'url ou par sessions ou par coockies pour l'afficher directement dans le formulaire.. comme ça pas d'erreur possible.

Concernant votre second formulaire :

name="buches" correspond au nom du formulaire donc à $_POST["buches"].
Si l'utilisateur ne sélectionne rien, le formulaire reste sur l'option "Choix" qui correspond à "Dimmension à choisir".
Pour l'obliger à sélectionner un choix :

Code:

if($_POST["buches"] == "Choix"){
echo 'Merci de sélectionner votre choix de dimension.';
}

Hors ligne

 

#14 Re Formulaire de contact, dans "page" du 14-02-2012 23:42:56

guiguibap
c00lnaute nouveau
Date d'inscription: 13-02-2012
Messages: 4

Re: Formulaire de contact, dans "page"

Alors la...tous fonctionne parfaitement, un très grand merci. Il y à du en avoir des heures pour arriver à votre niveau, tous simplement BRAVO.applause big_smile

Dernière modification par guiguibap (14-02-2012 23:43:25)


Hors ligne

 

Propulsé par PunBB
© Copyright 2007
Forum créer un site

Partenaires de « créer un site internet »