erreur delete

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 : erreur delete

par pjl » 10 oct. 2005, 17:15

A mon avis, la requête ne doit pas aimer cette partie là :

Code : Tout sélectionner

GROUP BY 3 ORDER BY 3 DESC
Quand on met du code, c'est quand même mieux de ne poster que la partie concernée par le PB ou au moins de mettre en avant la ligne ou est le problème.

Là, je te conseille d'afficher ta requête et de la tester via PHPMyAdmin.

par Invité » 10 oct. 2005, 15:42

ses plus court
$SQL = "SELECT count($tb1.ID),max($tb1.quand),$tb3.ID,$tb3.titr
e,detail FROM $tb1 RIGHT JOIN $tb3 ON $tb1.IDtopic=$tb3.ID"
          . " GROUP BY 3 ORDER BY 3 DESC"

          . " LIMIT ".($page-1)*$maxPosts.",".$maxPosts;

par Invité » 10 oct. 2005, 15:36

lol
<?
include("_conn.php");
?>
<HTML><HEAD>
	<TITLE>Peintre Corse : Eric Carrara</TITLE>
	<LINK REL="stylesheet" TYPE="text/css" HREF="styles.css">
	<SCRIPT language="JavaScript" src="scripts.js"></SCRIPT>

<?
// Destruction d'un topic
if($isAdmin && (@$_GET["deltopic"]!="")) {
	mysql_query("DELETE FROM $tb1 WHERE IDtopic=".$_GET["deltopic"]);
	mysql_query("DELETE FROM $tb3 WHERE ID=".$_GET["deltopic"]);
}

// Destruction de messages
if(@$_GET["del"]) {
	if($isModo) mysql_query("DELETE FROM $tb1 WHERE ID=".$_GET["del"]." OR reponse=".$_GET["del"]);
	elseif($isUser) mysql_query("DELETE FROM $tb1 WHERE IDuser=".$user["ID"]." AND (ID=".$_GET["del"]." OR reponse=".$_GET["del"].")");
}


// Requête générique
$SQL1 = "SELECT $tb1.ID,reponse,$tb1.quand,login,email,titre,message,ismodo,IDuser,pied"
. " FROM $tb1 LEFT JOIN $tb2 ON $tb1.IDuser=$tb2.ID";


// === MODIFICATION D'UN MESSAGE ===

if(@$_POST["modif"]&&@$_POST["message"]) {

	$SQL = "UPDATE $tb1 SET message='".myaddslashes($_POST["message"])."'";
	if(@$_POST["titre"]) $SQL .= ",titre='".myaddslashes($_POST["titre"])."'";
	$SQL .= " WHERE ID='".@$_GET["edit"]."' AND IDuser='".@$user["ID"]."'";
	mysql_query($SQL);
}

// === AJOUT D'UN MESSAGE ===

