colonnes smileys

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 : colonnes smileys

par Henri » 18 juin 2007, 11:58

en complément de ce qui est dit juste au-dessus :
XHTML impose de mettre des quotes autour des attributs, mais permet les double quotes ou les simples quotes (même si la majorité des exemples sont donnés avec des double-quotes). pour rendre ton code plus lisible, tu peux donc écrire
echo "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' />\n";
ou
echo '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />'."\n" ;

par Ryle » 18 juin 2007, 11:36

Regarde le code source généré de ta page, tu as des guillemets de partout, et du coup les valeurs de tes attributs ne sont pas délimitées correctement :
<td align="center">
  <img style="border: 0;" src="images/icones/"biggrin.gif" alt="" title=""Very Happy" />
</a>
</td>
<td align="center">
  <img style="border: 0;" src="images/icones/"smile.gif" alt="" title=""Smile" />
</a>
</td>
Cf. ce qui a été dit plus haut : si tu utilises des apostrophes pour délimiter tes chaines (ce qui est nettement plus pratique quand tu travailles sur des balises html :)), ne protège pas les guillemets (uniquement les apostrophes) et sors tes variables de tes chaines...

Par ailleurs tu as des balises fermantes </a> mais pas de <a ...> pour les ouvrir, et tu as toujours deux balises </table> alors que tu n'en n'ouvres qu'une... ;)

dsl

par thebest321 » 17 juin 2007, 16:43

désolé d'être lourd mais vous savez d'où viens le problème ? :?

re

par thebest321 » 15 juin 2007, 16:49

j'ai modifié mais les images ne s'affichent pas

par Invité » 15 juin 2007, 14:58

Cf la dernière ligne de code de Ryle...
echo '<td align="center"><img style="border: 0;" src="images/icones/"' . $url . '" alt="" title=""' . $name . '" /></a></td>';
La tienne ne correspond pas :)

re

par thebest321 » 15 juin 2007, 13:36

http://ftpteamnon.free.fr/siteteam/web/ ... tbox_texte

voici ma page
et vocii mon code :
    function smilies()
    {
        global $textarea, $theme, $bgcolor3, $bgcolor2;

       echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
       . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\">\n"
       . "<head><title>" . _SMILEY . "</title>\n"
       . "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n"
       . "<meta http-equiv=\"content-style-type\" content=\"text/css\" />\n"
       . "<link title=\"style\" type=\"text/css\" rel=\"stylesheet\" href=\"themes/" . $theme . "/style.css\" /></head>\n"
       . "<body style=\"background: " . $bgcolor2 . ";\">\n"
       . "<script type=\"text/javascript\" src=\"bbcode.js\"></script>\n";

       echo "<script type=\"text/javascript\">\n"
       . "<!--\n"
       . "\n"
       . "function eff(){\n"
       . "if (opener.document.getElementById('" . $textarea . "').value == '" . _YOURMESS . "')\n"
       . "{\n"
       . "opener.document.getElementById('" . $textarea . "').value='';\n"
       . "}\n"
       . "}\n"
       . "\n"
       . "// -->\n"
       . "</script>\n";

       echo "<div style=\"text-align: center;\"><big><b>" . _LISTSMILIES . "</b></big></div>\n"
       . "<table width=\"100%\" cellpadding=\"3\" cellspacing=\"0\"><tr><td colspan=\"2\">&nbsp;</td></tr>\n"
       . "<tr style=\"background: $bgcolor3;\"><td align=\"center\"><b>" . _IMAGE . "</b></td></tr>\n";

echo '<table>';//

   $nbcol = 6;// 
   $i = 0; 

        $sql = mysql_query("SELECT code, url, name FROM " . SMILIES_TABLE . " ORDER BY id");
$nbe = mysql_num_rows($sql);//
        while (list($code, $url, $name) = mysql_fetch_array($sql))
        {
            $name = stripslashes($name);
            $name = htmlentities($name);
            $code = htmlentities($code);

            if (($nbe>0) && ($i==0)){ echo '<tr>'; }//
     echo '<td align=\"center\"><img style=\"border: 0;\" src=\"images/icones/" . $url . "\" alt=\"\" title=\"" . $name . "\" /></a></td>';//
     $i++;//
     $nbe--;//
      if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }//
     }//
     echo '</table>';//


        echo "</table><div style=\"text-align: center;\"><br /><a href=\"#\" onclick=\"javascript:window.close()\"><b>" . _CLOSEWINDOW . "</b></a></div></body></html>";
    }  


