NightwishQc
-
12 mai 2014 à 16:28
Nhay
Messages postés838Date d'inscriptionvendredi 2 novembre 2012StatutMembreDernière intervention17 décembre 2015
-
12 mai 2014 à 21:01
Bonjour,
Je vous explique en quelques mots mon problème. Cela fait plus de 3 ans je fait du développement web de base. J'ai récemment rencontré un problème que je n'arrive malheureusement pas à arranger. Mon problème est que lorsqu'un formulaire d'ajout dans la base de donnée, il me l'insert en double. Cela ne se produit pas uniquement sur un seul formulaire, mais sur l'ensemble.
Voici les restriction apporté à ce formulaire dans le fichier restriction.php :
if (!empty($_POST['addmusic'])){ extract($_POST); $valid = true;
if (empty($embedlink) || empty($singer) || empty($album) || empty($kind) || empty($name)){ $valid = false; $erreurempty = "Tous les champs sont obligatoires."; }
$checkSong = $bdd->query('SELECT songid FROM songs WHERE songname="'.$name.'" AND kind='.$kind.''); if ($checkSong->rowCount()>0){ $valid = false; $erreurtitre = "Ce titre à déjà été ajouté, essayé peut-être la vidéo, la chanson ou le karéoké."; }
if (!empty($singer) && !empty($album)){ $check = $bdd->query('SELECT albid FROM albums WHERE albid='.$album.' AND artid='.$singer.''); if ($check->rowCount()<1){ $valid = false; $erreur = "Mauvais album avec le mauvais groupe."; } }
if (!empty($embedlink) && strlen($embedlink)<8){ $valid = false; $erreurlen = "Votre extension de lien youtube est trop courte pour exister. Veuillez communiquer avec nous pour un soutien."; } if (!empty($embedlink) && strlen($embedlink)>100){ $valid = false; $erreurlen = "Votre extension de lien youtube est trop longue pour exister. Veuillez communiquer avec nous pour un soutien."; }
if ($valid){ $execute = $req->addMusic($userids,$embedlink,$album,$singer,$name,$kind); $done = "Votre vidéos, chanson ou karéoké ".$name." a été ajouté correctement."; } }
et puis pour finir le code de la fonction addMusic dans le fichier fonction.php:
public function addMusic($userids,$embedlink,$album,$singer,$name,$kind) { require ('query.inc.php');
$insert = $bdd->query('INSERT INTO songs (userid,artid,albid,songname,kind,link) VALUES ('.$userids.','.$singer.','.$album.',"'.$name.'",'.$kind.',"'.$embedlink.'")');
return $insert; }
Je laisse action vide car normalement je me dit que le champs invisible renvoie une valeur de 1 donc non vide. Ce qui donne suite au restriction de ce formulaire et ainsi lorsque tous se termine, la page redirige sur elle même. Par contre on dirais qu'elle redirige deux fois car les utilisateurs non pas le droit d'ajouter une double chanson. Donc il renvoi l'erreur d'ajout en doublon mais m'affiche aussi le succès de l'ajout et on voit très bien qu'elle à été ajouté.