Visible sous FF, mais ni sous Opéra, ni sous IE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Visible sous FF, mais ni sous Opéra, ni sous IE

par Zolmitriptan » 22 juin 2007, 18:50

OUpppppssss, désolé Cyrano, je le fais d'habitude !!!

C'est la joie sans doute....

Je le met en résolu de suite !

par Cyrano » 22 juin 2007, 18:44

Modération :
Krok88, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

par Zolmitriptan » 22 juin 2007, 16:56

sadeq, tu est un génie......

Ca marche !!!!!

Mille fois merci !!!!!

par sadeq » 22 juin 2007, 07:06

Effectivement c'est ça ce qu'il faut faire, et dans le script javascript aussi car tu le génére par PHP.
Je te montre où:

Regarde dans cette partie de ton code, là où tu génére le code javascript
...
...

//Puis on affiche les messages
$form .= '</td>

//Ici en caché pour que javascript vienne récupérer la valeur
//Quand je le met en type = text, j'ai nien toute les valeurs, dans tout les navigateurs
<input type="hidden" id="recup" value="'.stripslashes(htmlspecialchars($datas['post_message'])).'" />
<td name="postMess" id="postMess"></td></tr>';

echo $form;

//On ferme php, on fait appel à la fonction code_to_html
?>
<script language="javascript" type="text/javascript">
p=document.getElementById("recup").value
p = code_to_html(p);
document.getElementById("postMess").innerHTML=p ;
</script> <?php
}
}
Il suffit d'intégrer le script javascript dans l'echo. Comme ça:
    //Puis on affiche les messages                         
     $form .= '</td>
        <input type="hidden" id="recup' . $i . '" value="'.stripslashes(htmlspecialchars($datas['post_message'])).'" />
        <td name="postMess" id="postMess' . $i . '"></td></tr>

         <script language="javascript" type="text/javascript">
                p=document.getElementById("recup' . $i . '").value;
                document.getElementById("postMess' . $i . '").innerHTML = code_to_html(p);
        </script>';     

        //On incrémente $i
       $i++;
        
        //On affiche le form                               
        echo $form;
       
      }
} 

par Zolmitriptan » 22 juin 2007, 00:26

Bonsoir,

non, ma fonction code_to_html n'est pas affichée ici : en gros c'est une fonction pour le bbcode : change mes balise [gras][/gras] etc etc.
Pour faire simple utilises les noms: "recup1", "recup2", .... et "post1", "post2",....
Oui, facile en php, avec une variable qui s'incrémentes à chaque passage de boucle et que je concatène à mes variables "recup" et "postMesss".....mais dans le javascript, comment je fais pour lui dire : la tu prend recup1 et tu met dans postMess1, la tu prend recup2 etc ??

Parce que ca :

Code : Tout sélectionner

<script language="javascript" type="text/javascript"> p=document.getElementById("recup".$i).value p = code_to_html(p); document.getElementById("postMess".$i).innerHTML=p ; </script>
C'est pas possible (avec les variable php concaténé.... )
Une solution pour moi ?? Parce que la je ne coule plus, j'ai touché le fond et je creuse.....

Merci d'avance

par sadeq » 20 juin 2007, 15:44

C'est quoi la fonction code_to_html() je ne vois pas sa définition dans ton code.

Sinon, Il n'y a rien de bizzare dans cette histoire.

Ton programme génére plusieurs champs cachés ayant le même nom "recup" et plusieurs TD nommé "post" et c'est là le problème car plusieurs codes javascript qui font la même chose d'ailleurs " balancent un "recup" dans un "post" ".
Le problème est: "quel code X affectera quel message "recup" à quel TD "post" ?" y'en a plusieurs homonymes!

Sous FF ce mécanisme a l'air de marcher car FF récupère la réponse du serveur plus rapidement que les autres et presque à l'echo et affecte donc le dernier champ caché "recup" au dernier TD "post" reçus dans la réponse du serveur.

