Johnpisttg
Messages postés4Date d'inscriptionlundi 2 octobre 2017StatutMembreDernière intervention 9 octobre 2017
-
2 oct. 2017 à 21:47
Pitet
Messages postés2826Date d'inscriptionlundi 11 février 2013StatutMembreDernière intervention21 juillet 2022
-
11 oct. 2017 à 16:55
Bonjour,
Je suis en train de concevoir un site de news, mais j'ai quelques problèmes avec mon formulaire d'enregistrement. Je constate que lors de l'inscription, les données ne s'insèrent pas dans la base de donnée. Je laisse mes codes pour vérifications. S'il vous plait, aidez-moi.
<p style="float: left;vertical-align: left; display: inline-block; margin-left:5px; margin-top:5px; margin-bottom:7px; width: auto;color: #585656;">Question secrète: Quelle est la raison sociale de votre entreprise?</p>
// on teste si le visiteur a soumis le formulaire if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { // on teste l'existence de nos variables. On teste également si elles ne sont pas vides if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { // on teste les deux mots de passe if ($_POST['pass'] != $_POST['pass_confirm']) { $erreur = 'Les 2 mots de passe ne sont pas identiques.'; } else { // on recherche si ce login est déjà utilisé par un autre membre $query = $bdd->prepare("SELECT * FROM inscription_societe WHERE login=:val1 and pass=:val2"); $donnees = array('val1' => $username, 'val2' => $usercode); $query->execute($donnees); $array_result = $query->fetchAll();
$nb = count($array_result); print_r($array_result); if ($nb[0] == 0) {
// on teste si le visiteur a soumis le formulaire de connexion if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
// connexion au serveur include('config.php');
// on teste si une entrée de la base contient ce couple login / pass $query = $bdd->prepare("SELECT * FROM inscription_societe WHERE login=:val1 and pass=:val2"); $donnees = array('val1' => $username, 'val2' => $usercode); $query->execute($donnees); $array_result = $query->fetchAll();
// si on obtient une réponse, alors l'utilisateur est un membre $nb = count($array_result); print_r($array_result);
if (isset($nb[0]) && $nb[0] == 1) { session_start(); $_SESSION['login'] = $_POST['login']; header('Location: ../www.espace_perso.php'); exit(); } // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe elseif (isset($nb[0]) && $nb[0]== 0) { $erreur = 'Compte non reconnu.'; } // sinon, alors la, il y a un gros problème :) else { $erreur = 'Problème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; } } else { $erreur = 'Au moins un des champs est vide.'; } }
Johnpisttg
Messages postés4Date d'inscriptionlundi 2 octobre 2017StatutMembreDernière intervention 9 octobre 2017 4 oct. 2017 à 21:45
Merci infiniment de votre aide, Jordane45.
J'ai retiré les redirections selon votre conseil, mais j'ai constater qu'à l'envoie des données je reçois ce message d'erreur:
Array( ). S'il vous plait, je ne retrouve pas ce qu'il faut faire dans ce cas, j'ai besoin de votre aide, Jordane45.
jordane45
Messages postés38446Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 février 20254 739
>
Johnpisttg
Messages postés4Date d'inscriptionlundi 2 octobre 2017StatutMembreDernière intervention 9 octobre 2017 5 oct. 2017 à 00:11
Tu modifié ton code comme recommandé dans le lien que je t'ai donné ?
Tu as mis un bloc try/catch à chaque requête ?
Ton "Array ()" il apparait où ? Tu as un message d'erreur ?
Johnpisttg
Messages postés4Date d'inscriptionlundi 2 octobre 2017StatutMembreDernière intervention 9 octobre 2017
>
jordane45
Messages postés38446Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 février 2025 9 oct. 2017 à 21:21
Bonsoir Jordane45,
En fait mon "Array ()" apparait sur la page inscription.php.
En attendant que vous m'aidiez, je vais suivre le lien indiqué pour voir si j'y arriverai.
Merci Jordane45
jordane45
Messages postés38446Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 février 20254 739
>
Johnpisttg
Messages postés4Date d'inscriptionlundi 2 octobre 2017StatutMembreDernière intervention 9 octobre 2017 9 oct. 2017 à 21:23
Ce "Array ()" apparaît à cause (grâce. ..) à la ligne
print_r($array_result);
Johnpisttg
Messages postés4Date d'inscriptionlundi 2 octobre 2017StatutMembreDernière intervention 9 octobre 2017
>
jordane45
Messages postés38446Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention28 février 2025 Modifié le 9 oct. 2017 à 21:45
Ok, .
Et pourquoi les données ne s'incèrent pas dans la base? je vais essayer voir ce que ça va me donner
Pitet
Messages postés2826Date d'inscriptionlundi 11 février 2013StatutMembreDernière intervention21 juillet 2022526 11 oct. 2017 à 16:55
Salut,
Il semble que tu es une première erreur sur la vérification de $_POST['inscription'].
Dans le fichier inscription.php, tu vérifies au début si $_POST['inscription'] == 'Inscription'.
Or dans ton formulaire html, l'input name="inscription" à pour valeur value="S'inscrire".
Donc à l'envoi de ton formulaire, $_POST['inscription'] ne sera jamais égale à 'Inscription' mais sera égale à "S'inscrire".
Tu peux remplacer cette vérification par un simple if (!empty($_POST['inscription'])) pour vérifier que $_POST['inscription'] est défini et non vide, peu importe la valeur (c-a-d le texte du bouton).
Ainsi, si plus tard tu veux modifier le texte du bouton Inscription, ton code marchera toujours.
4 oct. 2017 à 21:45
J'ai retiré les redirections selon votre conseil, mais j'ai constater qu'à l'envoie des données je reçois ce message d'erreur:
Array( ). S'il vous plait, je ne retrouve pas ce qu'il faut faire dans ce cas, j'ai besoin de votre aide, Jordane45.
5 oct. 2017 à 00:11
Tu as mis un bloc try/catch à chaque requête ?
Ton "Array ()" il apparait où ? Tu as un message d'erreur ?
9 oct. 2017 à 21:21
En fait mon "Array ()" apparait sur la page inscription.php.
En attendant que vous m'aidiez, je vais suivre le lien indiqué pour voir si j'y arriverai.
Merci Jordane45
9 oct. 2017 à 21:23
print_r($array_result);
Modifié le 9 oct. 2017 à 21:45
Et pourquoi les données ne s'incèrent pas dans la base? je vais essayer voir ce que ça va me donner
Merci Jordane45