elseif(@$_POST["message"]) {

	// Requête d'insertion (ID sera mis à jour automatiquement)
	$SQL = "INSERT into $tb1(quand,IDtopic,IDuser,message"
		. ",reponse,titre,pied) VALUES(" . time()
		. ",".$_GET["topic"]
		. ",".$user["ID"]
		. ",'".myaddslashes($_POST["message"])."'"
		. ",'".$_POST["reponse"]."'"
		. ",'".myaddslashes(@$_POST["titre"])."'"
		. ",'".addslashes($user["signature"])."'"
		. ")";
	mysql_query($SQL);
	// Réponse = n° auto si message initial
	$id = mysql_insert_id();
	if(!$_POST["reponse"]) {
		mysql_query("UPDATE $tb1"
			. " SET reponse=".$id.",dernier=".$id." WHERE ID=".$id);
	// Mise à jour de l'ID du dernier post du sujet pour tri
	} else {
		mysql_query("UPDATE $tb1"
			. " SET dernier=".$id." WHERE reponse=".$_POST["reponse"]);
	}

	// Envoi de la réponse par email
	if($_POST["reponse"]!="0") {
		// Sujet du mail
		$SQL = "SELECT titre FROM $tb1 WHERE ID="
			. $_POST["reponse"];
		$res = mysql_query($SQL);
		$sujet = "Re: ".mysql_result($res,0,0);
		// Sélection des destinataires
		$SQL = $SQL1 . " WHERE reponse="
			. $_POST["reponse"]." ORDER BY ID DESC";
		$res = mysql_query($SQL);
		// Ne pas envoyer à l'auteur de la réponse
		$temp=",".$user["email"].",";
		// Pour chaque adresse
		while($val=mysql_fetch_array($res)) {
			// Déjà envoyé ?
			if(!strpos(" ".$temp,",".$val["email"].",")) {
				// Corps du message
$body = "Bonjour ".$val["login"].",\n\n"
	. "Un visiteur a repondu a votre message sur le forum :"
	. "\n".str_repeat("-",40)."\n"
	. $user["login"]." >> ".mystripslashes($_POST["message"])
	. "\n".str_repeat("-",40)."\n"
	. "\nen reponse a votre message du ".date("d/m/Y",$val["quand"])." :"
	. "\n".str_repeat("-",40)."\n"
	. mystripslashes($val["message"])
	. "\n".str_repeat("-",40)."\n"
	. "\nPour poursuivre la discussion, veuillez vous rendre a l'adresse\n"
	. "http://".$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"]
	. "?topic=".$_GET["topic"]."&post=".$_POST["reponse"]
	."\n\nA bientot\n";
				// Envoi du mail
				sendMail($mailForum,$val["email"],$sujet,$body);
				// mémorise l'adresse
				$temp .= $val["email"] . ",";
			}
		}
	}
	// Redirection
	redir($_SERVER["REQUEST_URI"]);
}

// === AFFICHAGE DE LA PAGE ===

// N° de la page
$page = @$_GET["page"]; if(!$page) $page="1";

include("_top.php"); ?>
        <table width="100%" cellspacing=10 cellpadding=5 >
<tr>
        <table width="580" cellspacing=10 cellpadding=5 >
		<tr>
            
<?
// === Affichage des messages ===

include("_msg.php");

