Jass922 |
Le 08/05/2009 à 17:57 |
|
|
Bonjour, J'ai un petit probleme En fait j'ai un projet a rendre pour la fin de l'année ( je suis en terminale stg option gsi) en gros c'est une entreprise de pret a porter; FRINGUES2 qui veut que ses clients puissent s'authentifier ( login+ mot de passe) ou s'ils ne sont pas inscrit qu'ils puissent s'inscrire.On a une base de données qui s'appelle FRINGUES2 avec des clients et on a utilisé un client type "clifringues" Donc j'ai essayé de faire des formulaires en php mais en testant hier j'ai vu que ca n'avait pas marché. Aujourd'hui j'ai donc essayé d'en faire d'autres, et j'aimerai qu'on me corrige:
le formulaire de connexion:
<?php
// Paramètres de connexion à la base de données
$BD_serveur = "localhost";
$BD_utilisateur = "clifringues";
$BD_motDePasse = "toto";
$BD_base = "FRINGUES2_BDD";
$id = $_POST["id"];
$motDePasse = $_POST["motdepasse"];
@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de données.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter à la base de données.");
$requete = "SELECT * FROM CLIENT ";
$result = mysql_query($requete);
if ($enreg = mysql_fetch_array($result)) {
// Si une ligne a été trouvée c'est que le couple
// (identifant, mot de passe) est valide
echo "NOM : " . $enreg["nom"] . "<br/>";
echo "PRENOM : " . $enreg["prenom"] . "<br/>";
echo "ADRESSE : " . $enreg["adresse"] . "<br/>";
} else {
echo "Paramètres de connexion invalides<br/>";
}
?>
le formulaire d'inscription:
<?php
// Parametres de connexion à la base de données
$BD_serveur = "localhost";
$BD_utilisateur = "clifringues";
$BD_motDePasse = "toto";
$BD_base = "FRINGUES2_BDD";
// Récupération des paramètres POST
$id = $_POST["idcl"];
$prenom = $_POST["promcl"];
$nom = $_POST["nomcl"];
$adresse = $_POST["adrscl"];
$cp = $_POST["cpcl"];
$ville = $_POST["villecl"];
$telephone = $_POST["telcl"];
$email = $_POST["mailcl"];
echo "Bonjour ".stripSlashes($prenom)." ".stripSlashes($nom).",<br/>";
@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de données.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter à la base de données.");
$requete = "INSERT INTO CLIENT (idcl, nom, prenom, adresse, cp, ville, telephone, email,)
VALUES ('$id', '$nom','$prenom','$adresse', '$cp', '$telephone' '$email')";
$result = @mysql_query($requete);
if (!$result) {
echo "L'enregistrement de vos données a échoué. Essayez plus tard.".
"Et demandez à l'administrateur de vérifier l'existence de la ".
"table CLIENT ;-)<br />";
} else {
echo "Félicitations. Vous êtes desormais un nouveau client!".
"<br />";
}
?>
merci d'avance |
Taffeur95 |
Le 08/05/2009 à 21:36 |
|

|
Bonjour, en fait ton code n'est pas très clair... mais dans un premier temps si tu veux faire un vérification, il faut que tu filtres ta requete, du style
$requete = "SELECT * FROM CLIENT WHERE `idcl`='$id' and `motPasse`='$motDePasse"; Si longueur requete =0 ==> erreur identification (longueur = mysql_num_rows($requete))
tu n'as pas mis de mot de passe dans ton INSERT...;
A+ |
Jass922 |
Le 08/05/2009 à 21:48 |
|
|
alors en fait a la base j'avais fais autre chose mais ca ne marché pas...je vais te le faire montrer
pour la connexion c'était ca :
<? // le script s'appelle 'connexion.php' , par exemple
$connexion = mysql_connect("localhost", "root", "root") or die ("Connection au serveur impossible<br />"); // réalise la connexion
$cx_base= mysql_select_db("FRINGUES2_BDD", $connexion) or die ("Erreur dans la sélection de la base FRINGUES2_BDD !<br>"); // charge la base de données active
?>
mais ca ne voulait pas se connexter
ensuite pour les inscriptions ( apparement il faut deux formulaires car il y en a un qui recupère les données)
le 1er:
<?
include "connexioncli.php";
$requete="select * from CLIENT;";
$resultat= mysql_query($requete,$connexion);
echo '<form action="inscription2.php" method="post">';
echo '<h2>Saisie des informations sur le client</h2>';
echo'Donner son nom :';
echo '<input type="text" name="nom" size="20" /><br />';
echo'Donner son prenom :';
echo '<input type="text" name="prenom" size="20" /><br />';
echo'Donner son adresse :';
echo '<input type="text" name="adresse" size="20" /><br />';
echo'Donner son code postal :';
echo '<input type="text" name="cp" size="5" /><br />';
echo'Donner sa ville :';
echo '<input type="text" name="ville" size="20" /><br />';
echo'Donner son telephone :';
echo '<input type="text" name="telephone" size="20" /><br />';
echo'Donner son login :';
echo '<input type="text" name="login" size="20" /><br />';
echo'Donner son mot de passe :';
echo '<input type="text" name="password" size="20" /><br />';
echo "</select>";
echo '<p /><input type="submit" value="Ajouter dans la base"><p />';
echo '<input type="reset" name="annuler" value="annuler" />';
echo "</form>";
mysql_close($connexion);
?>
et le 2eme:
<? include('connexioncli.php'); // appel du script de connexion
// gestion des cas particuliers
// le champ peut comporter un guillemet qui va gêner MySQL
$nom=addslashes($_POST["login"]);
// le champ peut ne pas avoir été saisi, on met une valeur nulle
if (isset ($_POST["password"]))
$password = $_POST["password"];
else
$password = null;
$requete="select * from CLIENT;";
$resultat= mysql_query($requete,$connexion);
$ligne=mysql_fetch_assoc($resultat);
$requete="insert into CLIENT values ('".$_POST["nom"]."','".$_POST["prenom"]."',".$_POST["adresse"].",".$_POST["cp"].", '".$_POST["ville"]."', '".$_POST["telephone"]."');";
echo "voici la requête sql qui va être exécutée : <br />".$requete;
$resultat= mysql_query($requete,$connexion);
if ( ! $resultat)
{ echo "<h1>echec de la requête </h1>";
echo mysql_error($connexion);
}
else
if ( mysql_affected_rows ( ) )
echo "<h1>insertion dans la base effectuée</h1>";
echo '<h3><a href="index.html">RETOUR au menu de la base FRINGUES2_BDD</a></h3>';
mysql_close($connexion);
?>
et j'aimerai bien qu'on me dise ce qu'il va pas |
Taffeur95 |
Le 09/05/2009 à 14:25 |
|

