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 :D 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 :shock:

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 :cry:

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