Encore un probleme session_start() php
mathrules4
-
jjsteing Messages postés 1670 Date d'inscription Statut Contributeur Dernière intervention -
jjsteing Messages postés 1670 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, jai un probleme avec la sessions_start() en php et voici le code qui fait tout buguer:
<?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', 'ascent');
mysql_select_db ('sitedb', $base);
// 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="'.mysql_escape_string(md5($_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: membre.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 à l'espace membre :<br />
<form action="index.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;
?>
</body>
</html>
Si quelqun pourais m'empècher cette erreur:
Warning: session_start() [function.session-start]: open(..\Server\tmp\sess_119b1f8b06c223556e90c6679741ce02, O_RDWR) failed: No such file or directory (2) in C:\Trinitycore1\Server\htdocs\espace membre\index.php on line 19
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Trinitycore1\Server\htdocs\espace membre\index.php:19) in C:\Trinitycore1\Server\htdocs\espace membre\index.php on line 19
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Trinitycore1\Server\htdocs\espace membre\index.php:19) in C:\Trinitycore1\Server\htdocs\espace membre\index.php on line 19
<?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', 'ascent');
mysql_select_db ('sitedb', $base);
// 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="'.mysql_escape_string(md5($_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: membre.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 à l'espace membre :<br />
<form action="index.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;
?>
</body>
</html>
Si quelqun pourais m'empècher cette erreur:
Warning: session_start() [function.session-start]: open(..\Server\tmp\sess_119b1f8b06c223556e90c6679741ce02, O_RDWR) failed: No such file or directory (2) in C:\Trinitycore1\Server\htdocs\espace membre\index.php on line 19
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Trinitycore1\Server\htdocs\espace membre\index.php:19) in C:\Trinitycore1\Server\htdocs\espace membre\index.php on line 19
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Trinitycore1\Server\htdocs\espace membre\index.php:19) in C:\Trinitycore1\Server\htdocs\espace membre\index.php on line 19
A voir également:
- Encore un probleme session_start() php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
9 réponses
a tester :
ouvre ta page avec notepad++
Encodage ==> Convertir en UTF-8 (sans BOM)
Enregistre
sinon un rappel :
Pour utiliser des sessions basées sur les cookies, session_start() doit être appelée avant d'afficher quoi que ce soit dans le navigateur.
ouvre ta page avec notepad++
Encodage ==> Convertir en UTF-8 (sans BOM)
Enregistre
sinon un rappel :
Pour utiliser des sessions basées sur les cookies, session_start() doit être appelée avant d'afficher quoi que ce soit dans le navigateur.
okay jai trouver mais sa ne marche pas plus
et jai mit mon session_start() dans un IF donc il y a du code en haut de session_start() car je ne veux pas que les utilisateur sois capable de rentrer dans la session si le mot de pass et account est faut aidez moi svp.
et jai mit mon session_start() dans un IF donc il y a du code en haut de session_start() car je ne veux pas que les utilisateur sois capable de rentrer dans la session si le mot de pass et account est faut aidez moi svp.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Met le session_start() au tout début de ton code.
Il ne dois strictement rien y avoir avant qui soit affiché par le navigateur.
<?php session_start(); ...
Il ne dois strictement rien y avoir avant qui soit affiché par le navigateur.
D'où mon "rien y avoir avant qui soit affiché par le navigateur."
Un code de traitement PHP n'est pas affiché par le navigateur tant qu'il n'y a ni echo ni print.
Un simple espace avant le <?php peu suffire à faire planté le code.
Un code de traitement PHP n'est pas affiché par le navigateur tant qu'il n'y a ni echo ni print.
Un simple espace avant le <?php peu suffire à faire planté le code.