Script php qui affiche erreur[1ère partie résolu, 2ème non-résolu]
Forum Programmation : Script php qui affiche erreur[1ère partie résolu, 2ème non-résolu]
Bonjour, j'ai un espace membre sur mon site, tout neuf. Toutes les pages marche sauf une(celle qui doit être proteger^^).
Cela m'affiche sa:
Code :
|
Voici le code de la page concerner:
<?php
session_start();
if(!isset($_SESSION['login']))
{
exit;
}
echo '<html>
<head>
<title>Allo-money.com</title>
<style type="text/css">
<!--
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
font-weight: bold;
}
body {
background-color: #FFFFFF;
}
a {
font-size: 12px;
color: #333333;
font-weight: bold;
font-style: italic;
}
a:link {
text-decoration: underline;
}
a:visited {
text-decoration: underline;
color: #333333;
}
a:hover {
text-decoration: none;
color: #333333;
}
a:active {
text-decoration: underline;
color: #333333;
}
-->
</style>
</style>
</head>
<body>
ce que je met dans l'espace membre</body>
</html>
'
?>
session_start() doit être à la première ligne, il ne doit même pas y avoir de retour à la ligne me semble-t-il or ton erreur se situe à la 3ème ligne...
J'ai donné le code source de la page, et session_start() et à la première ligne après le "<?php".
au lieu de exit;
fais exit();
Un lien :
http://www.freewebmaster-scripts.com/modules/newbb/sujet-173-2.html
EDIT : M...., c'est pour l'hébergeur free. C'est peut être une solution analogue pour ton hébergeur...
J'ai testé chez moi ton script (hebergeur free) et quand je créé un repertoire sessions, ça marche.
Je ne suis pas chez free.
et puis y a un problème avec ton echo ' bla bla '
ton echo s'arrete avant ça : espace membre</body>
</html> puisque il rencontre l'apostrophe et en plus manquait le point virgule après ton echo...
perso je ferais plus ça comme code :
<?php
session_start();
if(isset($_SESSION['login']))
{
echo "<html>
<head>
<title>Allo-money.com</title>
<style type='text/css'>
<!--
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
font-weight: bold;
}
body {
background-color: #FFFFFF;
}
a {
font-size: 12px;
color: #333333;
font-weight: bold;
font-style: italic;
}
a:link {
text-decoration: underline;
}
a:visited {
text-decoration: underline;
color: #333333;
}
a:hover {
text-decoration: none;
color: #333333;
}
a:active {
text-decoration: underline;
color: #333333;
}
-->
</style>
</head>
<body>
ce que je met dans l'espace membre</body>
</html>
";
}
?>
testes et dis nous...
Sa ne marche pas, sa me met sa:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /media/160go/hebergement/leroi/index_mbr.php:2) in /media/160go/hebergement/leroi/index_mbr.php on line 3
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /media/160go/hebergement/leroi/index_mbr.php:2) in /media/160go/hebergement/leroi/index_mbr.php on line 3
ce que je met dans l'espace membre
Voila. Merci pour ta réponse quand même.
Au faite tu à oublier la fonction exit()... :-D
Mis à jour du script-j'ai rajouté la fonction exit() et sa me met-:
Parse error: syntax error, unexpected T_IF in /media/160go/hebergement/leroi/index_mbr.php on line 4
Ligne 4 il y a exit() je crois.
pas besoin d'exit puisque tu fais le test inverse de ce que tu avais au départ
tu testes si la session existe et non si elle n'existe pas...
copies colles le code que j'ai écrit si tu ne l'as pas fait
sinon cette erreur peut arriver quand le session_start est déclaré deux fois
exemple si tu inclus une page qui le fait aussi
Je maintiens ce que j'ai dit dans mon premier post : une erreur à la troisième ligne implique que ta première ligne est vide et ça, ça peut générer une erreur.
J'ai copié coller ton code, sa ne marche pas.
Voici mon code à jour:
<?php
session_start()
if(!isset($_SESSION['login']))
{
exit()
}
echo '<html>
<head>
<title>Allo-money.com</title>
<style type="text/css">
<!--
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
font-weight: bold;
}
body {
background-color: #FFFFFF;
}
a {
font-size: 12px;
color: #333333;
font-weight: bold;
font-style: italic;
}
a:link {
text-decoration: underline;
}
a:visited {
text-decoration: underline;
color: #333333;
}
a:hover {
text-decoration: none;
color: #333333;
}
a:active {
text-decoration: underline;
color: #333333;
}
-->
</style>
</style>
</head>
<body>
ce que je met dans l espace membre</body>
</html>
'
?>
Il n'y a pas de fois session_start(verifie toi-même).
ok donc le unexpected t_if
c bizarre
après if ( )
{
exit();
}
mais le reste dans un else
{
//ton reste de code
}
Edit : PENSES BIEN AUX POINTS-VIRGULES php devient fou quand tu les zappes...
Euh, je ne suis pas sur d'avoir compris. Tu peut copié le code et faire la modification, s'il te plait?
<?php
session_start();
if(!isset($_SESSION['login']))
{
exit();
}
else
{
echo '<html>
<head>
<title>Allo-money.com</title>
<style type="text/css">
<!--
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
font-weight: bold;
}
body {
background-color: #FFFFFF;
}
a {
font-size: 12px;
color: #333333;
font-weight: bold;
font-style: italic;
}
a:link {
text-decoration: underline;
}
a:visited {
text-decoration: underline;
color: #333333;
}
a:hover {
text-decoration: none;
color: #333333;
}
a:active {
text-decoration: underline;
color: #333333;
}
-->
</style>
</head>
<body>
ce que je met dans l espace membre</body>
</html>
';
}
?>
Non sa ne marche pas, sa remet l'erreur du tout début.
L'erreur qu ise met:
Parse error: syntax error, unexpected '}' in /media/160go/hebergement/leroi/index_mbr.php on line 7
Essaie :
<?php session_start(); ?>. Et rien d'autre.
t'as fait les tests avec et sans t'etre connecté à ton espace membre ?
cette erreur veut tout simplement dire qu'il ya une } de trop
essai de virer le exit et de mettre un echo '.....': à la place.
Et indique nous l'erreur produite stp
Autre question :
Juste pour savoir, ta page t l'include ou pas ?
J'ai supprimé le } de trop. J'ai remplacer exit par echo 'Vous devez être connecter pour pouvoir voir cette page';
Et ça m'affiche l'erreur suivante:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /media/160go/hebergement/leroi/index_mbr.php:2) in /media/160go/hebergement/leroi/index_mbr.php on line 3
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /media/160go/hebergement/leroi/index_mbr.php:2) in /media/160go/hebergement/leroi/index_mbr.php on line 3
ce que je met dans l espace membre
.
il ne faut vraiment rien avant le '<?php'. Même pas une espace ou un saut de ligne !
Sa marche, MERCI!!!
Pfft, à quoi ça sert de te donner la réponse dès le troisième post si tu lis pas ?
et encore, c'était le 3e post mais la première réponse...
Merci quand même et escuse moi.
J'affiche les informations de mon membre et pour tester j'ai fait 2 compte.
Et quand je me connecte avec le 2ème compte, sa m'affiche les infos du premier!
Pourquoi?
Voila mon code(final j'espère!):
$sql_query="SELECT * FROM membre";
$result=mysql_query($sql_query) or die(mysql_error());
$row=mysql_fetch_array($result);
echo "<html>
<head>
<title>Espace membres</title>
</head>
<body>
<?php
id : ".$row['id']."
pseudo: ".$row['pseudo']."
paswword: ".$row['pass']."
e-mail: ".$row['email']."
Confirmation: ".$row['confirm']."
Nom: ".$row['nom']."
Prénom: ".$row['prenom']."
<br>Voila vos information personnelles. Si vous désirez les changer contactez le webmaster. Si votre confirmation est égale à
0 c'est que vous n'avez pas cliquer sur le liens de confirmation dans votre e-mail. etant donnés que c'est impossible, vous devriez
toujours voir apparaitre 1.
?>
</body>
</html>
Et donc là sa affiche les infos du premier membre.
il faut modifier ta requete et mettre une condition (WHERE pseudo='...' LIMIT 1)
Et mettre quoi à la place?
A vrai dire je me disiat que c'était la requête mais je demandai au cas ou.
Oui, ok, mais étant donné que c'est la même page pour tout les membre, je vais pas afficher seulement les infos d'un membre pour 50 membres?
Si vous pouvez m'aider, merci d'avance.
Sinon, je vais renoncer à l'idée de permettre à mes membres de voir leurs infos perso.
bon ben alors là, c'est vraiment simple comme bonjour au début (aprés ta vérif de l'existence de la session):
$pseudo=$_SESSION['pseudo'];
$req="SELECT * FROM membre WHERE pseudo='$pseudo' ";
$result=mysql_query($req);//exec de la requete
$ligne=mysql_fetch_array($result);//extraction de la ligne correspondant au pseudo de session
extract($ligne);//extraction des variables pseudo, nom, prénom, pass...etc
echo "$pseudo<br>";
echo "$pass<br>";
etc etc
c'est bon t'es plus éclairé l'ami ?
bon ben alors là, c'est vraiment simple comme bonjour au début (aprés ta vérif de l'existence de la session):
Code :
|
etc etc
c'est bon t'es plus éclairé l'ami ?
EDIT : Oups, désolé pour le doublon j'ai annulé l'envoi du premier trop tard
Il y a 422 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