switch ($op)
{

    case"smilies":
        smilies();
        break;

    case"index":
        index();
        break;

    default:
        index();
        break;
} 

?> 
mais j'ai pas tout compris dans le message de ryle :oops: donc c'est possible que j'ai raté un truc important

par Ryle » 15 juin 2007, 12:31

Groumpf.... bon ben c'était moi :)

par Invité » 15 juin 2007, 12:26

Essayes d'indenter proprement ton code : dès que tu ouvres une accollade, tu décalles tout ce qui suit vers la droite d'une tabulation ou d'espaces, et dès que tu en refermes une tu reviens à gauche d'une tabulation. Cela t'évitera les problèmes d'accolades mal équilibrées :)

Par ailleurs tu ferme deux fois le tableau :
if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }// 
     }// 
     echo '</table>';// 
        }  

        echo "</table><div .... "
Et il te manque le caractère "<" pour ouvrir ta cellule td ici :
if (($nbe>0) && ($i==0)){ echo '<tr>'; }// 
     echo 'td align=\"center\"><img style=\"border: 0;\" src=\"images/icones/" . $url . "\" alt=\"\" title=\"" . $name . "\" /></a></td>';// 
     $i++;// 
Sans parler du fait que des variables php entre apostrophes ne sont pas interprétées et que tu verras donc "$url" et "$name" apparaitre en toutes lettres :)
Enfin, si tu entourre ta chaine d'apostrophes, il est inutile de protéger les guillemets, ca rend ton code illisible inutilement :)
echo '<td align="center"><img style="border: 0;" src="images/icones/"' . $url . '" alt="" title=""' . $name . '" /></a></td>';

par Megadeth » 15 juin 2007, 12:00

Re, désolé pour le délai...

Essaies de retirer l'accolade sous echo '</table';//
   if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }// 
     }// 
     echo '</table>';// 
        }  
de façon à n'avoir que :
   if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }// 
     }// 
     echo '</table>';// 
et dis moi ;)

Mega :)

re

par thebest321 » 14 juin 2007, 20:26

"phrase" pardon
tu vois où il y a un problème mega ?

re

par thebest321 » 13 juin 2007, 21:46

Parse error: syntax error, unexpected '}' in /mnt/157/sdb/1/9/ftpteamnon/siteteam/web/modules/Textbox/index.php on line 199
voilà mon message d'erreur
et dans le php j'ai :

 function smilies()
    {
        global $textarea, $theme, $bgcolor3, $bgcolor2;

       echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
       . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\">\n"
       . "<head><title>" . _SMILEY . "</title>\n"
       . "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n"
       . "<meta http-equiv=\"content-style-type\" content=\"text/css\" />\n"
       . "<link title=\"style\" type=\"text/css\" rel=\"stylesheet\" href=\"themes/" . $theme . "/style.css\" /></head>\n"
       . "<body style=\"background: " . $bgcolor2 . ";\">\n"
       . "<script type=\"text/javascript\" src=\"bbcode.js\"></script>\n";

       echo "<script type=\"text/javascript\">\n"
       . "<!--\n"
       . "\n"
       . "function eff(){\n"
       . "if (opener.document.getElementById('" . $textarea . "').value == '" . _YOURMESS . "')\n"
       . "{\n"
       . "opener.document.getElementById('" . $textarea . "').value='';\n"
       . "}\n"
       . "}\n"
       . "\n"
       . "// -->\n"
       . "</script>\n";

       echo "<div style=\"text-align: center;\"><big><b>" . _LISTSMILIES . "</b></big></div>\n"
       . "<table width=\"100%\" cellpadding=\"3\" cellspacing=\"0\"><tr><td colspan=\"2\">&nbsp;</td></tr>\n"
       . "<tr style=\"background: $bgcolor3;\"><td align=\"center\"><b>" . _IMAGE . "</b></td></tr>\n";

echo '<table>';//

   $nbcol = 6;// 
   $i = 0; 

        $sql = mysql_query("SELECT code, url, name FROM " . SMILIES_TABLE . " ORDER BY id");
$nbe = mysql_num_rows($sql);//
        while (list($code, $url, $name) = mysql_fetch_array($sql))
        {
            $name = stripslashes($name);
            $name = htmlentities($name);
            $code = htmlentities($code);

            if (($nbe>0) && ($i==0)){ echo '<tr>'; }//
     echo 'td align=\"center\"><img style=\"border: 0;\" src=\"images/icones/" . $url . "\" alt=\"\" title=\"" . $name . "\" /></a></td>';//
     $i++;//
     $nbe--;//
      if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }//
     }//
     echo '</table>';//
        } 

        echo "</table><div style=\"text-align: center;\"><br /><a href=\"#\" onclick=\"javascript:window.close()\"><b>" . _CLOSEWINDOW . "</b></a></div></body></html>";
    }  


