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 :

envoi d'un cookie en milieu de page


Sujet :

Langage PHP

  1. #21
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    Je suis preneur d'autant plus que la solution avec l'iframe ne marche plus (sûrement suite à une de mes modifs).
    Donc l'appel à la fonction "seconnecter()" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    include_once("connect.php");
    include_once("config.php");
     
    seconnecter(); 
    ?>
    (aucun intérêt)
    et en tête de ce fichier, il y a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php session_start();if (! $_COOKIE["connecte"]) { $connecte=0; /*setcookie("connecte","true",time()+3214080000);*/} else $connecte=1;$_SESSION["connecte"]=$connecte;
    if (!$_COOKIE["login"]) { setcookie("login",$_POST['login'],time()+3214080000);} ?>
    La fonction "seconnecter" elle-même (dans un fichier qui contient d'autres fonctions) :
    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
     
     
    function seconnecter()
    {
    ?>
    <a href="index1.php">Retour au forum</a><br><br>
     
    <?php
    $id_conn = connect();
     
    $login=stripslashes($_POST['login']);
    $pwd=stripslashes($_POST['pwd']);
     
    $pwd=md5($pwd);
     
    if ($_SESSION["connecte"]==1)
        {echo "Vous êtes d&eacute;j&agrave; connect&eacute;";
    	 }
    else	{
    $OK=0;
    $sql="select login,pwd from `login`";
    $sql = stripslashes($sql);
    $result = mysql_query($sql) or die(mysql_error());
     
     while ($ligne=mysql_fetch_array($result,MYSQL_NUM))
     {
    if (($ligne[0]==$login)&&($ligne[1]==$pwd))
    {
    ?>
    <iframe src="action_seconnecter2.php" width="1" height="1"></iframe>
    <?php
    //include("action_seconnecter2.php");
     
    $sql='update `login` set `connecte`=1 where login="'.$login.'"';
    $result1 = mysql_query($sql) or die(mysql_error());
    echo "Vous &ecirc;tes connect&eacute<br>";
     
    $OK=1;
    } 
    }
    if ($OK==0) echo "pseudo ou mot de passe incorrect ";
    }
    close($id_conn);
     
    }
    La fonction "action_seconnecter2()" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php  session_start(); setcookie("connecte","true",time()+3214080000);
    setcookie("login",$_SESSION["login"],time()+3214080000);
     ?>
    S'il te faut autre chose que j'aurais oublié, dis-le moi.
    (si c'est la grippe (A ou pas), je suis aussi passé par là il y a 2 semaines; 39,9°C un matin)
    Dans ce que je montre, rien à masquer. Merci de ton aide.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #22
    Invité
    Invité(e)
    Par défaut
    Rebonjour, j'ais essayé de refaire ce que fait en réalitée le php
    c'est a dire qu' il écrit bout a bout tous les contenus des includes
    (chacun a sa place !) ne formant finalement qu'un seul PHP

    Tu comprends ce que je souhaites ?
    Et méfies toi des parties genre "bon je saute sans intéret"

    Donc tant pis si c'est gros mais au final on obtient un PHP sans include qui permet de voir ou est le piége !

    Merci et escuses moi de te remettre au travail !

    Coté grippe non c'est autre chose mais bon ... pas la cata !
    Dernière modification par Invité ; 20/12/2009 à 17h35.

  3. #23
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    Je viens de faire ce que tu souhaitais, mais je te préviens : il y a une bonne partie du code qui n'est pas de moi, vu que j'utilise un logiciel qui génère lui-même des sites web (dans ma version, que des fichiers html), (il gère notamment lui-même le menu, et c'est pour ça que je l'utilise)(et la personne qui me l'a fait connaître s'en sert sans même connaître le html !), mais je modifie ensuite le fichier généré et modifie si besoin l'extension (ici : html -> php)(j'ai indiqué en commentaires ce qui était perso). Et ce qui est bizarre, c'est que les include, je les mets entre balise <?php et ?> et à l'intérieur du fichier php includé, ça recommence...et du coup, dans le fichier où j'ai tout mis bout à bout, ça fait des doublons de balises. J'ai également mis en commentaires le début et la fin des include, ainsi que des fonctions appelées.
    Je te souhaite bien du plaisir, et j'espère que j'ai fait ce que tu souhaitais (je te rappelle que le iframe qui envoie des cookies ne marche plus : les cookies ne sont plus envoyés. Sinon, voici le résultat (263 lignes):
    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    <?php session_start();if (! $_COOKIE["connecte"]) { $connecte=0; /*setcookie("connecte","true",time()+3214080000);*/} else $connecte=1;$_SESSION["connecte"]=$connecte;
    if (!$_COOKIE["login"]) { setcookie("login",$_POST['login'],time()+3214080000);} ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html lang="fr">
    <head>
      <meta http-equiv="content-type"
     content="text/html;charset=ISO-8859-1">
      <title>VHS</title>
      <meta http-equiv="content-style-type" content="text/css">
      <meta name="generator" content="Lauyan TOWeb 2.8.1.537">
      <script type="text/javascript" language="javascript">
    function wg_popup( id ) {
     var p = document.getElementById(id);
    	for( var i = 0; i < 10; i++ ) {
    	 var e = document.getElementById( 'wgpopup'+i );
    	 if ( e ) {
    	  e.style.visibility='hidden';
    	  e.style.display='none';
    	 }
    	}
     if( p ) {
    	 p.style.visibility='visible';
    	 p.style.display='block';
    	}
    }
      </script>
      <link rel="stylesheet" href="../_frame/site.css"
     type="text/css">
      <style type="text/css" media="print">
    .wg-maxheight {}
      </style>
      <style type="text/css" media="screen">
    .wg-maxheight { height:100%; }
      </style>
    </head>
    <body>
    <table class="wg-maxheight" bgcolor="#ffffff"
     border="0" cellpadding="0" cellspacing="0"
     width="100%">
      <tbody>
        <tr>
          <td style="height: 1px;" align="center"
     bgcolor="#6699cc" valign="top"><a
     href="../topic/index.html"><img src="../_frame/banusr.gif"
     alt="" border="0"></a></td>
        </tr>
        <tr>
          <td class="wg-maxheight" valign="top">
          <table class="wg-maxheight" border="0"
     cellpadding="0" cellspacing="0" width="100%">
            <tbody>
              <tr>
                <td style="height: 1px;" bgcolor="#ffffff"
     valign="top" width="124">
     <!-- ici, un ajout de moi : je fais un include du menu, pour ne pas avoir à retransférer ttes les pages, dès que celui-ci change : il suffit de màj le fichier menu.html -->
                 <? readfile("menu/menu.html"); ?>
                </td>
                <td valign="top">
                <table onmouseover="javascript:wg_popup();"
     class="wg-maxheight" cellpadding="0" cellspacing="0"
     width="100%">
                  <tbody>
                    <tr>
                      <td valign="top">
                      <table class="wg-maxheight" cellpadding="0"
     cellspacing="0" width="100%">
                        <tbody>
                          <tr>
                            <td bgcolor="#ffffff" valign="top">
                            <h1>forum</h1>
                            <table class="wg-paragraph"
     cellspacing="2" width="100%">
                              <tbody>
                                <tr>
                                  <td valign="top">
                                  <table border="0"
     cellpadding="0" cellspacing="0" width="100%">
                                    <tbody>
                                      <tr>
                                        <td valign="top"><a
     name="bv000002"></a>
                                        <table class="wg-paragraph"
     width="100%">
                                          <tbody>
                                            <tr>
                                              <td
     style="text-align: justify;"><!-- Entrez le script du champ ici. Ce contenu sera inséré tel quel dans votre site.
     
     
     
    //-->
    <?php
    // début du code perso
    // début de include_once("connect.php");
    <?php
    function connect()
    {
    $id_conn=mysql_connect(MYHOST,MYUSER,MYPASS);
    if ($id_conn) /*echo "connexion OK"*/; else echo "connexion NOK";echo"<br>";
    if (!mysql_select_db("kikourou",$id_conn)) echo "connexion base foirée";
     
    return($id_conn);
    }
     
    function close($id_conn)
    {
    mysql_close($id_conn);
    }
     
    function ES($truc)
    {
    $truc=mysql_real_escape_string($truc);
    return $truc;
    }
     
    function seconnecter()
    {
    ?>
    <a href="index1.php">Retour au forum</a><br><br>
     
    <?php
    $id_conn = connect();
     
    $login=stripslashes($_POST['login']);
    $pwd=stripslashes($_POST['pwd']);
     
    $pwd=md5($pwd);
     
    if ($_SESSION["connecte"]==1)
        {echo "Vous êtes d&eacute;j&agrave; connect&eacute;";
    	 }
    else	{
    $OK=0;
    $sql="select login,pwd from `login`";
    $sql = stripslashes($sql);
    $result = mysql_query($sql) or die(mysql_error());
     
     while ($ligne=mysql_fetch_array($result,MYSQL_NUM))
     {
    if (($ligne[0]==$login)&&($ligne[1]==$pwd))
    {
    ?>
    <iframe src="action_seconnecter2.php" width="1" height="1"></iframe>
    <?php
     
    $sql='update `login` set `connecte`=1 where login="'.$login.'"';
    $result1 = mysql_query($sql) or die(mysql_error());
    echo "Vous &ecirc;tes connect&eacute<br>";
     
    $OK=1;
    } 
    }
    if ($OK==0) echo "pseudo ou mot de passe incorrect ";
    }
    close($id_conn);
     
    }
    ?>
     
    // fin de include_once("connect.php");
     
    // début de include_once("config.php");
    <?php
    define("MYHOST","sql.free.fr"); 
    define("MYUSER","-----"); 
    define("MYPASS","-----");
    ?>
    // fin de include_once("config.php");
     
     
    //début de seconnecter();
    {
    ?>
    <a href="index1.php">Retour au forum</a><br><br>
     
    <?php
    $id_conn = connect();
     
    $login=stripslashes($_POST['login']);
    $pwd=stripslashes($_POST['pwd']);
     
    $pwd=md5($pwd);
     
    if ($_SESSION["connecte"]==1)
        {echo "Vous êtes d&eacute;j&agrave; connect&eacute;";
    	 }
    else	{
    $OK=0;
    $sql="select login,pwd from `login`";
    $sql = stripslashes($sql);
    $result = mysql_query($sql) or die(mysql_error());
     
     while ($ligne=mysql_fetch_array($result,MYSQL_NUM))
     {
    if (($ligne[0]==$login)&&($ligne[1]==$pwd))
    {
    ?>
    <iframe src="action_seconnecter2.php" width="1" height="1"></iframe>
    <?php
     
     
    $sql='update `login` set `connecte`=1 where login="'.$login.'"';
    $result1 = mysql_query($sql) or die(mysql_error());
    echo "Vous &ecirc;tes connect&eacute<br>";
     
    $OK=1;
    } 
    }
    if ($OK==0) echo "pseudo ou mot de passe incorrect ";
    }
    close($id_conn);
     
    }
    //fin  de seconnecter();
    // fin du code perso
    ?>
    ?>
     
                                              </td>
                                            </tr>
                                          </tbody>
                                        </table>
                                        </td>
                                      </tr>
                                    </tbody>
                                  </table>
                                  </td>
                                </tr>
                              </tbody>
                            </table>
                            <br>
                            <hr>
                            <table class="wg-paragraph" border="0"
     width="100%">
                              <tbody>
                                <tr>
                                  <td width="50%"><font
     style="font-size: 80%;">derni&egrave;re mise
    &agrave; jour : samedi 21 novembre 2009</font></td>
                                  <td align="right" width="50%"><font
     style="font-size: 80%;">contacter l'auteur : <a
     href="mailto:%73%63%68%6D%69%74%74%6C%61%75%40%61%6F%6C%2E%63%6F%6D">schmittlau@aol.com</a>&nbsp;</font></td>
                                </tr>
                              </tbody>
                            </table>
                            </td>
                          </tr>
                        </tbody>
                      </table>
                      </td>
                    </tr>
                  </tbody>
                </table>
                </td>
              </tr>
            </tbody>
          </table>
          </td>
        </tr>
      </tbody>
    </table>
    </body>
    </html>
    Et voilà...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #24
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Je viens de faire ce que tu souhaitais, Et voilà...
    Houlala quel boulot, un petit quart d'heure et j'aurais une premiére idée j'espéres.

    Je te tiens au courant, mais du coup d'autres vont peut'étre jeter une oeillade

    Je réédites
    un premier soucis le commentaire c'est --> et non //-->
    et la deux ouvertures de <?PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
                                              <td
     style="text-align: justify;"><!-- Entrez le script du champ ici. Ce contenu sera inséré tel quel dans votre site.
     
    //-->
    <?php
    // début du code perso
    // début de include_once("connect.php");
    <?php
    Je supposes que j'en vire une
    par ailleur tu as avant des <? xxxxxxxxxxxxxx ?>
    on est obligé maintenant de mettre <?PHP xxxxxxxxxxxxxx ?>

    Bon je continues
    Dernière modification par Invité ; 20/12/2009 à 18h27.

  5. #25
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    Je viens de faire un essai qui prouve que la iframe n'est pas exécutée : j'ai mis ce code là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     while ($ligne=mysql_fetch_array($result,MYSQL_NUM))
     {
    if (($ligne[0]==$login)&&($ligne[1]==$pwd))
    {
    echo "coucou ds sql<br>";
    ?>
    <iframe src="essai.php" width="1" height="1"></iframe>
    <iframe src="action_seconnecter2.php" width="1" height="1"></iframe>
    <?php
    Le echo sert à vérifier qu'on passe bien dans la boucle, et le contenu de essai.php, c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo "coucou<br>";
    ?>
    Voilà qui prouve que ça ne marche plus (sachant qu'on a bien "coucou ds sql", mais pas "coucou")...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #26
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Je viens de faire un essai
    Oui mais mets un 200*30 et non 1*1 pour ce IFRAME !

  7. #27
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    En effet, ça marche mieux ; mais l'autre devrait marcher avec 1 1. En fait, il est aussi appelé, mais le cookie n'est pas positionné.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  8. #28
    Invité
    Invité(e)
    Par défaut
    Voila maintenant j'ais une aglomeration ou
    toute ouverture de balise { est fermée }
    toute ouverture <?PHP est fermée ?>
    en corrigeant cette partie en plus de ce que je t'avais indiqué
    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
     
     
    $OK=1;
    } 
    }
    if ($OK==0) echo "pseudo ou mot de passe incorrect ";
    }
    close($id_conn);
    }
    // fin de include_once("connect.php");
     
    // début de include_once("config.php");
     
    define("MYHOST","sql.free.fr"); 
    define("MYUSER","-----"); 
    define("MYPASS","-----");
     
    // fin de include_once("config.php");
    //début de seconnecter();
    {
    ?>
    <a href="index1.php">Retour au forum</a><br><br>
     
    <?php
    $id_conn = connect();
     
    $login=stripslashes($_POST['login']);
    $pwd=stripslashes($_POST['pwd']);
     
    $pwd=md5($pwd);
     
    if ($_SESSION["connecte"]==1)
        {echo "Vous êtes d&eacute;j&agrave; connect&eacute;";
    	 }
    else	{
    $OK=0;
    $sql="select login,pwd from `login`";
    $sql = stripslashes($sql);
    $result = mysql_query($sql) or die(mysql_error());
     
     while ($ligne=mysql_fetch_array($result,MYSQL_NUM))
     {
    if (($ligne[0]==$login)&&($ligne[1]==$pwd))
    {
    ?>
    <iframe src="action_seconnecter2.php" width="1" height="1"></iframe>
    <?php
     
     
    $sql='update `login` set `connecte`=1 where login="'.$login.'"';
    $result1 = mysql_query($sql) or die(mysql_error());
    echo "Vous &ecirc;tes connect&eacute<br>";
     
    $OK=1;
    } 
    }
    if ($OK==0) echo "pseudo ou mot de passe incorrect ";
    }
    close($id_conn);
    //fin  de seconnecter();
    // fin du code perso
    }
    ?>

  9. #29
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    Ca serait plus pratique d'indiquer où sont tes modifs, car j'ai du mal à les voir. De plus, j'ai vu que tu as enlevé certaines balises que je ne peux enlever: si je les enlevais, certains fichiers PHP se retrouveraient sans aucune balise...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  10. #30
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    J'enlève le résolu, car ça ne l'est pas.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  11. #31
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    Autre souci constaté avec le cookie : si je fais un echo de $_COOKIE["login"] juste après l'appel à setcookie, il est bien positionné, mais si je fais un echo juste après l'iframe qui exécute le fichier qui contient setcookie, il n'y a rien (la plupart du temps) ; je n'y comprends rien.
    Juste une remarque : dans la solution que tu proposes, tu conserves l'iframe, alors qu'au début, tu étais sûr de pouvoir t'en débarasser.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  12. #32
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Ca serait plus pratique d'indiquer où sont tes modifs, car j'ai du mal à les voir. De plus, j'ai vu que tu as enlevé certaines balises que je ne peux enlever: si je les enlevais, certains fichiers PHP se retrouveraient sans aucune balise...
    Tu peux faire un include d'un PHP avec une seule balise, la force de l'include
    est de réaliser au final un PHP homogéne !

    Maintenant le code que j'ais mis est court, a toi de voir les ?> en double etc ... il me faudrais tout refaire

    ET pour ton deuxiéme message NON je ne veux pas garder l'Iframe mais en faire un include
    Il fallait déjas corriger la base c'est fait !

  13. #33
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    J'ai essayé de faire un include avec une seule balise ; ne sachant pas celle que je pouvais enlever, j'ai fait 2 essais :
    - enlever les balises autour du include ;
    - enlever les balises dans le fichier includé.
    Les 2 ont échoué...
    Et enlever le "session_start()" du fichier à includer (aujourd'hui dans l'iframe), alors que dans un des "setcookie", il y a comme valeur...

    Les seules modifs que j'ai vues concernent justement les balises des "include".
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  14. #34
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    si tu as des includes, c' est qu'ils servent dans d'autre PHP
    il faut rester homogéne pourqu'ils marchent partout.

    De toute façon, la façon la plus fiable et de loin, est de considérer deux sorte de php, les php de pages et les php "outils" destinés aux includes.

    Dans ces conditions les session start sont toujours une seule fois dans le PHP principal de page en premier.

    On s'arrange et on peut toujours n'avoir les premiers "echo" OU "?> puis html"
    aprés avoir fait toute sa logique PHP, y compris gérer des cookies.

    Je veux bien tout retester (c'est volontier) mais prends grand soins a la fabrication du php unique pour recontrôle

    1) prends le PHP principal
    2) a chaque include copies / colles l'include
    exactement tel qu'il est mais sépares le début et la fin par
    /* ============== */
    comme cela ce sera super simple,
    ainsi le PHP devrait tourner !
    J'en ferais un contrôle et te posterais le détail des modifications.

    A++

  15. #35
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    OK, mais en fait, en attendant, j'ai essayé autre chose : sachant qu'on pouvait envoyer un cookie tant qu'il n'y avait pas d'affichage, j'ai essayé de placer mes tests en début de page, puis, s'ils sont positifs, d'envoyer le cookie. Cela dit, il ne veut pas envoyer les cookies(
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Warning: Cannot modify header information - headers already sent by (output started at /mnt/166/sdb/8/4/forumvhs/connect.php:5) in /mnt/166/sdb/8/4/forumvhs/action_seconnecter.php on line 14
     
    Warning: Cannot modify header information - headers already sent by (output started at /mnt/166/sdb/8/4/forumvhs/connect.php:5) in /mnt/166/sdb/8/4/forumvhs/action_seconnecter.php on line 15
    ) (alors qu'on rentre bien dans la boucle). Saurais-tu m'aider sur ce point-là ? Quand, ça marchera, à mon avis, tout sera OK.
    Le code :
    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
    <?php 
    include_once("connect.php");
    include_once("config.php");
    session_start();if (! $_COOKIE["connecte"]) { $connecte=0; }
    // debut de modif
    $pwd=md5($_POST['pwd']);
    $id_conn = connect();
    $sql="select login,pwd from `login`";
    $sql = stripslashes($sql);
    $result = mysql_query($sql) or die(mysql_error());
     while ($ligne=mysql_fetch_array($result,MYSQL_NUM)) {
    // echo "login=".$_POST['login']." ligne0=".$ligne[0]." pwd=".$pwd." ligne1=".$ligne[1]."<br>";
    if (($ligne[0]==$_POST['login'])&&($ligne[1]==$pwd)) {
    	setcookie("login",$_POST['login'],time()+3214080000);
    	setcookie("connecte","true",time()+3214080000);
    	 //echo "login=".$_COOKIE["login"]."<br>";
    	$_SESSION["connecte"]=$connecte;
    	}
    	}
    close($id_conn);	
    // fin de modif
     ?>
    Ce code est en début de "action_seconnecter.php" qui est l'action d'un formulaire contenu dans "seconnecter.php". Et comme il parle de "connect.php" dans le warning, le voici :
    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
    <?php
    function connect()
    {
    $id_conn=mysql_connect(MYHOST,MYUSER,MYPASS);
    if ($id_conn) /*echo "connexion OK"*/; else echo "connexion NOK";echo"<br>";
    if (!mysql_select_db("kikourou",$id_conn)) echo "connexion base foirée"; /*else echo "connexion base OK";echo"<br>";*/
     
    return($id_conn);
    }
     
    function close($id_conn)
    {
    mysql_close($id_conn);
    }
     
    function ES($truc)
    {
    $truc=mysql_real_escape_string($truc);
    return $truc;
    }
     
    function seconnecter()
    {}
    ?>
    La fonction "seconnecter()" était plus complexe que ça avant, mais je l'ai laissée pour éviter une erreur.
    Merci de ton aide
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  16. #36
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    OK, mais en fait, en attendant, j'ai essayé autre chose : sachant qu'on pouvait envoyer un cookie tant qu'il n'y avait pas d'affichage, j'ai essayé de placer mes tests en début de page, puis, s'ils sont positifs, d'envoyer le cookie. Cela dit, il ne veut pas envoyer les cookies(
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Warning: Cannot modify header information - headers already sent by (output started at /mnt/166/sdb/8/4/forumvhs/connect.php:5) in /mnt/166/sdb/8/4/forumvhs/action_seconnecter.php on line 14
     
    Warning: Cannot modify header information - headers already sent by (output started at /mnt/166/sdb/8/4/forumvhs/connect.php:5) in /mnt/166/sdb/8/4/forumvhs/action_seconnecter.php on line 15
    )
    Sur ce point ça se voit bien ton <?PHP n'est pas collé au bord ni en haut, c'est exactement comme si tu avais envoyé du HTML au visiteur, ondit que le <header> est envoyé et la terminé plus de session ni cookies !
    Le pire d'aprés ton erreur ce seraity dans connecte.php qu'il y aurait encore un session start qui traine ou un espace ?

  17. #37
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    En fait, l'espace avant la balise <?php n'est dû qu'au copier-coller : il n'existe pas (et j'ai réédité mon post précédent pour l'enlever). Sinon, dans "connect.php", comme tu peux le constater vu que je l'ai donné, ni "session_start()", ni espace.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  18. #38
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    En fait, l'espace avant la balise <?php n'est dû qu'au copier-coller : il n'existe pas (et j'ai réédité mon post précédent pour l'enlever). Sinon, dans "connect.php", comme tu peux le constater vu que je l'ai donné, ni "session_start()", ni espace.
    Ah bon et le echo c'est pas du html tu vois c'est durdur a gérer mais aprés tu a un tout parfait !

    Exigence de Pro voila la source de tranquilitée pour toi aprés ...

    Tu sais que tu ne te prives pas du message d'erreur de Mysql ... tu le mets dans un $mes_erreurs... et quand ton php est fini tu fais
    if ($mes_erreurs!="") echo $mes_erreurs;

  19. #39
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 431
    Points : 5 785
    Points
    5 785
    Billets dans le blog
    1
    Par défaut
    Super, ça marche enfin. Suite à ton post (merci à toi ), j'ai pensé à faire la chasse aux "echo" un peu partout (notamment dans les include), et maintenant, c'est OK. C'est avec un gd plaisir que je vais cocher "résolu" (même si en fin de compte, le cookie n'est pas vraiment envoyé en milieu de pages, mais qd même après avoir lu la table MySQL et fait les tests). Si ça t'amuse, tu peux tester le forum que j'ai développé ; crée d'abord un compte, sinon il va râler (il n'y a ni système de réponse, ni catégories, ça ne servirait à rien ici)(le cookie sert notamment au fait qu'une fois qu'on a créé le compte, on reste connecté pdt environ 100 ans (ou si on change de PC ou si on efface les cookies du PC (mais ça, pas de risque vu que les utilisateurs ne savent même pas que ça existe)). Et comme j'ai aussi mis la fonction "détruire", tu pourras effacer ce que tu veux à la fin. Je suis en train de mettre en place une notification par mail, mais pour l'instant, l'auteur aussi est notifié...
    Au fait, je connais bien St Maur-des-fossés, vu que qd j'étais ado, j'habitais à Bry sur Marne (à côté du Perreux et de Champigny (notamment)).
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  20. #40
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Super, ça marche enfin.
    Super et bien sur a la prochaine, en tout cas ça vaut la peine de se battre quand ça sert a quelque chose
    (je vais voir ton forum ...)

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Cookies] Erreur cookie php milieu de page chez Free
    Par fabiofabio dans le forum Langage
    Réponses: 7
    Dernier message: 11/02/2008, 15h30
  2. Figure en milieu de page, comment la remonter ?
    Par enneite dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 6
    Dernier message: 24/11/2007, 19h01
  3. Réponses: 7
    Dernier message: 20/02/2007, 13h22
  4. Lancer une fonction js en milieu de page
    Par Anonymus dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/02/2007, 10h08
  5. Réponses: 15
    Dernier message: 02/03/2006, 15h34

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