Page 1 sur 1

PHP inscription

Posté : 03 févr. 2013, 03:29
par sasoryy
Bonsoir à tous,

En tant que débutant dans le PHP je bute sur une erreur qui va peut-être vous paraître simple mais je vous l'expose :

Voici mon code PHP :

<?php
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$pseudo = $_POST['pseudo'];
$ville = $_POST['ville'];
$sexe = $_POST['sexe'];
$mdp = $_POST['mdp'];
$date_naissance = $_POST['date_naissance'];

$serveur = "localhost" ;
$bd = "worldz" ;
$login = "root" ;
$pwd = "" ;

echo "bonjour";
mysql_connect("$serveur,$login,$pwd");
mysql_select_db("$bd") ;
mysql_query("INSERT INTO inscription(pseudo, nom, prenom, mdp, date_naissance, ville, sexe)
VALUES('$pseudo','$nom','$prenom','$mdp','$date_naissance','$ville','$sexe')") ;
echo "Vous êtes maintenant inscrit" ;
mysql_close() ;
?> 
Mon formulaire HTML :
<html>

<head>
	<meta charset="utf-8" />
	<link rel="stylesheet" type="text/CSS" href="styleY.css" />	
		<title>War</title>
</head>

<body>
	<h1><center>INSCRIPTION</center></h1>
<header>
	<ul>
		<li><a href="accueilY.html">Accueil</a></li>
		<li><a href="carteY.html">Carte</a></li>
		<li><a href="persoY.html">Personnages</a></li>
		<li><a href="inventaireY.html">Inventaire</a></li>
		<li><a href="connexionY.html">Connexion</a></li>

	</ul>
<div style="clear:both;"></div>
</header>


<hr />
				<font size=10>Veuillez remplir le formulaire suivant pour vous inscrire.</font>
<table>
	<form name="formulaire" method="POST" action="verif.php"/>
	<tr>	
		<td>Pseudo : 
		<td><input type="text" name="pseudo"></td>
	<tr>	
		<td>Nom : 
		<td><input type="text" name="nom"></td>
	<tr>	
		<td>Prénom : 
		<td><input type="text" name="prenom"></td>
	<tr>	
		<td>Mot de passe : 
		<td><input type="password" name="mdp"></td>
	<tr>
		<td>Date de naissance : 
		<td><input type="date" name="date_naissance" ></td>
	<tr>	
	<td>Ville : 
		<td><input type="text" name="ville"></td>
		
	<tr>
		<td>Sexe : 
			<td>masculin<input type="radio" name="sexe">
			Feminin<input type="radio" name="sexe"></td>
	<tr>
		<td><input type="submit" name="envoyer" value="envoyer">
</table>	
<hr />
	<br>

</body>

</html>
Et lorsque je valide l'envoi du formulaire j'obtiens l'erreur suivante :
Warning: mysql_connect(): in C:\Program Files (x86)\EasyPHP-12.1\www\html\verif.php on line 16


Merci d'avance pour votre aide !

sasoryy

Re: PHP inscription

Posté : 03 févr. 2013, 04:16
par moogli
salut,

1/ Ecrire en rouge ça fait au yeux, tu pense que l'on verrais moins bien ton message en noir ?
2/ pas la peine de mettre les variables dans des chaines de caractère pour les utiliser (ton truc($var) et pas truc("$var") ) :mrgreen:
3/ ton problème découle du 2/ => vire les " qui sont utilisée pour la fonction mysql_connect, qui a besoin de trois paramètre et non un seul (ce qui te fournit l'erreur).
4/ Pour une meilleur clareté du code est préférable d'utiliser la concaténation la concaténation plutôt que les chaines de caractères délimitée par des " .
5/ il ne faut jamais présumer de la présence d'information provenant du client (le navigateur) donc il est impératif d'utiliser isset ou empty pour vérifier l’existence des index correspondants aux champs de formulaire (c'est valable pour get, post ou cookie bref tous ce qui est fournit par l'utilisateur). Tu ne peux pas être certain que quelqu'un ne modifira pas ton formulaire et dans ce cas tu va avoir une belle erreur (undefined index ..).
exemple de validation de formulaire http://www.lephpfacile.com/cours/8-recu ... ormulaires
6/ Tu devrais utiliser l'exension mysqli plutôt que l'extension mysql qui est vouée a disparaître.
globalement la différence c'est ajouter un i au nom des fonctions et la ressource de connexion (indiqué dans la doc ;) )
7/ Ton code est sensible aux injections SQL, utilise [urlhttp://www.php.net/mysqli_real_escape_string]mysql(i)_real_escape_string[/url] pour les protéger.


@+