connexion session

Eléphanteau du PHP | 11 Messages

10 mars 2011, 22:41

Bonjour,

je voudrais que l'administrateur d'un site puisse se connecter avec un login et password.

J'ai 2 fichiers:

- le premier login.php qui contient:

if (isset($message)) {
echo $message;
} else {
echo "<FORM ACTION=\"connexion.php\" METHOD=\"POST\">\n";
echo "Identifiant : <INPUT TYPE=\"text\" NAME=\"login\"><br />\n";
echo "Mot de passe : <INPUT TYPE=\"text\" NAME=\"mdp\">\n";
echo "<INPUT TYPE=\"submit\" value=\"Envoyer\" name=\"Submit\" >\n";
echo "</FORM>\n";
}
echo "</div>\n";

function isIdentified ($l, $m) {
return TRUE;
}
if (isset($_POST['login'])) {
$login = $_POST['login'];
$password = $_POST['mdp'];
if (isIdentified($login, $password)) {
/*session_set_cookie_params(10800); // identification pour 3 heures*/
session_name('CELECC');
session_start();
$_SESSION['login'] = $login;
$_SESSION['password'] = $password;
$message = "Bonne visite !\n";
}
}

- le second connexion.php qui contient:
function isIdentified ($l, $m) {
return TRUE;
}
session_name('CELECC');
session_start();
if ((isset($_SESSION['login'])) && (isset($_SESSION['password']))
&& (isIdentified($_SESSION['login'], $_SESSION['password']))) {
$message = "Bonne visite $login !\n";
} else {
$message = "Non, acc&egrave;s refus&eacute;.\n";
}

Le premier fichier renvoie vers le second. Or, je ne sais pas ou indiquer le login et mot de passe accepté pour la connexion.

J'ai ces messages d'erreurs avant m^me de pouvoir rentrer un login et un password

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/www/j/je/jea/jeanfrancois.vetillard.perso.sfr.fr/public_html/C.Elecc/bibli.php:8) in /var/www/j/je/jea/jeanfrancois.vetillard.perso.sfr.fr/public_html/C.Elecc/connexion.php on line 13

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/j/je/jea/jeanfrancois.vetillard.perso.sfr.fr/public_html/C.Elecc/bibli.php:8) in /var/www/j/je/jea/jeanfrancois.vetillard.perso.sfr.fr/public_html/C.Elecc/connexion.php on line 13

Qu'en pensez-vous?
merci de votre aide

Eléphant du PHP | 241 Messages

10 mars 2011, 23:12

Salut,
le session_start() doit être appelé avant n'importe quel autre données, donc au tout tout début de la page.

Attention à bien sécuriser les $_POST[''] avec un htmlspecialchars ou un htmlentities

Ensuite pour le reste j'avoue ne pas bien tout comprendre ^^'

ViPHP
xTG
ViPHP | 7331 Messages

11 mars 2011, 08:56

Attention à bien sécuriser les $_POST[''] avec un htmlspecialchars ou un htmlentities
Pour être plus précis c'est la variable $login que tu te dois de protéger avec ces fonctions.
Car si le pseudo contient un code html ou javascript il sera interprété.