Livre d'or

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 : Livre d'or

par DocType » 21 nov. 2006, 23:11

Je vais rien dire de plus, sachant que j'ai approuvé la modération d'un message que je t'avais laissé qui était assez hard, mais j'approuve entièrement les dires de mes collègues :wink:

par Cyrano » 21 nov. 2006, 23:05

Tu vas peut-être trouver ça raide comme réponse, mais je n'en vois pas d'autre qui soit appropriée :
  1. Si c'est un site commercial qui est en plus un outil de travail, il serait peut-être opportun d'envisager l'appel à un prestataire de service qualifié. Ce n'est pas gratuit, mais d'abord tu n'auras pas à te soucier du code et ensuite ce sera opérationnel; Un menuisier ne taille pas les assemblages d'une fenêtre avec un vague bout de ferraille bricolé à la meule, il achète des ciseaux à bois et des gouges qu'il affute et entretient soigneusement.
  2. Je t'ai montré un code nettoyé : je regarde le code que tu as corrigé et tu me recommences un code tout aussi dégueulasse que le premier : en clair, je prêche dans le désert, merci, ça m'encourage à filer des coups de main.
Pour ce qui me concerne, je crois que je vais en rester là, ça m'agace plus qu'autre chose. :evil:

par zeus » 21 nov. 2006, 22:58

Dans ce cas là, c'est totalement différent.

Je suis vraiement désolé mais nous ne sommes pas un self-service.
Ici, des bénévoles aident les personnes qui veulent résoudre leur problème de codage. En aucun cas nous ne maintenons gratuitement les code des autres. Encore moins s'il s'agit d'un outil de travail qui va générer du bénéfice :evil:

Donc, il te reste plusieurs solutions :
1/ Tu essayes de comprendre ton code et tu te mets au travail avec nous pour arriver à résoudre ton code. Avec le temp que ça prendra.
2/ Tu t'adresse à une société de service qui te fera ces modifications mineures en un temps reccord ... et un prix associé.

par autocleanconcept » 21 nov. 2006, 22:52

je comprend bien votre but de vouloir aider les autres, mais le probleme c'est que pour ce qui est de " variable, requete,...) je n'y comprend pas grand chose .

je cherche juste à ce que quelqu'un m'aide à resoudre les divers problemes que j'ai sur mon site .

Mon site est un outils de travail qui permet à mes client de mieux connaitre ma societe et mes services, je n'ai pas trop de temps à consacrer pour le php vu mon boulot .

merci de me comprendre ( je ne cherche pas à devenir un pro du php)

d'avance, merci à vous.

par zeus » 21 nov. 2006, 22:05

Alors, 1erement, ça ne marche pas, ca ne nous aide pas a t'aider.

Il faut que tu nous dises ce que tu obtiens.

Ensuite, c'est pas parce que Cyrano te montre une variable qui n'existe pas dans une requete qu'il faut le supprimer ;)
Il vaut mieux se demander a quoi elle correspond et essayer de la récupérer correctement :D

par autocleanconcept » 21 nov. 2006, 21:53

Voila .
<?
//// On inclut le formulaire pour ajouter un nouveau message ////
include("formulaire.php");


//// Connexion à la base mySQL ////

@MYSQL_CONNECT($serveur,$utilisateur,$mdp) or die ("Connexion impossible");
@MYSQL_SELECT_DB($db) or die ("Connexion à la base $base impossible");


$req=mysql_query("SELECT * FROM twiggy_messages");
$nbmsg=mysql_num_rows($req);

if($nbmsg=="")
 {
  echo "<center><b>Il n'y a pas de messages sur le livre d'or</b></center><br><br><br>";
 }
 
function CouperMot($message,$cut)
   {
    $message=wordwrap($message,$cut, " ", 1);
    return $message;
   }

//// Initialisation affichage page par page ////

if(empty($page)) $page=1;
if(empty($total))
 {
  $req=mysql_query("SELECT * FROM twiggy_messages");
  $total=mysql_num_rows($req);
 }

//// On determine debut du limit ////
$debut=($page-1)*$nb;

