NewbieContest

Programmation => Langages Web => Discussion démarrée par: comtezero le 04 Août 2005 à 15:21:27



Titre: [MySQL] connexion bdd
Posté par: comtezero le 04 Août 2005 à 15:21:27
Salut salut , est-ce qu'on pourrait m'éclaircir sur mon script , il ne fonctionne pas , on m'a aidé sur le net mais la personne ne comprenait pas le probleme non plus :

<?
include ('http://site.free.fr/commun/config.php');

$login = strip_tags ( $login );
$pass = strip_tags ( $pass );
$email = strip_tags ( $email );


if(empty($login) OR empty($pass) OR empty($email))
{
echo'<a href="http://sitet.free.fr/inscriptions.htm" target="_blank">
Inscriptions</a>';
}

else
{
$sql="INSERT INTO membres[('id','login','pass','email')] VALUES [('','.$login','.$pass','.$email')]";
$exe=mysql_db_query ($serveur,$basename,$sql);
}
?>


Titre: [MySQL] connexion bdd
Posté par: Folcan le 04 Août 2005 à 15:57:34
peux tu nous dire l'erreur qu'il renvoi ??


Titre: [MySQL] connexion bdd
Posté par: Folcan le 04 Août 2005 à 16:41:51
mhmmm deja :

Code:
{
$sql="INSERT INTO membres[('id','login','pass','email')] VALUES [('','.$login','.$pass','.$email')]";
$exe=mysql_db_query ($serveur,$basename,$sql);
}
ici, tu n'execute nullement ton sql, tu le fou juste dans une variable !
il aurait fallu ne pas mettre le '$exe=' soit :

Code:
{
$sql="INSERT INTO membres[('id','login','pass','email')] VALUES [('','.$login','.$pass','.$email')]";
mysql_db_query ($serveur,$basename,$sql);
}
De plus, pourquoi des crochets dans cette meme partie ? C'est peut etre authorisé, moi je n'en utilise jamais, ca donenrais :

Code:
{
$sql="INSERT INTO membres('id','login','pass','email') VALUES ('','.$login','.$pass','.$email')";
mysql_db_query ($serveur,$basename,$sql);
}


Titre: [MySQL] connexion bdd
Posté par: comtezero le 04 Août 2005 à 20:28:51
Citation
Warning: mysql_db_query(): A link to the server could not be established in /var/www/free.fr/2/b/sitet/inscriptions.php on line 18
Voila l'erreur j'ai essayé plein de possibilité , a l'origine il n'y avait pas
$exe=mysql_db_query ($serveur,$basename,$sql); vu que c'était zolie je l'ai rajouté , je vais tester ta proposition folcan et merci . C'est que j'ai eu tellement d'erreur que je sais plus ou donner de la tete sur ce script .

Edit : ca ne marche pas :cry:

Encore un Edit : ca marche mais sans le mysql_db_query .


Titre: [MySQL] connexion bdd
Posté par: Folcan le 05 Août 2005 à 13:04:08
Tu es sur que tes infos de connections de ton config.php sont bonnes ?? (notamement le $serveur)

Bon apparament je viens de lire que la fonction "mysql_db_query" ne dois plus etre utilisé car tres laregement depassé ! (effectivement je ne la connaissais meme pas)

Citation
Manuel officielle de php :

Cette fonction est décpréciée depuis PHP 4.0.6. N'utilisez pas cette fonction. Utilisez mysql_select_db() et mysql_query() à la place.

source : http://fr.php.net/mysql_db_query
Je te propose donc un remaniement de ton script :

Code:
<?
include ('http://site.free.fr/commun/config.php');

$login = strip_tags ( $login );
$pass = strip_tags ( $pass );
$email = strip_tags ( $email );


if(empty($login) OR empty($pass) OR empty($email))
{
echo'<a href="http://sitet.free.fr/inscriptions.htm" target="_blank">
Inscriptions</a>';
}

else
{
$db = mysql_connect($serveur,$login_sql, $pasword_sql);
mysql_select_db($basename,$db);
$sql="INSERT INTO membres[('id','login','pass','email')] VALUES [('','.$login','.$pass','.$email')]";
mysql_query($sql);
mysql_close();
}
?>
Code:
Aves ton config.php :

$serveur = 'ton serveur';
$login_sql = 'login sql';
$password_sql = 'ton password sql';
$basename = 'le nom de ta base';
Ya peut etre des erreur genre des ; ou quoi, j'ai ecris ca vite fais, tiens moi au courant ;)


Titre: [MySQL] connexion bdd
Posté par: comtezero le 05 Août 2005 à 13:30:18
comme je suis arrivé a faire marcher mon script je planchais sur celui de connexion mais j'ai quand meme essayé ce que tu as proposé mais ca n'a pas marché , est-ce nécessaire de mettre un query dans une requete mysql ? ou ca sert a rien ?


Titre: [MySQL] connexion bdd
Posté par: comtezero le 05 Août 2005 à 15:37:29
j'ai essayé ca aussi pour le script d'identification :

<?
//j'inclue les parametres de connexion a la bdd
include ('http://site.free.fr/commun/config.php');

//j'enleve les caractères html et php aux entrées
$login = strip_tags ( $login );
$pass = strip_tags ( $pass );

//je cherche dans la bdd les données correspondant
$sql = "SELECT * FROM `membres` WHERE login='.$login' AND pass='md5(.$pass)'";
$req = mysql_query($db, $basename ,$sql );
$data=mysql_fletch_array($req);

