Formulaire html et php

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 html et php

Re: Formulaire html et php

par Sajou » 08 juin 2015, 18:32

Merci Ryle.

Re: Formulaire html et php

par Ryle » 08 juin 2015, 18:17

Bonjour,

Désolé, je n'avais pas compris les symptômes.. Je pense que ton problème vient du fait que le lien href s'exécute avant le onclick, ce qui a pour effet de recharger ta page au lieu de soumettre le formulaire :

Je pense que tu peux essayer l'une de ces solutions :
<a href="#" class="button" onClick="document.getElementById('form').submit()">Envoyer</a>

<a href="javascript:void(0);" class="button" onClick="document.getElementById('form').submit()">Envoyer</a>

<a href="javascript:document.getElementById('form').submit()" class="button">Envoyer</a>

Re: Formulaire html et php

par Sajou » 06 juin 2015, 15:43

Merci wampserver fonctionne normalement .

Donc voila j'ai un formulaire crée en html et css donc pour l'instant tout va bien. le soucis pour moi c'est la relation entre le html et le php.

Mon fichier contacts.html et mon fichier contacts.php crées, il ne se passe strictement rien, je ne sais pas pour quoi la page html ne fait pas appelle au php pour m'envoyer les infos sur mon adresse email.

Le formulaire est relativement simple je demande le nom, mail et message. En cliquant sur le bouton "Envoyer" les donné disparaissent du formulaire et rien d'autre exactement comme quand il n'y avait pas le fichier php.

Re: Formulaire html et php

par Ryle » 05 juin 2015, 09:27

Lorsque tu obtiens ta page blanche, regarde quand même le code source de celle-ci, il y a de grande chance que tu y retrouves ton code php non interprété par le serveur et envoyé tel quel au navigateur (navigateur qui ne l'affiche pas puisqu'il est encapsulé dans des balises < et >)

Pour le message d'erreur php que tu obtiens, cela pourrait provenir d'un problème de chargement des extensions... il faudrait vérifier que le chemin extension_dir dans la conf d'apache est correcte et que toutes les extensions dont wamp a besoin sont bien activées (je les connais pas, mais en cherchant sur le net il semble qu'il y ait plusieurs sujets sur ce thème.

Le problème viendrait du chargement des extension php_ldap.dll et php_intl.dll.

De ce que j'ai pu lire, le premier peut être résolu en recopiant le fichier "wamp/bin/php/php5.4.16/libsasl.dll" dans "wamp/bin/apache/apache2.4.4/bin/"
Pour le second, la copie des fichiers de "wamp/bin/php/php5.4.16/" :
- icudt49.dll
- icuin49.dll
- icuio49.dll
- icule49.dll
- iculx49.dll
- icutest49.dll
- icutu49.dll
- icuuc49.dll
dans "wamp/bin/apache/apache2.4.4/bin/" ont permis à certains de résoudre le problème :)

Re: Formulaire html et php

par Sajou » 04 juin 2015, 17:25

Lu,

Merci pour ton lien.

J'ai vérifié dans les logs php et apache de wamp.

Voilà pour php :

[04-Jun-2015 14:05:46 UTC] PHP Warning: PHP Startup: in Unknown on line 0

[04-Jun-2015 14:05:46 UTC] PHP Warning: PHP Startup: in Unknown on line 0

[04-Jun-2015 14:05:47 UTC] PHP Warning: PHP Startup: in Unknown on line 0

[04-Jun-2015 14:05:47 UTC] PHP Warning: PHP Startup: in Unknown on line 0

[04-Jun-2015 14:32:43 UTC] PHP Warning: PHP Startup: in Unknown on line 0

[04-Jun-2015 14:32:43 UTC] PHP Warning: PHP Startup: in Unknown on line 0

[04-Jun-2015 14:32:44 UTC] PHP Warning: PHP Startup: in Unknown on line 0

[04-Jun-2015 14:32:44 UTC] PHP Warning: PHP Startup: in Unknown on line 0

Voilà pour apache :

