Problème php - Fonction die, arret de script

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par guicara, 18 Juin 2006.

  1. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Bonjour,

    Je viens d'installer un espace membre.
    Si l'utilisateur n'est pas connecté sur une page qui require une authentification, le script s'arrère et un message s'arrète.

    Code:
    <?php
    session_start(); //On ouvre la session pour pouvoir verifier si le membre est connecté
    require("conf.php3"); //Commme d'ab
    
    if (!isset($_SESSION['pseudo'])) //Le code pour verifier qu'une session existe
    {
    	die('Vous devez être identifier pour pouvoir utiliser cette fonctionnalité. Si vous ne possédez pas de compte, rendez vous au formulaire d\'inscription.');
    }
    
    ....
    ?>
    Le problème:

    Ce message ne s'affiche pas dans le design de mon site, mais sur une page blanche, si j'esseille de faire sa >

    Code:
    <?php
    session_start(); //On ouvre la session pour pouvoir verifier si le membre est connecté
    require("conf.php3"); //Commme d'ab
    
    ...
    ?>
    
    Mon code html
    
    <? 
    if (!isset($_SESSION['pseudo'])) //Le code pour verifier qu'une session existe
    {
    	die('Vous devez être identifier pour pouvoir utiliser cette fonctionnalité. Si vous ne possédez pas de compte, rendez vous au formulaire d\'inscription.');
    }
    ?>      (juste avant mon texte que je ne veux pas afficher)
    
    Fin code html
    
    La moitié de mon design s'affiche, car quand j'affiche le design, ce qui suit est stoppé (est ce n'est pas que le php ! c'est tout le design... ce qui fait que je ne vois pas la bas de mon design...

    Comment faire ?
    Y a t'il un autre moyen pour dire au visiteur qu'il ne peux pas voir cette page ?

    Merci d'avance !
     
  2. ninive
    ninive WRInaute discret
    Inscrit:
    3 Mars 2004
    Messages:
    103
    J'aime reçus:
    0
    Au lieu d'arrêter l'exécution du script si l'utilisateur n'est pas connecté, fais plutôt un include du texte à afficher si l'utilisateur est connecté. Sinon, tu affiches le message d'erreur.

    if (!isset($_SESSION['pseudo'])) //Le code pour verifier qu'une session existe
    {
    print('Vous devez être identifier pour pouvoir utiliser cette fonctionnalité. Si vous ne possédez pas de compte, rendez vous au formulaire d\'inscription.');
    }

    else
    {
    print(' ton texte à afficher');
    };
     
  3. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Si j'ai bien compris si l'utilisateur n'est pas connecté sela s'affiche:

    print('Vous devez être identifier pour pouvoir utiliser cette fonctionnalité. Si vous ne possédez pas de compte, rendez vous au formulaire d\'inscription.');

    Si il est connecté le texte "ton texte à afficher" s'affiche.
    ok c'est très bien, mais ce n'est pas supert,

    car si à la place de "ton texte à afficher" je veux mettre par exemple un script, un tableau html, c'est compliqué, il faudrais que je mette des "\"

    Comprend tu ?

    Enfaite je voudrais cacher un formulaire php d'ajout de kis graphique, de commentaires...
     
  4. dmathieu
    dmathieu WRInaute accro
    Inscrit:
    9 Janvier 2004
    Messages:
    5 596
    J'aime reçus:
    0
    Eh bien, il suffit que tu sorte des balises php, et que tu mette ton code.
    Code:
    <?php
    if (!isset($_SESSION['pseudo'])) //Le code pour verifier qu'une session existe
    {
    print('Vous devez être identifier pour pouvoir utiliser cette fonctionnalité. Si vous ne possédez pas de compte, rendez vous au formulaire d\'inscription.');
    }
    else
    { ?>
    <table><tr><td>test</td></tr></table>
    <?php }; ?>
    Même chose pour le if au dessus.
    Il est logique que le bas de ton design soit coupé lors d'un die.
    die arrete l'execution d'un script. Donc, ton script est arreté en plein milieu, tu n'a pas le reste.
     
  5. mowmow
    mowmow WRInaute impliqué
    Inscrit:
    3 Novembre 2004
    Messages:
    865
    J'aime reçus:
    0
    Ou encore mieux, utiliser des templates... :)
     
  6. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Merci pour tous vos informations, je vais essailer de faire ce que ma dit kazhar, lancé sur l'idée de ninive.

    Je vous tiens au courant dans les prochaines heures !
    Cordialement

    Guicara

    Edit ----

    Cette méthode reste t'elle sécurisé ?
     
  7. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    Excusez moi pour le double post,
    tout marche très bien.

    J'ai rajouter un block dans mon menu, qui s'affiche (que si on est connecté). Il contient des infos pour l'identifier....

    La tout parche
    apart quand je met le code pour afficher le menu (que si identifier) sur la page ou je possèfe mon livre d'or (script php) qui n'utilise pas les sessions.

    A la place du menu du membre (connecté ou pas) je vois ceci:

    Code:
    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /homepages/18/d144479851/htdocs/livre/index.php:11) in /homepages/18/d144479851/htdocs/livre/index.php on line 571
    
    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /homepages/18/d144479851/htdocs/livre/index.php:11) in /homepages/18/d144479851/htdocs/livre/index.php on line 571
    Vous pouvez voir par vous même:
    http://www.graphiques-kits.com/livre/index.php

    D'ou sa vient ?
    J'ai ensuite enlever le code pour afficher ce fameux menu, et sa apparait toujours !

    Merci de votre aide
    (ps: je n'ais pas voulu ouvrir un nouveau post pour sa)
     
  8. sebnutt
    sebnutt WRInaute impliqué
    Inscrit:
    10 Décembre 2003
    Messages:
    969
    J'aime reçus:
    0
    tu peux auss utiliser du code html dans le die

    Code:
    die("<html><body>pas bien</body></html>");
    
    pour info
     
  9. guicara
    guicara WRInaute passionné
    Inscrit:
    2 Février 2006
    Messages:
    1 558
    J'aime reçus:
    0
    ok merci
    je saurais la prochaine fois ;)
     
  10. dmathieu
    dmathieu WRInaute accro
    Inscrit:
    9 Janvier 2004
    Messages:
    5 596
    J'aime reçus:
    0
    Mais c'est horriblement crade de mettre toute la fin de ta page dans le die ...
    Pour ton erreur, cela vient du fait que tu a envoyé des caractères, via un echo ou avant d'entrer dans la balise php, donc les headers ont déjà été transmis et il ne peut le refaire.
     
