Page 1 sur 1
comment faire un script creation de compte + login php4
Posté : 03 mai 2006, 22:06
par Twitee
Je suis un peu desesperé et je viens ici demander un peu d'aide.
apres de nombreuses tentatives de codage perso en utilisant des sripts deja existant je n'aboutit a rien.
Mon projet est simple.
1/ Formulaire de login.
2/ si l'utilisateur n'as pas de comptes il peut en creer un.
3/ Formulaire de creation de compte.
Le tout en php4 en stockant les infos dans une base mysql et en utilisant les session. (sid)
Si une bonne ame voulait bien m'aider... [-o<
Posté : 03 mai 2006, 22:33
par Twitee
Bon pour linstant j'ai deja un formulaire pour le login:
<html>
<head>
<title>login.php</title>
</head>
<body>
<form name="login" method="post" action="validate.php">
Nom d'utilisateur:<input type="text" name="user_name"><br>
Mot de passe:<input type="password" name="password"><br>
<input type="submit" value="Envoyer">
</form>
</body>
</html>
Et un deuxieme pour la creation de compte:
<html>
<head>
<title>nouveaumembre.php</title>
</head>
<body>
<form name="nouveaumembre" method="post" action="newcount.php">
Nom d'utilisateur:<input type="text" name="user_name"><br>
Mot de passe:<input type="password" name="password"><br>
<input type="submit" value="Envoyer">
</form>
</body>
</html>
Je suis bloqué a cestade la
Posté : 03 mai 2006, 22:59
par Mouet
Voila comment enregistrer dans ta table
<?
//Petite fonction permetant de ne pas executer de fonctions php, js,... lors de l'enregistrement.
function format_value($value) {
$value = mysql_escape_string($value);
return "'$value'";
}
//Vérification des champs (remplis ou non)
if (!$_REQUEST["user_name"] || !$_REQUEST["password"]) { echo "Tous les champs n'ont pas été remplis."; }
else {
$username = format_value($_REQUEST["user_name"]);
$password = format_value($_REQUEST["password"]);
//Connexion à la base de donnée.
$host = '';
$name = '';
$user = '';
$pwd = '';
$db = mysql_pconnect($host, $user, $pwd);
mysql_select_db($name);
//A la limite, rend le mot de pass "crypté" avec le sha1 par exemple
$password=sha1($password);
//Ajout
$query = "INSERT INTO users(user,password) Values($username,$password)";
$res = mysql_query($query, $db);
echo 'Ajout effectué.';
}
?>
Posté : 03 mai 2006, 23:35
par Twitee
jai une petite erreur:
Parse error: parse error, expecting `','' or `';''
Laligne correspondant serait:
if (!$_REQUEST["user_name"] || !$_REQUEST["password"]) { echo "Tous les champs n'ont pas été remplis.'" }
Posté : 03 mai 2006, 23:38
par Mouet
oups, manque juste un ; avant le }
J'ai édité mon code
Posté : 03 mai 2006, 23:52
par Twitee
encore une petite:
Fatal error: Call to undefined function: db() in ....\newcount.php on line 31
j'ai donc modifié:
$res = mysql_query($query, db());
Par
$res = mysql_query($query, $db);
Posté : 03 mai 2006, 23:54
par Mouet
vi

Si non, ca marche maintenant?
Posté : 03 mai 2006, 23:58
par Twitee
ca me marque bien le message:
Ajout effectué
Mais aucun enregistrement n'est fait dans la table correspondant
J'ai verifié nom de base table etc ca a pourtant l'air bon.
Posté : 03 mai 2006, 23:59
par Mouet
ajoute un peu un
mysql_error();
avant
echo '...';
Posté : 04 mai 2006, 00:07
par Twitee
aucune erreur de renvoyée
Pour infos:
CREATE TABLE `users` (
`user` varchar(15) NOT NULL default '',
`password` varchar(32) NOT NULL default '',
PRIMARY KEY (`user`)
)
C'est ce que j'ai fait pour creer la table etc
Je comprend pas

Posté : 04 mai 2006, 08:15
par iclo
Tes champs sont plus que probablement des chaines de caractères, il faut donc les entourer de guillemets.
"INSERT INTO users(user,password) Values(\"$username\",\"$password\")"
et si ça ne fonctionne pas, fait un print de $query pour vérifier que la requette est correcte.
Posté : 04 mai 2006, 22:15
par Twitee
et voila modification effectuée et maintenant ca marche
Merci a vous deux

=D>
Je cherche toujours de l'aide pour exploiter la seconde partie ,
utiliser le script de login avec les sessions pour que un utilisateur arrive a se loguer