$req = mysql_query("SELECT * FROM twiggy_messages ORDER BY id DESC LIMIT ". $debut .",". $nb .""); 
while($comment=mysql_fetch_array($req))
 {
  $comment['auteur']=CouperMot($comment['auteur'],$cut);
  
  $email="$comment[email]";
  
  if(empty($email))
   {
    echo "<table border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" width=\"400\" class=\"tableau\"> \n";
    echo " <tr>\n";
    echo "     <td class=\"row_1\"> \n";
    echo "         <b>Auteur :</b> $comment[auteur] || <b>Posté le :</b> $comment[date]</b> \n";
    echo "     </td> \n";
    echo " </tr> \n";
   }
   
  else
   {
    echo "<table border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" width=\"400\" class=\"tableau\"> \n";
    echo " <tr>\n";
    echo "     <td class=\"row_1\"> \n";
    echo "         <b>Auteur : <a href=\"mailto:$comment[email]\">$comment[auteur]</a></b> || <b>Posté le :</b> $comment[date] \n";
    echo "     </td> \n";
    echo " </tr> \n";
   }

  $commentaire="$comment[commentaire]";
  
  $commentaire=CouperMot($commentaire,$cut);
  
  $req2=mysql_query("SELECT * FROM twiggy_censure");
  while($censure=mysql_fetch_array($req2))
  {
   $commentaire=preg_replace("/(^|[^a-zA-Z])($censure[mot])([^a-zA-Z]|$)/si",'\\1'.$censure['rempl'].'\\3',$commentaire);
  }

  
  if($autogen=="oui")
   {
    $commentaire=eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])","<a href=\"\\1://\\2\\3\" target=\"_blank\">\\1://\\2\\3</a>",$commentaire);
    $commentaire=eregi_replace("([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+)","<a href=\"mailto:\\1\">\\1</a>",$commentaire);
   }
   
  $commentaire=str_replace("[01]"," <img src='smileys/01.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[02]"," <img src='smileys/02.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[03]"," <img src='smileys/03.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[04]"," <img src='smileys/04.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[05]"," <img src='smileys/05.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[06]"," <img src='smileys/06.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[07]"," <img src='smileys/07.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[08]"," <img src='smileys/08.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[09]"," <img src='smileys/09.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[10]"," <img src='smileys/10.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[11]"," <img src='smileys/11.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[12]"," <img src='smileys/12.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[13]"," <img src='smileys/13.gif' align='absmiddle'> ",$commentaire);
  $commentaire=str_replace("[14]"," <img src='smileys/14.gif' align='absmiddle'> ",$commentaire);

  echo " <tr> \n";
  echo "     <td class=\"row_2\"> \n";
  echo "         $commentaire \n";
  echo "     </td>\n";
  echo " </tr> \n";
  echo "</table><br> \n";
  
 }

mysql_close();
  
//// Calcul du nombre de pages ////

echo "<center> \n ";

echo "Page :\n ";
$nbpages = ceil($total / $nb);
for($i = 1;$i <= $nbpages;$i ++)
 {
  echo "<a href=\"index.php?page=$i&total=$total\" class=titre>$i</a> \n";
  if($i < $nbpages) echo " - ";
 }
 
echo "<br><a href=\"admin/\" target=_blank><b>Admin</b></a></center>\n ";

echo "</body> \n";
echo "</html> \n";

?>
ça ne fonctionne toujour pas .

par Cyrano » 21 nov. 2006, 17:36

Le contraire m'aurait presque surpris, je ne me suis pas trop attardé sur les détails, mais comprends bien que pour débugguer un programme, il faut qu'il soit lisible. CQFD, on commence par le ménage.

Maintenant, un peu d'analyse :
$debut = ($page - 1) * $nb;
Où donc est définie ta variable $nb?
Je ne la vois nulle part, donc forcément, ici:
$req = mysql_query("SELECT * FROM twiggy_messages ORDER BY id DESC LIMIT ". $debut .",". $nb ."");
le second paramètre de LIMIT est tout aussi absent...

Commence par corriger ça et reviens avec la suite :)

par autocleanconcept » 21 nov. 2006, 17:31

j'ai toujours le meme probleme, pas d'affichage corect en page 2,3,...

par Cyrano » 21 nov. 2006, 17:21

Bon ben on va commencer par tester avec un code un peu rangé et proprement écrit :
<?php
//// On inclut le formulaire pour ajouter un nouveau message ////
include("formulaire.php");

//// Connexion à la base mySQL ////

mysql_connect($serveur,$utilisateur,$mdp) or die ("Connexion impossible");
mysql_select_db($db) or die ("Connexion à la base $base impossible");


$req=mysql_query("SELECT * FROM twiggy_messages");
$nbmsg=mysql_num_rows($req);

if($nbmsg=="")
{
?>
<center><b>Il n'y a pas de messages sur le livre d'or</b></center><br>
<br>
<br>
<?php
}

function CouperMot($message,$cut)
{
    $message=wordwrap($message,$cut, " ", 1);
    return $message;
}

//// Initialisation affichage page par page ////

if(empty($page)) $page=1;
if(empty($total))
{
    $req=mysql_query("SELECT * FROM twiggy_messages");
    $total=mysql_num_rows($req);
}

//// On determine debut du limit ////
$debut = ($page - 1) * $nb;

