|
|
|
|
Bonjour,
je suis legerement novice en php et je tente de créer un formulaire d'inscription afin que les gens puissent s'inscrire a une partie d'un site.
Le probleme est que je n'arrive pas a ecrire les donnée d'inscription dans la bd !
Voici le code du fichier inscription.php :
<?
function ValideLogin($QuelleLogin)
{
// SI le nom est carrément vide :
if ($QuelleLogin == "")
return "<font color='#FF0000'>Le login ne peut pas être vide</font><BR>";
// *** PLACER ICI LES INSTRUCTIONS DE VALIDATION ***
// Si on arrive ici, c'est que tout va bien : Le login est syntaxiquement correct :
return "";
}
function ValidePass ($QuellePass)
{
// SI le pass est carrément vide :
if ($QuellePass == "")
return "<font color='#FF0000'>Le Pass ne peut pas être vide</font><BR>";
// *** PLACER ICI LES INSTRUCTIONS DE VALIDATION ***
// Si on arrive ici, c'est que tout va bien : Le pass est syntaxiquement correct :
return "";
}
function ValideEMail($QuelleAdresse)
{
// SI l'E-Mail est carrément vide :
if ($QuelleAdresse == "")
return "<font color='#FF0000'>L'E-Mail ne peut pas être vide</font><BR>";
// Si l'E-Mail contient des caractères non autorisés dans une adresse mail correcte :
if (strspn(strtolower($QuelleAdresse), "abcdefghijklmnopqrstuvwxyz0123456789-_@.") < strlen($QuelleAdresse))
return "<font color='#FF0000'>L'E-Mail que vous avez fourni contient des caractères non-autorisés</font><BR>";
if (substr_count($QuelleAdresse , "@") == 0)
return "<font color='#FF0000'>Un E-Mail DOIT contenir le signe @</font><BR>";
if (substr_count($QuelleAdresse , "@") > 1)
return "<font color='#FF0000'>Un E-Mail ne peut contenir plus d'un signe @</font><BR>";
// *** PLACER ICI LES INSTRUCTIONS DE VALIDATION ***
if ((strpos($QuelleAdresse , "@")==0) || (strpos($QuelleAdresse , "@")==strlen($QuelleAdresse)-1))
return "<font color='#FF0000'>Un E-Mail ne peut commencer ni finir avec le signe @</font><BR>";
if (($QuelleAdresse[strlen($QuelleAdresse)-3] == ".") || ($QuelleAdresse[strlen($QuelleAdresse)-4] == "."))
{}
else
return "<font color='#FF0000'>Il manque un point dans votre E-Mail, ou il est mal placé</font><BR>";
if (strlen($QuelleAdresse) < 6)
return "<font color='#FF0000'>L'E-Mail doit mesurer au moins 6 caractères</font><BR>";
if (strlen($QuelleAdresse) >= 50)
return "<font color='#FF0000'>L'E-Mail ne peut excéder 50 caractères</font><BR>";
if ((strspn($QuelleAdresse[0], "abcdefghijklmnopqrstuvwxyz") == 0) || (strspn($QuelleAdresse[strlen($QuelleAdresse)-1], "abcdefghijklmnopqrstuvwxyz") == 0))
return "<font color='#FF0000'>Le premier et le dernier catactère de l'E-Mail doit être une lettre</font><BR>";
echo strpos("ab@.ef", "@.");
echo strpos("ab@cd", "@.");
// *** PLACER ICI LES INSTRUCTIONS DE VALIDATION ***
// Si on arrive ici, c'est que tout va bien : Le mail est syntaxiquement correct :
return "";
}
?>
<html>
<head>
<title>Inscription</title>
"<font color="grey">Veuillez remplir les champs obligatoires </font><font color="red">*</font>
<link rel="SHORTCUT ICON" href="/favicon.ico"/>
<link href="styles.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<?
if (($Login <> "") && ($Pass <> "") && (ValideEMail($EMail)==""))
{
echo " Merci de vous être inscrit, "$Login" , votre inscription a bien été prise en compte. ";
exit;
}
?>
<form method="post" action="inscription.php">
<!-- Gestion du Login : -->
<? if ($EnvoyerDonnee <> "") echo ValideLogin($Login); ?>
<FONT color="white"><H1>* Votre login :</H1></FONT> <input type="text" name="Login" value=<?echo $Login;?>> <br>
<!-- Gestion du Pass : -->
<? if ($EnvoyerDonnee <> "") echo ValidePass($Pass); ?>
<FONT color="blue"><H1>* Votre pass :</H1></FONT> <input type="text" name="Pass" value=<?echo $Pass;?>> <br>
<!-- Gestion de l'E-Mail : -->
<? if ($EnvoyerDonnee <> "") echo ValideEMail($EMail); ?>
<FONT color="red"><H1>* Votre E-Mail :</H1></FONT> <input type="text" name="EMail" value=<?echo $EMail;?>> <br>
<input type="submit" name="EnvoyerDonnee" value="Envoyer">
</form>
</body>
</html>
Ensuite j'ai un fichier pour la connexion sql connect_mysql.php :
<?php
//Parametre de connection
$serveur = "";
$admin = "" ;
$pass = "";
$db = "";
$table = "tbl_user";
?>
Et un fichier insertion_mysql.php qui pose surement probleme :
<?php
if ($correct){
$mail=$_POST["email"];
$utili= $_POST["login"];
require('includes/login.php');
// on ouvre la table
$requete="SELECT * FROM member where login='$login'";
$valeur=mysql_query($requete);
if (mysql_affected_rows()<>0){
echo'login existe déjà';
echo'<br>Rentrez un autre login';
// retour en arrière
}else{
$requete="SELECT * FROM member where email='$email'";
$valeur=mysql_query($requete);
if (mysql_affected_rows()<>0){
echo'Adresse mail existe déjà';
// procédure pour récupérer le mot de passe
}else{
// nom utilisateur et adresse mail inconnue, on peut rentrer l'utilisateur
echo'Inscription utilisateur';
}
}
require('includes/login.php');
}
// on commence par vérifier si le formulaire est correctement rentré
if ($correct){
$email=$_POST["email"];
$login= $_POST["login"];
$pass=$_POST['pass'];
echo'<br>';
echo'Valeurs correctes';
echo'<br>';
require('includes/login.php');
// on ouvre la table
$requete="SELECT * FROM member where login='$login'";
$valeur=mysql_query($requete);
if (mysql_affected_rows()<>0){
echo'Login existe déjà';
echo'<br>Rentrez un autre login';
// retour en arrière
}else{
$requete="SELECT * FROM member where email='$email'";
$valeur=mysql_query($requete);
if (mysql_affected_rows()<>0){
echo 'Adresse mail existe déjà';
// procédure pour récupérer le mot de passe
}else{
// nom utilisateur et adresse mail inconnue, on peut rentrer l'utilisateur
echo 'Je rentre login';
$requete="INSERT member SET login='$login',pass='$pass',email='$email'";
$erreur=mysql_query($requete);
$erreur1=mysql_error();
print($erreur);
print($erreur1);
}
}
require('includes/login.php');
}
?>
Et enfin un dernier fichier login.php :
<?
//variable pour notre connexion
$serveur = "mysql5-4";
$admin = "cyberpuncyber" ;
$password = "HoqNRkK9";
$database = "cyberpuncyber";
$table = "tbl_user";
//Etape 1 connexion au serveur Mysql
$link = @mysql_connect($serveur,$admin,$password) or die ("connexion impossible");
//Etape 2 sélectionner une database
$success = @mysql_select_db($database,$link) or die ("connexion réussie");
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
extract($_POST);
// on recupère le password de la table qui correspond au login du visiteur
$sql = "select pwd from tbl_user where login='".$login."'";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_fetch_assoc($req);
if($data['pwd'] != $pass) {
echo '<p>Mauvais login / password. Merci de recommencer</p>';
include('index2.htm'); // On inclut le formulaire d'identification
exit;
}
else {
session_start();
$_SESSION['login'] = $login;
echo 'Vous etes bien logué';
{
echo "<script language='Javascript'>document.location='telechargement.php'</script>";
}
// ici vous pouvez afficher un lien pour renvoyer
// vers la page d'accueil de votre espace membres
}
}
else {
echo '<p>Vous avez oublié de remplir un champ.</p>';
include('index2.htm'); // On inclut le formulaire d'identification
exit;
}
?>
Je vous avoue sincèrement arrivé a ce stade, je pédale un peux ds la semoule ^^ Merci d'avance pour votre aide!
Configuration: Windows Vista Firefox 3.0.1
Bas déja je vois un truc zarbi : Quand tu crées ta string de requete mysql, ta syntaxe pour concaténer les commandes sql et les variables php et strange : tu oublie les points de concaténation.
|
Salut, Je suis entrain de créer une page de ce genre, J'ai réussi à faire incrire les données dans ma DB, je peut te passer une partie d emon code si tu veut :
|