Page 1 sur 1

Problème avec un script d'annuaire

Posté : 22 mars 2009, 17:17
par Audiofeeline
Bonjour à tous,
j'utilise l'annuaire 1Two mais j'ai rencontré un petit soucis avec les magic_quote qui sont désactivées sur mon serveur.
J'ai réussi à régler quelques problèmes mais je n'arrive pas à résoudre un soucis coté admin.

Je n'arrive pas à valider ou à supprimer les sites soumis mais je ne suis pas trop expert, auriez-vous une idée ?

Voici le code de la partie qui pose problème :

Code : Tout sélectionner

<?php if (($_POST['SubmitEditSite']=="Valider") && ($_POST['editowner']!="") && ($_POST['editemail']!="") && ($_POST['edittitle']!="") && ($_POST['editurl']!="") && ($_POST['editurl']!="http://") && ($_POST['editdescription']!="")) { $res_modif_site = @mysql_query("UPDATE ".$table_prefix."sites SET category='".mysql_real_escape_string($_POST['listecat'])."', title='".mysql_real_escape_string($_POST['edittitle'])."', url='".mysql_real_escape_string($_POST['editurl'])."', description='".mysql_real_escape_string($_POST['editdescription'])."', owner='".mysql_real_escape_string($_POST['editowner'])."', email='".mysql_real_escape_string($_POST['editemail'])."' WHERE compteur='".mysql_real_escape_string($_GET['site'])."'",$db); echo "<br /><img src='../design/ls-valid.gif' alt='' /> Le site a &eacute;t&eacute; modifi&eacute;.<br /><br />"; $_GET['action']=""; } if ($_GET['action']=="editsite") { $list_edit_sites=@mysql_fetch_row(@mysql_query("SELECT * FROM ".$table_prefix."sites WHERE compteur='".$_GET['site']."'",$db)); echo "<br />Edition du site $list_edit_sites[1] (tous les champs sont obligatoires)<br /><br />"; echo "<form method='post' action=''><table width='100%' cellspacing='3' cellpadding='0'>"; echo "<tr><td align='right'></td><td>"; echo "<select name='listecat'>"; $res_compteur=@mysql_query("SELECT * FROM ".$table_prefix."cat ORDER BY name ASC",$db); if (@mysql_num_rows($res_compteur)!=0) { for ($i=0; $i<mysql_num_rows($res_compteur); $i++) { $list_compteur=@mysql_fetch_row($res_compteur); if (@mysql_num_rows(@mysql_query("SELECT * FROM ".$table_prefix."cat WHERE inside='$list_compteur[2]'",$db))==0) { $tabmenu=""; $ligne=""; $idliste=$list_compteur[2]; while ($idliste!=0) { $list_idliste=@mysql_fetch_row(@mysql_query("SELECT * FROM ".$table_prefix."cat WHERE compteur='$idliste'",$db)); $tabmenu[]="$list_idliste[0]"; $idliste=$list_idliste[1]; } $nbrtabmenu=count($tabmenu); for ($t=$nbrtabmenu-1; $t>=0; $t--) { if ($t==$nbrtabmenu-1) $ligne=$ligne."$tabmenu[$t]"; else $ligne=$ligne." > $tabmenu[$t]"; if ($tabfinal=="") $tabfinal[]="$ligne"; else { if (in_array($ligne,$tabfinal)!=1) $tabfinal[]="$ligne"; } } } } $nbrtabfinal=count($tabfinal); $tabfinal[]=rsort($tabfinal); for ($f=$nbrtabfinal-1; $f>=0; $f--) { $tablastword= explode(" > ",$tabfinal[$f]); $lastword=$tablastword[count($tablastword)-1]; $list_compteur_last_word=@mysql_fetch_row(@mysql_query("SELECT compteur FROM ".$table_prefix."cat WHERE name=\"$lastword\"",$db)); echo "<option value='$list_compteur_last_word[0]'"; if ($_GET['id']=="$list_compteur_last_word[0]") echo " selected"; echo ">$tabfinal[$f]</option>"; } } echo "</select></td></tr>"; echo "<tr><td align='right'>Votre nom : </td><td><input name='editowner' type='text' size='40' maxlength='20' value=\"$list_edit_sites[8]\"></td></tr>"; echo "<tr><td align='right'>Adresse email : </td><td><input name='editemail' type='text' size='40' maxlength='100' value='$list_edit_sites[5]'></td></tr>"; echo "<tr><td align='right'>Titre du site : </td><td><input name='edittitle' type='text' size='40' maxlength='100' value=\"$list_edit_sites[1]\"></td></tr>"; echo "<tr><td align='right'>Url du site : </td><td><input name='editurl' type='text' size='40' maxlength='200' value='$list_edit_sites[2]'></td></tr>"; echo "<tr><td align='right'>Description du site :</td><td><textarea name='editdescription' cols='40' rows='8'>$list_edit_sites[4]</textarea></td></tr>"; echo "<tr><td align='right'>&nbsp;</td><td><input type='submit' name='SubmitEditSite' value='Valider'></td></tr>"; echo "</table></form>"; } $res_valid=@mysql_query("SELECT * FROM ".$table_prefix."sites WHERE valid=0 ORDER BY date_ins ASC, hour_ins ASC",$db); if (@mysql_num_rows($res_valid)!=0) { $nb_valid=mysql_num_rows($res_valid); switch ($_POST['choix']) { case "Valider" : echo "<img src='../design/valid.png' alt='' /> Site(s) valid&eacute;(s)<br /><br />"; for ($i=1; $i<=$nb_valid; $i++) { $j=$i-1; $list_valid=@mysql_fetch_row($res_valid); if ( $checkbox[$j]== $i ) { $resswitch=@mysql_query("UPDATE ".$table_prefix."sites SET valid='1' WHERE compteur='$list_valid[0]'",$db); mail("$list_valid[5]","".TWO_TITLE.", site valid&eacute;","Votre site $list_valid[1] a &eacute;t&eacute; ajout&eacute; dans notre annuaire.\n".TWO_TITLE."","From: ".TWO_TITLE." <".TWO_EMAIL.">\r\n"); } } break; case "Supprimer" : echo "<img src='../design/valid.png' alt='' /> Site(s) supprim&eacute;(s)<br /><br />"; for ($i=1; $i<=$nb_valid; $i++) { $j=$i-1; $list_valid=@mysql_fetch_row($res_valid); if ( $checkbox[$j]== $i ) { $resswitch=@mysql_query("DELETE FROM ".$table_prefix."sites WHERE compteur='$list_valid[0]'",$db); mail("$list_valid[6]","".TWO_TITLE.", site supprim&eacute;","Votre site $list_valid[1] n'a pas &eacute;t&eacute; accept&eacute; dans notre annuaire.\n".TWO_TITLE."","From: ".TWO_TITLE." <".TWO_EMAIL.">\r\n"); } } break; } } $res_valid=@mysql_query("SELECT * FROM ".$table_prefix."sites WHERE valid=0 ORDER BY date_ins ASC, hour_ins ASC",$db); if (@mysql_num_rows($res_valid)!=0) { echo "<form method='post' action='index.php?menu=validsites'>"; for ($i=0; $i<mysql_num_rows($res_valid); $i++) { $j=$i+1; $list_valid=@mysql_fetch_row($res_valid); $list_cat=@mysql_fetch_row(@mysql_query("SELECT name FROM ".$table_prefix."cat WHERE compteur='$list_valid[6]'",$db)); echo "<div class='aff_sites'><table width='100%'><tr><td><a href='$list_valid[2]'>$list_valid[1]</a> <a href='?menu=validsites&id=$list_valid[6]&site=$list_valid[0]&action=editsite'><img src='../design/edit.png' alt=\"Editer le site $list_valid[1]\" title=\"Editer le site $list_valid[1]\" /></a><br />Cat&eacute;gorie : $list_cat[0]<br />URL : $list_valid[2]<br />$list_valid[4]</td>"; echo "<td>$list_valid[7] - $list_valid[9]</td>"; echo "<td>" . "<input type=\"checkbox\" name=\"checkbox[" . $i . "]\" value=\"" . $j . "\">" . "</td>"; echo "</tr></table></div>"; } echo "<input type='submit' name='choix' value='Valider'> <input type='submit' name='choix' value='Supprimer'></form>"; } else echo "<b>Pas de site(s) en attente de validation...</b>"; ?>
Merci de votre aide ! :)

Posté : 22 mars 2009, 17:49
par julian
Tu as une erreur quand tu essaie de valider ou supprimer ?

Posté : 22 mars 2009, 17:54
par Audiofeeline
Je n'ai pas de message d'erreur mais le statut des sites ne change pas, en gros ça n'écrit pas dans la BDD.
J'imagine que ça doit être en rapport avec les magic_quotes mais je n'en suis pas très sur.

Posté : 22 mars 2009, 18:01
par julian
Ce que tu peux faire c'est afficher les requêtes SQL sur la page avec
die(echo $requete);
Il va bloquer le script et afficher la requete $requete, comme ça tu pourra essayer de la coller directement dans phpMyAdmin (par exemple) et avoir un message détaillé.
Parfois, quand on fais des modifs, ça va vite d'oublier une virgule ou une quote ;)

Posté : 22 mars 2009, 18:24
par Audiofeeline
Ça serait ça qui ne fonctionnerait pas :

Code : Tout sélectionner

$resswitch=@mysql_query("UPDATE ".$table_prefix."sites SET valid='1' WHERE compteur='$list_valid[0]'",$db);
C'est au dessus de mes compétences là.

Posté : 22 mars 2009, 18:30
par julian
$resswitch=@mysql_query("UPDATE ".$table_prefix."sites SET valid='1' WHERE compteur='$list_valid[0]'",$db);
die(echo "UPDATE ".$table_prefix."sites SET valid='1' WHERE compteur='$list_valid[0]'");

Posté : 22 mars 2009, 18:33
par Audiofeeline
Parse error: syntax error, unexpected T_ECHO in /home/funzz/sd/annuaire/www/admin/validsites.php on line 76 zarabotak.com

Posté : 22 mars 2009, 18:38
par julian
Pardon ;) c'est ça la syntaxe
$resswitch=@mysql_query("UPDATE ".$table_prefix."sites SET valid='1' WHERE compteur='$list_valid[0]'",$db);
die("UPDATE ".$table_prefix."sites SET valid='1' WHERE compteur='$list_valid[0]'");

Posté : 22 mars 2009, 18:47
par Audiofeeline
Ça n'affiche rien. :ordi:
Les magic_quotes ne jouent pas dans ce cas ?
J'ai vraiment du mal à piger d'où ça vient...

Re: Problème avec un script d'annuaire

Posté : 22 mars 2009, 18:51
par Victor BRITO
j'utilise l'annuaire 1Two mais j'ai rencontré un petit soucis avec les magic_quote qui sont désactivées sur mon serveur.
Y a-t-il un support officiel pour ce script ou, à défaut, un moyen de signaler ton problème auprès du développeur original du script ?

En tout cas, ça sent bon le script mal optimisé pour les différents cas de figure en matière de configuration PHP... :roll:

Posté : 22 mars 2009, 18:56
par Audiofeeline
Ouais je l'ai prévenu, il en fera ce qu'il voudra.
Pour ma part j'essaye de mettre un site en production car le script convient parfaitement à mes besoins mais est quelque peu buggy alors me voilà sur PHPFrance. :)

Le soucis viendrait du register_globals qui est à Off chez moi, il doit y avoir des variables qui sont "mal récupérées"...