espace membre

Petit nouveau ! | 8 Messages

04 nov. 2012, 01:04

Bonjour,

Je suis entrain de faire un espace membre. A la page de connexion, lorsque l'utilisateur se connecte, elle n'envoie pas à la page membre avec la fonction header. Voila mon script en php:

<?php

// connexion à la base de données
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('espace', $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('membre.php');
exit();
}

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

<body>
<?php include('clude.html'); ?>
Connexion à l'espace membre :<br />
<form action="login.php" method="post">
Login : <input type="text" name="login"><br />
Mot de passe : <input type="password" name="pass"><br />
<input type="submit" name="connexion" value="Connexion">
</form>
<a href="form.php">Vous inscrire</a>
<?php
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>


Est-ce que vous pouvez m'aider à trouver mes erreurs s'il vous plait. Je vous en remercie.

Eléphanteau du PHP | 14 Messages

04 nov. 2012, 08:14

Mes 2 cts :
pas header('membre.php'); mais ---> header('Location: membre.php');

Petit nouveau ! | 8 Messages

04 nov. 2012, 13:01

Merci de m'avoir répondu. En effet j'ai fait ce que vous m'avez dit de faire, il ne marche pas:

// si on obtient une réponse, alors l'utilisateur est un membre
l16 if ($data[0] == 1) {
l17 session_start();
l18 $_SESSION['login'] = $_POST['login'];
l19 --->header('Location: membre.php');
exit();
}

Mais on m'affiche l'erreur: Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `'$'' in C:\apachefriends\xampp\htdocs\login.php on line 19

Eléphanteau du PHP | 40 Messages

04 nov. 2012, 14:39

Et comme ça?
header("Location:membre.php");
en métant "" aux lieu de ' '

Petit nouveau ! | 8 Messages

04 nov. 2012, 20:39

Je l'ai fait mais il y a encore plus d'erreurs :cry: :

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\apachefriends\xampp\htdocs\login.php:1) in C:\apachefriends\xampp\htdocs\login.php on line 17

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\apachefriends\xampp\htdocs\login.php:1) in C:\apachefriends\xampp\htdocs\login.php on line 17

Warning: Cannot modify header information - headers already sent by (output started at C:\apachefriends\xampp\htdocs\login.php:1) in C:\apachefriends\xampp\htdocs\login.php on line 19

ViPHP
AB
ViPHP | 5818 Messages

04 nov. 2012, 21:20


Eléphanteau du PHP | 40 Messages

04 nov. 2012, 21:31

vérifie que ton fichier est codé en UTF8 SANS BOM y'à des chance pour que ça résout ton problème mais surtout garde les deux " " du header

Mammouth du PHP | 790 Messages

04 nov. 2012, 23:02

rien de sur mais ni a t'il pas du html au autre avant ça ? ou des espaces avant la balise php ?
il ma semble déjà avoir eu un truc de ce genre #-o

édit: juste pour voir, enlève tous ce qu'il y a en haut avant ta balise php
Les fautes de grammaire et d'orthographe contenu dans mes postes sont sous copyright, vous pouvez les utiliser pour un usage personnelle mais vous ne devrez en aucun cas les utiliser a des fins commercial sans une autorisation écrite de ma part.

Eléphant du PHP | 76 Messages

04 nov. 2012, 23:58

J'ai eu le même problème :) En local, tout fonctionne bien. Mais une fois en ligne, ça ne fonctionne plus.

C'est que lorsque le document .php est enregistré, plusieurs code non visible sont insérer avant le code.

la fonction php "header" doit être appelé avant le moindre caractères html...

Donc ça plante.

Pour régler cela, il suffit de modifier l'encodage du document, et de l'enregistrer a nouveau. (sur notepad++, c'est en haut complètement, dans "Encodage")

Il faut choisir : (Encoder en UFT-8 (SANS BOM))

Et le problème sera réglé :) C'est la même chose pour les session_start();