par
dunbar » 12 juil. 2006, 00:10
C'est exact mais attention à ne pas inclure une variable entre apostrophes, elle ne serait pas interprétée. Sépare la variable du reste de la chaine de caractères:
header('Location:'.$url);
Ok alors encore une question stp, j'ai créer un champ (VARCHAR) ou j'ai indiqué l'url "
http://monsite.com" c'est correct ??? parce que si oui cela ne marche pas, quand je me logue mon formulaire se vide et rien ne se passe....
Mon code
<?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', '', '');
mysql_select_db ('', $base);
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location:'.$url);
exit();
}
// si on ne trouve aucune réponse, le visiteru 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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
<body background="img/grd-4px.gif">
<p align="center"><font size="6" face="Academy Engraved LET">Identification</font><font face="Algerian" size="6">
</font>:</p>
<p align="center"> </p>
<p align="center"><br />
</p>
<form action="index.php" method="post">
<div align="center">Login :
<input type="text" name="login" value="<?php if (isset($_POST['login'])) echo stripslashes(htmlentities(trim($_POST['login']))); ?>">
<br />
Mot de passe :
<input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo stripslashes(htmlentities(trim($_POST['pass']))); ?>">
</div>
<div align="center">
<br />
<input type="submit" name="connexion" value="Connexion">
</div>
</form>
<div align="center">
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</div>
</body>
</html>
[quote="Truc"]C'est exact mais attention à ne pas inclure une variable entre apostrophes, elle ne serait pas interprétée. Sépare la variable du reste de la chaine de caractères:
[php]header('Location:'.$url); [/php][/quote]
Ok alors encore une question stp, j'ai créer un champ (VARCHAR) ou j'ai indiqué l'url "http://monsite.com" c'est correct ??? parce que si oui cela ne marche pas, quand je me logue mon formulaire se vide et rien ne se passe.... :oops:
Mon code
[php]<?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', '', '');
mysql_select_db ('', $base);
// on teste si une entrée de la base contient ce couple login / pass
$sql = 'SELECT count(*) FROM membre WHERE login="'.addslashes($_POST['login']).'" AND pass_md5="'.md5(addslashes($_POST['pass'])).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);
mysql_close();
// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['login'] = $_POST['login'];
header('Location:'.$url);
exit();
}
// si on ne trouve aucune réponse, le visiteru 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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
<body background="img/grd-4px.gif">
<p align="center"><font size="6" face="Academy Engraved LET">Identification</font><font face="Algerian" size="6">
</font>:</p>
<p align="center"> </p>
<p align="center"><br />
</p>
<form action="index.php" method="post">
<div align="center">Login :
<input type="text" name="login" value="<?php if (isset($_POST['login'])) echo stripslashes(htmlentities(trim($_POST['login']))); ?>">
<br />
Mot de passe :
<input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo stripslashes(htmlentities(trim($_POST['pass']))); ?>">
</div>
<div align="center">
<br />
<input type="submit" name="connexion" value="Connexion">
</div>
</form>
<div align="center">
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</div>
</body>
</html>
[/php]