Page 1 sur 1

Probleme Code

Posté : 02 juin 2016, 00:22
par sebastienb
Merci pour l'Acceptation au groupe , j'ai besoin de votre aide je suis novice en la matière, donc voilà mon problème j'essaie de bidouiller une ligne de code depuis 4-5h mais j'arrive à rien :) sa serais bien apprécier Faite moi signe en msg privé !!
j'ai mis mon code en pdf jai fait ca le plus visuelle possible avec couleurs etc pour mieux se repérer
Lien drop box : https://www.dropbox.com/s/ld7cuboxkvco2 ... e.pdf?dl=0
Donc probleme est l'ajout j'ai fait à mon code dans le fichier sendEmail.php
Il ne vérifie pas si le captcha est le bon et envois tout de meme le courriel. avec les autres champs remplis.
Donc merci à celui qui me sort du problème :)

Re: Probleme Code

Posté : 02 juin 2016, 01:28
par sebastienb

Re: Probleme Code

Posté : 02 juin 2016, 10:18
par Naroth
Bonjour sebastienb,

Voici une possibilité pour ton problème

index.php : J'ai rajouter un formulaire qui permettra d'envoyer les informations à une autre page qui traitera les informations

Code : Tout sélectionner

<?php session_start(); ?> <html> <head> </head> <body> <form action="postpage.php" method="POST"> <img src="img.php"/> <input type="text" name="code" placeHolder="Entrer la valeur de captcha"/> <input type="submit" value="valider"/> </form> </body> </html>
img.php : J'ai du séparer la génération d'image pour à cause des headers

Code : Tout sélectionner

<?php session_start(); header("Cache-Control: no-cache, must-revalidate"); header('Content-type: image/png'); $code=rand(1000,9999); $_SESSION["code"]=$code; $im = imagecreatetruecolor(50, 24); $bg = imagecolorallocate($im, 22, 86, 165); //background color blue $fg = imagecolorallocate($im, 255, 255, 255);//text color white imagefill($im, 0, 0, $bg); imagestring($im, 5, 5, 5, $code, $fg); imagepng($im); imagedestroy($im); ?>
postpage.php : Ici tu pourras tester le code contenu dans ta variable de session et la valeur envoyer par le formulaire

Code : Tout sélectionner

<?php session_start(); var_dump($_POST); //Valeur du code dans le formulaire var_dump($_SESSION); //Valeur du code de l'image ?>

Re: Probleme Code

Posté : 02 juin 2016, 12:49
par sebastienb
Merci mais le formulaire existant que j'Avais fonctionnais tres bien c'est le rajout du Captcha qui ne fonctionne pas .. :(

Re: Probleme Code

Posté : 02 juin 2016, 13:39
par Naroth
Autant pour moi je n'avais pas vu qu'il y avait plusieurs pages sur ton github.
Donc pour te répondre avec l'intégralité du code que tu as laissé sur github



Tu as un if pas fermé et dont les accolades ne sont pas présente (L.36)

Ta variable $message n'est pas initialisé

Code : Tout sélectionner

$message .= "Message de: " . $name . "<br><br />"; //La variable $message n'étant pas initialisé php n'aime pas ajouter du texte à quelque chose qui n'a jamais été défini.
Tu ne démarre jamais ta session dans ton fichier sendEmail.php et pourtant tu essayes de tester la valeur de $_SESSION['code']
Si tu ne démarre pas ta session, $_SESSION['code'] vaut null, du coup peut importe ce qui est entré par l'utilisateur il ne sera jamais égale à null

Et je finirais par ça qui n'est pas vraiment une erreur mais en principe les variables $_GET, $_POST sont testé par un isset() http://php.net/manual/fr/function.isset.php




A l'avenir un pti tip pour vérifier les syntaxes d'un fichier php
tu ouvres un invité de commandes

C:\> cd C:\wamp\www\debug
C:\wamp\www\debug>php -l sendEmail.php
Parse error: syntax error, unexpected '$message' (T_VARIABLE) in sendEmail.php on line 37

Errors parsing sendEmail.php


cd : permet de changer de répertoire ( tu peux récuperer le chemin via un explorer windows si tu n'es pas a l'aise avec la navigation par ligne de commande)
php -l : c'est un L après le moins, il vérifie la syntaxe php

le terminal te dira si il y a des erreurs de syntaxes et à quelles lignes (marche aussi sous linux)

Re: Probleme Code

Posté : 02 juin 2016, 14:42
par sebastienb
pourtant elle est identifié ici ? la ligne msg ne me donne pas de probleme quand je remplis le formulaire jobtien bel et bien le message de la personne la ou jai le probleme cest que le sendEmail.php ne verifie pas le numero du à la ligne 36 qui marche mal. et ouais le session oublier..
// Set Message
$message .= "Message de: " . $name . "<br><br />";
$message .= "Adresse courriel: " . $email . "<br><br />";
$message .= "Message: <br />";
$message .= $contact_message;
$message .= "<br /> ----- <br /> Ce message a été envoyer via www.grp3b.com <br />";

Re: Probleme Code

Posté : 02 juin 2016, 14:44
par sebastienb
comme je dit je suis novice .. et jai aucune idée comment fermé la ligne 36 pour quelle soit fonctionnelle comme les autres tu la terminerais comment ?

un enorme merci de ton temps tu m'accorde

Re: Probleme Code

Posté : 02 juin 2016, 14:53
par Naroth
Alors voici ta ligne 36

Code : Tout sélectionner

if (isset($_POST["captcha"])&&$_POST["captcha"]!=""&&$_SESSION["code"]==$_POST["captcha"]
Un if doit toujours avoir un parenthèse ouvrante et une fermante de ce fait ton if devient :

Code : Tout sélectionner

if (isset($_POST["captcha"])&&$_POST["captcha"]!=""&&$_SESSION["code"]==$_POST["captcha"] )
Maintenant ton if n'a pas d'accolade on va devoir les ouvrir et les fermer correctement

Code : Tout sélectionner

if (isset($_POST["captcha"])&&$_POST["captcha"]!=""&&$_SESSION["code"]==$_POST["captcha"] ) { // ... ton code }
Dans la pratique tu dois le fermer ligne 83.