switch ($op)
{

    case"smilies":
        smilies();
        break;

    case"index":
        index();
        break;

    default:
        index();
        break;
} 

?> 


?>

par Megadeth » 13 juin 2007, 21:07

arf oui le require_once n'est pas valable pour toi, retires cette ligne : require_once("connex.php");//

et aussi car ta variable porte un nom différent met : $nbe = mysql_num_rows($sql); au lieu de $nbe = mysql_num_rows($r);

et reteste ;)

Mega :)

Ps : si tu as des erreurs, indique le message affiché ;)

re

par thebest321 » 13 juin 2007, 19:00

    function smilies()
    {
        global $textarea, $theme, $bgcolor3, $bgcolor2;

       echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
       . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\">\n"
       . "<head><title>" . _SMILEY . "</title>\n"
       . "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n"
       . "<meta http-equiv=\"content-style-type\" content=\"text/css\" />\n"
       . "<link title=\"style\" type=\"text/css\" rel=\"stylesheet\" href=\"themes/" . $theme . "/style.css\" /></head>\n"
       . "<body style=\"background: " . $bgcolor2 . ";\">\n"
       . "<script type=\"text/javascript\" src=\"bbcode.js\"></script>\n";

       echo "<script type=\"text/javascript\">\n"
       . "<!--\n"
       . "\n"
       . "function eff(){\n"
       . "if (opener.document.getElementById('" . $textarea . "').value == '" . _YOURMESS . "')\n"
       . "{\n"
       . "opener.document.getElementById('" . $textarea . "').value='';\n"
       . "}\n"
       . "}\n"
       . "\n"
       . "// -->\n"
       . "</script>\n";

       echo "<div style=\"text-align: center;\"><big><b>" . _LISTSMILIES . "</b></big></div>\n"
       . "<table width=\"100%\" cellpadding=\"3\" cellspacing=\"0\"><tr><td colspan=\"2\">&nbsp;</td></tr>\n"
       . "<tr style=\"background: $bgcolor3;\"><td align=\"center\"><b>" . _IMAGE . "</b></td></tr>\n";

echo '<table>';//
  require_once("connex.php");//
   $nbcol = 6;// 
   $i = 0; 

        $sql = mysql_query("SELECT code, url, name FROM " . SMILIES_TABLE . " ORDER BY id");
$nbe = mysql_num_rows($r);//
        while (list($code, $url, $name) = mysql_fetch_array($sql))
        {
            $name = stripslashes($name);
            $name = htmlentities($name);
            $code = htmlentities($code);

            if (($nbe>0) && ($i==0)){ echo '<tr>'; }//
     echo 'td align=\"center\"><img style=\"border: 0;\" src=\"images/icones/" . $url . "\" alt=\"\" title=\"" . $name . "\" /></a></td>';//
     $i++;//
     $nbe--;//
      if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }//
     }//
     echo '</table>';//
        } 

        echo "</table><div style=\"text-align: center;\"><br /><a href=\"#\" onclick=\"javascript:window.close()\"><b>" . _CLOSEWINDOW . "</b></a></div></body></html>";
    }  
Il me dit qu'il y a un problème à la dernière ligne j'ai du rater un passage xD

par Megadeth » 13 juin 2007, 16:01

Ok lol.

