Questions multiples HTML/PHP/SQL

Questions multiples HTML/PHP/SQL - PHP - Programmation

Marsh Posté le 21-05-2017 à 13:32:10    

Bonjour à tous, pour mon projet de fin d'année qui consiste à réaliser un site internet et une base de donnée pour la création d'un système de télépéage, je viens demander un peu d'aide sur quelques problèmes que je rencontre.
 
Alors, le premier concerne mon formulaire de contact qui ne peut envoyer de mail, j'ai l'erreur suivante :  
 
Warning: mail(): SMTP server response: 530 5.7.0 Must issue a STARTTLS command first in C:\Users\maxen\Documents\NetBeansProjects\Peage\ihm\action_contact.php on line 13
 
En regardant en ligne 13, j'ai un "Breakpoint" dont j'ignore la signification sur NetBeans.
 
Voici donc le code de mon formulaire de contact :

Code :
  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <meta charset="UTF-8">
  5.         <link href="css/modele08.css" rel="stylesheet">
  6.         <script>
  7.             function valider()
  8.             {
  9.                 alert("Pas bon" );
  10.                 return true;
  11.             }
  12.         </script>
  13.    <title>Nous contacter</title>   
  14.     </head>
  15.     <body>
  16.         <div id="global">
  17.             <div id="entete">
  18.                 <img id="baniere" src="<!images/header.png" alt="Image_entête">
  19.                 <?php include 'menu.php'; ?>
  20.             </div>
  21.             <div id="contenu">
  22.                 <h1>Un problème ou une question ?</h1>
  23.                 <h2>Remplissez ce formulaire et nous vous répondrons dans les plus brefs délais</h2>
  24.             </div>
  25.             <div class="container">
  26.                 <link href="css/Contact_form.css" rel="stylesheet"> 
  27.                 <form action="action_contact.php" onsubmit="return valider()" method="POST">
  28.                     <label for="fname">Nom et prénom</label>
  29.                     <input type="text" id="name" name="name" placeholder="Votre nom et prénom...">
  30.                     <label for="ymail">Mail</label>
  31.                     <input type="text" id="mail" name="mail" placeholder="Votre adresse mail...">
  32.                     <label for="ymail">Objet de la demande</label>
  33.                     <input type="text" id="object" name="object" placeholder="Objet de la demande...">
  34.                    
  35.                     <label for="subject">Votre message</label>
  36.                     <textarea id="message" name="message" placeholder="Ecrivez quelque chose..." style="height:200px"></textarea>
  37.                     <input type="submit" value="Envoyer">
  38.                 </form>
  39.             </div>
  40.         </div>
  41.     </body>
  42. </html>


 
Et le code de "action_contact" en php

Code :
  1. <?php
  2. $destinataire = 'maxence.telepeagediderot@outlook.fr';
  3. // Pour les champs $expediteur / $copie / $destinataire, séparer par une virgule s'il y a plusieurs adresses
  4. $expediteur = $_POST['mail'];
  5. $objet = $_POST['object'];
  6. $headers  = 'MIME-Version: 1.0' . "\n"; // Version MIME
  7. $headers .= 'Content-type: text/html; charset=ISO-8859-1'."\n"; // l'en-tete Content-type pour le format HTML
  8. $headers .= 'Reply-To: '.$expediteur."\n"; // Mail de reponse
  9. $headers .= 'From: "Nom_de_expediteur"<'.$expediteur.'>'."\n"; // Expediteur
  10. $headers .= 'Delivered-to: '.$destinataire."\n"; // Destinataire     
  11. $message = '<div style="width: 100%; text-align: center; font-weight: bold"> Bonjour'.$_POST['name'].'! \n'.$_POST['message'].'</div>';
  12. if (mail($destinataire, $objet, $message, $headers)) // Envoi du message
  13. {
  14.     echo 'Votre message a bien été envoyé ';
  15. }
  16. else // Non envoyé
  17. {
  18.     echo "Votre message n'a pas pu être envoyé";
  19. }
  20. ?>


J'ai cherché sur le net, configuré mon php.ini mais rien ne change :/
 
 
Le problème suivant concerne mon formulaire d'inscription qui ne rentre pas les infos saisies dans les différentes tables de ma base de donnée mais ne retourne pas la moindre erreur.
 
Le code de mon formulaire d'inscription :

