Problème avec un script d'annuaire

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 : Problème avec un script d'annuaire

par Audiofeeline » 22 mars 2009, 18:56

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"...

Re: Problème avec un script d'annuaire

par Victor BRITO » 22 mars 2009, 18:51

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:

par Audiofeeline » 22 mars 2009, 18:47

Ça n'affiche rien. :ordi:
Les magic_quotes ne jouent pas dans ce cas ?
J'ai vraiment du mal à piger d'où ça vient...

par julian » 22 mars 2009, 18:38

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]'");

par Audiofeeline » 22 mars 2009, 18:33

Parse error: syntax error, unexpected T_ECHO in /home/funzz/sd/annuaire/www/admin/validsites.php on line 76 zarabotak.com

par julian » 22 mars 2009, 18:30

$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]'");

par Audiofeeline » 22 mars 2009, 18:24

Ç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à.

par julian » 22 mars 2009, 18:01

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 ;)

par Audiofeeline » 22 mars 2009, 17:54

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.

par julian » 22 mars 2009, 17:49

Tu as une erreur quand tu essaie de valider ou supprimer ?

Problème avec un script d'annuaire

par Audiofeeline » 22 mars 2009, 17:17

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 ! :)