IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Cookies] Ouverture d'une page dans une nouvelle fenètre


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 60
    Points : 42
    Points
    42
    Par défaut [Cookies] Ouverture d'une page dans une nouvelle fenètre
    Bonjour,

    J'ais une page Html, et dans une zone de texte, j'affiche un formulaire d'authentification, lorsque l'utilisateur valide ce formulaire je vérifie sont login et mot de passe, si l'authentification aboutie je dépose un cookie et j'affiche la page "espace_membre" avec cette ligne de code ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    include ("espace_membre.php");
    Mon gros problème est que ma nouvelle page s'affiche dans ma zonz de texte! Alors je voudrais savoir si il est possible d'ouvrir ma page dans une nouvelle fenetre ou alors de fermer la page d'authentification pour ensuite afficher ma page espace_membre.

    Merci.

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    tu fait ton formulaire de vérification. une fois que tu le valide, tu vérifie bien que le mec existe (avant de renvoyer toute info au navigateur).

    Si oui, alors tu peux te rediriger avec la fonction header();

    si non, tu affiches un message d'erreur

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 60
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    Je ne comprend pas, comment utiliser la fonction headers?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Points : 125
    Points
    125
    Par défaut
    Tu peux dire à ta page de s'ouvrir dans une nouvelle fenêtre avec un target="_blank"

  5. #5
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: mapage.html");
    mais attention :

    N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichges PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui génèreront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.

  6. #6
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Non, tu ne peux pas obliger le client à fermer une fenêtre. Ou plutôt, ne le fais pas.
    Faire un popup est limite également : n'oublie pas la quantité de bloqueurs de popups qui circulent sur le marché, y compris en standard dans les navigateurs...

    Si vraiment tu souhaites le faire, je crains que tu sois obligé de passer par du JavaScript. Je crois que les méthodes dont tu as besoin s'appellent window.open() et window.close(). Il te suffit de les mettre dans une page blanche, dans le bon ordre.
    Là encore, je te le désonseille à plusieurs niveaux, que te laisse trouver tout seul ^^.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 60
    Points : 42
    Points
    42
    Par défaut
    J'ais toujour la même erreur, en faite l'utilisateur saisie les informations pour s'authentifier, et lorsque j'ais vérifié que c'étais bien un utilisateur inscri je dépose le cookie et j'appel ma fonction qui ce trouve au tous début de ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function appel_page()
    {
      header("Location: page0007.php");
    }
    et donc je me retrouve avec l'erreur suivante :
    Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\wamp\root\ansi.fr\Site html\ansi_fichiers\page0004.php:19) in C:\Program Files\wamp\root\ansi.fr\Site html\ansi_fichiers\page0004.php on line 4

    Existe t'il d'autre solution,

    merci.

  8. #8
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    ==> redirection javascript

    sinon ton header ne fonctionne pas, parce que tu ne lis pas bien ce que l'on te dit de faire, titoumimi t'a prévenu de ça...

    pour que la fonction header() fonctionne, il ne faut pas que les entêtes du fichier html aient déjà été envoyés !! donc aucun echo avant la fonction header, ni code HTML, éviter aussi les include / require et les saut de lignes, si il existe des include avant le header, penser à vérifier que cet include n'envoie pas de html non plus...


  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 60
    Points : 42
    Points
    42
    Par défaut
    J'ais bien compris et il n'y a dailleur aucun echo n'y aucun instruction avan Header mis a part la déclaration de la fonction qui execute header ma question est faut t'il que header soit exécuté avant l'envoye des entète de mon fichier (au quel cas je suis coincé) ou faut t'il simplement que le header soit écris avant tout autre instruction.

    Merci

    Ps : qu'appelez vous exactement les entête?

  10. #10
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
    // fonction qui redirige
    function test($value) {
       if($value) {
           header("Location: autrepage.html");
           exit();
       }
    }
     
    // mets 0 si tu ne veux pas rediriger
    test(1);
     
    echo "je suis du html donc dés que je suis dans le tanpon php, c'est trop tard pour faire une fonction header() en php...";
     
    ?>

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 60
    Points : 42
    Points
    42
    Par défaut
    Et ceci ne mercherais donc pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php 
    // fonction qui redirige 
    function test($value) { 
       if($value) { 
           header("Location: autrepage.html"); 
           exit(); 
       } 
    } 
     
    // mets 0 si tu ne veux pas rediriger 
     
     
    echo "je suis du html donc dés que je suis dans le tanpon php, c'est trop 
    tard pour faire une fonction header() en php..."; 
     
    test(1); 
    ?>

  12. #12
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Citation Envoyé par cach
    Et ceci ne mercherais donc pas :
    voila...

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 60
    Points : 42
    Points
    42
    Par défaut
    Ba je suis bloqué alors comment faire je suis obligé d'avoir du html pour lui demander son pseudo et pass puis un bouton de validation et lorsqu'il valide je verfie et j'appel ma nouvel page?

    Comment fait on pour valider ce saisie si je ne peu pas appeller d'autre page?

    Merci.

  14. #14
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    pour valider la saisie, tu valides bien ton formulaire :
    tu as bien une page spécifiée en paramètre du "action" de ton form :
    partant de là, tu effectues ta vérification soit dans une autre page, soit en haut (ou en bas) de la page de formulaire, si ton traitement est inclus dans celle-ci. en mettant juste une condition genre if mon_form est soumis, hop traitement, et hop redirection...

    j'ai du mal à comprendre ton problème en fait ...

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 60
    Points : 42
    Points
    42
    Par défaut
    Voila je vous monttre mon code ce serra plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
     function affichage_formulaire()
       { ?>
    	<p><a href="page0006.php">Vous n'êtes pas inscrit, cliquez ici!</a></p>
    	<script language="javascript">
     function verif_saisie() {
      if(document.inscription.formlogin.value == '') {
      alert("Vous devez saisir votre login !");
      return false;
     }
     else
      return true;
    }
     
     
     function verif_pwd() {
      if(document.inscription.formpassword.value == '') {
      alert("Vous devez saisir votre mot de passe !");
      return false;
     }
     else
      return true;
    }
    </script>
    <form method="post" action="page0004.php" name="inscription" onSubmit="return verif_saisie() &amp;&amp; verif_pwd();">
    <p>Saisir votre login :</p>
    <p>&nbsp;<input type="text" name="formlogin" size="20"></p>
    <p>Votre mot de passe :</p>
    <p><input type="password" name="formpassword" size="20">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
    <p>&;&nbsp;&nbsp; Si vous avez oublié votre mot de passe, <a class="standard" href="page0005.php">cliquez ici.</a></p>
    Valider : <input type="submit" name="formvalidation" value="OK">
    		<p>
    		<img border="0" src="../../image/ANSI.JPG" width="155" height="113" align="right"></p>
    		<table style="margin-left: 500px">
    			&nbsp;</table>
    	</form>
    	<?php
        }
     
    function verifie_authentification()
    {
       global $formlogin, $formpassword, $login, $pwd;
     		$login=($_POST['formlogin']);
     		$pwd = ($_POST['formpassword']);
     	        //Connection à la base de données :
                    $db=mysql_connect("127.0.0.1","root","");
                    mysql_selectdb("ansi", $db);
     
                    $sql = "select * from ansi_utilisateur where util_login = '".$login."' and util_mdp = '".$pwd."';";
                    $execute_requete = mysql_query($sql) or die ("Erreur sur l'authentification : <b>$sql</b>");
                    if (mysql_num_rows($execute_requete)==0)
                    {
                       echo $sql;
                       ?>
    	<script language="javascript">
                               alert("Erreur de login ou de mot de passe!");
                       </script>
    	<?php
     
                       die;
                       include ("authentification.php");
                    }
                    else
                    {
                      $cookieauthentification = $login;
    	echo ("Bienvenu, '".$login."'");
     
     
                    }
    }
     
    If (isset($_POST['formvalidation']))
       verifie_authentification(); 
    Else
       affichage_formulaire();
    ?>
    En ésperant que vous pourrez m'aider, voila à l'endroit et je met :
    echo ("Bienvenu, '".$login."'");

    j'aimerais appeler une nouvelle page mais d'après ce que j'ais compris ce n'est pas possible étant donné que les entète on déja été envoyé?

    Merci.

  16. #16
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    exactement, c'est tes fonctions javascript qui foutent le bazar...

    passe plutot comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If (isset($_POST['formvalidation'])) {
       //ton code HTML:
    } Else {
       //ton autre code HTML;
    }
    en tout début de page

    et fait gaffe à la syntaxe de tes if .. else... c'est comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (conditions) {   // crochet ouvrant
       //code;
    } else {             // crochets fermants ET ouvrants
       //code;
    }                       // crochet fermant

Discussions similaires

  1. Afficher une image d'une DB dans une page web
    Par akaii dans le forum VB.NET
    Réponses: 1
    Dernier message: 09/03/2009, 10h56
  2. Réponses: 1
    Dernier message: 04/04/2008, 12h14
  3. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  4. Réponses: 8
    Dernier message: 10/01/2007, 21h10
  5. [XHTML] [débutant] Ouvrir une page dans une page xhtml
    Par wikers dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 14/02/2006, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo