le 15/04/2010 à 11:35
aquievreux
Voici mon code
Voici l'erreur qu'il me reste :
Malgrés toute les modifs je ne trouve pas aidez moi svp!!!!!!!!!!!
<?php
/* Programme : Login.php
* Description : Programme de Login pour la section à accés réservé de l'animalerie. Il propose deux options :
* 1 - S'identifier par un couple nom de login/mot de passe
* 2 - Créer un nouveau compte Identificateurs et mots de passe sont conservés dans une base de données MySQL
*
*/
session_start();
include("chiens.inc"); // modifier le nom
switch(@$_POST['do'])
{
case "login":
$cxn = mysqli_connect($host, $user, $password, $database) or die ("Connexion impossible au serveur dans case login");
$sql = "SELECT loginName FROM Member WHERE loginName='$_POST[fusername]'";
$result = mysqli_query($cxn,$sql) or die ("Requête en échec 1.");
$num = mysqli_num_rows($result);
if ($num > 0) // loginname non trouvé
{
$sql = "SELECT loginName FROM Member WHERE loginName='$_POST[fusername]' AND password=md5('$_POST[fpassword]')";
$result2 = mysqli_query($cxn,$sql) or die("Requête en échec2.");
$num2 = mysqli_num_rows($result2);
if ($num2 > 0) // Mot de passe OK
{
$_SESSION['auth'] = "yes";
$logname = $_POST['fusername'];
$_SESSION['logname'] = $logname;
$today = date("Y_m-d h:i:s");
$sql = "INSERT INTO Login (loginName,loginTime) VALUES ('$logname', '$today')";
$result = mysqli_query($cxn,$sql) or die ("INSERT en échec");
header("Location: membre_page.php"); /***** *****/
}
else // mot de passe incorrect
{
$message = "Le nom de Login '$POST[fusername]' existe, mais le mot de passe ne va pas ! Réessayez.<br>";
include("login_form.inc");
}
}
elseif ($num == 0) // Nom de login introuvable
{
$message = "Le nom de login que vous avez saisi n existe pas. Essayez encore.<br>";
include("login_form.inc");
}
break;
case "new":
/* Recherche de champs vide */
foreach($_POST as $field => $value)
{
if ($field != "fax")
{
if ($value == "")
{
$blanks[] = $field;
}
}
}
if (isset($blanks))
{
$message_new = "Champs non saisis. Veuillez les renseigner : ";
foreach($blanks as $value)
{
$message_new = "$value, ";
}
extract($_POST);
include("login_form.inc");
exit();
}
/* Validation des données */
foreach($_POST as $field => $value)
{
if (!empty($value))
{
//if (eregi("name", $field) and !eregi("login", $field))
if (preg_match("/name/i", $field) and !preg_match("/login/i", $field))
//if (stristr($field, "name") and !stristr($field, "login"))
{
//if (!ereg("^[A-Za-z' -]{1,50}$", $value))
if (!preg_match("/^[A-Za-z' -]{1,50}$/i", $value))
//if (!strstr("^[A-Za-z' -]{1,50}$", $value))
{
$errors[]= "$value n est pas un nom valide.";
}
}
//if (eregi("street", $field) or eregi("addr",$field) or eregi("city", $field))
if (preg_match("/street/i", $field) or preg_match("/addr/i",$field) or preg_match("/city/i", $field))
//if (stristr($field, "street") or stristr($field, "addr") or stristr($field, "city"))
{
//if(!ereg("^[A-Za-z0-9.,' -]{1,50}$",$value))
if(!preg_match("/^[A-Za-z0-9.,' -]{1,50}$/i",$value))
//if(!strstr($value, "^[A-Za-z0-9.,' -]{1,50}$"))
{
$errors[] = "$value est incorrect.";
}
}
//if (eregi("email", $field))
if (preg_match("/email/i", $field))
//if (stristr($field, 'email'))
{
//if (!ereg("^.+@.+\\..+$",$value))
if (!preg_match("/^.+@.+\\..+$/i",$value))
//if (!strstr($value, "^.+@.+\\..+$"))
{
$errors[] = "$value est refusé comme email.";
}
}
} // Fin de if empty
} // Fin de foreach
if (@is_array($errors))
{
$message_new = "";
foreach($errors as $value)
{
$message_new .= $value. " Reessayez<br />";
}
extract($_POST);
include("login_form.inc");
exit();
}
/* Nettoyage des données */
$cxn = mysqli_connect($host, $user, $password, $database);
foreach($_POST as $field => $value)
{
if ($field != "Button" and $field != "do")
{
if ($field == "password")
{
$password = strip_tags(trim($value));
}
else
{
$fields[] = $field;
$value = strip_tags(trim($value));
$values[] = mysqli_real_escape_string($cxn, $value);
$$field = $value;
}
}
}
/* Le nom de login existe t-il deja ? */
$sql = "SELECT loginName FROM Member WHERE loginName = '$loginName'";
$result = mysqli_query($cxn, $sql) or die ("Requete SELECT en echec dans case new");
$num = mysqli_num_rows($result);
if (num > 0)
{
$message_new = "$loginName existe deja. Choisissez en un autre.";
include("login_form.inc");
exit();
}
/* Ajout d un nouveau membre dans la base */
else
{
$today = date("Y-m-d");
$fields_str = implode(",", $fields);
$values_str = implode(",", $values);
$fields_str .=",createDate";
$values_str .='"'.","."md5"."('".$password."')";
$sql = "INSERT INTO Member ";
$sql .="(".$fields_str.")";
$sql .=" VALUES ";
$sql .="(".'"'.$values_str.")";
$result = mysqli_query($cxn, $sql) or die ("Requete INSERT en echec.");
$_SESSION['auth']="yes";
$_SESSION['logname'] = $loginName;
/* Envoyer un email au nouveau membre */
/*
$emess = "Un nouveau compte de membre vient d'être créé.";
$emess .= " Votre identificateur et votre mot de passe sont : ";
$emess .= "\n\n\t$loginName\n\t$password\n\n";
$emess .= "Nous apprecions l interet que vous portez a notre magasin. \n\n";
$subj = Votre nouveau compte :
$mailsnd = mail("$email","$subj","$emess");
header("Location: Nouveau_membre.php");
*/
}
break;
default:
include("login_form.inc");
}
?>
Voici l'erreur qu'il me reste :
Notice: Use of undefined constant num - assumed 'num' in C:\wamp\www\autre\login.php on line 176
Requete INSERT en echec.
Malgrés toute les modifs je ne trouve pas aidez moi svp!!!!!!!!!!!