Problème PHP / Base de donnée
Résolu
Arkilym
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
Arkilym Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
Arkilym Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je suis lycéen et pour le bac je dois proposer un projet informatique (progiciel ou site web). J'ai choisi de présenter un site web. C'est pour un restaurant (inventé), le site permet aux clients de réserver une table (après avoir créer un compte) mais ça ne marche pas. Pourtant j'ai essayer pendant 3h de régler le problème mais rien ne marche.
Quand je rempli le formulaire d'inscription et que je valide sa me met "Parse error: syntax error, unexpected 'mysql_close' (T_STRING), expecting ',' or ';' in C:\www\Les pages du site\insertclient.php on line 28"
Voici le code du fichier "insertclient.php" pour la création de compte:
Voici le code du formulaire de ma page HTML:
Et voici le code du fichier "connexion.php":
Merci d'avance pour votre aide.
Quand je rempli le formulaire d'inscription et que je valide sa me met "Parse error: syntax error, unexpected 'mysql_close' (T_STRING), expecting ',' or ';' in C:\www\Les pages du site\insertclient.php on line 28"
Voici le code du fichier "insertclient.php" pour la création de compte:
<?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')"; mysql_query($reqClient) or die("erreur de connexion".mysql_error()); $NumCli=mysql_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." mysql_close(); ?>
Voici le code du formulaire de ma 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>
Et voici le code du fichier "connexion.php":
<? php $serveur="localhost"; $utilisateur="ROOT" $motdepasse=" "; $base="le perce neige"; $cx_srv= mysql_connect($serveur, $utilisateur, $motdepasse); if($cx_srv==false) { print "Echec de connexion au serveur " .$serveur. ": Veuillez réessayer." } else { $cx_base= mysql_select_db($base, $cx_srv); if($cx_base==false) { print "Echec de connexion à la base " .$base. mysql_close(cx_$srv); } } ?>
Merci d'avance pour votre aide.
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
- Gigaset a170h problème base ✓ - Forum telephonie fixe
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>