Connexion bdd /mysqli erreur
DJ2809
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
Je vous sollicite pour un problème de connexion à ma BDD. J'ai une base de donnée nommée db_test contenant une table :users (id, user_name, password, name)
La connexion s'établi sans problème mais j'ai un message d'erreur et par conséquent je n'arrive pas à accéder formulaire d'accueil. Je précise que je débute en php/mysql
l'erreur que j'ai obtenu :
Connexion au serveur MySQL établie avec succès.
Fatal error: Uncaught TypeError: mysqli_query(): Argument #1 ($mysql) must be of type mysqli, null given in /homepages/0/d908709233/htdocs/login.php:27 Stack trace: #0 /homepages/0/d908709233/htdocs/login.php(27): mysqli_query(NULL, 'SELECT * FROM u...') #1 {main} thrown in /homepages/0/d908709233/htdocs/login.php on line 27
Voici le code des deux fichiers:
le 2ème fichier:
Je vous en serais vraiment très reconnaissant de ce que vous me proposerez
Bonne soirée
DE
Je vous sollicite pour un problème de connexion à ma BDD. J'ai une base de donnée nommée db_test contenant une table :users (id, user_name, password, name)
La connexion s'établi sans problème mais j'ai un message d'erreur et par conséquent je n'arrive pas à accéder formulaire d'accueil. Je précise que je débute en php/mysql
l'erreur que j'ai obtenu :
Connexion au serveur MySQL établie avec succès.
Fatal error: Uncaught TypeError: mysqli_query(): Argument #1 ($mysql) must be of type mysqli, null given in /homepages/0/d908709233/htdocs/login.php:27 Stack trace: #0 /homepages/0/d908709233/htdocs/login.php(27): mysqli_query(NULL, 'SELECT * FROM u...') #1 {main} thrown in /homepages/0/d908709233/htdocs/login.php on line 27
Voici le code des deux fichiers:
<<?php
$sname = 'db50088742124.hosting-data.io';
$db_name = 'dbs4471255128';
$uname = 'dbu774415';
$password = 'ChaCHA554';
$link = new mysqli($sname, $uname, $password, $db_name);
if ($link->connect_error) {
die('<p>La connexion au serveur MySQL a échoué: '. $link->connect_error .'</p>');
} else {
echo '<p>Connexion au serveur MySQL établie avec succès.</p>';
}
?>
le 2ème fichier:
<?php
session_start();
include "db_conn.php";
if (isset($_POST['uname']) && isset($_POST['password'])) {
function validate($data){
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$uname = validate($_POST['uname']);
$pass = validate($_POST['password']);
if (empty($uname)) {
header("Location: passw.php?error=User Name is required");
exit();
}else if(empty($pass)){
header("Location: passw.php?error=Password is required");
exit();
}else{
$sql = "SELECT * FROM users WHERE user_name='$uname' AND password='$pass'";
$link = mysqli_query($conn, $sql);
if (mysqli_num_rows($link) === 1) {
$row = mysqli_fetch_assoc($link);
if ($row['user_name'] === $uname && $row['password'] === $pass) {
$_SESSION['user_name'] = $row['user_name'];
$_SESSION['name'] = $row['name'];
$_SESSION['id'] = $row['id'];
header("Location: acc.php");
exit();
}else{
header("Location: passw.php?error=Incorect User name or password");
exit();
}
}else{
header("Location: passw.php?error=Incorect User name or password");
exit();
}
}
}else{
header("Location: passw.php");
exit();
}
Je vous en serais vraiment très reconnaissant de ce que vous me proposerez
Bonne soirée
DE
A voir également:
- Connexion bdd /mysqli erreur
- Gmail connexion - Guide
- Site inaccessible n'autorise pas la connexion - Guide
- Connexion sctr - Forum Discord
- Gps sans connexion - Guide
- Formate pour taxer connexion internet - Forum Webmastering
4 réponses
Bonjour,
La variable que tu as utilisé pour la connexion à la bdd se nomme : $link
Hors, dans ton code, tu fais un truc bizarre ..
Déjà, tu utilises une variable nommée $con .. et en plus tu écrases ta variable $link
A corriger donc par
La variable que tu as utilisé pour la connexion à la bdd se nomme : $link
$link = new mysqli($sname, $uname, $password, $db_name);
Hors, dans ton code, tu fais un truc bizarre ..
Déjà, tu utilises une variable nommée $con .. et en plus tu écrases ta variable $link
$link = mysqli_query($conn, $sql);
A corriger donc par
$query = mysqli_query($link , $sql); if (mysqli_num_rows($query ) === 1) { $row = mysqli_fetch_assoc($query );
Merci Jordan. Cela fonctionne (Connexion au serveur MySQL établie avec succès) . J'ai besoin de basculer sur la page acc.php en récupérant le bon mot de passe de la base de donnée
Merci encore
DE
Merci encore
DE
Re bonjour,
En corrigeant mon code ci-dessous, j'ai une page blanche avec connexion établi avec succés mais rien ne s'affiche et en tapant n'importe quel mot de pass
Serait-il une histoire aussi de chemin relatif/absolu ?
ma page à atteindre est acc.php
if (mysqli_num_rows($link) === 1) {
$row = mysqli_fetch_assoc($link);
if ($row['user_name'] === $uname && $row['password'] === $pass) {
$_SESSION['user_name'] = $row['user_name'];
$_SESSION['name'] = $row['name'];
$_SESSION['id'] = $row['id'];
header("Location: acc.php"
Merci de votre
Bonne journée
En corrigeant mon code ci-dessous, j'ai une page blanche avec connexion établi avec succés mais rien ne s'affiche et en tapant n'importe quel mot de pass
Serait-il une histoire aussi de chemin relatif/absolu ?
ma page à atteindre est acc.php
if (mysqli_num_rows($link) === 1) {
$row = mysqli_fetch_assoc($link);
if ($row['user_name'] === $uname && $row['password'] === $pass) {
$_SESSION['user_name'] = $row['user_name'];
$_SESSION['name'] = $row['name'];
$_SESSION['id'] = $row['id'];
header("Location: acc.php"
Merci de votre
Bonne journée
si si j'ai mis ça :
$sql = "SELECT * FROM users WHERE user_name='$uname' AND password='$pass'";
$query = mysqli_query($link , $sql);
if (mysqli_num_rows($query ) === 1) {
$row = mysqli_fetch_assoc($query );
if ($row['user_name'] === $uname && $row['password'] === $pass) {
$_SESSION['user_name'] = $row['user_name'];
$_SESSION['name'] = $row['name'];
$_SESSION['id'] = $row['id'];
header("Location: acc.php");
exit();
$sql = "SELECT * FROM users WHERE user_name='$uname' AND password='$pass'";
$query = mysqli_query($link , $sql);
if (mysqli_num_rows($query ) === 1) {
$row = mysqli_fetch_assoc($query );
if ($row['user_name'] === $uname && $row['password'] === $pass) {
$_SESSION['user_name'] = $row['user_name'];
$_SESSION['name'] = $row['name'];
$_SESSION['id'] = $row['id'];
header("Location: acc.php");
exit();
Primo .. merci d'utiliser les balises de code pour poster ton code sur le forum...
Deuxio ..
Alors que tu avais collé le code :
Et après tu me dis que tu avais bien écrit le code ??
Et tertio .. si il ne se passe rien.. c'est sûrement que tu ne rentres jamais dans tes IF ..
Ajoutes donc des ELSE ( avec des echo de tes variables dedans) pour voir ce qu'il en est;
Je précise au passage qu'on ne stocke jamais le mot de passe en clair dans une bdd .. il te faut donc le hasher.
- Expllications à lire ENTIEREMENT disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Deuxio ..
si si j'ai mis ça
Alors que tu avais collé le code :
ma page à atteindre est acc.php if (mysqli_num_rows($link) === 1) { $row = mysqli_fetch_assoc($link); if ($row['user_name'] === $uname && $row['password'] === $pass) { $_SESSION['user_name'] = $row['user_name']; $_SESSION['name'] = $row['name']; $_SESSION['id'] = $row['id']; header("Location: acc.php"
Et après tu me dis que tu avais bien écrit le code ??
Et tertio .. si il ne se passe rien.. c'est sûrement que tu ne rentres jamais dans tes IF ..
Ajoutes donc des ELSE ( avec des echo de tes variables dedans) pour voir ce qu'il en est;
Je précise au passage qu'on ne stocke jamais le mot de passe en clair dans une bdd .. il te faut donc le hasher.