Fatal error
Résolu/Fermé
LePtitCodeur
Messages postés
6
Date d'inscription
dimanche 18 février 2018
Statut
Membre
Dernière intervention
25 février 2018
-
22 févr. 2018 à 21:55
LePtitCodeur Messages postés 6 Date d'inscription dimanche 18 février 2018 Statut Membre Dernière intervention 25 février 2018 - 25 févr. 2018 à 01:22
LePtitCodeur Messages postés 6 Date d'inscription dimanche 18 février 2018 Statut Membre Dernière intervention 25 février 2018 - 25 févr. 2018 à 01:22
A voir également:
- Phpmyadmin alwaysdata
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Hls.js error networkerror - fatal true - manifestloaderror ✓ - Forum Réseaux sociaux
- Error 0x80070643 - Accueil - Windows
- Cpu over temperature error - Forum Matériel & Système
- Error 10 pioneer ✓ - Forum Autoradio
3 réponses
yg_be
Messages postés
23438
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 janvier 2025
Ambassadeur
1 559
22 févr. 2018 à 22:14
22 févr. 2018 à 22:14
bonsoir, lecture conseillée: https://www.php.net/manual/fr/mysqlinfo.api.choosing.php
jordane45
Messages postés
38392
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2025
4 731
22 févr. 2018 à 22:53
22 févr. 2018 à 22:53
Bonjour,
Pour commencer ... l'extension mysql est OBSOLETE.
Tu dois passer à PDO ou Mysqli !
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
Si tu choisis PDO :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Ensuite, bien entendu que le HOSTNAME de ta BDD c'est sans le http
Sur la doc de alwaysdata on peut lire :
Donc si tu as une erreur... c'est que tu as un pb d'identifiant ou que tu essayes d'accéder à ta bdd depuis ailleurs que l'hébergement lui même.
Enfin bon... passe à PDO ou mysqli .. et regarde ce que ça donne.
Pour commencer ... l'extension mysql est OBSOLETE.
Tu dois passer à PDO ou Mysqli !
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
Si tu choisis PDO :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Ensuite, bien entendu que le HOSTNAME de ta BDD c'est sans le http
Sur la doc de alwaysdata on peut lire :
Hôte : mysql-[moncompte].alwaysdata.net
Port : 3306
Interface d'administration : https://phpmyadmin.alwaysdata.com/
Donc si tu as une erreur... c'est que tu as un pb d'identifiant ou que tu essayes d'accéder à ta bdd depuis ailleurs que l'hébergement lui même.
Enfin bon... passe à PDO ou mysqli .. et regarde ce que ça donne.
LePtitCodeur
Messages postés
6
Date d'inscription
dimanche 18 février 2018
Statut
Membre
Dernière intervention
25 février 2018
22 févr. 2018 à 23:06
22 févr. 2018 à 23:06
Merci, de ta réponses. Je vous dis si sa marche :)
LePtitCodeur
Messages postés
6
Date d'inscription
dimanche 18 février 2018
Statut
Membre
Dernière intervention
25 février 2018
24 févr. 2018 à 00:13
24 févr. 2018 à 00:13
Bon j'ai essayer et voila ce qui ce passe. Je suis aller en localhost, mais sa fonctionne pas voici les codes et quelques images
Code PhP et HTML : signin.php
Le code de traitement : traitement-signin.php
Voici l'erreur :
Et voici ma page phpmyadmin mysql
Merci de vos réponses.
Code PhP et HTML : signin.php
<!DOCTYPE html> <html lang="fr"> <head> <title>Inscription</title> <meta charset="utf-8" /> <!-- CSS --> <style type="text/css"> .h1-one{ width: 80%; border-bottom: 2px solid black; position: absolute; left: 5%; } .h1-one h1 { font-family: 'Montserrat Alternates', sans-serif; } .styl { font-family: 'Montserrat', sans-serif; width: 250px; } .erreur { color: red; } </style> </head> <header> </header> <body> <div class="h1-one"> <h1>Inscription</h1> </div> <br /><br /><br /><br /><br /><br /> <form method="POST" action="traitement-signin.php"> <table> <tr> <td> <label for="id" class="styl">Choisissez votre identifiant : </label> </td> <td> <input type="text" name="id" id="id" placeholder="Pseudo" class="styl" /> </td> </tr> <tr> <td> <label for="em" class="styl">Renseignez votre email : </label> </td> <td> <input type="email" name="email" id="em" placeholder="Email" class="styl" /> </td> </tr> <tr> <td> <label for="em2" class="styl">Confirmez votre email : </label> </td> <td> <input type="email" name="email2" id="em2" placeholder="Confirmez votre email" class="styl" /> </td> </tr> <tr> <td> <label for="md" class="styl">Choisissez votre mot de passe : </label> </td> <td> <input type="password" name="password" id="md" placeholder="Votre Mot De Passe" class="styl" /> </td> </tr> <tr> <td> <label for="md2" class="styl">Retapez votre mot de passe : </label> </td> <td> <input type="password" name="password2" id="md2" placeholder="Retapez votre Mot De Passe" class="styl" /> </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> <input type="submit" name="submit" value="S'inscrire" class="styl" /> </td> </tr> </table> </form> <div class="erreur"> <?php if(isset($_GET['error'])) {echo $_GET['error'];} ?> </div> </body> <footer> </footer> </html>
Le code de traitement : traitement-signin.php
<?php $connect = new PDO("mysql:host=localhost;dbname=tutoriels;charset=utf-8","root",""); if(isset($_POST['submit'])) { if(isset($_POST['id'],$_POST['email'], $_POST['email2'], $_POST['password'], $_POST['password2'])) { if(!empty($_POST['id']) AND !empty($_POST['email']) AND !empty($_POST['email2']) AND !empty($_POST['password']) AND !empty($_POST['password2'])) { $pseudo = htmlspecialchars($_POST['id']); $email = htmlspecialchars($_POST['email']); $email2 = htmlspecialchars($_POST['email2']); $password = htmlspecialchars($_POST['password']); $password2 = htmlspecialchars($_POST['password2']); if(strlen($pseudo) < 255) { if(strlen($pseudo) >= 3 ) { if($email == $email2) { if($password == $password2) { if(strlen($password) >= 8) { if(strlen($password) < 255) { $insert = $connect->prepare("INSERT INTO users (pseudo,email,password)VALUES (?,?,?)"); $insert->execute(array($pseudo,$email,$password)); }else { header('location:signin.php?error=Votre mot de passe doit contenir moins de 255 caractère !'); } }else { header('location:signin.php?error=Votre mot de passe doit contenir plus de 8 caractère !'); } }else {header('location:signin.php?error=Vos mot de passes sont différents !'); } }else { header('location:signin.php?error=Vos email doivent êtres identiques !'); } }else { header('location:signin.php?error=Le speudo doit être superieur ou égale à 3 caractères !'); } } else { header('location:signin.php?error=Le speudo doit être inférieur à 255 caractères !'); } } else { header('location:signin.php?error=Veuillez remplir tout les champs !'); } } } ?>
Voici l'erreur :
Et voici ma page phpmyadmin mysql
Merci de vos réponses.
jordane45
Messages postés
38392
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2025
4 731
24 févr. 2018 à 09:33
24 févr. 2018 à 09:33
Relis bien le lien que je t'ai donné :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
jordane45
Messages postés
38392
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2025
4 731
24 févr. 2018 à 09:35
24 févr. 2018 à 09:35
Et sinon tu peux essayer
PS: Tu es sous quelle version de PHP ?
$dbh = new PDO("mysql:$connstr", $user, $password); $dbh->exec("set names utf8");
PS: Tu es sous quelle version de PHP ?
jordane45
Messages postés
38392
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 janvier 2025
4 731
24 févr. 2018 à 09:49
24 févr. 2018 à 09:49
Et au passage, ton code pourrait être légèrement amélioré :
Par contre, tu n'utilises pas la bonne méthode pour stocker les password....
Maintenant on utilise la fonction password_verify pour authentifier un utilisateur.
https://www.php.net/manual/fr/function.password-verify.php et donc, pour encoder le password : http://php.net/manual/fr/function.password-hash.php
Et donc je t'invite à regarde ce code :
https://forums.commentcamarche.net/forum/affich-34340900-login-password-php#7
//connexion à la bdd require_once "tonFichierDeConnexionATaBdd.php"; //fonction de redirection function redirect($errorMsg){ header('location:signin.php?error='.$errorMsg); exit(); //toujours mettre un exit apres une redirection } //récupération propre des variables AVANT de les utiliser $pseudo = !empty($_POST['id']) ? $_POST['id'] : NULL; $email = !empty($_POST['email']) ? $_POST['email'] : NULL; $email2 = !empty($_POST['email2']) ? $_POST['email2'] : NULL; $password = !empty($_POST['password']) ? $_POST['password'] : NULL; $password2 = !empty($_POST['password2']) ? $_POST['password2'] : NULL; if(isset($_POST['submit'])) { if($id && $email && $email2 && $password && $password2){ if(strlen($pseudo) >= 255) redirect('Le speudo doit être inférieur à 255 caractères !'); if(strlen($pseudo) <3 ) redirect('Le speudo doit être superieur ou égale à 3 caractères !'); if($email != $email2) redirect('Vos email doivent êtres identiques !'); if($password != $password2) redirect('Vos mot de passes sont différents !'); if(strlen($password) < 8) redirect('Votre mot de passe doit contenir plus de 8 caractère !'; if(strlen($password) > 255 ) redirect('Votre mot de passe doit contenir moins de 255 caractère !'; $sql = "INSERT INTO users (pseudo,email,password)VALUES (?,?,?)"; $datas = array($pseudo,$email,$password); try{ $insert = $connect->prepare($sql); $insert->execute($datas); }catch(Exception $e){ echo "Erreur dans la requête ! " .$e->getMessage(); die(); } }else{ redirect("Veuillez remplir tout les champs !"); } }
Par contre, tu n'utilises pas la bonne méthode pour stocker les password....
Maintenant on utilise la fonction password_verify pour authentifier un utilisateur.
https://www.php.net/manual/fr/function.password-verify.php et donc, pour encoder le password : http://php.net/manual/fr/function.password-hash.php
Et donc je t'invite à regarde ce code :
https://forums.commentcamarche.net/forum/affich-34340900-login-password-php#7
LePtitCodeur
Messages postés
6
Date d'inscription
dimanche 18 février 2018
Statut
Membre
Dernière intervention
25 février 2018
25 févr. 2018 à 01:16
25 févr. 2018 à 01:16
Je suis sous php 7.0 je crois
LePtitCodeur
Messages postés
6
Date d'inscription
dimanche 18 février 2018
Statut
Membre
Dernière intervention
25 février 2018
25 févr. 2018 à 01:22
25 févr. 2018 à 01:22
Merci beaucoup je vais essayer ton code avec le code de la connexion a la base de donné