Essaie en gros, ca :
echo '<table>';//on ouvre un tableau HTML 
  require_once("connex.php");//on se connecte à la base 
   $nbcol = 6;// nombre de colonnes voulues, LA VALEUR A VOTRE CONVENANCE ;) 
   $i = 0;
juste avant :
$sql = mysql_query("SELECT code, url, name FROM " . SMILIES_TABLE . " ORDER BY id");
Cette ligne :
$nbe = mysql_num_rows($r);//nombre d'enregistrements 
avant :
while (list($code, $url, $name) = mysql_fetch_array($sql)) 
Ceci :
if (($nbe>0) && ($i==0)){ echo '<tr>'; }//première et chaque nouvelle ligne  
     echo 'td align=\"center\"><img style=\"border: 0;\" src=\"images/icones/" . $url . "\" alt=\"\" title=\"" . $name . "\" /></a></td>';//nos gentilles cellules 
     $i++;//on incrémente i 
     $nbe--;//on décrémente nbe 
      if (($i==$nbcol) || ($nbe==0)) { $i=0; echo '</tr>'; }//si dernier enregistrement ou i a atteint la limite  
     }//on ferme le while 
 echo '</table>';//fermeture du tableau HTML 
à la place de :
echo " <tr><td align=\"center\"><img style=\"border: 0;\" src=\"images/icones/" . $url . "\" alt=\"\" title=\"" . $name . "\" /></a></td></tr>\n"; 
On attend ton retour...

Mega :)

mci

par thebest321 » 13 juin 2007, 15:22

merci beaucoup mais j'ai rien compris j'ai mon bloc notes comme ceci à la fin :
  function smilies()
    {
        global $textarea, $theme, $bgcolor3, $bgcolor2;

       echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n"
       . "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"fr\">\n"
       . "<head><title>" . _SMILEY . "</title>\n"
       . "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />\n"
       . "<meta http-equiv=\"content-style-type\" content=\"text/css\" />\n"
       . "<link title=\"style\" type=\"text/css\" rel=\"stylesheet\" href=\"themes/" . $theme . "/style.css\" /></head>\n"
       . "<body style=\"background: " . $bgcolor2 . ";\">\n"
       . "<script type=\"text/javascript\" src=\"bbcode.js\"></script>\n";

       echo "<script type=\"text/javascript\">\n"
       . "<!--\n"
       . "\n"
       . "function eff(){\n"
       . "if (opener.document.getElementById('" . $textarea . "').value == '" . _YOURMESS . "')\n"
       . "{\n"
       . "opener.document.getElementById('" . $textarea . "').value='';\n"
       . "}\n"
       . "}\n"
       . "\n"
       . "// -->\n"
       . "</script>\n";

       echo "<div style=\"text-align: center;\"><big><b>" . _LISTSMILIES . "</b></big></div>\n"
       . "<table width=\"100%\" cellpadding=\"3\" cellspacing=\"0\"><tr><td colspan=\"2\">&nbsp;</td></tr>\n"
       . "<tr style=\"background: $bgcolor3;\"><td align=\"center\"><b>" . _IMAGE . "</b></td></tr>\n";

        $sql = mysql_query("SELECT code, url, name FROM " . SMILIES_TABLE . " ORDER BY id");
        while (list($code, $url, $name) = mysql_fetch_array($sql))
        {
            $name = stripslashes($name);
            $name = htmlentities($name);
            $code = htmlentities($code);

            echo " <tr><td align=\"center\"><img style=\"border: 0;\" src=\"images/icones/" . $url . "\" alt=\"\" title=\"" . $name . "\" /></a></td></tr>\n";
        } 

        echo "</table><div style=\"text-align: center;\"><br /><a href=\"#\" onclick=\"javascript:window.close()\"><b>" . _CLOSEWINDOW . "</b></a></div></body></html>";
    }  


switch ($op)
{

    case"smilies":
        smilies();
        break;

    case"index":
        index();
        break;

    default:
        index();
        break;
} 

?> 


?>
Donc je ne sais pas du tout où mettre ce que tu m'as dit et le modifier aussi car je suppose que quand tu dis "ta table" etc je dois mettre quelque chose mais j'y connais vraiment rien
:oops: