Annuaire 1Two Light sur PHP5

WRInaute accro
Salut les gens! :)
Je suis en train de bricoler un annuaire avec le script 1Two mais voilà, je suis en PHP5 et il semblerait que ça ne soit pas compatible.
Le formulaire pour ajouter des sites n'écrit pas dans la base de donnée, vous auriez une idée ?
Merci.
 
WRInaute accro
Bon après enquête, ça viendrait des apostrophes qui ne passe pas dans le textarea, quand j'ajoute un antislash directement dans le formulaire, ça passe.
Une idée ?
 
WRInaute impliqué
Un problème avec les quotes magiques peut-être ?

http://fr3.php.net/magic_quotes

Ça va faire mal quand on commencera à migrer en PHP 6 pour certains... Un peut comme le changement sur la directive register_globals entre PHP 3 et PHP 4.

Pour info, ces deux notions seront totalement supprimées en PHP 6.
 
WRInaute accro
Il faut préférer mysql_real_escape_string à addslashes alors ?

J'ai ça pour le moment :
Code:
$_POST['owner']=strip_tags($_POST['owner']);
$_POST['owner']=mysql_real_escape_string($_POST['owner']);

$_POST['email']=strip_tags($_POST['email']);
$_POST['email']=mysql_real_escape_string($_POST['email']);

$_POST['title']=strip_tags($_POST['title']);
$_POST['title']=mysql_real_escape_string($_POST['title']);

$_POST['url']=strip_tags($_POST['url']);
$_POST['url']=mysql_real_escape_string($_POST['url']);

$_POST['description']=strip_tags($_POST['description']);
$_POST['description']=mysql_real_escape_string($_POST['description']);

C'est assez cochon, non ? :mrgreen:
 
WRInaute impliqué
Il faut peut être lire les explications plutôt que faire du copier/coller :

Note: Si magic_quotes_gpc est activée, appliquez d'abord la fonction stripslashes() à vos données. Utiliser cette fonction sur des données qui ont déjà été protégées, les protégera une deuxième fois.

N'as-tu pas dit qu'il n'était pas activé ?
 
WRInaute accro
La validation des sites ne fonctionne pas, vous pensez que ça peut venir de ça ?

Voilà le code :

Code:
<?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='".$_POST['listecat']."', title='".$_POST['edittitle']."', url='".$_POST['editurl']."', description='".$_POST['editdescription']."', owner='".$_POST['editowner']."', email='".$_POST['editemail']."' WHERE compteur='".$_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>";
?>
 
WRInaute accro
Personne n'aurait une idée ? :'(

Il doit y avoir une variable qui n'est pas récupérée correctement lors de la validation.
 
Discussions similaires
Haut