recuperation des info dans la base de donnees
bonjour a vous tous...
voila ma question:
j'ai un formulaire Html dont je veux recuperer les donnees par mail est aussi sur ma base , mais lorsque le formulaire est valider j;ai recu les donnees seuelement par mail sans l'enregistrement dans ma base etant dis que la connection de ma base est correcte.
voici la page du traitement de mon formulaire
<?php
session_start();//on démarre la session
// $errors = [];
$errors = array(); // on crée une vérif de champs
if(!array_key_exists('alcatel', $_POST) || $_POST['alcatel'] == '') {// on verifie l'existence du champ et d'un contenu
$errors ['alcatel'] = "return and select your model";
}
if(!array_key_exists('name', $_POST) || $_POST['name'] == '') {// on verifie l'existence du champ et d'un contenu
$errors ['name'] = "return and enter your name";
}
if (
!$imei = filter_input(INPUT_POST, 'imei', FILTER_VALIDATE_INT, $range) === [0-9]{15}
|| !filter_input(INPUT_POST, 'imei', FILTER_VALIDATE_INT, $range) === FALSE)
{
exit ('return and enter your imei');
}
if(!array_key_exists('mail', $_POST) || $_POST['mail'] == '' || !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)) {// on verifie existence de la clé
$errors ['mail'] = "return and enter your Mail";
}
$servername = "";
$username = "";
$password = "";
$dbname = "";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$name = $_POST['model'];
$numero = $_POST['name'];
$mail = $_POST['mail'];
$mail = $_POST['provider'];
$mail = $_POST['imei'];
$sql = 'INSERT INTO alcatel (model, name, email)
VALUES ('. ($_POST['model']) .' , '. ($_POST['name']) .' , '. ($_POST['mail']) .' , '. ($_POST['provider']) .' , '. ($_POST['imei']) .')';
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
//On check les infos transmises lors de la validation
if(!empty($errors)){ // si erreur on renvoie vers la page précédente
$_SESSION['errors'] = $errors;//on stocke les erreurs
$_SESSION['inputs'] = $_POST;
header('Location:alcatel.html/');
}else{
$_SESSION['success'] = 1;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'FROM:' . htmlspecialchars($_POST['mail']);
$to = 'xxxxxxxxxxx@gmail.com'; // Insérer votre adresse email ICI
$subject = 'Message envoyé par ' . htmlspecialchars($_POST['name']);
$message_content = '
<table>
<tr>
<td><b>bonjour,je voudrais unlock mon portable alcatel:</b></td>
</tr>
<tr>
<td>'. $subject . '</td>
</tr>
<tr>
<td><b>voici les coordonnes de mon portable:;</b></td>
</tr>
<tr>
<td>mon portbale est un alcatel::::>>>'. htmlspecialchars($_POST['alcatel']) .'</td>
</tr>
<tr>
<td>l/imei de mon portable est le suivant::::>>>'. htmlspecialchars($_POST['imei']) .'</td>
</tr>
<tr>
<td>et le provider de mon portable est::::>>>'. htmlspecialchars($_POST['provider']) .'</td>
</tr>
<tr>
<td>est aussi mon mail est::::==>>'. htmlspecialchars($_POST['mail']) .'</td>
</tr>
<tr>
<td>Merci de m/aider,message de la part de:::>>>'. htmlspecialchars($_POST['name']) .'</td>
</tr>
</table>
';
mail($to, $subject, $message_content, $headers);
header('location:https://index.html');
}
?>
merci a l'avance pour votre aide , les etoiles c'est pour bien permettre la visibiliter de ma question
Réponses apportées à cette discussion
Salut,
est-ce que l'opération fait état d'une erreur d'exécution de la requête d'insertion ?
non pas d'erreuur,la redirection et le mail fonctionne tres bien,le probleme c;'est seulement l'enregistrement dans la base/...
Ok, donc le message « New record created successfully » s'affiche dans la page de résultat ?
non,ca ne s'affiche pas , le donnees ne sot pas enregistrer en plus daans la base,je ne vois pas ou est le probleme
Si je me fie au code montré plus haut et si le message de confirmation d'enregistrement réussi ne s'affiche pas davantage, alors logiquement le message d'erreur devrait s'afficher.
Alors un truc à tester : Faire afficher la requête SQL générée et la tester directement avec la console MySQL et voir quel résultat ça retourne.
je ne sais si c'est de ca que vous parlez mais j'obtiens ca:
Error
Static analysis:
12 errors were found during analysis.
Unexpected character. (near "[" at position 82)
Unexpected character. (near "]" at position 90)
Unexpected character. (near "[" at position 92)
Unexpected character. (near "]" at position 100)
Unexpected character. (near "[" at position 102)
Unexpected character. (near "]" at position 110)
Unexpected character. (near "[" at position 112)
Unexpected character. (near "]" at position 120)
Unexpected character. (near "[" at position 122)
Unexpected character. (near "]" at position 130)
Unexpected character. (near "[" at position 132)
Unexpected character. (near "]" at position 140)
SQL query:
INSERT INTO alcatel
(id
, Model
, Name
, email
, imei
, provider
) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6])
MySQL said: Documentation
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '[value-1],[value-2],[value-3],[value-4],[value-5],[value-6])' at line 1
Hé ben voilà, il ne faut pas chercher plus loin.
Les valeurs attendues étant des chaines de caractères, elles devraient être encadrées par des guillemets ou des apostrophes, cette même requête devrait donc être comme ceci :
INSERT INTO alcatel(id, Model, Name, email, imei, provider)
VALUES ('[value-1]','[value-2]','[value-3]','[value-4]','[value-5]','[value-6]')
Donc lorsque la requête est construite en PHP, il faudrait mettre les bons caractères :
$sql = "INSERT INTO alcatel (model, name, email)";
$sql .= "VALUES ('". ($_POST['model']) ."' , "'. ($_POST['name']) .'" , "'. ($_POST['mail']) ."' , '". ($_POST['provider']) ."' , '". ($_POST['imei']) ."')";
Mais là encore, il reste un problème de conflit entre les apostrophes encadrant les valeurs et celles des index de $_POST, et en outre la requête pointe vers trois colonnes, mais fournit six valeurs; Donc pour faire quelque chose de propre et plus facilement lisible, il va falloir procéder autrement :
$model = $_POST['model'];
$name = $_POST['name'];
$email = $_POST['email'];
$sql = "INSERT INTO alcatel (model, name, email)";
$sql .= "VALUES '". $model ."', '". $name ."' , '". $email ."')";
J'ai mis uniquement trois valeurs à insérer, à ajuster sur ce modèle pour mettre les bonnes valeurs dans les bonnes colonnes.
toujours meme chose ,j'ai recu le mail mais ca n'enregistre pas dans la base , lorsque j'attribut une valeur dans la page de traitement , j'ai recu les valeurs dans la base,,je pense que peux etre la valeur dans $_post ne fonctionne pas pour la base
Hé, je suis pas voyante ! Sans les messages d'erreur ni le moindre bout de code, je ne devine pas.
J'apporte l'aide autant que possible, mais je ne fais pas le code pour les autres. Un petit minimum de logique serait bienvenu. Je ne connais pas la structure de la table à laquelle sont destinées les données, je ne sais pas quelles modifications ont été faites sur la construction de la requête : donc me dire « ça marche toujours pas » ne peut en aucun cas me permettre d'indiquer où chercher une solution quelconque.
Mais j"obtiens pas de message d'erreur,la redirection se fait normalement et j'ai recu les données par mail....je ne vois pas quoi dire
Non mais c'est pas vrai ...
Et si tu utilisais la même méthode que celle utilisée avant pour débusquer les erreurs et que tu me montrais un peu les modifications et les résultats ?
Vous m"avez donnez ce code pour la recuperation dans la base:
$model = $_POST['model'];
$name = $_POST['name'];
$email = $_POST['email'];
$sql = "INSERT INTO alcatel (model, name, email)";
$sql .= "VALUES '". $model ."', '". $name ."' , '". $email ."')";
Je vais vous envoyez la page de modification plustard pour voir
Ok, maintenant il faut faire afficher la requête avec un
var_dump($sql);
Et m'afficher ce que ça donne. Éventuellement tester la requête si elle a l'air correcte à l'affichage, directement en console MySQL et observer le résultat.
toujoours rien,ok voici la structure de ma table
name type collation null default
Model varchar(200) latin1_swedish_ci No None
Name varchar(200) latin1_swedish_ci No None
email varchar(80) latin1_swedish_ci No None
imei int(16) No None
provider int(11) No None
et voici le nouveau code modifier
<?php
session_start(); //on démarre la session
// $errors = [];
$errors = array(); // on crée une vérif de champs
if(!array_key_exists('alcatel', $_POST) || $_POST['alcatel'] == '')
{ // on verifie l'existence du champ et d'un contenu
$errors['alcatel'] = "return and select your model";
}
if(!array_key_exists('name', $_POST) || $_POST['name'] == '')
{ // on verifie l'existence du champ et d'un contenu
$errors['name'] = "return and enter your name";
}
if(!$imei = filter_input(INPUT_POST, 'imei', FILTER_VALIDATE_INT, $range) === [0-9]{15}
|| !filter_input(INPUT_POST, 'imei', FILTER_VALIDATE_INT, $range) === FALSE
)
{
exit('return and enter your imei');
}
if(!array_key_exists('mail', $_POST) || $_POST['mail'] == '' || !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL))
{
// on verifie existence de la clé
$errors['mail'] = "return and enter your Mail";
}
$servername = "";
$username = "";
$password = "";
$dbname = "";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if($conn->connect_error)
{
die("Connection failed: " . $conn->connect_error);
}
$model = $_POST['model'];
$name = $_POST['name'];
$email = $_POST['mail'];
$email = $_POST['imei'];
$email = $_POST['provider'];
$sql = "INSERT INTO alcatel (model, name, email, imei, provider)";
$sql .= "VALUES '" . $model . "', '" . $name . "' , '" . $mail . "' , '" . $imei . "' , '" . $provider . "')";
var_dump($sql);
if($conn->query($sql) === TRUE)
{
echo "New record created successfully";
}
else
{
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
//On check les infos transmises lors de la validation
if(!empty($errors))
{
// si erreur on renvoie vers la page précédente
$_SESSION['errors'] = $errors; //on stocke les erreurs
$_SESSION['inputs'] = $_POST;
header('Location:https://alldeviceunlock.com/Unlock-alcatel/Unlock-alcatel-OT-one-touch.html/');
}
else
{
$_SESSION['success'] = 1;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'FROM:' . htmlspecialchars($_POST['mail']);
$to = 'myemail@gmail.com'; // Insérer votre adresse email ICI
$subject = 'Message envoyé par ' . htmlspecialchars($_POST['name']);
$message_content = '
<table>
<tr>
<td><b>bonjour,je voudrais unlock mon portable alcatel:</b></td>
</tr>
<tr>
<td>' . $subject . '</td>
</tr>
<tr>
<td><b>voici les coordonnes de mon portable:;</b></td>
</tr>
<tr>
<td>mon portbale est un alcatel::::>>>' . htmlspecialchars($_POST['alcatel']) . '</td>
</tr>
<tr>
<td>l/imei de mon portable est le suivant::::>>>' . htmlspecialchars($_POST['imei']) . '</td>
</tr>
<tr>
<td>et le provider de mon portable est::::>>>' . htmlspecialchars($_POST['provider']) . '</td>
</tr>
<tr>
<td>est aussi mon mail est::::==>>' . htmlspecialchars($_POST['mail']) . '</td>
</tr>
<tr>
<td>Merci de m/aider,message de la part de:::>>>' . htmlspecialchars($_POST['name']) . '</td>
</tr>
</table>
';
mail($to, $subject, $message_content, $headers);
header('location:index.html');
}
Un petit minimum d'attention ne serait pas superflu.
1> $model = $_POST['model'];
2> $name = $_POST['name'];
3> $email = $_POST['mail'];
4> $email = $_POST['imei'];
5> $email = $_POST['provider'];
6> $sql = "INSERT INTO alcatel (model, name, email, imei, provider)";
7> $sql .= "VALUES '". $model ."', '". $name ."' , '". $mail ."' , '". $imei ."' , '". $provider ."')";
On ne fait jamais de copier/coller quand on code !
Ensuite, je vois bien le var_dump, mais il faudrait s'en servir : ça doit afficher la requête générée dans la page et l'erreur devrait alors être évidente.
Dans la requête, il y a une erreur, il manque une parenthèses, ensuite il y a deux valeurs qui ne sont jamais envoyées parce que les variables correspondantes ne sont jamais définies.
Ha si, un détail : pour voir les messages s'afficher, commenter la ligne de redirection en bas, de façon à ne pas quitter la page et voir s'afficher les erreurs.
J'ai numéroté exprès les lignes de code ci-dessus : regarde donc les lignes 4, 5 et 7.
wow,je sais mais qu;il ne faut pas copier/coller le code mais parfois quand on a plus de temps ,on est dans l'obligation quand meme.....je veux explique un peu de plus mon objectif....je crois que vous savez bien comment fonctionner les mails de confirmations?mon but , je souhaites que lorsque le client soumis le formulair pour que j;ai recu les donnees en premier par mail,et apres pour que le client recois un email de confirmation ,et cet email va contenir un lien paypal correspond a son numero id, comme les site d;inscription qui envoie un lien de confirmation, et ce lien se compose aussi de l'emai de la personne qui vient faire l;inscription...mais de preference,je veux faire ca de ma part avec paypal...je crois que vous allez me comprendre quand meme
Je comprends fort bien, et ça reste une très mauvaise excuse.
Vouloir gagner du temps en faisant du copier/coller est une des manière les plus efficaces pour perdre au contraire beaucoup de temps, et là, c'est précisément le cas.
J'ai montré précédemment où se trouvaient les erreurs. La requête est construite à partir de cinq variables : $model, $name, $mail, $imei et $provider : où sont définies les deux dernières ?
J'ai indiqué également un certain nombre d'informations pour déboguer tout ça.
Monter un site de commerce en ligne, ça ne s'improvise pas, il s'agit de transactions et il s'agit de l'argent des clients. Si le site est mal fait, les clients risquent fort de perdre leur argent et ... le site risque fort d'intéresser la répression des fraudes même s'il n'y a pas de fraude.
Il y a des questions de sécurité qui doivent être prises avec le plus grand sérieux, et il vaut mieux prendre quelques minutes de plus pour bien faire les choses que de bâcler un boulot pour devoir par la suite passer des heures à corriger les bogues.
Enfin, dernière observation : soignez la qualité de votre code, il sera d'abord plus facile à relire au besoin, et encore plus facile à corriger en cas d'erreur : je faisais un jour remarquer sur un autre forum à des codeur qui bâclaient leur code : Si vous codez de la même manière que vous écrivez en français, ne soyez pas surpris que le code ne fonctionne pas et là aussi je suis très tenté de faire la même observation. Il ne faut pas croire qu'on va gagner du temps en essayer d'aller plus vite en écrivant comme un goret. Que ce soit en français ou en code, il faut que ce qui est écrit puisse être compris par le destinataire, donc par une autre personne ou un serveur.
Donc une seule variable qui n'esf pas definit peux empecher de recevoir tous les autres variables?
Ce n'est pas du tout ça... dites, j'espère que vous ne montez pas un vrai site de commerce en ligne professionnel parce qu'à ce rythme, vous allez droit vers un mur, et un solide.
Une variable non définie empêche le fonctionnement correct d'un code, tout simplement. Si le code doit expédier quelque chose, le résultat ne sera pas bon, ou bien si ça doit enregistrer quelque chose, ça ne fonctionnera pas.
Réfléchissez un instant, reprenez l'extrait de code que j'ai mis plus haut pour souligner les erreurs : à la ligne 7, quelle est la valeur de la valeur $email ?
Important
Il est indispensable de bien comprendre que sur ce forum, on s'adresse aux gens qui débutent et on va tâcher de leur montrer comment corriger leurs erreurs, personne ne les corrigera à leur place.
Je devrais dire « je vais tâcher de leur montrer » parce qu'en réalité je suis le seul à répondre ici. Mais c'est pareil, j'essaye de montrer où se trouvent les erreurs : mais ce n'est pas à moi de les corriger.
Il est indispensable d'exercer sa logique, de réfléchir aux implications de telle ou telle action. Si on ne définit pas une variable, que va-t-il se passer ? Comment va réagir l'interpréteur PHP ?
la valeur email c'est mail , c'est bien definie ,car j;ai recu tout sans rien perdre dans l'email
Pas du tout, et je ne parle pas de ce qui est reçu dans l'envoi par courriel, je parle de l'extrait de code cité plus haut en précisant la ligne.
Le code s'exécute ligne après ligne dans l'ordre où il est écrit. Relisez ce bout de code et pour chaque ligne décrivez ce qu'il se passe : si vous ne pouvez pas le faire, je m'interrogerai en me demandant par quel mystère vous programmez. On est dans les bases de la programmation là.
J'ai donné plus tôt aussi une manière de « voir » ce qui se passe dans le code en faisant afficher des éléments avec var_dump. Utilisez ça pour vous aider à voir.
vous parlez de "commentaire"?
Dites, je veux bien vous aider, mais il va falloir y mettre un peu du vôtre là. Ce code que vous avez montré, c'est vous qui l'avez écrit ou bien ce sont des bouts récupérés et assemblés au petit bonheur pour tenter de faire quelque chose ??
Parce que là, j'ai l'impression que je parle chinois et que vous ne comprenez strictement rien de ce que j'explique ???
ja'i resolu les ligne que vous avez dites,en remplcant par leurs valeurs
Je n'ai pas de boule de cristal, je ne vois pas les correctifs : montrez-moi ça que je puisse au moins vous dire si ça va dans le bon sens.
je comprend tres bien,mais pour preciser je ne connais pas trop en Php,je suis uun etudiant en genie elctromecanique,je ne faisais pas le language php,mais je connais quelques notions du php lorsque j'etais dans la faculte Genie informatique et j;ai laisse ce faculte longtemps deja...c'est a cause de ca que je ne connais pas tous ce que tu dis
Bon, je recommence. Un peu plus tôt j'ai montré ceci :
1> $model = $_POST['model'];
2> $name = $_POST['name'];
3> $email = $_POST['mail'];
4> $email = $_POST['imei'];
5> $email = $_POST['provider'];
6> $sql = "INSERT INTO alcatel (model, name, email, imei, provider)";
7> $sql .= "VALUES '". $model ."', '". $name ."' , '". $mail ."' , '". $imei ."' , '". $provider ."')";
Ces lignes sont directement extraite du code original, j'y a ajouté des numéros de ligne pour faciliter le suivi. Ce code comporte des erreurs aux lignes 4, 5 et 7. J'ai également précisé le coté néfaste du copier/coller. Avec ces indices, il reste à identifier les erreurs et à les corriger.
Et la question que je posais en particulier, toujours par rapport à ce bout de code : Que vaut la variable $email à la ligne 7 ?
Code corrigé :
$model = $_POST['model'];
$name = $_POST['name'];
$mail = $_POST['mail'];
$imei = $_POST['imei'];
$provider = $_POST['provider'];
$sql = "INSERT INTO alcatel (model, name, email, imei, provider)"; //ce sont les nom de colonnes de ma table
$sql .= "VALUES '". $model ."', '". $name ."' , '". $mail ."' , '". $imei ."' , '". $provider ."')"; //ce sont les valeur a inserer dans la table
voici la correction de ce code , je le faisais deja,je met des petits commentaires pour expliquer mieux
Ok, mais il reste une erreur ligne 7, et pour la voir, il faut faire afficher la requête SQL avec var_dump($sql); pour avoir la requête réelle qui sera exécutée ensuite
$model = $_POST['model'];
$name = $_POST['name'];
$mail = $_POST['mail'];
$imei = $_POST['imei'];
$provider = $_POST['provider'];
$sql = "INSERT INTO alcatel (model, name, email, imei, provider)"; //ce sont les nom de colonnes de ma table
$sql .= "VALUES '". $model ."', '". $name ."' , '". $mail ."' , '". $imei ."' , '". $provider ."')"; //ce sont les valeur a inserer dans la table
$alcatel = mysql_insert_id();
var_dump($alcatel);
c'est correcte comme ca?
Non.
Est-ce que vous savez ce que retourne la fonction mysql_insert_id() ?
À quoi sert le « var_dump($alcatel); » ?
J'ai dit plus haut ce qu'il fallait faire afficher, et ce n'est pas ça.
ok je comprend,tu veux parler de mettre la requete juste apre la fermeture quotes de VAlUES>?
Voilà, ensuite exécuter la page pour faire afficher la requête.
Et pour que ça marche, j'ai indiqué plus ôt qu'il fallait commenter la ligne de redirection en fin de code header('Location..') pour empêcher la sortie de page, le temps de finir de déboguer ça.
Autre option, faire suivre le var_dump d'un die().
maintenant j'obtien l'erreur "page not found" etandisque la page est la
Mais c'est désespérant : vous ne semblez pas vous rendre compte que je ne peux pas vous aider sans un minimum d'éléments ????
Montrez-moi le code tel qu'il est modifié !
ok...
<?php
session_start();//on démarre la session
// $errors = [];
$errors = array(); // on crée une vérif de champs
if(!array_key_exists('alcatel', $_POST) || $_POST['alcatel'] == '') {// on verifie l'existence du champ et d'un contenu
$errors ['alcatel'] = "return and select your model";
}
if(!array_key_exists('name', $_POST) || $_POST['name'] == '') {// on verifie l'existence du champ et d'un contenu
$errors ['name'] = "return and enter your name";
}
if (
!$imei = filter_input(INPUT_POST, 'imei', FILTER_VALIDATE_INT, $range) === [0-9]{15}
|| !filter_input(INPUT_POST, 'imei', FILTER_VALIDATE_INT, $range) === FALSE)
{
exit ('return and enter your imei');
}
if(!array_key_exists('mail', $_POST) || $_POST['mail'] == '' || !filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)) {// on verifie existence de la clé
$errors ['mail'] = "return and enter your Mail";
}
$servername = "91.216.107.162";
$username = "xxxxxxx";
$password = "xxxxxxx";
$dbname = "xxxxxxxxx";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$model = $_POST['model'];
$name = $_POST['name'];
$mail = $_POST['mail'];
$imei = $_POST['imei'];
$provider = $_POST['provider'];
$sql = "INSERT INTO alcatel (model, name, email, imei, provider)"; //ce sont les nom de colonnes de ma table
$sql .= "VALUES '". $model ."', '". $name ."' , '". $mail ."' , '". $imei ."' , '". $provider ."')";
var_dump($sql); //ce sont les valeur a inserer dans la table
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con)
if(!empty($errors)){ // si erreur on renvoie vers la page précédente
$_SESSION['errors'] = $errors;//on stocke les erreurs
$_SESSION['inputs'] = $_POST;
header('Location..') ;
}else{
$_SESSION['success'] = 1;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'FROM:' . htmlspecialchars($_POST['mail']);
$to = 'xxxxxxxx@gmail.com'; // Insérer votre adresse email ICI
$subject = 'Message envoyé par ' . htmlspecialchars($_POST['name']);
$message_content = '
<table>
<tr>
<td><b>bonjour,je voudrais unlock mon portable alcatel:</b></td>
</tr>
<tr>
<td>'. $subject . '</td>
</tr>
<tr>
<td><b>voici les coordonnes de mon portable:;</b></td>
</tr>
<tr>
<td>mon portbale est un alcatel::::>>>'. htmlspecialchars($_POST['alcatel']) .'</td>
</tr>
<tr>
<td>l/imei de mon portable est le suivant::::>>>'. htmlspecialchars($_POST['imei']) .'</td>
</tr>
<tr>
<td>et le provider de mon portable est::::>>>'. htmlspecialchars($_POST['provider']) .'</td>
</tr>
<tr>
<td>est aussi mon mail est::::==>>'. htmlspecialchars($_POST['mail']) .'</td>
</tr>
<tr>
<td>Merci de m/aider,message de la part de:::>>>'. htmlspecialchars($_POST['name']) .'</td>
</tr>
</table>
';
mail($to, $subject, $message_content, $headers);
header('Location..');
}
?>
Ok, donc ça devrait afficher la requête avant enregistrement. On va simplifier :
$model = $_POST['model'];
$name = $_POST['name'];
$mail = $_POST['mail'];
$imei = $_POST['imei'];
$provider = $_POST['provider'];
$sql = "INSERT INTO alcatel (model, name, email, imei, provider)"; //ce sont les nom de colonnes de ma table
$sql .= "VALUES '". $model ."', '". $name ."' , '". $mail ."' , '". $imei ."' , '". $provider ."')"; //ce sont les valeur a inserer dans la table
var_dump($sql); // On affiche la requête générée
die(); // On arrête le script le temps du débogage
J'ai réaligne le bout de code et ré-ajusté les commentaires. Testez-ça et montrez-moi le résultat.
Il me vient à l'esprit un détail : vous testez ça en local sur votre machine ou bien sur le serveur d'un hébergeur en ligne ?
pour bien dire,meme moi je commence a desesperer et depatienter,je ne pense pas que ca vient du serveur parce que j;ai un forum dont j;utiliser le logiciel flubb,les tables fonctionne tres bien,et quand je met une valeur dans la page de traitement ca rentre dans la base de donnees , je ne voois pas d'ou cela vient , je pensais que ce sont les donnees dans $_post qui sont impossible de recuperer pour la base mais je ne crois ps....je ne pense pas que si j;utiliser quelques bout de code de logiciel fluxbb je vais arriver car je vois qus les codes sont un peu avancer et moi je ne suis pas a ce niveau
Et pourtant l'erreur est visible.
On va tenter une autre approche. Écrivez-moi la requête SQL d'insertion avec des valeurs (juste pour le test sans l'exécuter) comme si elle était écrite en dur avec des valeurs au lieu de variables. Et pas en PHP, en SQL directement.
Exemple :
INSERT INTO matable(colonne1, colonne2) ...etc..;
Et montrez-moi ça.
Quant à piquer des bouts de code ailleurs, ça ne fonctionnera pas mieux tant que vous ne comprendrez pas COMMENT ça doit fonctionner, donc mauvaise idée.
INSERT INTO alcatel
(id
, Model
, Name
, email
, imei
, provider
) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6]) , voici ce que vous m;avez demandez
ce formulaire est tapez par moi , c;est lorsque je veux faire une chose dont je connais pas je fais recherche google
Bon, cette requête telle quelle ne pourrait aboutir qu'à une erreur. Mettez des valeurs comme si vous alliez exécuter cette requête en console pour que l'insertion fonctionne.
je ne comprend pas,vous pouvez me donnner un exemple?
La requête montré est un copier/coller récupéré ailleurs, ce n'est pas ce que je demande.
Là, il faut construire une requête qui va insérer 5 valeurs dans une table. Utilisez des valeurs test et écrivez la requête en SQL telle qu'elle devrait être faite pour fonctionner directement.
L'exemple de base :
INSERT INTO matable(colonne) VALUES('valeur');
Ça, c'est directement exécutable dans une console MySQL, alors que l'exemple montré ne fonctionnera pas : observez attentivement, voyez les différences et dites-moi ce que vous remarquez.
Note :
Le SQL est un langage, comme le PHP, comme le français, avec un vocabulaire, une syntaxe et une grammaire. Ça ne s'improvise pas, et il est absolument indispensable d'en maitriser les bases fondamentales.
c'est pas copier coller.je l'ai pris dans phpmyadmin de ma base
Observez les différences entre l'exemple que j'ai donné et l'exemple que vous avez montré.
et pourtant je crois j;avais deja essayer ce que vous venez me donner,je vais l'integrer de nouveau
Mais répondez donc aux question, sinon on y sera encore à Noël.
Qu'est-ce que vous observez comme différences entre les deux requête ? (sans chercher midi à 14h00)
toujours meme choses,mest ce que vous pensez que je peux faire l'email que je dois recu provient directement de la base que plutot dans le traitment form?
Stop, on ne s'éparpille pas....
Aucun courriel ne peut être envoyé par la base. C'est expédié par Apache avec du code PHP. Et pour l'instant, on essaye de résoudre l'insertion de données dans la base. De toute évidence, vous ne connaissez pas du tout le SQL, on est pas sortis de l'auberge.
Dans une requête SQL, il y a les éléments du langage lui-même, et des valeurs sous la forme de chaînes de caractères. On utilise des caractères spéciaux pour séparer ces chaines de caractères du langage SQL lui-même. C'est ce qu'il faudrait que vous observiez. Est-ce que vous avez compris pourquoi votre exemple de requête ne peut pas marcher alors que l'exemple basique que j,ai montré peut fonctionner ?
non je ne comprend pas,je pense que l;explication est necessaire,mais si vous me dites que l'email se fait par apache etc...et moi je ne connais pas le language sq;,mais comment l'email de confirmation va fonctionnner?
Ok, je vais essayer de simplifier :
Vous avez écrit « VALUES([valeur]) »
Alors que j'ai écrit « VALUES('valeur') »
C'est plus clair là ?
oui , si toutes fois que je fais la reprogrammation de mon formulaire , est ce que ca ne vas pas marcher ?
Bon alors on va procéder autrement.
Vous ne connaissez apparemment ni le SQL ni le PHP, je peux aider des débutants, mais pas former quelqu'un qui n'a absolument aucune connaissance. Il faut commencer par les bases, je suggère donc fortement de suivre les tutoriels qui sont sur ce site. Il y a aussi les cours sur OpenClassroom
Le développement WEB, c'est au minimum 5 langages : HTML, PHP, SQL, JavaScript et CSS. Même si on se limite aux trois premiers, il faut maitriser les bases fondamentale et je n,ai pas le temps de faire des cours complets là-dessus. Il y a des kilomètres de tutoriels et de cours en ligne qui répondent à ce besoin.
La programmation n'est pas une activité qu'on bricole comme un vélo en testant un truc de temps en temps en espérant que ça marche, surtout s'il est question de vendre quelque chose sur Internet. C'est une activité qui requiert quelques connaissances de base, un grand sens de la logique et de la discipline.
Suivez les tutos et exercez-vous. Posez des questions si un point ou un autre n'est pas clair.
ok,j;ai pas de temps pour lire les cours,mais je vais quand meme resoudre ca,,apres l'insertion dans la base de donnees , vous pense que ce ne serais pas difficile pour l'email de confirmation?
J'avais cru comprendre que l'envoi du courriel fonctionnait et que seule l'insertion ne fonctionnait pas ?