[Thu Jun 04 16:05:46.938080 2015] [mpm_winnt:notice] [pid 2788:tid 400] AH00455: Apache/2.4.9 (Win64) PHP/5.5.12 configured -- resuming normal operations
[Thu Jun 04 16:05:46.938080 2015] [mpm_winnt:notice] [pid 2788:tid 400] AH00456: Apache Lounge VC11 Server built: Mar 16 2014 12:42:59
[Thu Jun 04 16:05:46.938080 2015] [core:notice] [pid 2788:tid 400] AH00094: Command line: 'c:\\wamp\\bin\\apache\\apache2.4.9\\bin\\httpd.exe -d C:/wamp/bin/apache/apache2.4.9'
[Thu Jun 04 16:05:46.939080 2015] [mpm_winnt:notice] [pid 2788:tid 400] AH00418: Parent: Created child process 8780
[Thu Jun 04 16:05:47.465084 2015] [mpm_winnt:notice] [pid 8780:tid 300] AH00354: Child: Starting 64 worker threads.
[Thu Jun 04 16:30:12.697902 2015] [mpm_winnt:notice] [pid 2788:tid 400] AH00422: Parent: Received shutdown signal -- Shutting down the server.
[Thu Jun 04 16:30:27.598754 2015] [mpm_winnt:notice] [pid 8780:tid 300] AH00364: Child: All worker threads have exited.
[Thu Jun 04 16:30:27.614755 2015] [mpm_winnt:notice] [pid 2788:tid 400] AH00430: Parent: Child process 8780 exited successfully.
[Thu Jun 04 16:32:43.661967 2015] [mpm_winnt:notice] [pid 1236:tid 400] AH00455: Apache/2.4.9 (Win64) PHP/5.5.12 configured -- resuming normal operations
[Thu Jun 04 16:32:43.661967 2015] [mpm_winnt:notice] [pid 1236:tid 400] AH00456: Apache Lounge VC11 Server built: Mar 16 2014 12:42:59
[Thu Jun 04 16:32:43.661967 2015] [core:notice] [pid 1236:tid 400] AH00094: Command line: 'c:\\wamp\\bin\\apache\\apache2.4.9\\bin\\httpd.exe -d C:/wamp/bin/apache/apache2.4.9'
[Thu Jun 04 16:32:43.662967 2015] [mpm_winnt:notice] [pid 1236:tid 400] AH00418: Parent: Created child process 5240
[Thu Jun 04 16:32:44.140994 2015] [mpm_winnt:notice] [pid 5240:tid 300] AH00354: Child: Starting 64 worker threads.


Pour activer les messages d'erreurs : mon fichiers php.ini n'ai pas eu besoin de le modifié puisque les valeurs sont identiques.

J'ai rajouté error_reporting (E_ALL); au début de ma page php.

voila le début du php :

error_reporting(E_ALL);
<?php

if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['message'])) {

etc...


Résultat pas de page blanche. En appuyant sur le bouton "envoyer" il se passe rien.

Merci pour votre aide.

Re: Formulaire html et php

par tof73 » 04 juin 2015, 15:54

Re: Formulaire html et php

par Sajou » 04 juin 2015, 15:13

Merci pour ta réponse.

J'ai installé wampserver.

Je suis bien sur un localhost. En utilisant le bouton "envoyer" j'ai un écran blanc. Je pense peut être mis prendre mal.

Cdlt

Re: Formulaire html et php

par Ryle » 04 juin 2015, 09:28

Bonjour,

Si le code php apparait à l'écran, c'est que celui-ci n'est pas interprété par le serveur pour générer le code html, et qu'il est retourné en l'état, comme si c'était une page html ou texte...

Est-ce que tu travailles en local sur ton poste ? auquel cas as-tu installé un serveur php (lamp/wamp, easyphp, ...) ? et utilises-tu celui-ci pour tes test (tu ouvres ton formulaire en passant une url en http://localhost/...) ?

Si tu travailles sur un serveur, assure toi que celui-ci propose bien une fonction pour gérer le php et que celle-ci est opérationnelle :) (peut être une option à activer pour que le code php soit exécuté avant d'être retourné, ...)

Formulaire html et php

par Sajou » 04 juin 2015, 05:41

Bonjour à tous,

Une âme charitable pour un novice.

Création d'un formulaire de contact (problème entre mon html et php).

Mon html :
<h2 class="top-1 p3">Nous Contacter</h2>
         <form id="form" method="post" action="js/contacts.php"><fieldset>
        
          
            <label><strong>Votre Nom:</strong>
            <input type="text" name="nom" value=""  maxlength="35">
            </label>
            <label><strong>Votre E-mail:</strong><input 
            type="text" name="email"maxlength="35"></label>
            
            <label><strong>Votre Message:</strong>
            <textarea name="message" rows="15" cols="80">
            </textarea></label>
            
             <div class=""><a href="#" class=""></a>
             <div class="btns"><a href="#" class="button">Effacer</a>
            <a href="" class="button" onClick="document.getElementById('form').submit()">Envoyer</a>
            
            </div>
            
          </fieldset>  
        </form>
Mon php :
<?php

if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['message'])) {
	extract ($_POST) ;
	if(!empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['message'])){
		
		$message = str_replace ("\'","'",$message);
		$destinataire = "[email protected]";
		$sujet = "Formulaire de contact";
		$msg = "Une nouvelle question est arrivée \n
		
		Nom : &nom \n
		Email : &email \n
		Message : &message";
		
		   if (mail($destinataire,$sujet,$msg))
{
    echo 'Message envoyé';
} else
{
    echo "Vous n'avez pas rempli tous les champs";
    echo " (".$destinataire.",".$sujet.",".$msg.")";
}
	
	}
}
	
?>
Quand je remplis le formulaire et que je valide, une page avec le php apparaît.

Merci d'avance pour vos réponses