aquievreux

Inscris le 12/04/2010 à 11:49
  • Nombre de sujets
    5
  • Nombre de messages
    22
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

aquievreux
le 15/04/2010 à 11:35
Notice: Use of undefined constant ...
Voici mon code

<?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!!!!!!!!!!!
aquievreux
le 15/04/2010 à 10:39
Deprecated: Function ereg() is deprecated
Voici le message d'erreur que j'obtiens :Deprecated: Function ereg() is deprecated in C:\wamp\www\autre\login.php on line 78

Voici mon code :

<?php
if (ereg("name", $field) and !eregi("login", $field))
{
if (!ereg("^[A-Za-z' -]{1,50}$", $value))
{
$errors[]= "$value n est pas un nom valide.";
}
}
?>


Cependant je ne sais pas par quoi le remplacer, est ce que cela serait correct ?????


<?php
if (stristr("name", $field) and !stristr("login", $field))
?>
aquievreux
le 13/04/2010 à 14:06
login
il n'execute aucune requete, que les champs soit vides, avec des données inconnues ou des connues il me fait la même chose. Cad il recharge la même page mais me l'affiche vierge.
aquievreux
le 13/04/2010 à 13:57
login
je ne parviens tjrs pas a trouver, je pense que c'est un pb de requetes, il ne doit pas parvenir a acceder a ma bdd à mon avis
aquievreux
le 13/04/2010 à 11:02
login
Merci je vais essayer de voir avec ça
aquievreux
le 13/04/2010 à 10:30
login
oui il reste ds ma bdd cependant j'ai l'impression qu'il ne le retrouve pas, je ne trouve pas ma solution et ça m'énerve.
De plus je suis débutante j'ai commencé le php et html il y a une semaine dc je suis un peu perdue
aquievreux
le 13/04/2010 à 09:43
login
J'ai modifié quelque petite chose dans le code le revoilà :

<?php 

// on teste si le visiteur a soumis le formulaire de connexion
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

$base = mysql_connect ('localhost', 'root', '') or die(mysql_error());;
mysql_select_db ('djp', $base) or die(mysql_error());;

// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_real_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_real_escape_string($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
//var_dump($data);

mysql_free_result($req);
mysql_close($base);

// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
//<p><strong>Vous êtes bien connecté !!!!</strong></p>
header('Location: bienvenue.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}
// sinon, alors la, il y a un gros problème :)
else {
$erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
}
}
else {
$erreur = 'Au moins un des champs est vide.';
}
}

?>


<html> 
<head>
<title>Accueil</title>
</head>

<body>
Connexion a l'espace membre :<br />
<form action="bienvenue.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
<input type="submit" name="connexion" value="Connexion">
</form>
<a href="inscription.php">Vous inscrire</a>
<?php

if (isset($erreur)) echo '<br /><br />',$erreur;
?>

<a href="formulaire.php?id=1"><p><strong>Bon d'intervention sur site : fiche a remplir</strong></p></a>


</body>
</html>
aquievreux
le 13/04/2010 à 09:37
login
Pour moi aprés longue étude l'erreur viendrai d'ici :

<?php
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
//var_dump($data);
?>


Car lorsque j'effectue une inscription tout fonctionne bien, si je ne me deconnecte pas il retrouve le membre lors de l'identification. Cependant lorsque je me déconnecte, et que je cherche par la suite à réidentifier ce même membre il ne le trouve plus.
L'erreur viendrai t-elle de ma requête??
LoadingChargement en cours