IE & Co. qui attend que le serveur ait terminé le traitement pour recevoir la réponse, ne sait plus quel "recup" irra dans quel "post" puisqu'il y en a plusieurs homonymes. Il se limite alors au traitement de la première occurence de noms (et c'est pourquoi il affiche seulement le premier message)

Je te conseille de personnaliser les noms des champs cachés et des TD récepteurs des messages
en les réfrençant par leur contexte.

Pour faire simple utilises les noms: "recup1", "recup2", .... et "post1", "post2",....

par Zolmitriptan » 20 juin 2007, 15:04

Alors, j'ai testé sans les styles.

Pour FF, toujours aucun problème, les messages s'affichent. Pour Opéra, toujours rien, et pour IE non plus, si ce n'est le premier message qui s'affiche....

Pour le problème de taille, si tu disait cela par rapport à mon screen, c'est sans doute la différence entre ces deux images qui te fait dire cela car sinon, la taille reste la même, j'ai vérifié.

Et en effet, c'est très bizarre comme problème.....

par zigz4g » 18 juin 2007, 14:29

Je dis c'est assez etrange comme probleme.
J'ai fais une difference entre les deux sortie html que tu nous a poste et diff me retourne juste un probleme d'espace en trop ou en moins. Cela ne doit pas etre important.

Par contre ce que je vois sur les captures FF et opera c'est le mot "test" qui change de taille.

Je dirais affiche ton site sans les CSS pour voir si ton site est bien interpreter par les navigateurs et si les contenus sont bien generes.

par Zolmitriptan » 17 juin 2007, 12:34

Alors, déjà voila le résultat visuel :
Image
Sous firefox, les messages sont tous la.

Voila le code html retourné pour la page complète :

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Sujet</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <!-- on appelle le fichier prev.js pour faire fonctionne la prévisualisation --> <script language="javascript" type="text/javascript" src="includes/prev.js"></script> <script language="javascript" type="text/javascript" src="includes/bbcode.js"></script> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="./designs/design.css" /> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="./designs/table.css" /> <!--[if lte IE 6]> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="./designs/ie.css" /> <![endif]--> </head> <body> <div id="global"> <a href="http://www.imagesplus.org/"><div id="banniere"></div></a> <a href="http://www.imagesplus.org/"><div id="ban"></div></a> <div id='menu'>Sujet <div class="inmenu"> <ul> <li><a href="forum.php">Accueil</a></li> <li><a href="forum.php?type=connection">Se connecter</a></li> <li><a href="forum.php?type=registration">S'inscrire</a></li> <li><a href="new.php?new=mail">Nous écrire</a></li> </ul> </div> </div> <div id='corps'> <span class="ariane">Vous êtes ici : <a href="index.php">Index</a> <img src="images/fleche.gif" alt="-->"/> <a href="forum.php">Accueil</a> <img src="images/fleche.gif" alt="-->"/> <a href="view.php?cat=5&view=cat">Divers</a> <img src="images/fleche.gif" alt="-->"/> <a href="view.php?th=7&view=th">Présentation</a> <img src="images/fleche.gif" alt="-->"/> <a href="view.php?view=top&top=3"> bonjour </a><br/><br/></span> <table name="table" id="table"> <thead> <tr> <th class="intermediate">Auteur</th> <th class="message">Message</th> </tr> </thead> <tbody> <tr class="title" id="pid4"> <td><center><a href="profil.php?profil=1&action=consult">Admin</a></center></td> <td><a href="view.php?view=top&top=3#pid4">#</a> Posté le 15/06/2007 à 19:49:24</td> </tr> <tr class="top"> <td><center><img src="avatars/unknow.gif" alt="Avatar" /></center> 6 messages<br/> <em>Inscrit le 15/06/2007 à 11:48:09</em><br/> Groupe : Administrateur</td><td name="post" id="post"></td></tr><input type="hidden" id="recup" value=" [gras]test[/gras] " /> <script language="javascript" type="text/javascript" > p=document.getElementById("recup").value p = code_to_html(p); document.getElementById("post").innerHTML=p ; </script> <tr class="title" id="pid5"> <td><center><a href="profil.php?profil=1&action=consult">Admin</a></center></td> <td><a href="view.php?view=top&top=3#pid5">#</a> Posté le 15/06/2007 à 19:49:35</td> </tr> <tr class="top"> <td><center><img src="avatars/unknow.gif" alt="Avatar" /></center> 6 messages<br/> <em>Inscrit le 15/06/2007 à 11:48:09</em><br/> Groupe : Administrateur</td><td name="post" id="post"></td></tr><input type="hidden" id="recup" value=" test encore !! " /> <script language="javascript" type="text/javascript" > p=document.getElementById("recup").value p = code_to_html(p); document.getElementById("post").innerHTML=p ; </script> <tr class="title" id="pid6"> <td><center><a href="profil.php?profil=1&action=consult">Admin</a></center></td> <td><a href="view.php?view=top&top=3#pid6">#</a> Posté le 15/06/2007 à 19:49:45</td> </tr> <tr class="top"> <td><center><img src="avatars/unknow.gif" alt="Avatar" /></center> 6 messages<br/> <em>Inscrit le 15/06/2007 à 11:48:09</em><br/> Groupe : Administrateur</td><td name="post" id="post"></td></tr><input type="hidden" id="recup" value=" un dernier " /> <script language="javascript" type="text/javascript" > p=document.getElementById("recup").value p = code_to_html(p); document.getElementById("post").innerHTML=p ; </script> </tbody> <tfoot><th class="page">Pages : [1]&nbsp;&nbsp;</th> <th>Pas encore inscrit ?<br/> C'est necessaire pour pouvoir participer au forum.<br/> Pour vous inscrire, <a href="forum.php?type=registration">cliquez ici</a>.</th> </tfoot> </table> </div> </div> </body> </html>


