Problème PHP / Base de donnée
Résolu
Arkilym
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
Arkilym Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
Arkilym Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Mysqli_select_db() expects exactly 2 parameters
- Base de registre - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Easy php - Télécharger - Divers Web & Internet
- Gigaset ne reconnait plus sa base - Forum telephonie fixe
- Formules excel de base - Guide
4 réponses
Bonjour,
A la ligne avant ton mysql_close... tu as oublié de la terminer avec un point-virgule.
Au passage... l'extension Mysql est OBSOLETE (elle ne fonctionne plus en php 7 ). A la place il faut désormais utiliser mysqli ou PDO.
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
A la ligne avant ton mysql_close... tu as oublié de la terminer avec un point-virgule.
Au passage... l'extension Mysql est OBSOLETE (elle ne fonctionne plus en php 7 ). A la place il faut désormais utiliser mysqli ou PDO.
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Tu as également un souci dans ton troisieme fichier
A corriger par
Mais bon.. si tu passes à PDO ou mysqli ... faudra de toutes façons réécrire ces instructions...
mysql_close(cx_$srv);
A corriger par
mysql_close($cx_srv);
Mais bon.. si tu passes à PDO ou mysqli ... faudra de toutes façons réécrire ces instructions...
<?php //Fichier de connexion à la bdd $serveur="localhost"; $utilisateur="ROOT"; $motdepasse=" "; $base="leperceneige"; $cx_srv = mysqli_connect($serveur, $utilisateur, $motdepasse,$base); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } ?>
<?php /** // Fichier insertclient.php */ //---------------------------------------------// //On active l'affichage des erreurs PHP //---------------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //---------------------------------------------// //connexion à la bdd //---------------------------------------------// require_once("connexion.php"); //---------------------------------------------// //On récupere PROPREMENT les variables AVANT de les utiliser //---------------------------------------------// $nom=!empty($_POST['nom']) ? $_POST['nom'] : ""; $prenom=!empty($_POST['prenom']) ? $_POST['prenom'] : ""; $num_tel=!empty($_POST['num_tel']) ? $_POST['num_tel'] : ""; $mail=!empty($_POST['mail']) ? $_POST['mail'] : ""; //---------------------------------------------// //on traite la demande //---------------------------------------------// $reqClient="INSERT INTO CLIENT (nom, prenom, num_tel, mail) VALUES('". mysqli_real_escape_string($cx_srv, $nom)."' ,'". mysqli_real_escape_string($cx_srv, $prenom)."' ,'". mysqli_real_escape_string($cx_srv, $num_tel)."' ,'". mysqli_real_escape_string($cx_srv, $mail)."' )"; if(!mysqli_query($reqClient) ){ //https://www.w3schools.com/php/func_mysqli_error.asp echo("Error description: " . mysqli_error($cx_srv)); exit(); }else{ //id nouvellement créé : https://www.w3schools.com/php/func_mysqli_insert_id.asp $NumCli=mysqli_insert_id($cx_srv); echo " Merci pour votre inscription, votre numéro de compte est le:".$NumCli." avec ce numéro vous pouvez réserver une table."; //fermeture de la connexion // https://www.w3schools.com/php/func_mysqli_close.asp mysqli_close($cx_srv); } ?>
Au passage, je t'invite à lire les liens qui sont dans les commentaires du code
ainsi que celui-ci
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
.
Voilà ce que j'obtient en message d'erreur "Warning: mysqli_connect(): (HY000/1045): Access denied for user 'ROOT'@'localhost' (using password: YES) in C:\www\Les pages du site\connexion.php on line 19
Failed to connect to MySQL: Access denied for user 'ROOT'@'localhost' (using password: YES)
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given in C:\www\Les pages du site\insertclient.php on line 39
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given in C:\www\Les pages du site\insertclient.php on line 40
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given in C:\www\Les pages du site\insertclient.php on line 41
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given in C:\www\Les pages du site\insertclient.php on line 42
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\www\Les pages du site\insertclient.php on line 46
Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in C:\www\Les pages du site\insertclient.php on line 48
Error description:"
Failed to connect to MySQL: Access denied for user 'ROOT'@'localhost' (using password: YES)
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given in C:\www\Les pages du site\insertclient.php on line 39
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given in C:\www\Les pages du site\insertclient.php on line 40
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given in C:\www\Les pages du site\insertclient.php on line 41
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, boolean given in C:\www\Les pages du site\insertclient.php on line 42
Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\www\Les pages du site\insertclient.php on line 46
Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in C:\www\Les pages du site\insertclient.php on line 48
Error description:"
Tous les messages d'erreur sont causés par le premier
Il semble que les identifiants utilisés ne soient pas les bons...
et en effet
A remplacer par
Access denied for user 'ROOT'@'localhost' (using password: YES) in C:\www\Les pages du site\connexion.php on line 19
Il semble que les identifiants utilisés ne soient pas les bons...
et en effet
$utilisateur="ROOT"; $motdepasse=" ";
A remplacer par
$utilisateur="root"; $motdepasse="";
J'ai tout corriger mais ça me met "Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\www\Les pages du site\insertclient.php on line 22
Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\www\Les pages du site\insertclient.php on line 22
erreur de connexion"
Une solution ?
Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\www\Les pages du site\insertclient.php on line 22
erreur de connexion"
Une solution ?
Code du fichier "connexion.php"
Code du fichier "insertclient.php"
Formulaire de la page html
<? php $serveur="localhost"; $utilisateur="ROOT"; $motdepasse=" "; $base="leperceneige"; $cx_srv= mysqli_connect($serveur, $utilisateur, $motdepasse); if($cx_srv==false) { print "Echec de connexion au serveur " .$serveur. ": Veuillez réessayer."; } else { $cx_base= mysqli_select_db($base, $cx_srv); if($cx_base==false) { print "Echec de connexion à la base " .$base.; mysqli_close($cx_srv); } } ?>
Code du fichier "insertclient.php"
<?php $Nom=$_POST['nom']; $Prenom=$_POST['prenom']; $Telephone=$_POST['num_tel']; $Mail=$_POST['mail']; include("connexion.php"); $reqClient="INSERT INTO CLIENT (nom, prenom, num_tel, mail) VALUES('$Nom','$Prenom','$Telephone','$Mail')"; mysqli_query($reqClient) or die("erreur de connexion".mysqli_error()); $NumCli=mysqli_insert_id(num_cli); echo " Merci pour votre inscription, votre numéro de compte est le:".$NumCli." avec ce numéro vous pouvez réserver une table."; mysqli_close(); ?>
Formulaire de la page html
<form action="insertclient.php" method="POST"> <p><u><h2>Avant de réserver veuillez créer un compte :</u> C'est simple et rapide.</h2></p> Nom : <input type="text" name="nom" value=""/> <br> Prénom : <input type="text" name="prenom" value=""/> <br> Numéro de téléphone : <input type="text" name="num_tel" value=""/> <br> Adresse mail : <input id="mail" type="text" name="mail" value=""/> <br><br> <input type="submit" value="S'enregistrer"<br style="width: 100px"> <input type="reset" value="Annuler"<br><br><br> </form>