Nestati Citation | Bonjour à tous je fais un site en collaboration avec un ami pour un cours.
Il héberge un serveur à son domicile sur lequel il a installé myphpadmin, j'ai crée une BDD et j'aimerais y envoyer les informations de connexion d'un utilisateur pseudo nom adresse mail etc...
Mon code fonctionnait parfaitement en localhost avec wamp mais je n'arrive pas à le faire fonctionner en mettant en host son site web.
J'utilise Putty pour me connecter en SSH à son serveur, et le site web est lié à git pour update les fichiers via putty.
Voici le fichier database.php
Code :
- <?php
- define('HOST','xxxxx.ddns.net'); //j'ai caché le nom
- define('DB_NAME','siteweb'); //nom de la BDD
- define('USER','root'); //utilisateur qui se connecte
- define('PASS','xxxxx'); //le mot de passe que j'utilise pour me connecté à la BDD
- try{
- $db = new PDO("mysql:host=" . HOST . ";dbname=" . DB_NAME, USER, PASS);
- $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- } catch (PDOException $e){
- echo $e; #affichage de l'erreur de connexion
- }
- ?>
|
Code :
- <!DOCTYPE html>
- <html lang="fr">
- <head>
- <title>Inscription</title>
- <meta charset="utf-8"/>
- <link rel="stylesheet" href="style.css"/>
- </head>
- <body>
- <div id="wrapper">
-
- <form method="post">
- <input type="pseudo" name="pseudo" id="pseudo" placeholder="Votre Pseudo"><br/>
- <input type="email" name="email" id="email" placeholder="Votre Email"><br/>
- <input type="password" name="password" id="password" placeholder="Votre Mot de Passe"><br/>
- <input type="password" name="cpassword" id="cpassword" placeholder="Confirmer Votre Mot de Passe"><br/>
- <input type="submit" name="formsend" id="formsend" value="Envoyer"><br/>
- </form>
- <?php
- if(isset($_POST['formsend'])){
- extract($_POST);
- if(!empty($password) && !empty($cpassword) && !empty($email)){
- if($password == $cpassword){
- $options = [
- 'cost' => 12,
- ];
- $hashpass = password_hash($password, PASSWORD_BCRYPT, $options);
- include 'database.php';
- global $db;
- $q= $db->prepare("INSERT INTO users(email,password,pseudo) VALUES(:email,:password,:pseudo)" );
- $q->execute([
- 'email'=> $email,
- 'password'=> $hashpass,
- 'pseudo'=> $pseudo
- ]);
- }else{
- echo "<font style=\"font family: courrier new;\"><strong>Les mot de passes ne correspondent pas</strong></font>";
- }
- }else{
- echo "<font style=\"font family: courrier new;\"><strong>Les champs ne sont pas tous remplies</strong></font>";
- }
- }
- ?>
- </div>
- </body>
- </html>
|
L'erreur en question : PDOException: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) in /home/paul/Site-avec-Paul/database.php:8 Stack trace: #0 /home/paul/Site-avec-Paul/database.php(8): PDO->__construct('mysql:host=loca...', 'root', '') #1 /home/paul/Site-avec-Paul/inscription.php(35): include('/home/paul/Site...') #2 {main}
Fatal error: Uncaught Error: Call to a member function prepare() on null in /home/paul/Site-avec-Paul/inscription.php:38 Stack trace: #0 {main} thrown in /home/paul/Site-avec-Paul/inscription.php on line 38
Je vois qu'il considère ne pas avoir de mot de passe alors que je lui en fournis un ici define('PASS','xxxxx');
|