probleme pour verification de champ vide

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 : probleme pour verification de champ vide

Re: probleme pour verification de champ vide(resolu)

par aurel08 » 05 sept. 2010, 22:49

bon ben je vais ouvrir un nouveau sujet merci a tous pour votre aide.

Re: probleme pour verification de champ vide

par aurel08 » 05 sept. 2010, 22:24

pour mon ancien probleme non il en a plus et la pour mon captcha j'ai aucune lettre qui saffiche pour recopié re voici mes code car j'ai corigé des erreur :
index1.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml/DTD/xhtml1-scrict.dtd">
<html xml:lang="fr" xmlns="http://www.3.org/1999/xhtml">

<?php

session_start();

if (!empty($_POST['captcha'])) {
 if ($_POST['captcha'] == $_SESSION['captcha']) {
   $resultat = '<p>Merci De Votre Message!</p>';
 } else {
	$resultat = '<p>Code incorrect!</p>';
 }
} else {
  $resultat = '<p>veuillez entré le code ci dessou!</p>';
 }
$_SESSION['captcha'] = substr(md5(rand(0.10000).time()),0,6);

?><html>
<head>
<body>
<?php echo $resultat; ?>
<form action="index1.php" method="post">
<img src="captcha.php"><input type="text" name="captcha" value=""><br/>
<input type="submit" value="go" />
</form>

et captcha.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml/DTD/xhtml1-scrict.dtd">
<html xml:lang="fr" xmlns="http://www.3.org/1999/xhtml">

<?php

header(*Content-Type: image/png*);

session_start();
$im = imagecreate(100, 40);

$white = imagecolorallocate($im, 255, 255. 255);
$black = imagecolorallocate($im, 0, 0. 0);

imagettftext($im, rand(13, 25), rand(-30, 30), 0 + 20 * $i + rand(0, 5), 20 + rand(0,10) , $couleur, './WAVY.TTF',
$SESSION['captcha'][$i]);

imagefill($im, 0, 0, $white);

if (!empty($_SESSION['captcha'])) {
 for($i = 0; $i < strlen($_SESSION['captcha']); $i++) {
	$r = rand(0.255);
	$g = rand(0.255);
	$b = sqrt(100 * 100 - $r * $r - $g * $g);
	$couleur = imagecolorallocate($im, $r ,$g,$b);
	imagechar($im, rand(0,4), 0 + 10 * $i + rand(0,5), rand(0,10) ,
	 $_SESSION['captcha'][$i], $couleur);
 }
}

imagepng($im);
imagedestroy($im);
?>
voila la j'ai corriger des erreur mes aucune code s'affiche voic le lien pour que vous voyez pas vous meme : http://php.sogames-prod.com/index1.php

j'etait sur un autre site pour demandé de l'aide vraiment de la m**rde on reçois plus de reflection que de l'aide jamais vu sa heuresement que php france est la serieux merci encore de votre aide.

Re: probleme pour verification de champ vide

par Ryle » 05 sept. 2010, 21:54

Tu as un message d'erreur ?

Pour le précédent problème, j'ai simplement remonté le code permettant la "Récupération des valeurs du formulaire" avant le code permettant de vérifier si ces valeurs sont vides ou non :) (j'ouvre la porte avant d'entrer ;))

Re: probleme pour verification de champ vide

par aurel » 05 sept. 2010, 18:38

bonjour,

bon la j'ai une erreur avec mon captcha je voi pas l'erreur que j'ai dans mon dans voici les code :

index1.php
<?php

session_start();

if (!empty($_POST['captcha'])) {
 if($_POST['captcha'] == $_POST['captcha']) {
   $resultat = '<p>Merci De Votre Message!</p>';
 } else {
	$resultat = '<p>Code incorrect!</p>';
 }
} else {
  $resultat = '<p>veuillez entré le code ci dessou!</p>';
 }
