Aide formulaire connexion
touristeur92
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
avion-f16 Messages postés 19255 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19255 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous ! J'ai créé un formulaire de connexion pour mon site, avec des utilisateurs ajoutés manuellement via la base de données.
Seulement après une authentification correcte le haut de chaque page que je souhaite sécuriser m'affiche des erreurs du genre :
Warning: session_start() [function.session-start]: open(/home/users/web/b859/moo.tryit/cgi-bin/tmp/sess_534d84ad5ed0ac7d61c3f5a492597e06, O_RDWR) failed: No such file or directory (2) in /hermes/web02/b859/moo.tryit/login.php on line 25
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /hermes/web02/b859/moo.tryit/login.php:1) in /hermes/web02/b859/moo.tryit/login.php on line 25
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /hermes/web02/b859/moo.tryit/login.php:1) in /hermes/web02/b859/moo.tryit/login.php on line 25
Vous etes bien logué
Warning: Unknown: open(/home/users/web/b859/moo.tryit/cgi-bin/tmp/sess_534d84ad5ed0ac7d61c3f5a492597e06, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/home/users/web/b859/moo.tryit/cgi-bin/tmp) in Unknown on line 0
Voici le code contenu dans "login.php" :
<?
$BD_serveur = "************";
$BD_utilisateur = "**********";
$BD_motDePasse = "**********";
$BD_base = "*************";
@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de donn?.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter ?a base de donn?.");
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('login.htm'); // On inclut le formulaire d'identification
exit;
}
else {
session_start();
$_SESSION['login'] = $login;
echo 'Vous etes bien logué';
// 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('login.htm');
exit;
}
?>
D'où vient le problème à votre avis ?
Seulement après une authentification correcte le haut de chaque page que je souhaite sécuriser m'affiche des erreurs du genre :
Warning: session_start() [function.session-start]: open(/home/users/web/b859/moo.tryit/cgi-bin/tmp/sess_534d84ad5ed0ac7d61c3f5a492597e06, O_RDWR) failed: No such file or directory (2) in /hermes/web02/b859/moo.tryit/login.php on line 25
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /hermes/web02/b859/moo.tryit/login.php:1) in /hermes/web02/b859/moo.tryit/login.php on line 25
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /hermes/web02/b859/moo.tryit/login.php:1) in /hermes/web02/b859/moo.tryit/login.php on line 25
Vous etes bien logué
Warning: Unknown: open(/home/users/web/b859/moo.tryit/cgi-bin/tmp/sess_534d84ad5ed0ac7d61c3f5a492597e06, O_RDWR) failed: No such file or directory (2) in Unknown on line 0
Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/home/users/web/b859/moo.tryit/cgi-bin/tmp) in Unknown on line 0
Voici le code contenu dans "login.php" :
<?
$BD_serveur = "************";
$BD_utilisateur = "**********";
$BD_motDePasse = "**********";
$BD_base = "*************";
@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de donn?.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter ?a base de donn?.");
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('login.htm'); // On inclut le formulaire d'identification
exit;
}
else {
session_start();
$_SESSION['login'] = $login;
echo 'Vous etes bien logué';
// 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('login.htm');
exit;
}
?>
D'où vient le problème à votre avis ?
A voir également:
- Aide formulaire connexion
- Whatsapp formulaire opposition - Guide
- Gmail connexion - Guide
- Formulaire de réclamation facebook - Guide
- Connexion chromecast - Guide
- Gmail connexion autre compte - Guide
7 réponses
Pourtant je fais bien attention de supprimer tous les espaces avant, et la page login.php est vide de tout contenu.
Je viens de ré encoder en UTF-8 sans BOM mais le même message d'erreur apparait.
Voici le code complet de la page :
<?$BD_serveur = "*******";
$BD_utilisateur = "*******";
$BD_motDePasse = "*******";
$BD_base = "*******";
@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de donnee.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter ?a base de donnees.");
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
extract($_POST);
$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('login.htm');
exit;
}
else {
session_start();
$_SESSION['login'] = $login;
echo 'Vous etes bien logué';
// 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('login.htm'); // On inclut le formulaire d'identification
exit;
}?>
Voici le code complet de la page :
<?$BD_serveur = "*******";
$BD_utilisateur = "*******";
$BD_motDePasse = "*******";
$BD_base = "*******";
@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de donnee.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter ?a base de donnees.");
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
extract($_POST);
$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('login.htm');
exit;
}
else {
session_start();
$_SESSION['login'] = $login;
echo 'Vous etes bien logué';
// 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('login.htm'); // On inclut le formulaire d'identification
exit;
}?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Need help. Je sens vraiment que je suis tout proche... Seulement je ne vois vraiment pas d'où vient l'erreur. J'ai retiré les espaces hors balises PHP, encoder sans BOM,...
$session_start() est trés capricieux (pour pas dire pire), il faut le mettre au début du code juste deerriére la première balise php, j'ai déjà eu des erreurs parce que j'avais un saut à la ligne entre <?php et session_start(); donc:
<?php session_start();
ou alors pas de session.
<?php session_start();
ou alors pas de session.
Bonsoir tout le monde,
Pourquoi ne pas mettre session_start au début même si on n'est pas authentifié.
Je vous explique l'utilité.
Dans mes sites, j'ouvre systématiquement des sessions même pour la première connexion au site et j'initialise une variable appelée dans mon cas $_SESSION['type_utilisateur'] à la valeur 0 si elle n'est pas renvoyée par une page précedente, comme ça je suis sur que tous mes utilisateurs non authentifiés on la valeur 0.
Dès que quelqu'un s'identifie, cette valeur passe à 1, 2, 3 ou peu importe, l'essentiel c'est qu'elle m'indique le type de l'utilisateur connecté puisque dans la majorité des cas on a besoin d'affecter des privileges a des utilisateurs.
Voici un exemple de ce que je veux dire.
En cas de deconnexion je detruit toutes les autres variables sessions et je réinitialise la $_SESSION['type_utilisateur'] à 0
Pratique non ?
Pourquoi ne pas mettre session_start au début même si on n'est pas authentifié.
Je vous explique l'utilité.
Dans mes sites, j'ouvre systématiquement des sessions même pour la première connexion au site et j'initialise une variable appelée dans mon cas $_SESSION['type_utilisateur'] à la valeur 0 si elle n'est pas renvoyée par une page précedente, comme ça je suis sur que tous mes utilisateurs non authentifiés on la valeur 0.
Dès que quelqu'un s'identifie, cette valeur passe à 1, 2, 3 ou peu importe, l'essentiel c'est qu'elle m'indique le type de l'utilisateur connecté puisque dans la majorité des cas on a besoin d'affecter des privileges a des utilisateurs.
Voici un exemple de ce que je veux dire.
En cas de deconnexion je detruit toutes les autres variables sessions et je réinitialise la $_SESSION['type_utilisateur'] à 0
Pratique non ?
MAJ: Ce problème est résolu, j'ai tout simplement enlevé les $session_start() et cela redirige bien vers une page d'erreur en cas de mauvais pseudo/mot de passe ou champ vide . En revanche, après une authentification correcte et une redirection vers la page souhaitée, le formulaire de connexion apparait encore et toujours, sur la nouvelle page.
La page contient le début de code suivant :
<?
/*
si la variable de session login n'existe pas cela siginifie que le visiteur
n'a pas de session ouverte, il n'est donc pas logué ni autorisé à
acceder à l'espace membres
*/
if(!isset($_SESSION['login'])) {
echo 'Vous n\'avez pas les permissions pour acceder à cette zone';
include('login.htm');
exit;
}
?>
La page contient le début de code suivant :
<?
/*
si la variable de session login n'existe pas cela siginifie que le visiteur
n'a pas de session ouverte, il n'est donc pas logué ni autorisé à
acceder à l'espace membres
*/
if(!isset($_SESSION['login'])) {
echo 'Vous n\'avez pas les permissions pour acceder à cette zone';
include('login.htm');
exit;
}
?>