Image
Sous opéra, il y a le premier, et les autres ne s'affichent pas.

Voila le code html :

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Sujet</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <!-- on appelle le fichier prev.js pour faire fonctionne la prévisualisation --> <script language="javascript" type="text/javascript" src="includes/prev.js"></script> <script language="javascript" type="text/javascript" src="includes/bbcode.js"></script> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="./designs/design.css" /> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="./designs/table.css" /> <!--[if lte IE 6]> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="./designs/ie.css" /> <![endif]--> </head> <body> <div id="global"> <a href="http://www.imagesplus.org/"><div id="banniere"></div></a> <a href="http://www.imagesplus.org/"><div id="ban"></div></a> <div id='menu'>Sujet <div class="inmenu"> <ul> <li><a href="forum.php">Accueil</a></li> <li><a href="forum.php?type=connection">Se connecter</a></li> <li><a href="forum.php?type=registration">S'inscrire</a></li> <li><a href="new.php?new=mail">Nous écrire</a></li> </ul> </div> </div> <div id='corps'> <span class="ariane">Vous êtes ici : <a href="index.php">Index</a> <img src="images/fleche.gif" alt="-->"/> <a href="forum.php">Accueil</a> <img src="images/fleche.gif" alt="-->"/> <a href="view.php?cat=5&view=cat">Divers</a> <img src="images/fleche.gif" alt="-->"/> <a href="view.php?th=7&view=th">Présentation</a> <img src="images/fleche.gif" alt="-->"/> <a href="view.php?view=top&top=3"> bonjour </a><br/><br/></span> <table name="table" id="table"> <thead> <tr> <th class="intermediate">Auteur</th> <th class="message">Message</th> </tr> </thead> <tbody> <tr class="title" id="pid4"> <td><center><a href="profil.php?profil=1&action=consult">Admin</a></center></td> <td><a href="view.php?view=top&top=3#pid4">#</a> Posté le 15/06/2007 à 19:49:24</td> </tr> <tr class="top"> <td><center><img src="avatars/unknow.gif" alt="Avatar" /></center> 6 messages<br/> <em>Inscrit le 15/06/2007 à 11:48:09</em><br/> Groupe : Administrateur</td><td name="post" id="post"></td></tr><input type="hidden" id="recup" value=" [gras]test[/gras] " /> <script language="javascript" type="text/javascript" > p=document.getElementById("recup").value p = code_to_html(p); document.getElementById("post").innerHTML=p ; </script> <tr class="title" id="pid5"> <td><center><a href="profil.php?profil=1&action=consult">Admin</a></center></td> <td><a href="view.php?view=top&top=3#pid5">#</a> Posté le 15/06/2007 à 19:49:35</td> </tr> <tr class="top"> <td><center><img src="avatars/unknow.gif" alt="Avatar" /></center> 6 messages<br/> <em>Inscrit le 15/06/2007 à 11:48:09</em><br/> Groupe : Administrateur</td><td name="post" id="post"></td></tr><input type="hidden" id="recup" value=" test encore !! " /> <script language="javascript" type="text/javascript" > p=document.getElementById("recup").value p = code_to_html(p); document.getElementById("post").innerHTML=p ; </script> <tr class="title" id="pid6"> <td><center><a href="profil.php?profil=1&action=consult">Admin</a></center></td> <td><a href="view.php?view=top&top=3#pid6">#</a> Posté le 15/06/2007 à 19:49:45</td> </tr> <tr class="top"> <td><center><img src="avatars/unknow.gif" alt="Avatar" /></center> 6 messages<br/> <em>Inscrit le 15/06/2007 à 11:48:09</em><br/> Groupe : Administrateur</td><td name="post" id="post"></td></tr><input type="hidden" id="recup" value=" un dernier " /> <script language="javascript" type="text/javascript" > p=document.getElementById("recup").value p = code_to_html(p); document.getElementById("post").innerHTML=p ; </script> </tbody> <tfoot><th class="page">Pages : [1]&nbsp;&nbsp;</th> <th>Pas encore inscrit ?<br/> C'est necessaire pour pouvoir participer au forum.<br/> Pour vous inscrire, <a href="forum.php?type=registration">cliquez ici</a>.</th> </tfoot> </table> </div> </div> </body> </html>
Voila. Mais j'avoue que je ne vois pas ; si j'avais oublié une balise, cela ne fonctionnerait pour aucun navigateurs non ??