// Affichage des topics
if(!@$_GET["topic"]) {

	$maxPosts = 10; // Nbre max de msg/page
	$url = "index.php";

	// Comptage des topics
	$SQL = "SELECT count(*) FROM $tb3";
	$nbMsg = mysql_result(mysql_query($SQL),0,0);
	$nbPage = ceil($nbMsg/$maxPosts);
	if($page>$nbPage) $page=$nbPage;
	// Requête de sélection des topics
	$SQL = "SELECT count($tb1.ID),max($tb1.quand),$tb3.ID,$tb3.titre,detail FROM $tb1 RIGHT JOIN $tb3 ON $tb1.IDtopic=$tb3.ID"
		. " GROUP BY 3 ORDER BY 3 DESC"
		. " LIMIT ".($page-1)*$maxPosts.",".$maxPosts;
	$res = mysql_query($SQL);
	// Tant qu'il y a des topics
	while($val=mysql_fetch_array($res)) {
		echo "<dl><td class=msg><dt class=msg>";
		// Poubelle ?
		if($isAdmin) 
		echo "<A href='".$url."?deltopic=".$val[2]."&page=".$page."'>".$img_poub."</A>";
		echo "&nbsp;<A class=msg href='".$url."?topic=".$val[2]."'>".emoticon_replace(htmlentities($val[3]))."</A></dt>"
			. "<dd class=msg><A href='".$url."?topic=".$val[2]."'>".nl2br(ecrit_detail($val[4]))."</A></dd>"
			. "</td></dl><td align=center width=100 nowrap class=msg><font class=f7>".$val[0]." message";
		if($val[0]>1) echo "s";
		echo "<br><br>";
		if($val[1]) echo date("d/m/y H:i",$val[1]);
		else echo "NOUVEAU";
		echo "</font></td></tr><tr>";
	}

// Affichage de la liste
} elseif(!@$_GET["post"]) {

	function crunch($tx,$lg) {
		$tmp = 0;
		if(strlen($tx)>$lg) $tmp = strpos($tx," ",$lg);
		if($tmp) $tx2 = substr($tx,0,$tmp);
		else $tx2 = substr($tx,0,$lg);
		if($tx2!=$tx) $tx2.=" ...";
		return $tx2;
	}

	$maxPosts = 20; // Nbre max de msg/page
	$url = "index.php?topic=".$_GET["topic"];

	// Affichage du topic
	$res=mysql_query($SQL = "SELECT titre,detail from $tb3 WHERE ID=".$_GET["topic"]);
	echo "<td><font class=titre><".emoticon_replace(htmlentities(mysql_result($res,0,0)))."> </font>".nl2br(ecrit_detail(mysql_result($res,0,1)))."</td></tr><tr>";

	// Comptage des messages
	$SQL = "SELECT count(*) FROM $tb1 WHERE IDtopic=".$_GET["topic"];
	$nbMsg = mysql_result(mysql_query($SQL),0,0);
	$nbPage = ceil($nbMsg/$maxPosts);
	if($page>$nbPage) $page=$nbPage;

	// Requête de sélection des messages
	$SQL = $SQL1 . " WHERE IDtopic=".$_GET["topic"]." ORDER BY dernier DESC,ID"
		. " LIMIT ".($page-1)*$maxPosts.",".$maxPosts;
	$res = mysql_query($SQL); $i=0;
	echo "<dl><td class=msg>";
	// Tant qu'il y a des messages
	while($val=mysql_fetch_array($res)) { $i++;
		$temp = "";
		// Cas où on démarre d'une réponse > on réaffiche le sujet
		if(($i==1)&&($val["reponse"]!=$val["ID"])) {
			$SQL = $SQL1 . " WHERE $tb1.ID=".$val["reponse"];
			$val=mysql_fetch_array(mysql_query($SQL));
			mysql_data_seek($res,0);
		}
		// Poubelle ? Admin ou Modérateur (sauf msg d'autres modérateurs) ou Message du visiteur
		if( $isAdmin || ($isModo &&($val["ismodo"]!="1")&&($val["IDuser"]!="1")) || ($user["ID"]==$val["IDuser"]) )
			$temp.="<A href='".$url."&del=".$val["ID"]."&page=".$page."'>".$img_poub."</A> ";
		// Edition ? Sujet du visiteur
		if(($val["reponse"]==$val["ID"])&&($user["ID"]==$val["IDuser"]))
			$temp.= "<A href='".$url."&edit=".$val["ID"]."&page=".$page."#edit'>".$img_edit."</A> ";
		// Nouveau sujet ?
		if($val["reponse"]==$val["ID"]) {
			if($i>1) echo "</td></dl></tr><tr><dl><td class=msg>";
			$temp.="<A class=msg href='".$url."&post=".$val["ID"]."'>";
		}
		// Ecrit la date du message
		$temp.="<span class=msgdate>"
			.date("d/m/y H:i",$val["quand"])." </span>";
		// Ecrit le login de l'auteur
		$temp.= $val["login"] . " : ";
		// Ecrit le titre ou le début du message
		if($val["reponse"]==$val["ID"]) 
			echo "<dt class=msg>".$temp.emoticon_replace(htmlentities($val["titre"])) . "</A></dt>";
		else
			echo "<dd class=msg>"
				.$temp.emoticon_replace(htmlentities(crunch($val["message"],70)))."</dd>";
	}
	echo "</td></dl>";

// Affichage détaillé du sujet
} else {

	$maxPosts = 10; // Nbre max de msg/page
	$url = "index.php?topic=".$_GET["topic"]."&post=".$_GET["post"];

	// Affichage du topic
	$res=mysql_query($SQL = "SELECT titre,detail from $tb3 WHERE ID=".$_GET["topic"]);
	echo "<td colspan=2><font class=titre><".emoticon_replace(htmlentities(mysql_result($res,0,0)))."> </font>".nl2br(ecrit_detail(mysql_result($res,0,1)))."</td></tr><tr>";

	// Comptage des messages
	$SQL = "SELECT count(*) FROM $tb1 WHERE reponse="
		. $_GET["post"];
	$nbMsg = mysql_result(mysql_query($SQL),0,0);
	$nbPage = ceil($nbMsg/$maxPosts);
	if($page>$nbPage) $page=$nbPage;

	// Requête de sélection des messages
	$SQL = $SQL1 . " WHERE reponse="
		. $_GET["post"] . " ORDER BY reponse DESC,ID"
		. " LIMIT ".($page-1)*$maxPosts.",".$maxPosts;
	$res = mysql_query($SQL);
	echo "<td><table>"; $i=0;
	// Tant qu'il y a des messages
	while($val=mysql_fetch_array($res)) { $i++;
		echo "<tr><td align=center valign=top class=".((($i>1)||($page>1))?"msg2":"msg1").">";
		// avatar
		if(file_exists($path_avatar.$val["IDuser"].".jpg"))
			echo "<img src='".$path_avatar.$val["IDuser"].".jpg'><br>";
		else echo "<img src='".$path_avatar."0.jpg'><br>";
		if($isModo)
			echo "<A href='mailto:".$val["email"]."'>".$val["login"]."</A>";
		else
			echo $val["login"];
		// message
		

		echo "</td><td width=100% valign=top class=".((($i>1)||($page>1))?"msg2":"msg1").">";
		// Poubelle ? Admin ou Modérateur (sauf msg d'autres modérateurs) ou Message du visiteur
		if($post <1);
			echo "";
		if($isAdmin || ($isModo &&($val["ismodo"]!="1")&&($val["IDuser"]!="1")) || ($user["ID"]==$val["IDuser"]) )
			echo "<A href='".$url."&del=".$val["ID"]."&page=".$page."'>".$img_poub."</A> ";
		// Edition ? Réponse du visiteur
		if($user["ID"]==$val["IDuser"])
			echo "<A href='".$url."&edit=".$val["ID"]."&page=".$page."#edit'>".$img_edit."</A> ";
		// Ecrit la date du message
		echo "<span class=msgdate>"
			.date("d/m/y H:i",$val["quand"])." </span>";
		// Ecrit le titre éventuel puis le message
		if($val["reponse"]==$val["ID"])
			echo "<font class=msg>".emoticon_replace(htmlentities($val["titre"]))."</font>";
		echo "<br>" . nl2br(ecrit_detail($val["message"]));
		if($val["pied"])
			echo "<div><br><div class=signature>".nl2br(ecrit_detail($val["pied"]))."</div></div>";
		echo "</td></tr>";
	}
	echo "</table></td>";
} 

// Barre de navigation
if($nbMsg>$maxPosts) {
	$temp= "</tr><tr class=navig><td align=center><table><tr><td width=60 nowrap>";
	if($page>1) {
		$temp.= "<A href='".$url."'>|<</A>&nbsp;&nbsp;&nbsp;&nbsp;";
		if($page>2) $temp.= "<A href='".$url."&page=".($page-1)."'><<</A>";
		else $temp.= "<A href='".$url."'><<</A>";
	}
	$temp.= "</td><td align=center nowrap>&nbsp;&nbsp;Page ";
	for($i=max(1,$page-5);$i<=min($nbPage,$page+5);$i++) {
		if($i==$page) $temp.= $i." ";
		else {
			$temp.= "<A href='".$url;
			if($i>1) $temp.= "&page=".$i;
			$temp.= "'>".$i."</A> ";
		}
	}
	$temp.= "&nbsp;&nbsp;</td><td align=right width=60 nowrap>";
	if($nbMsg>$page*$maxPosts)
		$temp.= "<A href='".$url."&page=".($page+1)."'>>></A>&nbsp;&nbsp;"
		. "&nbsp;&nbsp;<A href='".$url."&page=".$nbPage."'>>|</A>";
	$temp.= "</td></tr></table></td>";
	echo str_replace("index.php&","index.php?",$temp);
}
?>
          </tr>
  </table>
          <p align="center"><a name="edit"><br>
            </a>
              <? // Formulaire de saisie
	
if(!$isUser) { // identifié ? ?>
             <a href="log.php">Pour participer à ce forum vous devez être identifié !</a><br>
              <? } elseif(@$_GET["topic"]) {
	
	if(!@$_GET["post"]||(mysql_num_rows($res)>0)) {
		
		if(@$_GET["edit"]) {
			$res2 = mysql_query("SELECT ID,titre,message FROM $tb1 WHERE ID=".$_GET["edit"]." AND IDuser=".$user["ID"]);
			$val2 = mysql_fetch_array($res2);
		}
		
		?>
              <script language="JavaScript"><!--
		function repond(num) {
			with(document.form1) {
				// vérification du champ message
				test=checkfield(message,".+","Le message est vide !")
			<? if(!@$_GET["post"]) { ?>
				// vérification du champ titre
				if(test) test=checkfield(titre,".+","Le titre est vide !")
			<? } ?>
				reponse.value=num
				if(test) submit()
			}
		}
	--></script>
          </p>
          <table align="center">
            <form method="post" action="index.php?topic=<? echo $_GET["topic"];
			// on transmet éventuellement le n° d'édition
			if(@$_GET["edit"]) echo "&edit=".$_GET["edit"];
			// le n° de dernière page
			if((@$_GET["post"]||@$_GET["edit"])&&($nbMsg>=$maxPosts)) echo "&page=".ceil(($nbMsg+1)/$maxPosts);
			if(@$_GET["post"]) {
				// et le n° du sujet
				echo "&post=".$_GET["post"];
			} ?>#edit" name="form1">
              <? if(!@$_GET["post"]) { ?>
              <tr>
                <td align=right>Titre</td>
                <td><input name="titre" size=60 maxlength=80 value="<?if(@$_GET["edit"]) echo htmlentities(@$val2["titre"])?>"></td>
              </tr>
              <? } ?>
              <tr>
                <td align=right valign=top>Message</td>
                <td><textarea name="message" cols=60 rows=10><?if(@$_GET["edit"]) echo htmlentities(@$val2["message"])?>
          </textarea>
                </td>
              </tr>
              <tr>
                <td>&nbsp;</td>
                <td align=center><? echo emoticon("form1.message") ?></td>
              </tr>
              <tr>
                <td>&nbsp;</td>
                <td align=center><? echo taglist("form1.message") ?></td>
              </tr>
              <tr>
                <td>&nbsp;</td>
                <td align=center><br>
                    <? // Bouton "Modifier, "Nouveau" ou "Répondre" ?
					if(@$_GET["edit"]) { ?>
                    <input type="submit" value="Modifier" name="modif">
                    <? } elseif(@$_GET["post"]) { ?>
                    <input type="button" value="Répondre"
							onClick="repond(<?echo $_GET["post"]?>)">
                    <? } else { ?>
                    <input type="button" value="Nouveau sujet" onClick="repond(0)">
                    <? } ?>
                    <input type="hidden" name="reponse" value="0">
                </td>
              </tr>
            </form>
  </table>
          <? }
}

if(@$_GET["post"]) { ?>
          <div align="center"><br>
              <a href="index.php?topic=<?echo $_GET["topic"]?>">Retour à la liste des sujets</a> </div>
        <? }

par mcorgnet » 10 oct. 2005, 15:13

ha ben si c'est un virus alors ...

par pjl » 10 oct. 2005, 15:12

Message aux admins : un virus semble envahir le forum. On voit les questions, on voit les messages d'erreur mais impossible de voir le code à l'origine de ces erreurs.

par mcorgnet » 10 oct. 2005, 15:12

c'est bien tout ça, mais on peut voir la requête ?

erreur delete

par Invité » 10 oct. 2005, 15:10

bonjour a tous!!!! j'ai un message d'erreur quand je supprime un messsage sur mon forum

Code : Tout sélectionner

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\album essaie\site\pages\forum\index.php on line 241 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\album essaie\site\pages\forum\index.php on line 308