Chargement...
Similar Threads - Problème php Fonction Forum Date
fonction mail() pour php : probleme fichiers joints Développement d'un site Web ou d'une appli mobile 28 Février 2008
probleme avec boucle While et fonction php mail() Développement d'un site Web ou d'une appli mobile 25 Octobre 2007
PHP->Problème avec une fonction Développement d'un site Web ou d'une appli mobile 4 Janvier 2007
Problème de fonctionnement de script PHP apres migration Développement d'un site Web ou d'une appli mobile 24 Novembre 2006
Problème avec la fonction php strstr et l'utf-8 Développement d'un site Web ou d'une appli mobile 25 Avril 2006
problème requête SQL dans une fonction PHP Administration d'un site Web 31 Mai 2005
[Résolu][PHP] Problème sur une fonction avec un serveur UNIX Administration d'un site Web 2 Juin 2004
PHP : problème de comparaison égalité dans boucle FOR avec incrément décimal de 0.1 Développement d'un site Web ou d'une appli mobile 26 Août 2021
URL canonique et problème entre / et /index.php Débuter en référencement 20 Janvier 2021
Probleme forum phpbb seo Développement d'un site Web ou d'une appli mobile 30 Septembre 2018
Problème de duplicate content avec des URLs contenants /index.php/ URL Rewriting et .htaccess 14 Mai 2018
Problème hiérarchie de classes php. Développement d'un site Web ou d'une appli mobile 9 Janvier 2018
Problème images en https (forum phpbb) [résolu] Développement d'un site Web ou d'une appli mobile 18 Novembre 2017
PHP -Problème retraitement données Mysql avant envoit dans un tableau array Développement d'un site Web ou d'une appli mobile 28 Décembre 2016
Problème avec l'envoi d'un mail sans contenu php Développement d'un site Web ou d'une appli mobile 7 Septembre 2016
Un problème avec php7 Administration d'un site Web 1 Août 2016
Problème erreur redirection cakephp URL Rewriting et .htaccess 4 Avril 2016
problème PHP/Mysql Développement d'un site Web ou d'une appli mobile 29 Octobre 2015
Problème PHPMailer, SMTPSecure (tls ou ssl) : SMTP connect() failed Développement d'un site Web ou d'une appli mobile 6 Juillet 2015
Passage à PHP5.6, problème sur caractères accentués Développement d'un site Web ou d'une appli mobile 24 Juin 2015