Enfin bref, merci de m'aider !!

par kmeleon » 15 juin 2007, 23:40

Et qu'est-ce qu'il te génère au niveau HTML ? (pour voir si t'as tout simplement pas oublié une balise)

Visible sous FF, mais ni sous Opéra, ni sous IE

par Zolmitriptan » 14 juin 2007, 13:50

Bonjour à tous,

J'ai testé mon forum sous ces trois navigateurs, pour voir ce que cela donnait, les modifications à apporter etc etc.
Lorsque j'ai testé, cela marchait sous les trois, avec parfois certaines petites imperfections. Pour corriger cela, je change mon code (pas le CSS, dans le design pas de problème), et je re test.

Les imperfections était du genre affichage inutile lorsque le membre n'existe plus, ou que l'information requise n'existe pas....

Mais la, mes messages étaient devenus invisibles sous IE et Opéra, mais pas sous Firefox. J'ai chercher, rien à faire, je ne vois pas. Je procède donc à une méthode très classique dans ces cas la : ctrl-Z :lol: .

Mais la.....rien !! Pas de changement !! Toujours visible sous FF, mais rien sous IE et Opéra. J'ai beau chercher, et tester, je ne trouve pas.

Je viens donc faire appel à vous, au cas ou vous verriez ce que je n'ai pas vu... voila le code qui affiche un message :
<?php
private function createPost($post) {
    $datas = mysql_fetch_assoc($post);
   
    //Si on a récupéré des messages
    if( !empty($datas['post_id']) ){

    //Et si on dispose des information de l'utilisateur
    if (!empty($datas['user_id']) ){
        $form .= '<tr class="title" id="pid'.$datas['post_id'].'">
                  <td>
                    <center><a href="profil.php?profil='.$datas['user_id'].'&action=consult">'.$datas['user_login'].'</a></center>
                  </td>
                  <td>
                     <a href="view.php?view=top&top='.$datas['top_id'].'#pid'.$datas['post_id'].'">#</a> Posté le '.date("d/m/Y \à H:i:s", strtotime($datas['post_create']));

        //Si on a le rang 0 ou si l'id du posteur est le même que celui du créateur, et que le sujet n'est pas bloqué, on peut éditer
        if($_SESSION['rank']==0 || ($_SESSION['id'] == $datas['user_id'] && $_SESSION['rank'] <= $datas['top_blocked'] ) ) {
            $form .= ' <a href="modif.php?mod=editpost&post='.$datas['post_id'].'">Editer</a> ';
        }
       
        //Si on a le rang 0 on peut supprimer
        if( $_SESSION['rank']==0 ) {
            $form .= ' <a href="modif.php?mod=delpost&post='.$datas['post_id'].'">Supprimer</a></td> ';
        }
        else {
            $form .= '</td>';
        }
       
        $form .= '</tr>
                 <tr class="top">
                     <td><center><img src="'.$datas['user_avatar'].'" alt="Avatar" /></center>
                          '.$datas['user_post'].' message';
                           $form .= (($datas['user_post']>1)?'s':'');
                           $form .= '<br/>
                                 <em>Inscrit le '.date("d/m/Y \à H:i:s", strtotime($datas['user_registration'])).'</em><br/>
                           Groupe : ';
                           switch($datas['user_rank']) {
                                case (0) : $form .= 'Administrateur'; break;
                                case (1) : $form .= 'Modérateur'; break;
                                case (2) : $form .= 'Membre'; break;
                                default : $form .= 'Bloqué';
                           }
        }

     //Si on a pas les information du membre (mais qu'on a les infos d'un message)
     elseif(empty($datas['user_id']) ){
        $form .= '<tr class="title" id="pid'.$datas['post_id'].'">
                     <td><center>Inconnu</center></td>
                     <td><a href="view.php?view=top&top='.$datas['top_id'].'#pid'.$datas['post_id'].'">#</a> Posté le '.date("d/m/Y \à H:i:s", strtotime($datas['post_create']));

        //Si on a le rang 0 on peut editer et supprimer
        if($_SESSION['rank']==0) {
            $form .= ' <a href="modif.php?mod=editpost&post='.$datas['post_id'].'">Editer</a>
                <a href="modif.php?mod=delpost&post='.$datas['post_id'].'">Supprimer</a></td>';
        }

        $form .= '</tr>
                  <tr class="top">
                    <td><center><img src="./avatars/littleunknow.gif" alt="Avatar" /></center><br/>
                       Ce membre n\'existe plus';
     }
       
     //Puis on affiche les messages                         
     $form .= '</td>

        //Ici en caché pour que javascript vienne récupérer la valeur
        //Quand je le met en type = text, j'ai nien toute les valeurs, dans tout les navigateurs
        <input type="hidden" id="recup" value="'.stripslashes(htmlspecialchars($datas['post_message'])).'" />
        <td name="postMess" id="postMess"></td></tr>';     
                                       
        echo $form;
       
        //On ferme php, on fait appel à la fonction code_to_html
        ?>
        <script language="javascript" type="text/javascript">
                p=document.getElementById("recup").value
                p = code_to_html(p);
                document.getElementById("postMess").innerHTML=p ;
        </script> <?php
     }
}
Chose étrange : le premier message de chaque page s'affiche sous IE et Opéra. Mais uniquement le premier....

Voila, j'espère que quelqu'un verra ce que je n'ai pas été capable de voir.


Merci d'avance