|
Salut, pour ton authentification, fais comme je t'ai dit:
$requete = SELECT * FROM table WHERE id=$id AND passe=$passe if(mysql_num_rows($requete) == 0) { erreur; //Traitement de l'erreur } else { $enreg = mysql_fetch_array($requete); echo "NOM : " . $enreg["nom"] . "<br/>"; echo "PRENOM : " . $enreg["prenom"] . "<br/>"; echo "ADRESSE : " . $enreg["adresse"] . "<br/>"; }
dis moi si ca fonctionne et après on verra la création d'un client |
Jass922 |
Le 09/05/2009 à 14:39 |
|
|
alors c'est ce que je viens de faire je te montre connexion:
<?php // Paramètres de connexion à la base de données $BD_serveur = "localhost"; $BD_utilisateur = "root"; $BD_motDePasse = ""; $BD_base = "FRINGUES2_BDD";
$id = $_POST["id"]; $motDePasse = $_POST["motdepasse"];
@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse) or die("Impossible de se connecter au serveur de bases de données."); @mysql_select_db($BD_base) or die("Impossible de se connecter à la base de données."); $requete = SELECT * FROM table WHERE id=$id AND passe=$passe if(mysql_num_rows($requete) == 0) { erreur; //Traitement de l'erreur } else { $enreg = mysql_fetch_array($requete); echo "NOM : " . $enreg["nom"] . "<br/>"; echo "PRENOM : " . $enreg["prenom"] . "<br/>"; echo "ADRESSE : " . $enreg["adresse"] . "<br/>"; }
?>
et ca me donne ca qd jessaie
Parse error: parse error in J:\Program Files\EasyPHP 3.0\www\connexion.php on line 16 |
Taffeur95 |
Le 09/05/2009 à 14:45 |
|

|
oui, c'est normal il faut que tu adaptes le code que je t'ai filé en l'occurence le "erreur" de la condition devient le traitement de ton erreur, tu peux mettre ici un echo "erreur d'identification"; par exemple |
Jass922 |
Le 09/05/2009 à 14:48 |
|
|
ah oui daccord je te montre ce que j'ai remplacé mais ca me donne tjs erreur a la ligne 16
<?php // Paramètres de connexion à la base de données $BD_serveur = "localhost"; $BD_utilisateur = "root"; $BD_motDePasse = ""; $BD_base = "FRINGUES2_BDD";
$pseudo = $_POST["pseudo"]; $passe = $_POST["passe"];
@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse) or die("Impossible de se connecter au serveur de bases de données."); @mysql_select_db($BD_base) or die("Impossible de se connecter à la base de données."); $requete = SELECT * FROM user WHERE pseudo=$pseudo AND passe=$passe if(mysql_num_rows($requete) == 0) { "erreur d'identification"; //Traitement de l'erreur } else { $enreg = mysql_fetch_array($requete); echo "NOM : " . $enreg["nom"] . "<br/>"; echo "PRENOM : " . $enreg["prenom"] . "<br/>"; echo "ADRESSE : " . $enreg["adresse"] . "<br/>"; }
?>
je peux tenvoyer ma base de donné pr que tu puisses voir si c'est pas des erreurs de syntaxe |
Taffeur95 |
Le 09/05/2009 à 14:52 |
|

|
tu n'as pas mis le echo devant la chaine "Erreur d'identification" |
Jass922 |
Le 09/05/2009 à 14:57 |
|
|
voila la nouvel modification comme tu mas dis et encore la mm erreur ligne 16
<?php // Paramètres de connexion à la base de données $BD_serveur = "localhost"; $BD_utilisateur = "root"; $BD_motDePasse = ""; $BD_base = "FRINGUES2_BDD";
$pseudo = $_POST["pseudo"]; $passe = $_POST["passe"];
@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse) or die("Impossible de se connecter au serveur de bases de données."); @mysql_select_db($BD_base) or die("Impossible de se connecter à la base de données."); $requete = SELECT * FROM user WHERE pseudo=$pseudo AND passe=$passe if(mysql_num_rows($requete) == 0) { echo "erreur d'identification"; //Traitement de l'erreur } else { $enreg = mysql_fetch_array($requete); echo "NOM : " . $enreg["nom"] . "<br/>"; echo "PRENOM : " . $enreg["prenom"] . "<br/>"; echo "ADRESSE : " . $enreg["adresse"] . "<br/>"; }
?> |
Taffeur95 |
Le 09/05/2009 à 15:02 |
|

|
la syntaxe au dessus du bloc if n'est pas la bonne :
$requete = mysql_query("SELECT * FROM user WHERE `pseudo`='$pseudo' AND `passe`='$passe'");
et je ne suis pas sur qu eta table s'appelle bien 'user' |