Allez c’est parti, question naze du soir : j’ai un formulaire sur une page php, j’ai un champ pour renseigner une date. Je voudrais qu’une fois validé, la date s’enregistre sur phpmyadmin dans le champ “date” d’une table. Or, quelle que soit la valeur entrée, ça m’enregistre 0000-00-00.
Ma table “Blabla” est composée de deux champs : “id” et “date”, le second étant au format “date”
Donc, que j’entre une valeur au format 25-02-2013, 2013-02-25 ou autre, 0000-00-00 s’enregistre dans la base quoi qu’il arrive. Quelqu’un saurait me dire où j’ai merdé ?
Ce qui est marrant, c’est que si je fais un echo $date, c’est bien 2013-02-25 qui s’affiche.
Et en base, c’est quoi le type de ta colonne ? Si c’est un entier, cherche pas, c’est probablement normal: 25-02-2013 n’est pas valide.
Et tu as une méga injection SQL. -> php.net…
Mais en dehors de ça, il te manque un élément essentiel pour que tout cela marche : un bouton “Envoyer” (input type=“submit”), de renseigner l’attribut action, et de mettre le code qui insert dans la table … ailleurs que là où tu affiches la valeur du champ telle que rentrée par l’utilisateur.
Ta page, ça doit être :
if (isset($_POST['date'])) {
$date = $_POST["date"] ;
$sql = sprintf("INSERT INTO blabla (date) VALUES ('%s')", mysql_real_escape_string($date));
$req = mysql_query($sql);
}
Ah non, ce n’est pas à toi que s’adressait ma remarque mais à petitfilou87 !
($_POST[‘date’]):’’;"?>" />
Edit : Je n’avais pas vu qu’il figurait aussi dans la proposition plus haut ;
Mais bon, en retapant la formule, un nombre impair de délimiteurs c’est en principe une chose qui aurait dû l’interpeller …
Edité le 26/02/2013 à 20:17
Oui bah, t’as bien débuté la programmation, non ? Et si tu faisais du brainfuck, du whitespace ou du morse, tu te serais également planté et ça t’aurait aussi interpellé
Et ben… vé, non, on me sert ça sur un plateau, je copie colle… c’est un truc que je devais faire de force, la prog, c’est pas mon truc du tout
Edité le 09/03/2013 à 21:30