Aller au contenu

dimi3

Hubmaster
  • Compteur de contenus

    110
  • Inscrit(e) le

  • Dernière visite

Messages postés par dimi3

  1. Voici ce que j'ai fait :


    <html>
    <head>
    <script language="javascript">
    function marequete(url,cadre) {
    var XHR = null;

    if(window.XMLHttpRequest) // Firefox
    XHR = new XMLHttpRequest();
    else if(window.ActiveXObject) // Internet Explorer
    XHR = new ActiveXObject("Microsoft.XMLHTTP");
    else {
    alert("Votre navigateur ne supporte pas ce script...");
    return;
    }

    XHR.open("GET",url, true);

    XHR.onreadystatechange = function attente() {

    if(XHR.readyState == 4) {

    document.getElementById(cadre).innerHTML = XHR.responseText;
    }
    }
    XHR.send(null);
    return;
    }
    </script>
    </head>

    <body>
    <span onclick="marequete('afficher.php', 'affichage');">Rafraîchir</span>
    <div id="affichage"></div>
    </body>
    </html>

    Ce code fonctionne bien, mais l'utilisateur doit cliquer pour actualiser. Ca n'a pas d'intérêt car ça ne répond pas à ce que je souhaiterais : un rafraîchissement automatique toutes les tant secondes.

  2. Bonjour,

    Sur la même page se trouve un formulaire permettant au visiteur de formuler une question, et au-dessous sont affichées les questions posées par les visiteurs et les réponses qu'on leur apporte.

    Lorsque le visiteur a posé sa question, il laisse la page de son navigateur ouverte en attendant de voir s'afficher sa réponse. Mais il peut attendre longtemps, car si la page n'est pas rafraîchie, il ne voit pas la réponse qui lui a été donnée depuis longtemps.

    J'ai ajouté donc au code de la page :

    header ('refresh: 60; url = http://www.mapage.fr') ; 

    Tout va bien tant que le visiteur n'écrit pas sa question ou sa réponse dans le formulaire au moment où le rafraîchissement a lieu ! Sinon il perd tout ce qu'il a entré !

    De quelle(s) manière(s) on pourrait parer à cet inconvénient ? J'ai pensé à faire 2 frames : une pour le formulaire et une pour l'affichage des question-réponses, ne rafraîchissant que cette dernière. Est-ce une bonne idée, car je sais que les frames sont très critiquées (Je ne sais pas trop pourquoi d'ailleurs !).

    Je vous remercie de vos idées.

  3. Mais ce code est sensé faire quoi ? Et qu'est ce qui ne marche pas ? Là tel quel, à première vue, $_SESSION['visite'] n'est jamais initialisée, puisqu'on l'initialise à 1 uniquement dans le cas où il existe déjà (si !isset($_SESSION['visite'] n'est pas vérifé, donc si $_SESSION['visite'] existe)

    Voilà, j'étais sûr d'avoir fait une erreur de raisonnement... mais je ne parvenais pas à la déceler. Merci à toi et merci à Captain_torche pour ses propositions de vérifications.

  4. Juste au cas où : où et comment est définie ta variable compteur ?

    La variable compteur se trouve dans un fichier texte. Le code complet est :


    <?php
    $_SESSION_START();
    $fc= fopen("./compteur/compteur.txt",'r');
    $compteur = fgets($fc,1024);
    $compteur = trim($compteur);
    fclose($fc);

    if (!isset($_SESSION['visite']))
    {
    $compteur++;
    }
    else
    {
    $_SESSION['visite'] = "1";
    }

    Il ne me semble pas que le problème se situe au niveau de la variable compteur puisque celle-ci s'incrémente correctement, mais au niveau de ma condition qui n'est pas respectée. Le compteur s'incrémente même quand la condition n'est pas satisfaite.

  5. $_SESSION_START(); ne veut rien dire (Bizarre qu'il ne te lance pas d'erreur, d'ailleurs).

    Remplace-le par "session_start();", tout simplement.

    Merci de votre attention.

    J'ai fait erreur en écrivant mon code dans mon message précédent. Dans mon fichier, j'ai bien mis "session_start();".

  6. Bonjour,

    Afin de n'incrémenter mon compteur de visites qu'à la première ouverture du fichier index de mon site, j'ai imaginé ce code :


    <?php
    $_SESSION_START();
    if (!isset($_SESSION['visite']))
    {
    $compteur++;
    }
    else
    {
    $_SESSION['visite'] = "1";
    }

    Ca ne fonctionne pas. Ce code incrémente mon compteur à chaque ouverture du fichier index. Voyez-vous une erreur dans mon raisonnement ?

    Je vous remercie.

  7. j'arrive longtemps après la bataille... Pour que le programme fonctionne, il faut modifier le fichier verifier.php joint au programme :

    Voici une idée :


    <?php
    $cryptinstall="./cryptographp.fct.php";
    include $cryptinstall;
    ?>


    <html>
    <?php
    if (chk_crypt($_POST['code'])) // SI BON ON ENTRE DANS LE SITE
    {
    echo "<script language=\"javascript\" type=\"text/javascript\">";
    echo "window.location.replace(\"fichierOK.php\")";
    echo "</script>";
    }
    else // SI MAUVAIS RETOUR A L'INDEX DU SITE
    {
    echo "<script language=\"javascript\" type=\"text/javascript\">";
    echo "window.location.replace(\"index.php\")";
    echo "</script>";
    }
    ?>
    </html>

  8. Bonjour,

    Utilise jQuery. Tu as tout se qu'il faut pour gérer cela.

    La fonction en jQuery est .live avec .Ajax.

    Regarde sur Google, tu trouveras des exemples :)

    Portekoi

    Merci.

    J'ai fait ça :


    $("p").live("click", function(){
    $(this).after("<p><table border = 1 cellpadding = 15><tr><td><center><u>Aide</u></center><br>... bla...bla...bla...<br><br><center><input type=\"button\" value=\"Cacher l'aide\" onclick=\"affCache('resultat');\"></center></tr></td></table><br></p>");
    });

    et :


    <p>Aide</p>

    Le résultat est plus mauvais que la solution Ajax car le clic sur le bouton [Cacher l'aide] , au lieu de faire disparaître l'aide, il la multiplie.

    Quant à lier les fonctions .live et .Ajax, ça je ne sais pas faire.

    Plutôt que de le masquer, il suffirait de le vider de son contenu.

    Remplacer

    par :


    function affCache(idpr)
    {
    var pr = document.getElementById(idpr);
    pr.innerHTML = "";
    }

    Ca marche nickel ! Mille mercis !

  9. Merci de votre attention.

    Lien d'appel :


    <A href="javascript:aide()">Aide</A>
    <br><br>
    <div id="resultat"></div>

    Fonctions dans le head :


    function affCache(idpr)
    {
    var pr = document.getElementById(idpr);
    if (pr.style.display == "") {
    pr.style.display = "none";
    }
    else {
    pr.style.display = "";
    }
    }

    function aide()
    {
    obj = document.getElementById("resultat");
    obj.innerHTML = "";
    if(window.XMLHttpRequest) // FIREFOX
    xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // IE
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else
    return(false);

    xhr_object.onreadystatechange = function()
    {
    if(xhr_object.readyState == 4)
    {
    if(xhr_object.status == 200)
    obj.innerHTML += "" + xhr_object.responseText;
    else
    obj.innerHTML +="Error code " + xhr_object.status;
    }
    };

    xhr_object.open("GET", "http://...chemin.../aide.php", true);
    xhr_object.send(null);
    }

    Fichier d'aide :


    <?php
    echo "<table border = 1 cellpadding = 15><tr><td><center><u>Aide</u></center><br>... bala bla bla ... ";
    echo "<br><br><center><input type=\"button\" value=\"Cacher l'aide\" onclick=\"affCache('resultat');\"></center></tr></td></table><br>";
    ?>

  10. Bonjour,

    Pour obtenir de l'aide sur une page web, l'utilisateur clique sur un lien qui va appeler via Javascript/Ajax un texte sur le serveur. Ce texte va s'afficher dans un <div>. A la fin de l'affichage du texte un bouton [Fermer le message d'aide] permet à l'utilisateur de cacher le <div> encombrant. Mais si l'utilisateur souhaite réafficher le message d'aide, un nouveau clic sur le lien d'ouverture ne renouvelle pas l'affichage. Comment puis-je faire pour que le clic soit toujours fonctionnel, durant toute la durée d'affichage de la page à l'écran ?

    Je vous remercie de vos idées.

  11. Merci Ernestine... Il y a des jours où on devrait rester couché... Et dire que je suis depuis plus d'une heure sur ce code !

    C'est toute la différence entre une pro qui a l'oeil aiguisé et un amateur qui se débat avec tellement de problèmes qu'il ne voit plus l'évidence...

  12. Bonjour,

    Lorsque je crée un formulaire en html, les valeurs sont bien envoyées au fichier php qui va les traiter :


    <form name="formulaire" method="POST" action="traiter.php">
    Choisissez les dates parmi la liste proposée :<br>
    <?php echo $datefichier[0] ?><input type="checkbox" name="check[]" value="<?php echo $datefichier[0] ?>"> <br>
    <?php echo $datefichier[1] ?><input type="checkbox" name="check[]" value="<?php echo $datefichier[1] ?>"><br>
    <input type="submit" name="submit" value="Envoyer">
    </form>

    Mais lorsque je fais appel à un code php pour créer le formulaire, les valeurs ne passent pas. J'ai besoin de passer par la boucle while car le nombre d'input checkbox est variable.


    <form name="f" methode = "POST" action = "traiter.php">
    <?php
    $datefichier = array_unique ($datefichier);
    sort($datefichier);
    $longueur = count($datefichier);
    $k = 0;
    while($k < $longueur)
    {
    echo $datefichier[$k]." <input type = 'checkbox' name = 'check[]' value = '$datefichier[$k]'><br>";
    $k++;
    }
    ?>
    <input type = "submit" name = "submit" value = "Envoyer">
    </form>

    Le fichier qui traite les valeurs est :


    <?php
    $tabcheck = (isset($_POST['check']))?$_POST['check']:null;
    echo "Voici les dates que vous avez choisies :<br>";
    if (!empty($tabcheck)) {
    foreach($tabcheck as $cle => $valeur) {
    echo $cle.' : '.$valeur.'<br>';
    }
    }
    ?>

    Une remarque : l'envoi avec code php pour créer le formulaire affiche dans la barre d'adresse du navigateur toutes les valeurs envoyées, comme si on employait la méthode GET.

    Je vous remercie de vos idées.

  13. Merci pour votre message.

    j'ai trouvé que la difficulté venait du fait que je passe d'une page à l'autre via un menu include dans la page appelante. En ajoutant session_start() en tête du fichier menu include, la variable est bien passée. La question est donc résolue.

  14. Bonsoir,

    Je récupère sans problème la valeur d'une variable de session lorsque le changement de page reste à la racine du site. Mais lorsque j'ouvre une page située dans un dossier du site, je ne récupère plus sa valeur.

    Je n'ai pas omis de mettre une session_start en tête de chaque page, ni omis de sauvegarder mes fichiers en utf8 sans bom.

    Que peut-il bien se passer ?

    je vous remercie.

  15. Bonjour,

    J'ai 3 répertoires à la racine de mon site que j'appelle "menu", "repertoire1" et "repertoire2". Chaque fichier dans les répertoires , "repertoire1" et "repertoire2" affiche un menu qui permet d'ouvrir les fichiers de son propre répertoire et de l'autre répertoire.

    Ce menu appartient à son propre répertoire appelé "menu". Tous les fichiers du site l'appellent pour affichage en sommet de page par un <script language="javascript" src=&quot;http://monAdresseSite/menu/menu.js".

    Pour ouvrir un fichier de l'autre répertoire j'ai fait les liens suivants :

    - dans le répertoire1 :


    <a href="../repertoire2/fichier.php">

    -dans le répertoire2 :


    <a href="../repertoire1/fichier.php">

    Ca ne fonctionne pas. Cela vient-il du fait que le menu appelé appartient à son propre répertoire ?

    je vous remercie.

  16. Non, il doit être avant tout envoi de données au navigateur.

    Donc tu peux très bien faire un session_start() puis un header() (Dans ce sens, bien entendu : le session_start doit se faire avant tout envoi d'en-têtes).

    J'ai encore appris quelque chose aujourd'hui ! Merci.

  17. Je n'ai jamais eu de soucis en mettant session_start() et l'encodage pour UTF8...

    Là, je pige pas ton problème :(

    Portekoi

    J'ai cru comprendre que le header devait toujours être en première ligne de code.

    J'ai testé à l'instant. Ca n'a pas résolu le problème.

×
×
  • Créer...