Code :
  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <meta charset="UTF-8">
  5.         <link href="css/modele08.css" rel="stylesheet">
  6.         <title>Inscription</title>
  7.     </head>
  8.    
  9.     <body>
  10.         <div id="global">
  11.             <div id="entete">
  12.                 <img id="baniere" src="images/header.png" alt="Image_entête">
  13.                 <?php include 'menu.php'; ?>
  14.             </div>
  15.            
  16.              <div id="contenu">
  17.                 <h1>Page d'inscription</h1>
  18.                
  19.             </div>
  20.            
  21.             <div class="container">
  22.                 <link href="css/Contact_form.css" rel="stylesheet"> 
  23.                 <form action="/edsa-Péage/ihm/fonction_inscrip.php" onsubmit="return valider()">
  24.                     <label for="nom">Nom</label>
  25.                     <input type="text" id="nom" name="nom" placeholder="Nom...">
  26.                     <label for="prenom">Prenom</label>
  27.                     <input type="text" id="prenom" name="prenom" placeholder="Prenom...">
  28.                  
  29.                     <label for="tel">Numéro de téléphone</label>
  30.                     <input type="text" id="tel" name="tel" placeholder="Numéro de téléphone...">
  31.                    
  32.                     <label for="mail">Mail</label>
  33.                     <input type="text" id="mail" name="mail" placeholder="Mail...">
  34.                    
  35.                     <label for=pass>Mot de passe</label>
  36.                     <input type="password" id="pass" name="pass" placeholder="Mot de passe...">
  37.                     ____________________________________________________________________________________________________________________________________
  38.                     <br/><br/>
  39.                    
  40.                     <label for="cb">Carte bleu</label>
  41.                     <input type="int" id="cb" name="cb" placeholder="Carte bleue...">
  42.                     <label for="">Cryptogramme</label>
  43.                     <input type="int" id="crypto" name="crypto" placeholder="Cryptogramme...">
  44.                    
  45.                     <label for="expi">Date d'expiration</label>
  46.                     <input type="date" id="expi" name="expi" placeholder="Date d'expiration...">
  47.                     ____________________________________________________________________________________________________________________________________
  48.                     <br/><br/>
  49.                    
  50.                     <label for="vile">Ville</label>
  51.                     <input type="text" id="vile" name="vile" placeholder="Ville...">
  52.                    
  53.                     <label for="adress">Adresse</label>
  54.                     <input type="text" id="adress" name="adress" placeholder="Adresse...">
  55.                     <label for="cp">Code postale</label>
  56.                     <input type="int" id="cp" name="cp" placeholder="Code postale...">
  57.                     <input type="submit" value="Envoyer">
  58.                 </form>
  59.             </div>
  60.            
  61.         </div>   
  62.     </body>
  63. </html>


 
Toujours ce "Breakpoint" en ligne 13.
 
Et le code de "fonction_inscrip"

Code :
  1. <?php
  2.     include 'connexion.php';
  3.    
  4.     $nom = $_POST['Nom'];
  5.     $prenom = $_POST['Prenom'];
  6.     $tel = $_POST['Téléphonne'];
  7.     $mail = $_POST['E-mail'];
  8.     $pass = sha1($_POST['Mot_de_passe']);
  9.     $cb = $_POST['CB'];
  10.     $crypto = $_POST['crypto'];
  11.     $expi = $_POST['expiration'];
  12.     $ville = $_POST['ville'];
  13.     $adress = $_POST['adresse'];
  14.     $cp = $_POST['code postal'];
  15.    
  16.       // Insertion des informations à l'aide d'une requête préparée
  17.     $req = $bdd->prepare('INSERT INTO client(Nom, Prenom, Téléphone, E-mail, Mot_de_passe) VALUES(?, ?, ?, ?, ?)');
  18.     $req->execute(array(
  19.         $nom,
  20.         $prenom,
  21.         $tel,
  22.         $mail,
  23.         $pass));
  24.        
  25.     $req = $bdd->prepare('INSERT INTO coordonnes(CB, crypto, expiration) VALUES(?, ?, ?)');
  26.     $req->execute(array(
  27.         $cb,
  28.         $crypto,
  29.         $expi));
  30.        
  31.     $req = $bdd->prepare('INSERT INTO adresse(ville, adress, code postal) VALUES(?, ?, ?)');
  32.     $req->execute(array(
  33.         $ville,
  34.         $adress,
  35.         $cp));
  36.    
  37.     $resultat = $req->fetch();
  38.     // Redirection du visiteur vers la page du formulaire
  39.     header('location: Inscription.php');
  40. ?>


 
Donc voilà, si quelqu'un a une petite idée d'où peut venir le problème, je suis preneur.
 
Merci d'avance :)


---------------
Topal Achat/Vente | 1° Mod : [Workblog] Pendemic Mod | 2° Mod : [Workblog] Purple Evolution
Reply

Marsh Posté le 21-05-2017 à 13:32:10   

Reply

Marsh Posté le 21-05-2017 à 18:22:09    

Bonjour,
 
Pour le problème de mail, as-tu activé l'extension open_ssl de php?
 
Pour le problème de formulaire :

Code :
  1. <link href="css/Contact_form.css" rel="stylesheet">
  2.                 <form action="/edsa-Péage/ihm/fonction_inscrip.php" onsubmit="return valider()">


 
