INSERT INTO
Résolu
papyclic
Messages postés
446
Date d'inscription
Statut
Membre
Dernière intervention
-
papyclic Messages postés 446 Date d'inscription Statut Membre Dernière intervention -
papyclic Messages postés 446 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'aurai aimer faire mon site en POO, mais malheureusement trop compliqué pour moi, alors j'ai fait comme ça en mettant toutes mes variables dans un tableau avec un switch pour insérer, modifier etc....et le tout en requète préparée, avec également mes variables sécurisée.
Pourquoi à votre avis aucune donnée ne s'insére dans ma BDD en sachant que ma connexion à ma BDD est bonne, mes variables de mon formulaire est ok aussi.
Aucune erreur n'est retournée, j'aurai oublié quelque chose, merci vraiment si vous pouvez passer quelque instant sur mon script.
Merci
J'aurai aimer faire mon site en POO, mais malheureusement trop compliqué pour moi, alors j'ai fait comme ça en mettant toutes mes variables dans un tableau avec un switch pour insérer, modifier etc....et le tout en requète préparée, avec également mes variables sécurisée.
Pourquoi à votre avis aucune donnée ne s'insére dans ma BDD en sachant que ma connexion à ma BDD est bonne, mes variables de mon formulaire est ok aussi.
Aucune erreur n'est retournée, j'aurai oublié quelque chose, merci vraiment si vous pouvez passer quelque instant sur mon script.
Merci
$PARAM = array ( 'ID_ADHERENT' => isset($_REQUEST['id_adherent']) ? $_REQUEST['id_adherent'] : '', 'NOM' => isset($_POST['nom']) ? Security::clean(strtoupper($_POST['nom'])) : '', 'PRENOM' => isset($_POST['prenom']) ? Security::clean(ucfirst($_POST['prenom'])) : '', 'EMAIL' => isset($_POST['email']) ? Security::clean($_POST['email']) : '', 'NAISSANCE' => isset($_POST['naissance_3']) ? Security::clean($_POST['naissance_3']) . '-' . Security::clean($_POST['naissance_2']) . '-' . Security::clean($_POST['naissance_1']) : '', 'FIXE' => isset($_POST['fixe']) ? $_POST['fixe'] : '', 'MOBILE' => isset($_POST['mobile']) ? $_POST['mobile'] : '', 'ADRESSE' => isset($_POST['adresse']) ? Security::clean(ucfirst($_POST['adresse'])) : '', 'LIEU_DIT' => isset($_POST['lieu_dit']) ? Security::clean(ucfirst($_POST['lieu_dit'])) : '', 'CODE_POSTAL' => isset($_POST['code_postal']) ? $_POST['code_postal'] : '', 'VILLE' => isset($_POST['ville']) ? Security::clean(strtoupper($_POST['ville'])) : '', 'PSEUDO' => isset($_POST['pseudo']) ? Security::clean(strtolower($_POST['pseudo'])) : '', 'PASSWORD' => isset($_POST['password']) ? Security::clean(Security::hash($_POST['password'])) : '', 'ACTIF' => isset($_POST['actif']) ? Security::clean(strtolower($_POST['actif'])) : '', 'DEBUT' => isset($_POST['debut']) ? Security::clean(strtolower($_POST['debut'])) : '', 'FIN' => isset($_POST['fin']) ? Security::clean(strtolower($_POST['fin'])) : '', 'TOKEN' => isset($_POST['token']) ? Security::clean($_POST['token']) : '' ); if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) { switch($_REQUEST['action']) { case 'ajouter': $sql = 'INSERT INTO tb_adherent (nom, prenom, email, naissance, fixe, mobile, adresse, lieu_dit, code_postal, ville, pseudo, password, actif, debut, fin, token) VALUES (:nom, :prenom, :email, :naissance, :fixe, :mobile, :adresse, :lieu_dit, :code_postal, :ville, :pseudo, :password, :actif, :debut, :fin, :token)'; $requete = $bdd->prepare($sql); $requete->bindParam(':nom', $PARAM['NOM']); $requete->bindParam(':prenom', $PARAM['PRENOM']); $requete->bindParam(':email', $PARAM['EMAIL']); $requete->bindParam(':naissance', $PARAM['NAISSANCE']); $requete->bindParam(':fixe', $PARAM['FIXE']); $requete->bindParam(':mobile', $PARAM['MOBILE']); $requete->bindParam(':adresse', $PARAM['ADRESSE']); $requete->bindParam(':lieu_dit', $PARAM['LIEU_DIT']); $requete->bindParam(':code_postal', $PARAM['CODE_POSTAL']); $requete->bindParam(':ville', $PARAM['VILLE']); $requete->bindParam(':pseudo', $PARAM['PSEUDO']); $requete->bindParam(':password', $PARAM['PASSWORD']); $requete->bindParam(':actif', $PARAM['ACTIF']); $requete->bindParam(':debut', $PARAM['DEBUT']); $requete->bindParam(':fin', $PARAM['FIN']); $requete->bindParam(':token', $PARAM['TOKEN']); $requete->execute(); header('Location: index.php?body=compte_profil&type=compte'); break; } }
A voir également:
- INSERT INTO
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Insert boot media in selected boot device and press a key ✓ - Forum Windows 10
- Activer touche insert sur ASUS UX32A - Forum Clavier
- Monitor will go into standby mode traduction français ✓ - Forum Matériel & Système
5 réponses
Bonjour,
Il faut, lorsqu'on a des soucis et qu'on ne sait pas où ça se trouve.. faire du DEBOGAGE.
Et pour ça .. on fait des ECHO .. des PRINT des PRINT_R .....
On ajoute des tests .. IF/else ... etc...
Bref.. essayes ça :
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Il faut, lorsqu'on a des soucis et qu'on ne sait pas où ça se trouve.. faire du DEBOGAGE.
Et pour ça .. on fait des ECHO .. des PRINT des PRINT_R .....
On ajoute des tests .. IF/else ... etc...
Bref.. essayes ça :
<?php $PARAM = array ( 'ID_ADHERENT' => isset($_REQUEST['id_adherent']) ? $_REQUEST['id_adherent'] : '', 'NOM' => isset($_POST['nom']) ? Security::clean(strtoupper($_POST['nom'])) : '', 'PRENOM' => isset($_POST['prenom']) ? Security::clean(ucfirst($_POST['prenom'])) : '', 'EMAIL' => isset($_POST['email']) ? Security::clean($_POST['email']) : '', 'NAISSANCE' => isset($_POST['naissance_3']) ? Security::clean($_POST['naissance_3']) . '-' . Security::clean($_POST['naissance_2']) . '-' . Security::clean($_POST['naissance_1']) : '', 'FIXE' => isset($_POST['fixe']) ? $_POST['fixe'] : '', 'MOBILE' => isset($_POST['mobile']) ? $_POST['mobile'] : '', 'ADRESSE' => isset($_POST['adresse']) ? Security::clean(ucfirst($_POST['adresse'])) : '', 'LIEU_DIT' => isset($_POST['lieu_dit']) ? Security::clean(ucfirst($_POST['lieu_dit'])) : '', 'CODE_POSTAL' => isset($_POST['code_postal']) ? $_POST['code_postal'] : '', 'VILLE' => isset($_POST['ville']) ? Security::clean(strtoupper($_POST['ville'])) : '', 'PSEUDO' => isset($_POST['pseudo']) ? Security::clean(strtolower($_POST['pseudo'])) : '', 'PASSWORD' => isset($_POST['password']) ? Security::clean(Security::hash($_POST['password'])) : '', 'ACTIF' => isset($_POST['actif']) ? Security::clean(strtolower($_POST['actif'])) : '', 'DEBUT' => isset($_POST['debut']) ? Security::clean(strtolower($_POST['debut'])) : '', 'FIN' => isset($_POST['fin']) ? Security::clean(strtolower($_POST['fin'])) : '', 'TOKEN' => isset($_POST['token']) ? Security::clean($_POST['token']) : '' ); // le temps des tests : echo "<pre>"; print_r($PARAM); echo "</pre>"; echo "<pre>"; print_r($_POST); echo "</pre>"; echo "<pre>"; print_r($_REQUEST); echo "</pre>"; if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) { switch($_REQUEST['action']) { case 'ajouter': try{ //------------------------------------------------------------- // Presentee de cette maniere.. la requête est plus lisible : //------------------------------------------------------------- $sql = 'INSERT INTO tb_adherent ( nom , prenom , email , naissance , fixe , mobile , adresse , lieu_dit , code_postal , ville , pseudo , password , actif , debut , fin , token ) VALUES ( :nom , :prenom , :email , :naissance , :fixe , :mobile , :adresse , :lieu_dit , :code_postal , :ville , :pseudo , :password , :actif , :debut , :fin , :token )'; $requete = $bdd->prepare($sql); $requete->bindParam(':nom', $PARAM['NOM']); $requete->bindParam(':prenom', $PARAM['PRENOM']); $requete->bindParam(':email', $PARAM['EMAIL']); $requete->bindParam(':naissance', $PARAM['NAISSANCE']); $requete->bindParam(':fixe', $PARAM['FIXE']); $requete->bindParam(':mobile', $PARAM['MOBILE']); $requete->bindParam(':adresse', $PARAM['ADRESSE']); $requete->bindParam(':lieu_dit', $PARAM['LIEU_DIT']); $requete->bindParam(':code_postal', $PARAM['CODE_POSTAL']); $requete->bindParam(':ville', $PARAM['VILLE']); $requete->bindParam(':pseudo', $PARAM['PSEUDO']); $requete->bindParam(':password', $PARAM['PASSWORD']); $requete->bindParam(':actif', $PARAM['ACTIF']); $requete->bindParam(':debut', $PARAM['DEBUT']); $requete->bindParam(':fin', $PARAM['FIN']); $requete->bindParam(':token', $PARAM['TOKEN']); $requete->execute(); if($requete){ header('Location: index.php?body=compte_profil&type=compte'); }else{ echo "Erreur dans l'execution de la requête"; } } catch(Exception $e){ echo "<br>Erreur :".$e. "<br><pre> Requête :<br>".$sql."</pre>"; } break; default: echo "Action = " .$_REQUEST['action']; break; } // fin du switch }else{ echo "action : vide ou n'existe pas"; } ?>
Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
Bonjour
Merci pour tes conseils j'ai pu trouver ce qui n'allait pas en fait j'avais oublié de mettre cet input dans mon formulaire
J'ai voulu faire 2 conditions je n'arrive pas à les incorporer dans le script peux tu m'aider s'il te plait je les ai mis en dessous de la case ajouter mais aucun résultat.
les 5 champs ne peuvent être vide
et si le login existe déjà
c'est mes 2 seul condition que je souhaiterai avoir.
Merci
Merci pour tes conseils j'ai pu trouver ce qui n'allait pas en fait j'avais oublié de mettre cet input dans mon formulaire
<input name="action" value="ajouter" type="hidden" />
J'ai voulu faire 2 conditions je n'arrive pas à les incorporer dans le script peux tu m'aider s'il te plait je les ai mis en dessous de la case ajouter mais aucun résultat.
les 5 champs ne peuvent être vide
et si le login existe déjà
c'est mes 2 seul condition que je souhaiterai avoir.
Merci
if(empty($nom) || empty($prenom) || empty($pseudo) || empty($password) || empty($debut)) { echo "Veuillez entrer les 5 champs obligatoirs<br/> ( Nom, Prénom, Login, Mot de passe et l'année Début )"; } else {}
if(!empty($'pseudo)) { echo 'Ce Login est déjà utilisé.'; } else {}
Bonjour
Je ne comprend pas bien j'ai essayé plusieurs conditions mais je n'y arrive pas juste 1 condition ça va mais plusieurs j'ai du mal.
J'ai fait une première condition pour ne pas insérer 2 fois le même membre.
Ensuite je voudrais pouvoir mettre si le pseudo existe déjà
et une condition afin de rendre obligatoire 5 champs
mon code
Je ne comprend pas bien j'ai essayé plusieurs conditions mais je n'y arrive pas juste 1 condition ça va mais plusieurs j'ai du mal.
J'ai fait une première condition pour ne pas insérer 2 fois le même membre.
Ensuite je voudrais pouvoir mettre si le pseudo existe déjà
if(!empty($donnees['pseudo'])) { echo 'Ce Login est déjà utilisé.'; } else {}
et une condition afin de rendre obligatoire 5 champs
if(empty($nom) || empty($prenom) || empty($pseudo) || empty($password) || empty($debut)) { echo "Veuillez entrer les 5 champs obligatoirs<br/> ( Nom, Prénom, Login, Mot de passe et l'année Début )"; } else {}
mon code
if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) { switch($_REQUEST['action']) { case 'ajouter': //on sélectionne la table utilisateur et on cherche toutes les personnes portant le même nom et prénom et qui est membre actif $resultats = $bdd->query("SELECT * FROM tb_adherent WHERE nom = '". $PARAM['NOM'] ."' AND prenom = '". $PARAM['PRENOM'] ."' AND actif = '1'"); //on recupére le resultat de la requète dans un tableau $donnees $donnees = $resultats->fetch(PDO::FETCH_ASSOC); //si le nom est vide on insert... if (empty ($donnees['nom'])) { $sql = 'INSERT INTO tb_adherent (nom, prenom, email, naissance, fixe, mobile, adresse, lieu_dit, code_postal, ville, pseudo, password, actif, debut, fin, token) VALUES (:nom, :prenom, :email, :naissance, :fixe, :mobile, :adresse, :lieu_dit, :code_postal, :ville, :pseudo, :password, :actif, :debut, :fin, :token)'; $requete = $bdd->prepare($sql); $requete->bindParam(':nom', $PARAM['NOM']); $requete->bindParam(':prenom', $PARAM['PRENOM']); $requete->bindParam(':email', $PARAM['EMAIL']); $requete->bindParam(':naissance', $PARAM['NAISSANCE']); $requete->bindParam(':fixe', $PARAM['FIXE']); $requete->bindParam(':mobile', $PARAM['MOBILE']); $requete->bindParam(':adresse', $PARAM['ADRESSE']); $requete->bindParam(':lieu_dit', $PARAM['LIEU_DIT']); $requete->bindParam(':code_postal', $PARAM['CODE_POSTAL']); $requete->bindParam(':ville', $PARAM['VILLE']); $requete->bindParam(':pseudo', $PARAM['PSEUDO']); $requete->bindParam(':password', $PARAM['PASSWORD']); $requete->bindParam(':actif', $PARAM['ACTIF']); $requete->bindParam(':debut', $PARAM['DEBUT']); $requete->bindParam(':fin', $PARAM['FIN']); $requete->bindParam(':token', $PARAM['TOKEN']); $requete->execute(); } else { echo "Ce membre existe déjà...."; } break; } }
Ce code là .. il fonctionne ?
( pour vérifier si le user existe déjà..)
Donc ton souci ça serait seulement de rajouter la vérification que les champs ne sont pas vide c'est ça ???
( pour vérifier si le user existe déjà..)
Donc ton souci ça serait seulement de rajouter la vérification que les champs ne sont pas vide c'est ça ???
if(empty($nom) || empty($prenom) || empty($pseudo) || empty($password) || empty($debut)) { echo "<br>Veuillez entrer les 5 champs obligatoirs<br/> ( Nom, Prénom, Login, Mot de passe et l'année Début )"; }else{ if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) { switch($_REQUEST['action']) { case 'ajouter': //on sélectionne la table utilisateur et on cherche toutes les personnes portant le même nom et prénom et qui est membre actif $resultats = $bdd->query("SELECT * FROM tb_adherent WHERE nom = '". $PARAM['NOM'] ."' AND prenom = '". $PARAM['PRENOM'] ."' AND actif = '1'"); //on recupére le resultat de la requète dans un tableau $donnees $donnees = $resultats->fetch(PDO::FETCH_ASSOC); //si le nom est vide on insert... if (empty ($donnees['nom'])) { $sql = 'INSERT INTO tb_adherent (nom, prenom, email, naissance, fixe, mobile, adresse, lieu_dit, code_postal, ville, pseudo, password, actif, debut, fin, token) VALUES (:nom, :prenom, :email, :naissance, :fixe, :mobile, :adresse, :lieu_dit, :code_postal, :ville, :pseudo, :password, :actif, :debut, :fin, :token)'; $requete = $bdd->prepare($sql); $requete->bindParam(':nom', $PARAM['NOM']); $requete->bindParam(':prenom', $PARAM['PRENOM']); $requete->bindParam(':email', $PARAM['EMAIL']); $requete->bindParam(':naissance', $PARAM['NAISSANCE']); $requete->bindParam(':fixe', $PARAM['FIXE']); $requete->bindParam(':mobile', $PARAM['MOBILE']); $requete->bindParam(':adresse', $PARAM['ADRESSE']); $requete->bindParam(':lieu_dit', $PARAM['LIEU_DIT']); $requete->bindParam(':code_postal', $PARAM['CODE_POSTAL']); $requete->bindParam(':ville', $PARAM['VILLE']); $requete->bindParam(':pseudo', $PARAM['PSEUDO']); $requete->bindParam(':password', $PARAM['PASSWORD']); $requete->bindParam(':actif', $PARAM['ACTIF']); $requete->bindParam(':debut', $PARAM['DEBUT']); $requete->bindParam(':fin', $PARAM['FIN']); $requete->bindParam(':token', $PARAM['TOKEN']); $requete->execute(); } else { echo "Ce membre existe déjà...."; } break; } } }
Bonjour
Merci de ton aide, je vais commencer par mettre une condition si le pseudo existe déjà voilà ce que j'ai fait par contre ça affiche bien l'erreur si un pseudo existe déjà mais ça INSERT quand même dans la BDD
Merci de ton aide, je vais commencer par mettre une condition si le pseudo existe déjà voilà ce que j'ai fait par contre ça affiche bien l'erreur si un pseudo existe déjà mais ça INSERT quand même dans la BDD
if (isset($_REQUEST['action']) AND !empty($_REQUEST['action'])) { switch($_REQUEST['action']) { case 'ajouter': //on sélectionne la table utilisateur et on cherche toutes les personnes portant le même nom et prénom et qui est membre actif $resultats = $bdd->query("SELECT * FROM tb_adherent WHERE nom = '". $PARAM['NOM'] ."' AND prenom = '". $PARAM['PRENOM'] ."' AND actif = '1'"); //on recupére le resultat de la requète dans un tableau $donnees $donnees = $resultats->fetch(PDO::FETCH_ASSOC); //si le nom est vide on insert... if (empty ($donnees['nom'])) { $verif = $bdd->prepare('SELECT pseudo FROM tb_adherent WHERE pseudo = :pseudo'); $verif->execute(array('pseudo' => $_POST['pseudo'])); $count = $verif->rowCount(); if ($count > 0) { echo 'Votre Pseudo est déjà utilisé, veuillez en choisir un autre...<br/>'; } $sql = 'INSERT INTO tb_adherent (nom, prenom, email, naissance, fixe, mobile, adresse, lieu_dit, code_postal, ville, pseudo, password, actif, debut, fin, token) VALUES (:nom, :prenom, :email, :naissance, :fixe, :mobile, :adresse, :lieu_dit, :code_postal, :ville, :pseudo, :password, :actif, :debut, :fin, :token)'; $requete = $bdd->prepare($sql); $requete->bindParam(':nom', $PARAM['NOM']); $requete->bindParam(':prenom', $PARAM['PRENOM']); $requete->bindParam(':email', $PARAM['EMAIL']); $requete->bindParam(':naissance', $PARAM['NAISSANCE']); $requete->bindParam(':fixe', $PARAM['FIXE']); $requete->bindParam(':mobile', $PARAM['MOBILE']); $requete->bindParam(':adresse', $PARAM['ADRESSE']); $requete->bindParam(':lieu_dit', $PARAM['LIEU_DIT']); $requete->bindParam(':code_postal', $PARAM['CODE_POSTAL']); $requete->bindParam(':ville', $PARAM['VILLE']); $requete->bindParam(':pseudo', $PARAM['PSEUDO']); $requete->bindParam(':password', $PARAM['PASSWORD']); $requete->bindParam(':actif', $PARAM['ACTIF']); $requete->bindParam(':debut', $PARAM['DEBUT']); $requete->bindParam(':fin', $PARAM['FIN']); $requete->bindParam(':token', $PARAM['TOKEN']); $requete->execute(); } else { echo "Ce membre existe déjà....<br/>"; } break; } }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question