if ($data['pass'] != $pass)
{
echo 'Votre login ou mot de passe n&acute;est pas bon';
echo '<a href="http://site.free.fr/index.htm" >Re-éssayer</a>';
}
else
{
echo '$login $pass;
}
?>
mais ca ne marche pas si cette fois je ne met pas de mysql_query il accepte tout , si je le met y a un probleme au niveau du query tout comme pour mon script précédent ou je l'ai donc enlevé .


Titre: [MySQL] connexion bdd
Posté par: Perfect Slayer le 05 Août 2005 à 20:12:20
y a que 2 argument pour Mysql_Query()

le 1er : la requete
le 2nd : la ressource (autrement dit, la variable de connexion à la BDD SQL (qui n'est pas réellement une variable mais une ressource.. comme pour le traitement de fichier.. enfin bon..))


Titre: [MySQL] connexion bdd
Posté par: comtezero le 06 Août 2005 à 16:49:47
j'ai pas tout compris Perfect Slayer .

Sinon Folcan je me suis inspiré de ce que tu as mis et apporté des modifications mais ca ne marche pas il me dit :

Code:
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /var/www/free.fr/2/b/zone2test/inscriptions.php on line 29

Warning: mysql_query(): A link to the server could not be established in /var/www/free.fr/2/b/zone2test/inscriptions.php on line 32

Warning: mysql_close(): no MySQL-Link resource supplied in /var/www/free.fr/2/b/zone2test/inscriptions.php on line 33
Edit: je sais que je polue le forum avec mes codes mais j'ai peut-etre trouvé grace a vous et un peu de recherche je met le code

Code:
<?
//j'inclue les parametres de connexion de la bdd
include ('http://site.free.fr/commun/config.php');

$login = strip_tags ( $login );
$pass = strip_tags ( $pass );
$email = strip_tags ( $email );

//test pour voir s'il n'y a pas un champ de vide
if(empty($login) OR empty($pass) OR empty($email))
{
echo 'Vous avez laissez un champ vide ';
echo'<a href="http://site.free.fr/inscriptions.htm" target="_blank">
Inscriptions</a>';
}

//test entre les 2 mots de passe pour qu'ils soient identiques
elseif ($pass!=$pass2)
{
echo 'vous avez fait une erreur en tapant votre mot de passe';
echo'<a href="http://site.free.fr/inscriptions.htm" >
Inscriptions</a>';
}

//insertion des données dans mysql
else
{
$db = mysql_connect ( $serveur, $user, $password);
@mysql_select_db($basename, $db);
$sql="INSERT INTO membres('id','login','pass','email')
VALUES ('','.$login',CRYPT_MD5=('.$pass'),'.$email')";
$result = @mysql_query ($sql);
@mysql_close();

echo'Félicitations vous etes maintenant inscris en tant que ';
echo'<a href="http://site.fr/index.htm" >
Membre</a>';
}
?>


Titre: [MySQL] connexion bdd
Posté par: comtezero le 06 Août 2005 à 21:10:25
un probleme lors de l'identification il reconnait pas le pass !


Titre: [MySQL] connexion bdd
Posté par: Perfect Slayer le 07 Août 2005 à 17:13:49
essaye plutot avec ca :
Code:
$sql="INSERT INTO membres('id','login','pass','email')
VALUES ('','".$login."','".md5($pass)."','".$email."')";


Titre: [MySQL] connexion bdd
Posté par: comtezero le 07 Août 2005 à 19:12:00
merci de ton aide , pour l'instant je pense que je vais me concentrer a ma tache sans le md5 , comme ca si il y a une erreur ca vient pas de lui .


Titre: [MySQL] connexion bdd
Posté par: Perfect Slayer le 08 Août 2005 à 10:19:48
J'te conceille de le faire maintenant parce que le jour ou tu devras modifier tous les pass de ta BDD pour les crypter en MD5.. Ca va être beau (surtout si tu débutes). et surtout, tu risques de devoir couper ton site le temps de la manip...


Titre: [MySQL] connexion bdd
Posté par: comtezero le 08 Août 2005 à 10:24:45
bon béh ok je fais faire le md5 si c'est plus facile pour aprés

Citation
et surtout, tu risques de devoir couper ton site le temps de la manip...
Il est toujours couper c'est pour m'apprendre :wink:


Titre: [MySQL] connexion bdd
Posté par: Perfect Slayer le 08 Août 2005 à 10:36:39
Ah ok.. Bah ouais alors dans ce cas là, essayer sans. regarde si ca marche et passe avec !

P.S. dans ta bdd, il faut que tu puisses enregistré les 32 caractère du hash !!! Si jamais y a pas assez de place, l'enregistrement est tronqué et du coup, lors des comparaison, tous les pass seront refusés... :/


Titre: [MySQL] connexion bdd
Posté par: comtezero le 08 Août 2005 à 10:43:09
c'est ce que j'ai vu sur internet alors les trucs limités a 25 j'ai mis a 40 ou plus :P


Titre: [MySQL] connexion bdd
Posté par: Perfect Slayer le 09 Août 2005 à 20:18:13
ouais m'enfin si tu mets trop, c'est pas bien nan plus parce que ca te prends de l'espace pour rien (dit toi que c'était remplit comme s'il rajoutait des espaces en fin s'il reste de la place... :s)