Que fait la balise "link" ici? Sa place est entre les balises "head".
La fonction "valider()" se trouve où?
 
Ligne 37 du formulaire, il manque des guillemets autour des valeurs de l'attribut "for" de la balise "label".


Message édité par MaybeEijOrNot le 21-05-2017 à 18:24:43

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 22-05-2017 à 09:49:47    

Bonjour,
 
L'option open_ssl n'était pas activée, après activation de celle-ci, le problème persiste toujours.
 
J'ai changé la balise link de place comme tu le préconises.
Pour la fonction valider, elle est présente dans le formulaire de contact, j'ai oublié de le mettre dans le formulaire d'inscription, je viens de rectifier ça.
 
Pour les guillemets manquants, c'est corrigé.
 
Malheureusement, le problème avec le formulaire d'inscription persiste lui aussi :(
 
Merci pour la réponse !


---------------
Topal Achat/Vente | 1° Mod : [Workblog] Pendemic Mod | 2° Mod : [Workblog] Purple Evolution
Reply

Marsh Posté le 22-05-2017 à 14:12:22    

Pour le problème de mail, après une rapide recherche, certains précisent au niveau du .ini le protocole ssl dans le smtp.
 
Pour le formulaire, je ne pense pas que le problème vienne du php puisqu'aucun message d'erreur apparaît et que les erreurs et warnings sont activées vu le message obtenu pour le problème de mail. Je viens de voir que le méthode n'était pas précisée dans le form, or la valeur par défaut est "GET", ça peut être une bonne raison du dysfonctionnement puisqu'après les données sont récupérées via la méthode POST... Si ce n'est pas ça je pencherai plus vers le js.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 22-05-2017 à 14:57:26    

J'ai eu de l'aide de mon prof, pour le formulaire, c'était juste un problème de syntaxe pour "E-mail" ou il faut ajouter les quotes à l'envers " ` " car le " - " pose problème, même chose pour l'espace dans "code postal".  
C'était donc au niveau SQL.
 
Je peux maintenant créer des comptes et me connecter avec ces comptes sur mon site.
 
Je vais aussi enlever la fonction valider qui ne sert à rien puisqu'elle ne retourne que "Pas bon"
 
Maintenant, persiste le problème avec les mails, j'avais essayé de préciser le protocole SSL mais ça fonctionnait pas car l'extension open_ssl était pas active, je vais de nouveau tester ça.
 
Merci pour l'aide en tout cas


---------------
Topal Achat/Vente | 1° Mod : [Workblog] Pendemic Mod | 2° Mod : [Workblog] Purple Evolution
Reply

Marsh Posté le 22-05-2017 à 15:23:54    

Au niveau du formulaire, en effet les noms des champs ne correspondent pas à tes variables PHP, il faut donc aussi corriger si ce n'est pas déjà fait.
 
Si ta fonction js ne fait que retourner "false" c'est aussi qu'il y a une raison. Que fait cette fonction?


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 23-05-2017 à 09:56:28    

Pour le formulaire, c'est corrigé.
 
Je cherche maintenant à faire disparaître la page de connexion quand la session est active, quand je suis authentifié sur le site donc.  
En gros, le lien lien vers la page de connexion laisse place à une page pour accéder aux infos de l'utilisateur.
 
 
Sinon :

Code :
  1. <script>
  2.             function valider()
  3.             {
  4.                 alert("Pas bon" );
  5.                 return true;
  6.             }
  7.         </script>


 
C'est la fonction "valider". Comme tu peux le voir, que ce soit bon ou non, elle retournera toujours "Pas bon", je viens de faire le test en me connectant au site et elle a bien retourné "Pas bon" alors que la connexion s'est bien déroulée.


---------------
Topal Achat/Vente | 1° Mod : [Workblog] Pendemic Mod | 2° Mod : [Workblog] Purple Evolution
Reply

Marsh Posté le 23-05-2017 à 14:00:14    

Je vois mal l'intérêt de la fonction "valider()". :pt1cable:  
 
Sinon il suffit de créer une variable de session lors de la connexion et de regarder si elle est définit ou non pour afficher ou non le contenu.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 24-05-2017 à 09:50:24    

Bah oui, justement, elle n'a pas d'intérêt, pour ça que je l'ai enlevée.
 
Pour ma question précédente, c'est fait, une fois connecté, je redirige vers une nouvelle page qui reste en place temps que la session est active, une fois que je me déconnecte, la page de connexion reprends sa place, me reste maintenant quelques requêtes SQL et le projet touchera presque à sa fin.


---------------
Topal Achat/Vente | 1° Mod : [Workblog] Pendemic Mod | 2° Mod : [Workblog] Purple Evolution
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed