JeuWeb - Crée ton jeu par navigateur
[Résolu][Ajax] Formulaire newsletter - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Résolu][Ajax] Formulaire newsletter (/showthread.php?tid=2744)

Pages : 1 2 3


RE: Formulaire Newsletter [AJAX] - Reaven - 25-09-2009

L'erreur reste la même. Toutefois je sais la corriger avec ce code:

Code PHP :
<?php
session_start
();
mysql_connect("localhost","root","");
mysql_select_db("newsletter");

$mysql_query= mysql_query("SELECT email FROM newsletter");
$mysql_data= mysql_fetch_array($mysql_query);

$erreurs= array(); //tableau des erreurs

if(isset($email)){
if(!
preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email'])){
$erreurs[]= 'Cette adresse E-mail est invalide';
}else{
if(
$_POST['email'] == $mysql_data['email']){
$erreurs[]= 'Cette adresse E-mail existe déjà';
}else{
mysq_query("INSERT INTO newsletter VALUES('','".$_POST['email']."'")or die("L'envoi des données a échoué");
}
}
}else{
$erreurs[]= 'Veuillez entrer une adresse E-mail';
}

if(
count($erreurs) == 0){
echo
"true";
}else{
for(
$i=0; $i<count($erreurs); $i++){
echo
$erreurs[$i].'<br/>';
}
}
?>

Mais il reste une erreur. Seul le message d'erreur "Veuillez entrez une adresse E-mail" s'affiche. Quelque soit l'erreur. Il ne rentre donc pas dans le premier if(isset($_POST['email']...

On avance on avance ^^.

Merci


RE: Formulaire Newsletter [AJAX] - Maz - 25-09-2009

mea culpa:
Code PHP :
<?php
session_start
();
mysql_connect("localhost","root","");
mysql_select_db("newsletter");

$mysql_query= mysql_query("SELECT email FROM newsletter");
$mysql_data= mysql_fetch_array($mysql_query);

$erreurs= array(); //tableau des erreurs
if(isset($_POST["Email"])){
$email = $_POST["Email"];
if(!
preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email)){
$erreurs[]= 'Cette adresse E-mail est invalide';
}else{
if(
$email == $mysql_data['email']){
$erreurs[]= 'Cette adresse E-mail existe déjà';
}else{
mysq_query("INSERT INTO newsletter VALUES('','".$email."'")or die("L'envoi des données a échoué");
}
}
}else{
$erreurs[]= 'Veuillez entrer une adresse E-mail';
}

if(
count($erreurs) == 0){
echo
"true";
}else{
for(
$i=0; $i<count($erreurs); $i++){
echo
$erreurs[$i].'<br/>';
}
}
?>

EDIT: j'ai oublié, tu ne déclares pas $email...
EDIT2: j'ai repris ton code, il devrais marché.
PS: l'erreur que tu avais fait était que dans le js tu déclares Email=maz@blalba.com, et dans php tu utilisais $_POST["email"], tu oubliais simplement la majuscule.


RE: Formulaire Newsletter [AJAX] - Reaven - 25-09-2009

Si tu met $_POST['Email'], il met faut je suppose modifier l'id de mon formulaire non ?
Petite rectification aussi. Faudrait pas changer le $email du isset par $_POST['Email']?

Merci Wink
Reaven


RE: Formulaire Newsletter [AJAX] - Maz - 25-09-2009

(25-09-2009, 07:20 PM)Reaven a écrit : Si tu met $_POST['Email'], il met faut je suppose modifier l'id de mon formulaire non ?
Petite rectification aussi. Faudrait pas changer le $email du isset par $_POST['Email']?

Merci Wink
Reaven

J'ai repris ton code sur le message précédent.


RE: Formulaire Newsletter [AJAX] - Reaven - 25-09-2009

Merci. Il reste encore un problème. Seul le message "Veuillez entrer un E-Mail" s'affiche quelque soit l'erreur. Donc on entre jamais dans le isset du début.
Je cherche encore comment régler le problème Wink mais si tu veux bien encore un peu m'aider ce serait super sympa.

Merci pour tout !
Reaven


RE: Formulaire Newsletter [AJAX] - Maz - 25-09-2009

Tu n'as pas modifié le javascript?
C'est toujours:
Code :
xhr.send('Email='+email);
?


RE: Formulaire Newsletter [AJAX] - Reaven - 25-09-2009

Oui. Dois-je mettre:

Code :
xhr.send('email='+email)
?


RE: Formulaire Newsletter [AJAX] - Maz - 25-09-2009

(25-09-2009, 08:25 PM)Reaven a écrit : Oui. Dois-je mettre:

Code :
xhr.send('email='+email)
?

Non au contraire, c'est justement ce que je voulais vérifier, faut que tout soit en majuscule, ou tout en minuscule.
Si ça te retournes une erreur: c'est que la page est bien appelée, donc ta fonction AJAX fonctionnes, vérifie qu'il envoies bien les donnée en faisant quelque chose comme:
Code :
xhr.send('varFactice=true')
dans le php tu met:
Code PHP :
<?php 
if(isset($_POST["varFactice"])) {
echo
"La variable existe";
if(
$_POST["varFactice"]) echo "La variable vaut true";
}



RE: Formulaire Newsletter [AJAX] - Reaven - 26-09-2009

Je comprend pas ton idée là. Tu serais d'accord d'approfondir ?


RE: Formulaire Newsletter [AJAX] - Maz - 26-09-2009

Je veux vérifier que ta fonction envois bien les données, donc j'envoie une variable factice de la manière la plus simple possible.