Demandez une action 1 ou 2 suivant analysSQL
Résolu
chtilolo
Messages postés
91
Date d'inscription
Statut
Membre
Dernière intervention
-
chtilolo Messages postés 91 Date d'inscription Statut Membre Dernière intervention -
chtilolo Messages postés 91 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je vous remercie de l'aide que vous pourrrez m'apporter pour mon soucis.
Donc en début de code je déclare mes variable qui me servirons pour le mail mais entre la déclaration et le mail.
j'aurais les requette SQL.
La vérification des champs est faite en Javascript ensuite le formulaire as donc pour :
Type_d_essai : deux case a cocher soit A soit B et je déclare dans le php :
$service=$_POST['Type_d_essai']
Donc ce a quoi je pensai avant de faire une recherche dans la BDD c'est de regarder si c'est A ou B de cocher.
en fonction de ce résultat donc A ou B alors je demande une requete pour cherché dans la table A si A est cocher ou la table B si B est cocher
Si il y a une présence d'infos alors pas d'enregistrement ni de mail.
Sinon y a pas de présence d'infos alors enregistrement dans la table correspondante au choix et envoi du mail.
Donc en fait ce que je ne voit pas c'est comment faire cette conditions. Après les requete pour enregistrez ou cherché c'est OK mais avant il y a cette conditions que je ne sais pas articulers.
Je n'arrive pas traduire ce que j'ai mis dans mon post 1 je veus dire la condition
je pensai à
if $service=A
alors cherché dans A
if aucune présence d'infos alors insert to
else
echo "vous avez déjà..."
else
if $service=B
alors cherché dans B
if aucune présence infos alors INSERT TO
else
echo "vous avez déjà..."
Comme on le voir je suis pas un as du PHP je débute donc je n'arrive pas trés bien a traduire ça en PHP alors que les requète je serai les écrire c'est vraiment la mise en place des condition qi me trouble le plus.
Amicalement.
Bon je m'aide moi même,
Donc dans mon sript entre la déclaration des variable et l'envoi du mail.
Je me connecte a ma basse de donnée SERVICE.
ensuite je veux dire a PHP de demandé a SQL je cherché dans la table correspondant au choix fais par $service=$_POST['Type_d_essai'].
Et là donc je sais pas comment lui dire de cherché dans la table correspondant au choix.
Là pour commencer je pensai à
ensuite je bloque car je veux pas affiché les données trouvé je veux juste que php vois si une des données du formulaire pour le service A ou B est déjà présente dans A pour une demande du service A ou dans B pour une demande de service B
Si il voit quelque chose alors :
Si il voit pas de donné présente alors.
Voilà, j'espère avoir rendu mon soucis plus clair j'ai mis en gras la zone du script où je ne sais quoi mettre car les exemple propose que des echo et comme je veux faire(demande a PHP de faire avec SQL) une analyse/comparaison pour faire l'action enfonction du résultat.
Merci à vous pour l'aide, je sais que mon morceau de code doit avoir quelque erreur mais c'est surtout la zone en gras qui me gêne.
Car le visiteur ne doit rien voir lui c'est soit c'est ok et je lui dit que sa demande est envoyé ou soit il a déja eu le droit au service qu'ils demande.
Merci beaucoup, amicalement.
Je vous remercie de l'aide que vous pourrrez m'apporter pour mon soucis.
Donc en début de code je déclare mes variable qui me servirons pour le mail mais entre la déclaration et le mail.
j'aurais les requette SQL.
La vérification des champs est faite en Javascript ensuite le formulaire as donc pour :
Type_d_essai : deux case a cocher soit A soit B et je déclare dans le php :
$service=$_POST['Type_d_essai']
Donc ce a quoi je pensai avant de faire une recherche dans la BDD c'est de regarder si c'est A ou B de cocher.
en fonction de ce résultat donc A ou B alors je demande une requete pour cherché dans la table A si A est cocher ou la table B si B est cocher
Si il y a une présence d'infos alors pas d'enregistrement ni de mail.
Sinon y a pas de présence d'infos alors enregistrement dans la table correspondante au choix et envoi du mail.
Donc en fait ce que je ne voit pas c'est comment faire cette conditions. Après les requete pour enregistrez ou cherché c'est OK mais avant il y a cette conditions que je ne sais pas articulers.
Je n'arrive pas traduire ce que j'ai mis dans mon post 1 je veus dire la condition
je pensai à
if $service=A
alors cherché dans A
if aucune présence d'infos alors insert to
else
echo "vous avez déjà..."
else
if $service=B
alors cherché dans B
if aucune présence infos alors INSERT TO
else
echo "vous avez déjà..."
Comme on le voir je suis pas un as du PHP je débute donc je n'arrive pas trés bien a traduire ça en PHP alors que les requète je serai les écrire c'est vraiment la mise en place des condition qi me trouble le plus.
Amicalement.
Bon je m'aide moi même,
Donc dans mon sript entre la déclaration des variable et l'envoi du mail.
Je me connecte a ma basse de donnée SERVICE.
ensuite je veux dire a PHP de demandé a SQL je cherché dans la table correspondant au choix fais par $service=$_POST['Type_d_essai'].
Et là donc je sais pas comment lui dire de cherché dans la table correspondant au choix.
Là pour commencer je pensai à
if $service='A' $reponse = mysql_query("SELECT * FROM A"); //requet qui demande de regarder tous dans la table A else $service='A' $reponse = mysql_query("SELECT * FROM A"); //requet qui demande de regarder tous dans la table B
ensuite je bloque car je veux pas affiché les données trouvé je veux juste que php vois si une des données du formulaire pour le service A ou B est déjà présente dans A pour une demande du service A ou dans B pour une demande de service B
Si il voit quelque chose alors :
echo'vous avez déjà eu le service A ou le service'; /// A ou B dépendra de ce que la personne demande et as déjà eu.
Si il voit pas de donné présente alors.
mysql_query=("INSER TO A (champs 1, champs 2) VALUE ('','$machin','$truc')")
Voilà, j'espère avoir rendu mon soucis plus clair j'ai mis en gras la zone du script où je ne sais quoi mettre car les exemple propose que des echo et comme je veux faire(demande a PHP de faire avec SQL) une analyse/comparaison pour faire l'action enfonction du résultat.
Merci à vous pour l'aide, je sais que mon morceau de code doit avoir quelque erreur mais c'est surtout la zone en gras qui me gêne.
Car le visiteur ne doit rien voir lui c'est soit c'est ok et je lui dit que sa demande est envoyé ou soit il a déja eu le droit au service qu'ils demande.
Merci beaucoup, amicalement.
A voir également:
- Demandez une action 1 ou 2 suivant analysSQL
- Action - Guide
- Télécharger film d'action gratuitement et rapidement - Télécharger - TV & Vidéo
- Supercopier 2 - Télécharger - Gestion de fichiers
- Concurrent action - Guide
- Action fans - Accueil - Guide arnaque
39 réponses
Alors j'ai corrigé l'histoire d'une variable qui déconnai.
Mais par contre le script ne fais toujours pas son travail.
Car lors de mon test je suis pas dans la base mais lui me dis que si et en plus il envoi le mail mais moi je veux pas qu'il envois un mail si la personne est dans la base.
Et je comprend pas pourquoi il ne m'enregistre pas vu que je suis pas dedans.
Merci a vous pour l'aide que vous m'apporterez car là en tant que débutant je sèche vraiment.
Mais par contre le script ne fais toujours pas son travail.
Car lors de mon test je suis pas dans la base mais lui me dis que si et en plus il envoi le mail mais moi je veux pas qu'il envois un mail si la personne est dans la base.
Et je comprend pas pourquoi il ne m'enregistre pas vu que je suis pas dedans.
Merci a vous pour l'aide que vous m'apporterez car là en tant que débutant je sèche vraiment.
deux petites erreurs: pour faire un test d'égalité c'est == et pas = en php
et pour utiliser mysql_real_escape_string il faut être connecté à la BDD car cette fonction a besoin du link en 2 ième argument mysql_escape_string fait aussi bien
ensuite dans $table="ta_tableA"; il faut que tu remplace par le nom réel des tes tables correspondant à A et B
et pour utiliser mysql_real_escape_string il faut être connecté à la BDD car cette fonction a besoin du link en 2 ième argument mysql_escape_string fait aussi bien
ensuite dans $table="ta_tableA"; il faut que tu remplace par le nom réel des tes tables correspondant à A et B
<?php /////Vérification suivi de la Déclaration des variables //si tu utilises mysql_escape_string il faut faire la connexion à la base avant et mettre le $link en deuxième argument //dans ton cas utilises mysql_escape_string ça fait pareil if(isset($_POST['Nom'])) $nom = mysql_escape_string(htmlspecialchars($_POST['Nom'])); if(isset($_POST['Prenom'])) $prenom = mysql_escape_string(htmlspecialchars($_POST['Prenom'])); if(isset($_POST['Nom_du_groupe_ou_nom_d_artiste'])) $artiste = mysql_escape_string(htmlspecialchars($_POST['Nom_du_groupe_ou_nom_d_artiste'])); if(isset($_POST['Mail'])) $email = mysql_escape_string(htmlspecialchars($_POST['Mail'])); if(isset($_POST['Nom_titre'])) $titre = mysql_escape_string(htmlspecialchars($_POST['Nom_titre'])); if(isset($_POST['Message'])) $message = mysql_escape_string(htmlspecialchars($_POST['Message'])); if(isset($_POST['Type_d_essai'])){ /////un des boutons radio a bien été coché $service = mysql_escape_string(htmlspecialchars($_POST['Type_d_essai'])); switch ($service){ /////on va determiner dans quelle table on va en fct de la valeur reçue //ci dessous il faut que tu mettes les noms de tes tables de la BDD: celle qui correspond à A et celle qui correspond à B case "A": $table="table_A"; break; ///// Ici je sais si je dois mettre ="table_A" ou ="A" case "B": $table="table_B"; break; } /////Connexion au serveur et à la BDD $link = mysql_connect("mon_hôte", "Utilisateur", "mot_de_passe") or die("erreur de connexion au serveur"); mysql_select_db("ma_BDD") or die("erreur de connexion a la base de donnees"); /////Recherche de la présence des infos dans la table concerné par le choix $query="SELECT COUNT(*) FROM $table "; $result = mysql_query($query) or die ('Erreur : '.mysql_error() ); $row = mysql_fetch_row($result); $nb_enr = $row[0]; if($nb_enr == 0){ //erreur il faut == pour faire un test d'égalité /////insert into $table etc... $query="INSERT TO $table (date, ip, artiste, nom, prenom, mail, titre) VALUE (CURDATE(), '$REMOTE_ADDR', '$artiste', '$nom', '$prenom', '$mail', '$email', '$titre')"; }else{ echo 'Vous avez deja beneficie du service offert'; } } /////l'accolade fermante qui manquait et bloquait. OK /////On se déconnecte de MySQL mysql_close(); ?>
Alain merci de ton aide,
Oui effectivement c'est == et non pas =
Par contre pour :
J'ai fait une petite modif en remplaçant (*) par tous les champs sauf la date car si deux visiteur vienne le même jours le deuxième seras bloquer car la date sera dejà dans la BDD.
Par contre if($nb_enr==0) sa vérifie la présence des données entré par l'utilisateur sur le formulaire ou sa vérifie seulement si des données existe dans la BDD. Car je saisi pas ce point.
Par contre le soucis par exemple il me refusai lors des test mais il envoyai le mail. comment je peux remaniè pour envoyé le mail que si il y a eu non présence des donné dans la BDD.
Merci beaucoup de l'aide que tu m'apporte, petit a petit tu me fait beaucoup avancé et j'apprend des chose.
Amicalement.
Oui effectivement c'est == et non pas =
Par contre pour :
/////Recherche de la présence des infos dans la table concerné par le choix $query="SELECT COUNT(*) FROM $table "; $result = mysql_query($query) or die ('Erreur : '.mysql_error() ); $row = mysql_fetch_row($result); $nb_enr = $row[0]; if($nb_enr == 0){ //erreur il faut == pour faire un test d'égalité
J'ai fait une petite modif en remplaçant (*) par tous les champs sauf la date car si deux visiteur vienne le même jours le deuxième seras bloquer car la date sera dejà dans la BDD.
Par contre if($nb_enr==0) sa vérifie la présence des données entré par l'utilisateur sur le formulaire ou sa vérifie seulement si des données existe dans la BDD. Car je saisi pas ce point.
Par contre le soucis par exemple il me refusai lors des test mais il envoyai le mail. comment je peux remaniè pour envoyé le mail que si il y a eu non présence des donné dans la BDD.
Merci beaucoup de l'aide que tu m'apporte, petit a petit tu me fait beaucoup avancé et j'apprend des chose.
Amicalement.
if($nb_enr==0) sa vérifie la présence des données entré par l'utilisateur sur le formulaire ou sa vérifie seulement si des données existe dans la BDD.
regardes au dessus: $row = mysql_fetch_row($result);
$nb_enr = $row[0];
donc c'est bien le nombre d'enr dans la BDD
pour l' envoi du mail tu le mets dans la partie du if
regardes au dessus: $row = mysql_fetch_row($result);
$nb_enr = $row[0];
donc c'est bien le nombre d'enr dans la BDD
pour l' envoi du mail tu le mets dans la partie du if
if($nb_enr == 0){ //erreur il faut == pour faire un test d'égalité /////insert into $table etc... $query="INSERT TO $table (date, ip, artiste, nom, prenom, mail, titre) VALUE (CURDATE(), '$REMOTE_ADDR', '$artiste', '$nom', '$prenom', '$mail', '$email', '$titre')"; //envoi du mail... }else{ echo 'Vous avez deja beneficie du service offert'; }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai fait une petite modif en remplaçant (*) par tous les champs sauf la date car si deux visiteur vienne le même jours le deuxième seras bloquer car la date sera dejà dans la BDD.
non
non
Bon j'ai dû faire un loupé dans mon INSER TO car là j'ai testé il me dit le message as été envoyer , j'ai aucune erreur niveau SQL mais pas d'enregistrement dans la BDD.
Voici ma lignde code pour écrire les donnés du formulaires si aucune n'est déjà présente :
Bon j'ai du mettre au début $ip = $_SERVER['REMOTE ADDR'] sinon il était pas content.
Merci pour l'aide que tu m'apporte.
Voici ma lignde code pour écrire les donnés du formulaires si aucune n'est déjà présente :
/////insert into $table etc... $query="INSERT TO $table (date, ip, artiste, nom, prenom, mail, titre) VALUE (CURDATE(), '$ip', '$artiste', '$nom', '$prenom', '$email', '$titre')"; } else{ echo 'Vous avez deja beneficie du service offert'; }
Bon j'ai du mettre au début $ip = $_SERVER['REMOTE ADDR'] sinon il était pas content.
Merci pour l'aide que tu m'apporte.
if($nb_enr==0) sa vérifie la présence des données entré par l'utilisateur sur le formulaire ou sa vérifie seulement si des données existe dans la BDD. regardes au dessus: $row = mysql_fetch_row($result); $nb_enr = $row[0];
donc c'est bien le nombre d'enr dans la BDD
Tu veux dire que sa regarde si les coordonné du visiteur (tous, nom, prenom etc sauf la date) sont déjà présente dans la table.
C'est pour ça que j'ai voulu chagé le (*) car sinon sa va regarder la date et si deux personne différente donc avec des infos différente vienne le même jours la vérification va dire:
La date existe donc le deuxième visiteur ou autre le même jours ne pourron pas avoir droit a l'offre de service.
En fait l'idé c'est par exmple : Pierre DUPONT IP-20 LeChanteur1 pierre@machin Sachanson
demande l'offre offert A
Je veux pas (du limiter les possibilité) qu'il retente de demander l'offre A: si par exemple il change un truc :
Pierre DUPONT IP-20 LeChanteur1 pierre@machin Sachanson4
Là l'analyse va voir que Pierre DUPONT IP-20 LeChanteur1 pierre@machin son dans la table A.
Donc message de refus et pas de mail qui me soit envoyer.
il faut que tu fasse un SELECT * FROM $table WHERE artiste ='".$artiste."' AND nom='".$nom."" AND prenom=..... etc $artiste $nom ......etant les valeurs saisies dans le formulaire puis avec mysql_num_rows tu auras le nombre déja existant correspondant et agir en conséquence
D'accord mais mais je comprend pas c'est : j'aurais le nombre existant ok mais y a pas une fonction pour voir la présence et agir en fonction de oui ou non.
Par contre j'ai corrigé pour l'enregistrement mais ensuite j'ai bougé ma parti mail mais j'ai un parse erreur car une fois de plus le chagement ma enbroullé les pinceau.
Voici le problème car la parti mail fini elle aussi par un if et else:
actuellement après changement a partir de INSERT:
$query="INSERT TO $table (date, ip, artiste, nom, prenom, mail, titre) VALUE (CURDATE(), '$ip', '$artiste', '$nom', '$prenom', '$email', '$titre')"; $enr_base=mysql_query($query) or die ("Pb insertion ".mysql_error()); /////On se déconnecte de MySQL mysql_close(); /////Envoi du mail par compte avec PHPmailer require ("Chemin_de_la_classr\class.phpmailer.php"); $mail = new PHPmailer(); $mail->IsSMTP(); $mail->Host='hote_smtp'; $mail->SMTPAuth=TRUE; $mail->Username='identifiant'; $mail->Password=password'; $mail->From='mon mail'; $mail->AddAddress("$email"); $mail->AddReplyTo('loic.mei@dbmail.com.com'); $mail->Subject="Demande d'essai offert de $artiste,$nom"; $mail->Body="Je suis $prenom,$nom. Notre groupe est :$artiste. Nous souhaitons profiter de l'essai offert de $service. $message "; if(!$mail->Send()){ /////Teste le return code de la fonction echo $mail->ErrorInfo; /////Affiche le message d'erreur (ATTENTION:voir section 7) } else{ echo 'Vous avez deja beneficie du service offert'; } else{ echo 'Votre demande d\'informations a ete envoyer'; /////message en cas de réussite. } } ?>
Je vois pas comment bien positionné pourtant toutes la journé j'ai pas mal bougé mais j'ai des parse error.
Merci de ton aide Alain
Amicalement.
Donc pour revenir a la vérification de la présence des infos du formulaire par rapport a la table je fais donc :
if(mysql_query(mysql_num_rows(SELECT * FROM $table WHERE artiste ='".$artiste."'"))>=1)"' AND nom='".$nom."'"))>=1)"" AND prenom="'".$prenom."'"))>=1) etc
{
echo'vous avez dejà bénéficié du service'.$service.
else{
////insertion dans $table
/////envoi du mail
echo'votre demande est enregistrez et envoyer
}
else{
le mail n'as pu être envoyer et...
}
La requête est bonne?
Car là en fait pour chaque vérif d'une variable c'est soit false soit true ou soit 1 soit 0 qu'en pense tu.
Merci de ton aide .
amicalement
if(mysql_query(mysql_num_rows(SELECT * FROM $table WHERE artiste ='".$artiste."'"))>=1)"' AND nom='".$nom."'"))>=1)"" AND prenom="'".$prenom."'"))>=1) etc
{
echo'vous avez dejà bénéficié du service'.$service.
else{
////insertion dans $table
/////envoi du mail
echo'votre demande est enregistrez et envoyer
}
else{
le mail n'as pu être envoyer et...
}
La requête est bonne?
Car là en fait pour chaque vérif d'une variable c'est soit false soit true ou soit 1 soit 0 qu'en pense tu.
Merci de ton aide .
amicalement
Bonjours alain et encore merci de l'aide que ttu m'apporte.
Là j'ai rempli avec mes valeur souhaité, là on prépare la requête.
//soumission de la requette avec trace d'erreur
///Là on dit que $nb_enr, sera les resultat de la recherche.
///Là c'est pour vérifié si une des données est déjà dans la $table donc si oui 1 si non 0
Je crois avoir compris.
Sinon voici sur quoi je partais après avoir fais plusieur recherche, le problème c'est que je suis pas sur si les echo que je veux placer son bon.
A l'origine y avais pas de "echo", ce présent c'est moi qui l'ai est mis .Qu'en pense tu?
Voilà le code que je travaillai, mais des chose me mettai le doute :
1)les echo sont -il possible où je les veut
2)le mail est-il envoyer seulement si y a l'enregistrement, comme je le voudrai.
3)$feedback pourquoi y a t-il un "." avant le = , et si je comprend lui n'affiche rien c'est juste pour "parler au script.
Voilà merci beaucoup Alain de l'aide que tu m'apporte et le temps que tu me consacre, je prépare un autre code avec ce que tu m'as écris, et j'attend ton retour sur le code que j'ai mis car il 'm'a aidé a comprendre certaine chose même si au final je l'utilise pas.
Mais par contre pour le mail comment faire pour l'envoyer seulement si il y a pas les données et présente dans la $table et si on enregistre donc?
Merci beaucoup, amicalement
Donc là je vais récapituler ce que tu propose, car je veux comprendre les choses : //preparation du contenu de la requette $query="SELECT * FROM $table WHERE ip='.$ip.' AND nom='.$nom.' AND prenom='.$prenom.' AND artiste ='.$artiste.' AND mail='.$email.' AND titre='.$artiste.'"; //la tu complétes avec tous les champs que tu veux verifier avec un AND à chaque fois bien sur //soumission de la requette avec trace d'erreur $reponse=mysql_query($query) or die ("Erreur requette: ".$query." ".mysql_error());
Là j'ai rempli avec mes valeur souhaité, là on prépare la requête.
//soumission de la requette avec trace d'erreur
$reponse=mysql_query($query) or die ("Erreur requette: ".$query." ".mysql_error());
///Là on dit que $nb_enr, sera les resultat de la recherche.
$nb_enr=mysql_num_rows($reponse);
///Là c'est pour vérifié si une des données est déjà dans la $table donc si oui 1 si non 0
if($nb_enr >0){ echo "Vous avez d&eacute;ja bénéficié du service "; }else{ //insert dans bDD + mail }
Je crois avoir compris.
Sinon voici sur quoi je partais après avoir fais plusieur recherche, le problème c'est que je suis pas sur si les echo que je veux placer son bon.
A l'origine y avais pas de "echo", ce présent c'est moi qui l'ai est mis .Qu'en pense tu?
function new_ask ($ip, $nom $prenom, $artiste, $email, $titre) { global $feedback; /////Là j'ai mis || car je vérifie seulement si un parmis tous est là donc je met pas &&,non? if ($ip || $nom || $prenom || $artiste || $email || $titre){ /////Une des données existe-t-elle déjà dans $table ? $sql="SELECT * FROM $table WHERE ip='.$ip.' AND nom='.$nom.' AND prenom='.$prenom.' AND artiste ='.$artiste.' AND mail='.$email.' AND titre='.$artiste.'"; $result=mysqql_query($sql); if ($result && musql_num_rows($result) >0){ $feedback .= "ERREUR - Vous avez déjà bénéficiè du service.\n"; echo"Vous avez déjà bénéficiè du service.\n";////est-ce possible ? return false; } else { $sql = "INSERT TO $table (date, ip, artiste, nom, prenom, mail, titre) VALUE (CURDATE(), '$ip', '$artiste', '$nom', '$prenom', '$email', '$titre')"; $result = mysql_query($sql); if (!result) { $feedback .= "ERREUR - (BDD) : ".mysql_error() .".\n"; } else { /////Envoi du mail par compteavec PHPmailer require ("Chemin_de_la_class\class.phpmailer.php"); $mail = new PHPmailer(); $mail->IsSMTP(); $mail->Host='mon_smtp'; $mail->SMTPAuth=TRUE; $mail->Username='identifiant'; $mail->Password='password'; $mail->From='mon_adresse'; $mail->AddAddress("$email"); $mail->AddReplyTo('mon_adresse'); $mail->Subject="Demande d'essai offert de $artiste,$nom"; $mail->Body="Je suis $prenom,$nom. Notre groupe est :$artiste. Nous souhaitons profiter de l'essai offert de $service. $message "; if(!$mail->Send()){ /////Teste le return code de la fonction echo $mail->ErrorInfo; /////Affiche le message d'erreur (ATTENTION:voir section 7) } $feedback .= "Votre demande est enregistré et envoyé.\n"; echo"Votre demande est enregistré et envoyé.\n"; return true; } } }
Voilà le code que je travaillai, mais des chose me mettai le doute :
1)les echo sont -il possible où je les veut
2)le mail est-il envoyer seulement si y a l'enregistrement, comme je le voudrai.
3)$feedback pourquoi y a t-il un "." avant le = , et si je comprend lui n'affiche rien c'est juste pour "parler au script.
Voilà merci beaucoup Alain de l'aide que tu m'apporte et le temps que tu me consacre, je prépare un autre code avec ce que tu m'as écris, et j'attend ton retour sur le code que j'ai mis car il 'm'a aidé a comprendre certaine chose même si au final je l'utilise pas.
Mais par contre pour le mail comment faire pour l'envoyer seulement si il y a pas les données et présente dans la $table et si on enregistre donc?
Merci beaucoup, amicalement
Alors j'ai mis de côté l'autre script que j'avais entamé, mais si tu as un truc a dire dessu je suis preneur , c'est au moins pour comprendre.
Sinon donc j'ai repris avec se que tu m'as dit.
Et sa semble passé jusque INSERT TO où j'ai une erreur de syntax j'ai essayer plein de chose et je trouve pas,
Voici ma Syntax, j'ai refais le truc de la date et là elle s'affiche dans l'erreur alors avec le CURDATE y avait pas.
Erreur requette: INSERT INTO mixing (date, ip, artiste, nom, prenom, mail, titre). VALUE (06/05/2009, 127.0.0.1, The Groupe, TEST, test, l'adresse du test, Ma chanson) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '. VALUE (06/05/2009, 127.0.0.1, The Groupe, TEST, test, loi' at line 1
Je me demande si par hazard j'ai pas mal choisi le type de champs pour le mail, mais je vois pas quoi choisir, là je suis en VARCHAR.
j'ai fais des test avec INSERT TO et INSERT INTO mais pareil c'est a partir de VALUE qu'il aime pas.
Merci beaucoup Alai pour l'aide que tu m'apporte, car j'avance et j'apprend et je comprend a force certaine chose et aussi comment reflechir mais c'est pas simple.
Amicalement.
Sinon donc j'ai repris avec se que tu m'as dit.
Et sa semble passé jusque INSERT TO où j'ai une erreur de syntax j'ai essayer plein de chose et je trouve pas,
Voici ma Syntax, j'ai refais le truc de la date et là elle s'affiche dans l'erreur alors avec le CURDATE y avait pas.
Erreur requette: INSERT INTO mixing (date, ip, artiste, nom, prenom, mail, titre). VALUE (06/05/2009, 127.0.0.1, The Groupe, TEST, test, l'adresse du test, Ma chanson) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '. VALUE (06/05/2009, 127.0.0.1, The Groupe, TEST, test, loi' at line 1
Je me demande si par hazard j'ai pas mal choisi le type de champs pour le mail, mais je vois pas quoi choisir, là je suis en VARCHAR.
j'ai fais des test avec INSERT TO et INSERT INTO mais pareil c'est a partir de VALUE qu'il aime pas.
Merci beaucoup Alai pour l'aide que tu m'apporte, car j'avance et j'apprend et je comprend a force certaine chose et aussi comment reflechir mais c'est pas simple.
Amicalement.
première chose tu as des erreurs de concaténation dans $query=:
quand tu mets un point dans une chaine pour concatener il faut mettre " devant si la chaine comence par "
exemple:
dans la requette il faut (sans variables
WHERE nom='jacques'
donc avec une variable si tu veux obtenir ça il faut:
quand tu mets un point dans une chaine pour concatener il faut mettre " devant si la chaine comence par "
exemple:
" blabla ".$variable." blabla "
dans la requette il faut (sans variables
WHERE nom='jacques'
donc avec une variable si tu veux obtenir ça il faut:
" WHERE nom='".$prenom."' "
Tu parlais, pour le script que j'ai trouvé dans mes recherche?
Sinon là j'ai repris bien les chose avec ta proposition mais problème sur la syntax INSERT TO que voici
J'ai fais ça:
Et c'est là où j'ai l'erreur de syntax.
Donc y aurai t-il ici aussi une histoire de concaténation.
l'erreur est :
Erreur requette: INSERT INTO mixing (date, ip, artiste, nom, prenom, mail, titre). VALUE (06/05/2009, 127.0.0.1, The Groupe, TEST, test, l'adresse du test, Ma chanson) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '. VALUE (06/05/2009, 127.0.0.1, The Groupe, TEST, test, loi' at line 1
Donc il semble qu'il comprenne les valeur sauf mail que j'ai moi-même remplacé pour caché.
Donc là je vois pas le problème de MySQL car dans le message d'erreur il as réussi a récupérer les valeur.
Où est mon erreur dans ma requête?
Merci Alain pour ton aide.Amicalement
Sinon là j'ai repris bien les chose avec ta proposition mais problème sur la syntax INSERT TO que voici
J'ai fais ça:
$query="INSERT INTO $table (date, ip, artiste, nom, prenom, mail, titre). VALUE ($date, $ip, $artiste, $nom, $prenom, $email, $titre) "; $result=mysql_query($query) or die ("Erreur requette: ".$query." ".mysql_error());
Et c'est là où j'ai l'erreur de syntax.
Donc y aurai t-il ici aussi une histoire de concaténation.
l'erreur est :
Erreur requette: INSERT INTO mixing (date, ip, artiste, nom, prenom, mail, titre). VALUE (06/05/2009, 127.0.0.1, The Groupe, TEST, test, l'adresse du test, Ma chanson) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '. VALUE (06/05/2009, 127.0.0.1, The Groupe, TEST, test, loi' at line 1
Donc il semble qu'il comprenne les valeur sauf mail que j'ai moi-même remplacé pour caché.
Donc là je vois pas le problème de MySQL car dans le message d'erreur il as réussi a récupérer les valeur.
Où est mon erreur dans ma requête?
Merci Alain pour ton aide.Amicalement
Oui effectivement sa complique de passé par une fonction car en plus je vois qu'il faut en plus appeler cette fonction chose qui n'était pas préciser dans ce que j'ai vu.
Du coup c'est pourquoi je repart sur le script que l'on voyai ensemble.
Mais la avec ce script c'est que j'avais appris certaine chose qui n'était pas clair pour moi.
D'ailleur l'appel de la fonction me pertube, je veux dire si après avoir déclarer mes variable j'écris la fonction, normalement elle s'éxecute sans appele non.
Où alors je créer cette fonction toute seul dans un fichier par exemple new_ask.php
ensuite d'en mon envoi-essai-offert, je fais comme je fais pour appeler la class php mailer avec un require.
Ais-je compris ou suis-je un peu en confusion sur le fonctionnement d'une class et d'une fonction?
Merci de l'aide que tu m'apporte.
Amicalement.
J'ai relus la page où j'ai vu ce script et effectivement on appel la fonction.
Du coup c'est pourquoi je repart sur le script que l'on voyai ensemble.
Mais la avec ce script c'est que j'avais appris certaine chose qui n'était pas clair pour moi.
D'ailleur l'appel de la fonction me pertube, je veux dire si après avoir déclarer mes variable j'écris la fonction, normalement elle s'éxecute sans appele non.
Où alors je créer cette fonction toute seul dans un fichier par exemple new_ask.php
ensuite d'en mon envoi-essai-offert, je fais comme je fais pour appeler la class php mailer avec un require.
Ais-je compris ou suis-je un peu en confusion sur le fonctionnement d'une class et d'une fonction?
Merci de l'aide que tu m'apporte.
Amicalement.
J'ai relus la page où j'ai vu ce script et effectivement on appel la fonction.
Bon y a du progrés maintenant sa s'enregistre dans la BDD mais
Le problème c'est que j'ai fais un test pour vérifié que je puisse pas faire une demande si une des infos est déja dans la base.
Et bien là le problème c'est que même si je retente avec les même infos il me réenregistre donc le script ne vérifie rien
Et donc malheuresement il envoi le même.
Normalement la vérification devait dire stop si une des données est déjà dans la table et donc fin du script pas de mail mais un
echo"vous avez déjà eu le service.
Là par contre je comprend plus quoi touché de plus pour la date il me mets que des 0.
A ton avis d'où vient se problème pendant la vérif.
Si tu veux je te remet le script complet qui la a plus ou moins marcher:
Voilà, j'ai remplacer mes infos perso par du fictif et les chemin par path ais-je mal réécris quelque chose.
Merci Alain pour ton aide, amicalement.
PS:pour la date c'est OK j'ai remis "curdate"
Le problème c'est que j'ai fais un test pour vérifié que je puisse pas faire une demande si une des infos est déja dans la base.
Et bien là le problème c'est que même si je retente avec les même infos il me réenregistre donc le script ne vérifie rien
Et donc malheuresement il envoi le même.
Normalement la vérification devait dire stop si une des données est déjà dans la table et donc fin du script pas de mail mais un
echo"vous avez déjà eu le service.
Là par contre je comprend plus quoi touché de plus pour la date il me mets que des 0.
A ton avis d'où vient se problème pendant la vérif.
Si tu veux je te remet le script complet qui la a plus ou moins marcher:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>ITB.Audio/envoi</title> </head> <body> <?php /////Vérification suivi de la Déclaration des variables $date = date('d/m/Y'); $ip = ($_SERVER['REMOTE_ADDR']); if(isset($_POST['Nom'])) $nom = ($_POST['Nom']); if(isset($_POST['Prenom'])) $prenom = ($_POST['Prenom']); if(isset($_POST['Nom_du_groupe_ou_nom_d_artiste'])) $artiste = ($_POST['Nom_du_groupe_ou_nom_d_artiste']); if(isset($_POST['Mail'])) $email = ($_POST['Mail']); if(isset($_POST['Nom_titre'])) $titre = ($_POST['Nom_titre']); if(isset($_POST['Message'])) $message = ($_POST['Message']); if(isset($_POST['Type_d_essai'])) /////un des boutons radio a bien été coché $service = ($_POST['Type_d_essai']); switch ($service){ /////on va determiner dans quelle table on va en fct de la valeur reçue case "A": $table="A"; break; case "B": $table="B"; break; } /////Connexion au serveur et à la BDD mysql_connect("localhost", "root", "tchiotlolo") or die("erreur de connexion au serveur"); mysql_select_db("essai_offert") or die("erreur de connexion a la base de donnees"); //preparation du contenu de la requette $query="SELECT * FROM $table WHERE ip='".$ip."' AND nom='".$nom."' AND prenom='".$prenom."' AND artiste ='".$artiste."' AND mail='".$email."' AND titre='".$artiste."'"; //soumission de la requette avec trace d'erreur $reponse=mysql_query($query) or die ("Erreur requette: ".$query." ".mysql_error()); //pour voir combien de réponses correspondant aux conditions de la requette: $nb_enr=mysql_num_rows($reponse); //et la tu fais tes tests if($nb_enr >0){ echo "Vous avez d&eacute;ja bénéficié du service "; //insert dans bDD + mail }else{ $query="INSERT INTO $table(date, ip, artiste, nom, prenom, mail, titre)". "VALUE( '$date', '$ip', '$artiste', '$nom', '$prenom', '$email', '$titre') "; $result=mysql_query($query) or die ("Erreur requette: ".$query." ".mysql_error()); /////Envoi du mail par compte avec PHPmailer require ("Chemin de la class\class.phpmailer.php"); $mail = new PHPmailer(); $mail->IsSMTP(); $mail->Host='smtp_a_moi'; $mail->SMTPAuth=TRUE; $mail->Username='perso'; $mail->Password='perso'; $mail->From='mon_mail'; $mail->AddAddress("$email"); $mail->AddReplyTo('mon_mail'); $mail->Subject="Demande d'essai offert de $artiste,$nom"; $mail->Body="Je suis $prenom,$nom. Notre groupe est :$artiste. Nous souhaitons profiter de l'essai offert de $service. $message "; if(!$mail->Send()){ /////Teste le return code de la fonction echo $mail->ErrorInfo; /////Affiche le message d'erreur (ATTENTION:voir section 7) }else{ echo 'Votre demande d\'informations à été envoyer'; /////message en cas de réussite. } } ?> </body> </html>
Voilà, j'ai remplacer mes infos perso par du fictif et les chemin par path ais-je mal réécris quelque chose.
Merci Alain pour ton aide, amicalement.
PS:pour la date c'est OK j'ai remis "curdate"
Alain merci et bien vu pour le nom et prenom j'y avais pas pensé du tout.
Par contre pour le Where, pendant mes test, quand je dis que j'ai retesté je veux dire avec toutes les même infos et ils m'avais ré-enregistré.
Par exemple j'ai fais 3 fois sur le service A avec tous pareil Nom prenom etc..
Et il m'as réenregistrez.
Je vais faire la correction des OR au lieu des AND.
Sinon je vais étudier le retour de script que tu as fait , celui qui marche par une fonction, pour moi comprendre, mais bon je me concentre sur celui que l'on a vu ensemble.
Je viens te donner un retour une fois que j'ai corriger mais avant je vais laissé juste une entrés dans mes table.
merci de ton aide et du temps que tu me consacre.
Amicalement.
Par contre pour le Where, pendant mes test, quand je dis que j'ai retesté je veux dire avec toutes les même infos et ils m'avais ré-enregistré.
Par exemple j'ai fais 3 fois sur le service A avec tous pareil Nom prenom etc..
Et il m'as réenregistrez.
Je vais faire la correction des OR au lieu des AND.
Sinon je vais étudier le retour de script que tu as fait , celui qui marche par une fonction, pour moi comprendre, mais bon je me concentre sur celui que l'on a vu ensemble.
Je viens te donner un retour une fois que j'ai corriger mais avant je vais laissé juste une entrés dans mes table.
merci de ton aide et du temps que tu me consacre.
Amicalement.
Alain, ça y est tous marche bien.
J'aurais plus que a mettre en forme les message suivant si c'est ok ou pas.
Pour m'entrainer a bien comprendre le fonctionnement et la reflexion a avoir je vais a côté essayer de faire la même chose avec la "fonction", car malgré je reste toujours pas très a l'aise avec la reflexion a avoir quand on fait du PHP.
Mais pour cette dernière je me pose la question :
La fonction doit-elle obligatoirement être dans le script où on l'appelle où peut on l'enregistré a part et l'appeler sur un autre script PHP?
Je veux dire comme je peux le faire avec la class PHPmailer qui est dans un fichier PHP et que j'appelle sur une autre page.
Merci infiniment Alain poour ta patience, l'aide et les conseils que tu m'a apporter pour mettre en place ce script.
Amicalement.
J'aurais plus que a mettre en forme les message suivant si c'est ok ou pas.
Pour m'entrainer a bien comprendre le fonctionnement et la reflexion a avoir je vais a côté essayer de faire la même chose avec la "fonction", car malgré je reste toujours pas très a l'aise avec la reflexion a avoir quand on fait du PHP.
Mais pour cette dernière je me pose la question :
La fonction doit-elle obligatoirement être dans le script où on l'appelle où peut on l'enregistré a part et l'appeler sur un autre script PHP?
Je veux dire comme je peux le faire avec la class PHPmailer qui est dans un fichier PHP et que j'appelle sur une autre page.
Merci infiniment Alain poour ta patience, l'aide et les conseils que tu m'a apporter pour mettre en place ce script.
Amicalement.
Donc en fait c'est la seul chose qui du coup justifirai de faire une fonction plutôt qu'un script.
Alors du coup cette idée est bien pour que je comprenne mieux le fonctionnement du PHP, mais dans ma situation et comme tu le disai, faire le script où j'en ai besoin suffis complètement.
Surtout que pour mon site parmis mes 4 formulaire c'est le seul qui as se fonctionnement les autre n'on pas besoin d'avoir une vérification de la présence des données entré au formulaire dans la base de données.
D'ailleur je ne pense pas enregistré les données des autres formmulaire, comme tu as du surement le comprendre, cette idée sur ce formulaire est surtout de limiter au mieux les abus.
Car sur une à 10 demande on peut gérer seul mais il faut avoué que au-délà un BDD avec du PHP rend bien pratique pour automatiser le contrôle.
En tous cas pour ce qui est du PHP tant que l'on as pas saisi comment on doit pensé les chose c'est pas simple du tous.
Encore un grand merci Alain pour tous ce temps que tu m'as accorder, et toutes l'aide que tu m'as donné, et aussi les choses que tu m'as aidé a comprendre, car j'étais comme tu as pu le lire un débutant j'avais besoin d'un script qui n'est pas simple du tous a ce niveaux.
Amicalement.
Alors du coup cette idée est bien pour que je comprenne mieux le fonctionnement du PHP, mais dans ma situation et comme tu le disai, faire le script où j'en ai besoin suffis complètement.
Surtout que pour mon site parmis mes 4 formulaire c'est le seul qui as se fonctionnement les autre n'on pas besoin d'avoir une vérification de la présence des données entré au formulaire dans la base de données.
D'ailleur je ne pense pas enregistré les données des autres formmulaire, comme tu as du surement le comprendre, cette idée sur ce formulaire est surtout de limiter au mieux les abus.
Car sur une à 10 demande on peut gérer seul mais il faut avoué que au-délà un BDD avec du PHP rend bien pratique pour automatiser le contrôle.
En tous cas pour ce qui est du PHP tant que l'on as pas saisi comment on doit pensé les chose c'est pas simple du tous.
Encore un grand merci Alain pour tous ce temps que tu m'as accorder, et toutes l'aide que tu m'as donné, et aussi les choses que tu m'as aidé a comprendre, car j'étais comme tu as pu le lire un débutant j'avais besoin d'un script qui n'est pas simple du tous a ce niveaux.
Amicalement.