Erreur php mysql

Fermé
mary - 11 janv. 2009 à 18:21
 mary - 24 janv. 2009 à 10:36
Bonjour,

Je suis une grande débutante en php mysql

J'ai pour un cours une petite appli à faire qui se connecte à une base de donnée mysql avec un formulaire et un fichier php

J'ai une erreur après avoir saisi dans mon formulaire :
Parse error: parse error, unexpected '{' in C:\Program Files\EasyPHP 2.0b1\www\programme.php on line 22

voici mon fichier .php :

<HTML>
<HEAD><TITLE>PHP</TITLE></HEAD>

<BODY>

<h1>Interrogation de la table Article</h1>
Bonjour

<?Php

define (SERVEUR, "localhost");
define (NOM, "root");
define (PASSE, "");
define (BASE, "bd1");

$connexion = mysql_pconnect(SERVEUR,NOM,PASSE);
if(!$connexion)
{echo "Désolé, connexion à ".SERVEUR."impossible";exit;}

if(!mysql_select_db(BASE,$connexion)

LIGNE 22 {echo "Désolé accès à la base ".BASE." impossible";exit;}

$resultat=mysql_query("SELECT * FROM Article ", $connexion);

if($resultat)
{
while($liste=mysql_fetch_object($resultat))
{echo"$liste->codArt, $liste->libArt<BR>";}
}
else
{echo"<b>Erreur dans execution de la requete.</b><BR>";}
?>

</BODY>
</HTML>


Merci pour votre aide

6 réponses

william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 47
11 janv. 2009 à 18:30
Bsr
regarde juste après au niveau de on IF il te manque une accolade fermante à la fin (en gras)

if(!mysql_select_db(BASE,$connexion))

LIGNE 22 {echo "Désolé accès à la base ".BASE." impossible";exit;}
0
Merci beaucoup

J'ai cherché pendant des heures croyant que mes syntaxes étaient fausses

Merci
0
J'ai bien l'affichage de ma table, les 2 articles en bas mais j'ai plein d'erreurs avant
Qu'est ce que c'est ?

Notice: Use of undefined constant SERVEUR - assumed 'SERVEUR' in C:\Program Files\EasyPHP 2.0b1\www\programme.php on line 11

Notice: Use of undefined constant NOM - assumed 'NOM' in C:\Program Files\EasyPHP 2.0b1\www\programme.php on line 12

Notice: Use of undefined constant PASSE - assumed 'PASSE' in C:\Program Files\EasyPHP 2.0b1\www\programme.php on line 13

Notice: Use of undefined constant BASE - assumed 'BASE' in C:\Program Files\EasyPHP 2.0b1\www\programme.php on line 14


800, Porte coulissante 180x210.
810, Porte automatique 180x250.
0
william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 47
12 janv. 2009 à 02:28
Bonjour ce ne sont des erreurs moins grave mais je te conseil de fiare ce ci :

$Server = "localhost";
$Nom = "root";
$Passe = "";
$Base = "bd1";

au lieu de je crois que tu n'auras plus d'erreurs

define (SERVEUR, "localhost");
define (NOM, "root");
define (PASSE, "");
define (BASE, "bd1");
0
Ok ça fonctionne

Je veux maintenant saisir un code dans mon formulaire et le rechercher dans ma base pour afficher le libelle
le sql je sais faire

mais comment je récupère le code saisi dans le formulaire (champ code) dans mon programme php pour l'utiliser dans ma requete sql ?

merci
0
La syntaxe correcte avec les define était :

define ("SERVEUR", "localhost");
define ("NOM", "root");
define ("PASSE", "");
define ("BASE", "bd1");

(le premier paramètre de define est une chaîne, donc des " ou des ' )
0
Bonsoir,

Je continue mon apprentissage et j'ai un autre soucis

Je souhaite faire entrer l'utilisateur par une saisie du login et mot de passe

J'ai donc créé un autre fichier html menu.html qui demande un login et un mot de passe et je lance le fichier login.php
qui va chercher le nom et mot de passe dans la base de données, et je veux à partir de ce fichier php lancer le fichier formulaire.html qui me demande d'autre saisie

et là je n'y arrive pas et je ne trouve pas d'exemples sur le net

Merci

Marylène
0
cotta Messages postés 294 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 3 mai 2010 3 > mary
20 janv. 2009 à 23:33
consulte ce site :

www.siteduzero.com
0
Mary > cotta Messages postés 294 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 3 mai 2010
22 janv. 2009 à 23:27
Bonjour,

Le site est vraiment très vien fait

après lecture j'ai trouvé ceci mais cela ne fonctionne toujours pas

<a href="formulaire.html">
Je souhaite faire ouvrir automatiquement ce fichier html dans mon fichier php

Merci
0
william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 47
22 janv. 2009 à 23:54
qu'entend tu par automatiquement?
sans action de l'utilisateur ???
0
oui

si lors du clic sur le bouton valider le controle du login et mot de passe est ok alors un autre fichier html sera ouvert
0
william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 47
23 janv. 2009 à 00:10
apres la verification si tout est bon fait ce ci:

if((Login == $login) && (MP == $motPass)){

include("bienvenu.html");
}
else{
echo "Verifier vos identifiants";
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 47
23 janv. 2009 à 00:17
essaie le code et tu me met au courant!!!
0
william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 47
23 janv. 2009 à 00:29

<?php
$username = $_POST["username"];
$password = $_POST["password"];
echo (" votre nom --> $username <BR>");
echo (" votre mot de passe --> $password <BR>");
$idconnexion=mysql_connect("localhost","root","");
$idBase=mysql_select_db("bd-clients",$idconnexion);
$sql="select * from utilisateur where id='$username'";
$resultat=mysql_db_query("bd-clients",$sql);
$f=mysql_fetch_array($resultat);
if($password ==$f['passe'])
{ echo("mot de passe valide");}
else
{echo("mot de passe incorrecte");}
mysql_free_result($resultat);
mysql_close($idconnexion);
?>



comment tu fais pour avoir ID? or je supose qu'il considère ici que l'ID est là clef
tu sais avec les mot de passe et les login, je suppose qu'il est plus intéressant de faire le test sur les deux données à la fois car rien n'empeche 2 ou plusieurs utilisateur à avoir un même login ou un mm mot de passe , mais la probabiliter que 2 utilisateurs aient un mm login et MP est très faible on joue donc sur cette petit probabilité et on prefère faire ce ci
$req = "SELECT * FROM utilisateur WHERE login = '".$login."' AND motPasse = '".$passWord."'";

au lieu de

$sql="select * from utilisateur where d='$username'";
0
Bonjour, toujours pas bon et je ne vois pas

//Déclaration des éléments du serveur Mysql

$Server="localhost";
$Nom="root";
$Passe="";
$Base="util";
$nom=strtoupper(htmlspecialchars($_POST['nom']));
$pass=strtoupper(htmlspecialchars($_POST['pass']));
//echo (" nom --> $nom <BR>");
//echo (" pass --> $pass <BR>");

//Connexion à la base de données Mysql
$connexion = mysql_pconnect($Server,$Nom,$Passe);



//Test sur la connexion
if(!$connexion)
{echo "Désolé, connexion à ".Server."impossible";exit;}
//Test sur l'acces à la base de données

if(!mysql_select_db($Base,$connexion))
{echo "Désolé accès à la base ".Base." impossible";exit;}

//Récupération du résultat de la requete dans un pointeur
$resultat=mysql_query("SELECT * FROM Utilisateur WHERE nom='$nom'", $connexion);
$f=mysql_fetch_array($resultat);
if((nom == $nom) && (pass == $pass)){
include("formulaire.html");
}
else{
echo "Verifier vos identifiants";
}
//déconnexion avec MySQL
mysql_close();
?>
0
bissdebrazza Messages postés 2064 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017 713 > mary
24 janv. 2009 à 01:51
Salut!
Quel message d'erreur ça te renvoie?
0
mary > bissdebrazza Messages postés 2064 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017
24 janv. 2009 à 09:08
C'est tout à fait vrai
Il était tellement tard et surtout je saturais tellement avec mes erreurs que j'ai un peu manqué d'explications !

Je lis pourtant le site du zero, php pour les nuls et non ça ne me suffit pas !!!


Voilà mon erreur
Notice: Use of undefined constant nom - assumed 'nom' in C:\Program Files\EasyPHP 2.0b1\www\progLog.php on line 45
Verifier vos identifiants

Avant que je modifie quelques points je n'avais plus d'erreur mais mon login n'est jamais reconnu et j'ai toujours en réponse vérifier vos identifiants
J'en conclus que losque je récupère les éléments de ma requete sql, je ne les utilise pas correctement ou je ne les compare pas correctement
Je cherche donc autour de ceci

Merci

Marylène
0
mary > bissdebrazza Messages postés 2064 Date d'inscription vendredi 29 juin 2007 Statut Contributeur Dernière intervention 7 décembre 2017
24 janv. 2009 à 10:36
OK j'ai trouvé ça marche
je n'avais pas besoin de tester si le login est bon puisque je ne récupère que ce login

par contre je ne comprends pas pourquoi mon echo avec verifier votre login ne s'affiche pas
si le login est bon j'ai bien mon second formulaire qui s'active
si le login est faux j'ai le titre de mon fichier MENU et pas mon message

Cest vraiment un monde à part la prog !!!

A+
0