$req = mysql_query("SELECT * FROM twiggy_messages ORDER BY id DESC LIMIT ". $debut .",". $nb ."");
while($comment=mysql_fetch_array($req))
{
    $comment['auteur']=CouperMot($comment['auteur'],$cut);

    $email="$comment[email]";

    if(empty($email))
    {
?>
<table border="0" align="center" cellpadding="5" cellspacing="1" width="400" class="tableau">
  <tr>
    <td class="row_1">
      <b>Auteur :</b> <?php echo($comment['auteur']); ?> || <b>Posté le :</b> <?php echo($comment['date']); ?></b>
    </td>
  </tr>
<?php
    }
    else
    {
?>
<table border="0" align="center" cellpadding="5" cellspacing="1" width="400" class="tableau">
  <tr>
    <td class="row_1">
      <b>Auteur : <a href="mailto:<?php echo($comment['email']); ?>"><?php echo($comment['auteur']); ?></a></b> || <b>Posté le :</b> <?php echo($comment['date']); ?>
    </td>
  </tr>
<?php
    }
    $commentaire = $comment['commentaire'];

    $commentaire=CouperMot($commentaire,$cut);

    $req2=mysql_query("SELECT * FROM twiggy_censure");
    while($censure=mysql_fetch_array($req2))
    {
        $commentaire=preg_replace("/(^|[^a-zA-Z])($censure[mot])([^a-zA-Z]|$)/si",'\\1'.$censure['rempl'].'\\3',$commentaire);
    }

    if($autogen=="oui")
    {
        $commentaire=eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])","<a href=\"\\1://\\2\\3\" target=\"_blank\">\\1://\\2\\3</a>",$commentaire);
        $commentaire=eregi_replace("([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+)","<a href=\"mailto:\\1\">\\1</a>",$commentaire);
    }

    $commentaire=str_replace("[01]"," <img src='smileys/01.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[02]"," <img src='smileys/02.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[03]"," <img src='smileys/03.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[04]"," <img src='smileys/04.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[05]"," <img src='smileys/05.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[06]"," <img src='smileys/06.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[07]"," <img src='smileys/07.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[08]"," <img src='smileys/08.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[09]"," <img src='smileys/09.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[10]"," <img src='smileys/10.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[11]"," <img src='smileys/11.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[12]"," <img src='smileys/12.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[13]"," <img src='smileys/13.gif' align='absmiddle'> ",$commentaire);
    $commentaire=str_replace("[14]"," <img src='smileys/14.gif' align='absmiddle'> ",$commentaire);
?>
  <tr>
    <td class="row_2">
      <?php echo($commentaire); ?>
    </td>
  </tr>
</table>
<br>
<?php
}
mysql_close();
//// Calcul du nombre de pages ////
?>
<center>Page :
<?php
$nbpages = ceil($total / $nb);
for($i = 1;$i <= $nbpages;$i ++)
{
?>
<a href="index.php?page=<?php echo($i); ?>&total=<?php echo($total); ?>" class="titre"><?php echo($i); ?></a>
<?php
    if($i < $nbpages) echo " - ";
}
?>
<br>
<a href="admin" target="_blank"><b>Admin</b></a></center>
</body>
</html>
Teste déjà ça.

par autocleanconcept » 21 nov. 2006, 16:22

Je pense à une chose .

le code de ma page n'est pas vraiment identique à ton modele .

sais tu voir si c'est bien dans la page où je cherche qu'il y un probleme ?

je met le code de la page et dit moi si tu voit un truc qui cloche .

Merci

Code : Tout sélectionner