$_POST['captcha'] = substr(substr(md5(rand(0.10000).time()),0,6);

?>

<?php echo $resultat; ?>
<form action="captcha.php" method="post">
<img src="captcha.php"> <imput type="text" name="captcha" value=""><br/>
<input type="submit" value="go" />
</form>

et captcha.php
<?php

header(*Content-Type: images/png*);

session_start();
$im = imagecreate(100, 40);

$white = imagecolorallocate($im, 255, 255. 255);
$black = imagecolorallocate($im, 0, 0. 0);

imagefill($im, 0, 0, $whilte);

if (!empty($_POST['captcha'])) {
 for($i = 0; $i < strlen($_POST['captcha']); $i++) {
	$r = rand(0.255);
	$g = rand(0.255);
	$b = sqrt(100 * 100 - $r * $r * - $g * $g);
	$couleur = imagecolorallcate($im, $r ,$g,$b);
	imagechar($im, rand(0,4), 0 + 10 * $i + rand(0,5), rand(0.10) .
	 $_POST['captcha'][$i], $couleur);
 }
}

image($im);
imagedestroy($im);
?>
voila merci de votre aide

Re: probleme pour verification de champ vide

par aurel » 05 sept. 2010, 17:25

bonjour,

merci de votre est se que vous pouvez me dire exactement se que vous avez fait pour debeuger le scritp car la a part sa :
// déclaration des variables pour pouvoir les utiliser par la suite
$url = ''; 
$erreur = 'non';
<?php
if ($succes)
  echo "message envoyé";
else
  echo "erreur lors de l'envoi";
?>
c'est ceci qui a fait de-beug le script?

Re: probleme pour verification de champ vide

par Ryle » 05 sept. 2010, 16:20

Et si tu essayes comme ceci ?
<?php

// Récupération des valeurs du formulaires
$nom = $_POST['nom'];
$email = $_POST['email'];
$message = $_POST['message'];

// déclaration des variables pour pouvoir les utiliser par la suite
$url = ''; 
$erreur = 'non';

// Si nous n'avons pas de nom
if ( empty($nom) ) {
     $erreur = 'oui';
     $url .= '&nom=oui';
}
// Si nous n'avons pas d'email
if ( empty($email) ) {
     $erreur = 'oui';
     $url .= '&email=oui';
}
// Si nous n'avons pas de message
if ( empty($message) ) {
     $erreur = 'oui';
     $url .= '&message=oui';
}
// Et maintenant, avons-nous rencontré une erreur ?
if ( $erreur == 'oui' ) {
     // Redirection
     header('location: index.php?erreur=oui'.$url);
     // Et arret du script
     exit();
}


$adresse_dest = "[email protected]";
$sujet = "Client SoGames";
$contenue_message = "Nom client : " . $nom ."\n" .
                      "Email client : " . $email . "\n" . 
                  "Message du client :\n" . $message. "\n";
$adresse_exp = "From: [email protected]";

$succes = mail($adresse_dest, $sujet, $contenue_message, $adresse_exp);

?>

<html>
<head>
<title>message envoyé</title>
</head>
<body>
<?php
if ($succes)
  echo "message envoyé";
else
  echo "erreur lors de l'envoi";
?>
<p>merci de votre message</p>
</body>
</html>

Re: probleme pour verification de champ vide

par aurel » 05 sept. 2010, 15:29

oui biensur mais probleme c'est se que je fait a chaque fois sa marche pas j"ai les erreur mais pas le mail meme quand je le remplue j'ai encore l'erreur le forumulaire

Re: probleme pour verification de champ vide

par Ryle » 04 sept. 2010, 22:54

C'est juste une question d'algorithme et d'ordre dans ton code : tu ne peux pas entrer dans une pièce avant d'avoir ouvert la porte... dans ton code c'est pareil, tu ne peux pas tester si une variable est vide, et définir cette variable ensuite :)

Re: probleme pour verification de champ vide

par aurel » 04 sept. 2010, 17:58

bon c'est pas grave je comprend pas trop comment faire je vais me debrouiller japprendrai mieu tout seul merci quand meme de votre aide

Re: probleme pour verification de champ vide

par Ryle » 04 sept. 2010, 17:27

Ben soit tu fais
$nom = $_POST['nom'];
avant de faire
if( empty($nom) )
(vu que sinon, $nom n'existe pas, et empty($nom) retournera toujours "vrai"

Soit tu fais :
if( empty($_POST['nom']) )
pour tester directement la variable envoyée :)

Re: probleme pour verification de champ vide

par aurel » 04 sept. 2010, 15:46

dsl pas trop compris se que je doit faire avec empty je les deja fait sa marche pas non plus.

Re: probleme pour verification de champ vide

par Ryle » 04 sept. 2010, 15:22

Tu as un petit problème de cohérence (et d'ordre surtout dans ton code).

En effet, tu commences par tester si $nom, $email ou $message sont vides. Si c'est le cas tu rediriges l'utilisateur.
Le problème, c'est que ce n'est qu'après avoir redirigé l'utilisateur que tu affectes une valeur à $nom, $email et $message.

Le code
$nom = $_POST['nom'];
$email = $_POST['email'];
$message = $_POST['message'];
devrait être réalisé avant de tester ces variables, ou alors il faut tester directement la valeur $_POST['nom'] avec empty() :)

Re: probleme pour verification de champ vide

par aurel » 04 sept. 2010, 15:11

bonjour,

oui biensur la voila

Code : Tout sélectionner

<?php // Si nous n'avons pas de nom if( empty($nom) ) { $erreur = 'oui'; $url .= '&nom=oui'; } // Si nous n'avons pas d'email if( empty($email) ) { $erreur = 'oui'; $url .= '&email=oui'; } // Si nous n'avons pas de message if( empty($message) ) { $erreur = 'oui'; $url .= '&message=oui'; } // Et maintenant, avons-nous rencontré une erreur ? // Si oui if( $erreur == 'oui' ) { // Redirection header('location: index.php?erreur=oui'.$url); // Et arret du script exit(); } $nom = $_POST['nom']; $email = $_POST['email']; $message = $_POST['message']; $erreur = $_POST['message']; $erreur = $_POST['email']; $erreur = $_POST['nom']; $adresse_dest = "[email protected]"; $sujet = "Client SoGames"; $contenue_message = "Nom client : " . $nom ."\n" . "Email client : " . $email . "\n" . "Message du client :\n" . $message. "\n"; $adresse_exp = "From: [email protected]"; mail($adresse_dest, $sujet, $contenue_message, $adresse_exp); ?> <html> <head> <title>message envoyé</title> </head> <body> <?php echo "message envoyé" ?> <p>merci de votre message</p> </body> </html>
merci de votre aide

Re: probleme pour verification de champ vide

par Ryle » 04 sept. 2010, 09:15

Est-ce que tu as des messages d'erreur ?
Peux tu nous montrer le code de ta page contact ? Ce sera plus facile de voir ce qui cloche :)

Re: probleme pour verification de champ vide

par aurel » 03 sept. 2010, 22:35

bon merci de votre aide la sa marche mais probleme je reçois pas le mail meme quand je remplie le formulaire voici le lien pour que vous verifié :

http://php.sogames-prod.com/

merci encore de votre aide