<? //// On inclut le formulaire pour ajouter un nouveau message //// include("formulaire.php"); //// Connexion à la base mySQL //// @MYSQL_CONNECT($serveur,$utilisateur,$mdp) or die ("Connexion impossible"); @MYSQL_SELECT_DB($db) or die ("Connexion à la base $base impossible"); $req=mysql_query("SELECT * FROM twiggy_messages"); $nbmsg=mysql_num_rows($req); if($nbmsg=="") { echo "<center><b>Il n'y a pas de messages sur le livre d'or</b></center><br><br><br>"; } function CouperMot($message,$cut) { $message=wordwrap($message,$cut, " ", 1); return $message; } //// Initialisation affichage page par page //// if(empty($page)) $page=1; if(empty($total)) { $req=mysql_query("SELECT * FROM twiggy_messages"); $total=mysql_num_rows($req); } //// On determine debut du limit //// $debut=($page-1)*$nb; $req=mysql_query("SELECT * FROM twiggy_messages ORDER BY id DESC LIMIT $debut,$nb"); while($comment=mysql_fetch_array($req)) { $comment['auteur']=CouperMot($comment['auteur'],$cut); $email="$comment[email]"; if(empty($email)) { echo "<table border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" width=\"400\" class=\"tableau\"> \n"; echo " <tr>\n"; echo " <td class=\"row_1\"> \n"; echo " <b>Auteur :</b> $comment[auteur] || <b>Posté le :</b> $comment[date]</b> \n"; echo " </td> \n"; echo " </tr> \n"; } else { echo "<table border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" width=\"400\" class=\"tableau\"> \n"; echo " <tr>\n"; echo " <td class=\"row_1\"> \n"; echo " <b>Auteur : <a href=\"mailto:$comment[email]\">$comment[auteur]</a></b> || <b>Posté le :</b> $comment[date] \n"; echo " </td> \n"; echo " </tr> \n"; } $commentaire="$comment[commentaire]"; $commentaire=CouperMot($commentaire,$cut); $req2=mysql_query("SELECT * FROM twiggy_censure"); while($censure=mysql_fetch_array($req2)) { $commentaire=preg_replace("/(^|[^a-zA-Z])($censure[mot])([^a-zA-Z]|$)/si",'\\1'.$censure['rempl'].'\\3',$commentaire); } if($autogen=="oui") { $commentaire=eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])","<a href=\"\\1://\\2\\3\" target=\"_blank\">\\1://\\2\\3</a>",$commentaire); $commentaire=eregi_replace("([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+)","<a href=\"mailto:\\1\">\\1</a>",$commentaire); } $commentaire=str_replace("[01]"," <img src='smileys/01.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[02]"," <img src='smileys/02.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[03]"," <img src='smileys/03.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[04]"," <img src='smileys/04.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[05]"," <img src='smileys/05.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[06]"," <img src='smileys/06.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[07]"," <img src='smileys/07.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[08]"," <img src='smileys/08.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[09]"," <img src='smileys/09.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[10]"," <img src='smileys/10.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[11]"," <img src='smileys/11.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[12]"," <img src='smileys/12.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[13]"," <img src='smileys/13.gif' align='absmiddle'> ",$commentaire); $commentaire=str_replace("[14]"," <img src='smileys/14.gif' align='absmiddle'> ",$commentaire); echo " <tr> \n"; echo " <td class=\"row_2\"> \n"; echo " $commentaire \n"; echo " </td>\n"; echo " </tr> \n"; echo "</table><br> \n"; } mysql_close(); //// Calcul du nombre de pages //// echo "<center> \n "; echo "Page :\n "; $nbpages = ceil($total / $nb); for($i = 1;$i <= $nbpages;$i ++) { echo "<a href=\"index.php?page=$i&total=$total\" class=titre>$i</a> \n"; if($i < $nbpages) echo " - "; } echo "<br><a href=\"admin/\" target=_blank><b>Admin</b></a></center>\n "; echo "</body> \n"; echo "</html> \n"; ?>

par autocleanconcept » 21 nov. 2006, 15:44

je comprend bien ton point de vue, mais n'ayent jamais fait de php je rame quelques peut .

le probleme doit venir de la partie suivante :

Code : Tout sélectionner

//// On determine debut du limit //// $debut=($page -1)*$nb ;
sais tu me dire si je suis dans le bon ?

j'ai essayer de modifier le code plusieurs fois et pas de bon resultats c'est pour moi le -1 qui est pas juste .

par Cyrano » 21 nov. 2006, 14:23

Le code de l'exemple cité est largement commenté. prends le temps de lire les commentaires, ils sont aussi important que le texte avant et/ou après le code.

Comprends bien ce que je veux dire : je veux faire en sorte que tu comprennes et sois à même de corriger toi-même ton code. Le corriger moi-même est totalement sans intérêt pour nous deux : pour moi parce que je connais déjà tout ça, et pour toi parce que tu n'apprendras rien et resteras dépendant des autres. Les exemple que j'indique sont en général écrits dans cette optique.

par autocleanconcept » 21 nov. 2006, 13:59

C'est au niveau du code ici que j'ai un probleme, quand je met $page=2 il me donne bien la 2éme serie de message .

Code : Tout sélectionner

//// Initialisation affichage page par page //// if(empty($page)) $page=1; if(empty($total)) { $req=mysql_query("SELECT * FROM twiggy_messages"); $total=mysql_num_rows($req); }

par autocleanconcept » 21 nov. 2006, 13:41

j'ai bien regardé le lien que tu m'as donné, mais je ne trouve pas d'ou vien mon probleme . Quelle partie dans ton code indique que la page 2 doit afficher ça ou ça ou encore ça ?

c'est ce code la


Code : Tout sélectionner

if($page_en_cours > 0) { for($i = 0; $i < $page_en_cours; $i++) { $p = $i + 1; $barre_nav .= "<a href=\"". $url . $i ."\" title=\"page ". $p ."\">". $p ."</a> | "; } }
Merci pour l'aide .

je debute et decouvre en meme temps plein de choses que je doit comprendre.

par Cyrano » 21 nov. 2006, 12:48

En cherchant un peu, on trouve des choses passionnantes sur le forum :-k