Page 1 sur 2

probleme pour ajouter fonc.. supprimer ts les carac..s spéc

Posté : 06 févr. 2009, 22:01
par papayou_s
je ne sais pas comment metre en place ma fonction suppression de tous les caractères spéciaux pour les champs title et description

j'ai essayé a c est balise

// Get details from DB if Edit, otherwise set from POST data
et la
// Data is valid so try and add

Code : Tout sélectionner

function verifnomimage($texte) { $texte = strtr( $texte,"àáâãäåòóôõöøèéêëçìíîïùúûüÿñÀÁÂÃÄÅÒÓÔÕÖØÈÉÊËÇÌÍÎÏÙÚÛÜÑ","aaaaaaooooooeeeeciiiiuuuuynAAAAAAOOOOOOEEEECIIIIUUUUN"); $texte = strtr($texte," ","_"); $texte = str_replace("'","_",$texte); $texte = str_replace("\"","_",$texte); $texte = str_replace("&","",$texte); $texte = str_replace("(","",$texte); $texte = str_replace(")","",$texte); $texte = str_replace("[","",$texte); $texte = str_replace("]","",$texte); $texte = str_replace(":","",$texte); $texte = str_replace("<","",$texte); $texte = str_replace(">","",$texte); $texte = str_replace("\\","",$texte); $texte = str_replace("/","",$texte); $texte = str_replace("*","",$texte); $texte = str_replace("?","",$texte); $texte = str_replace("’","",$texte); $texte = str_replace("«","",$texte); $texte = str_replace("»","",$texte); $texte = str_replace("~","",$texte); $texte = str_replace("|","",$texte); $texte = str_replace("`","",$texte); $texte = str_replace("^","",$texte); $texte = str_replace("°","",$texte); $texte = str_replace("=","",$texte); $texte = str_replace("+","",$texte); $texte = str_replace("-","",$texte); $texte = str_replace("¨","",$texte); $texte = str_replace("$","",$texte); $texte = str_replace("£","",$texte); $texte = str_replace("¤","",$texte); $texte = str_replace("%","",$texte); $texte = str_replace("µ","",$texte); $texte = str_replace("§","",$texte); $texte = str_replace("!","",$texte); $texte = str_replace(";","",$texte); $texte = str_replace(".","",$texte); $texte = str_replace(",","",$texte); $texte = str_replace("@","",$texte); $texte = str_replace("²","2",$texte); $texte = str_replace(" "," ",$texte); return($texte); }
et la page je voudrai l integrer

Code : Tout sélectionner

<?php require_once("../../class2.php"); if (!getperms("P")) { header("location:".e_BASE."index.php"); } require_once(e_ADMIN."auth.php"); if (file_exists(e_PLUGIN."eplayer/language/".e_LANGUAGE.".php")){ require_once(e_PLUGIN."eplayer/language/".e_LANGUAGE.".php"); } $debug = false; $configtitle = EPLAYER_ADMIN_00; $eplayertable = "eplayer"; $categorytable = "eplayer_category"; $primaryid = "id"; // first column of your table. $e_wysiwyg = ""; // commas seperated list of textareas to use wysiwyg with. $pageid = "media"; // unique name that matches the one used in admin_menu.php. $show_preset = FALSE; // allow e107 presets to be saved for use in the form. $downloads = eplayerGetFiles(e_FILE, $pref["eplayer_media_dir"]); $fieldcapt[] = EPLAYER_ADMIN_MEDIA_00_0; $fieldname[] = "title"; $fieldtype[] = "text"; $fieldvalu[] = ",96%,100"; $fieldmand[] = "*"; $fieldcapt[] = EPLAYER_ADMIN_MEDIA_01_0; $fieldname[] = "description"; $fieldtype[] = "textarea"; $fieldvalu[] = ",96%,500px"; $fieldmand[] = ""; $fieldcapt[] = EPLAYER_ADMIN_MEDIA_09_0; $fieldname[] = "author"; $fieldtype[] = "text"; $fieldvalu[] = USERNAME.",50,100"; $fieldmand[] = ""; //--------------------------------------------------------------- // END OF CONFIGURATION AREA //--------------------------------------------------------------- // -------- Presets. ------------ // always load before auth.php if ($show_preset) { require_once(e_HANDLER."preset_class.php"); $pst = new e_preset; $pst->form = "adminform"; // form id of the form that will have it's values saved. $pst->page = e_SELF; // display preset options on which page(s). $pst->id = "admin_".$eplayertable; } require_once(e_ADMIN."auth.php"); require_once("form_handler.php"); $rs = new form; // Validation checks if (isset($_POST['add']) || isset($_POST['update'])) { if (strlen($_POST['title']) == 0) { $message .= "Title ".EPLAYER_ADMIN_MEDIA_12; } } // Data is valid so try and add if (!isset($message) && isset($_POST['add'])) { if ($debug) print "<br>".print_r($_POST)."<br>"; $count = count($fieldname); for ($i=0; $i<$count; $i++) { $inputstr .= " '".$rs->getfieldvalue($fieldname[$i], $fieldtype[$i], $debug)."', "; } $inputstr .= time(); if ($sql->db_Insert($eplayertable, "0, $inputstr", $debug)) { $message = EPLAYER_ADMIN_MEDIA_06; unset($_POST['add']); } else { $message = EPLAYER_ADMIN_MEDIA_07; } } // Data is valid so try and update if (!isset($message) && isset($_POST['update'])) { if ($debug) print "<br>".print_r($_POST)."<br>"; $count = count($fieldname); for ($i=0; $i<$count; $i++) { $inputstr .= $fieldname[$i]."='".$rs->getfieldvalue($fieldname[$i], $fieldtype[$i], $debug)."', "; } $inputstr .= "timestamp=".time(); if ($sql->db_Update($eplayertable, "$inputstr WHERE $primaryid='".$_POST[$primaryid]."'", $debug)) { $message = EPLAYER_ADMIN_MEDIA_04; unset($_POST['update']); } else { if ($debug) print "<br>".mysql_error()."<br>"; $message = EPLAYER_ADMIN_MEDIA_05; } } // Get details from DB if Edit, otherwise set from POST data if (isset($_POST['edit'])) { $sql -> db_Select($eplayertable, "*", " $primaryid='".$_POST['existing']."' "); $row = $sql->db_Fetch(); } else { if (isset($_POST['add']) || isset($_POST['update'])) { $row = $_POST; } } // Try the delete if (isset($_POST['delete'])) { if ($debug) print "<br>".print_r($_POST)."<br>"; $message = ($sql -> db_Delete($eplayertable, "$primaryid='".$_POST['existing']."' ")) ? EPLAYER_ADMIN_MEDIA_08 : EPLAYER_ADMIN_MEDIA_09; } // Draw the form $text = "<div style='text-align:center'><form method='post' action='".e_SELF."' id='myexistingform'> <table style='width:96%;margin-left:auto;margin-right:auto;' class='fborder'>"; if (isset($message)) { $text .= "<tr><td colspan='2' class='spacer' style='text-align:center'>$message</td></tr>"; if ($debug) print "<br>".mysql_error()."<br>"; } $text .= "<tr><td colspan='2' class='forumheader' style='text-align:center'>"; $table_total = $sql->db_Select($eplayertable, "*", " order by id asc", ""); if (!$table_total) { $text .= EPLAYER_ADMIN_MEDIA_10; } else { $text .= "<span class='defaulttext'>".EPLAYER_ADMIN_MEDIA_00.":</span><select name='existing' class='tbox'>"; while (list($id, $title, $description, $rest) = $sql-> db_Fetch()) { $sql2->db_Select($eplayertable, "*", "id=$id order by id"); list($id, $title, $description, $rest) = $sql2->db_Fetch(); $text .= "<option value='$id'>$title ($id)</option>"; } $text .= "</select><input class='button' type='submit' name='edit' value='".EPLAYER_ADMIN_MEDIA_01."' /> <input class='button' type='submit' name='delete' value='".EPLAYER_ADMIN_MEDIA_11."' /></td></tr>"; } $text .= "</table></form></div>"; $text .= "<div style='text-align:center'>\n"; $text .= "<form method='post' action='".e_SELF."' id='adminform'><table class='fborder' style='margin-left:auto;margin-right:auto;width:96%'>"; for ($i=0; $i<count($fieldcapt); $i++) { $form_send = $fieldcapt[$i] . "|" .$fieldtype[$i]."|".$fieldvalu[$i]; $text .="<tr> <td style='vertical-align:top' class='forumheader3'>".$fieldcapt[$i]." ".$fieldmand[$i]."</td> <td class='forumheader3'>"; $text .= $rs->user_extended_element_edit($form_send, $row[$fieldname[$i]], $fieldname[$i]); $text .="</td></tr>"; }; $text .= "<tr style='vertical-align:top'><td colspan='2' style='text-align:center' class='forumheader'>"; if (isset($_POST['edit']) || isset($_POST['update'])){ $text .= "<input class='button' type='submit' id='update' name='update' value='".EPLAYER_ADMIN_MEDIA_02."' /> <input type='hidden' name='$primaryid' value='".$row[$primaryid]."'>"; } else { $text .= "<input class='button' type='submit' id='add' name='add' value='".EPLAYER_ADMIN_MEDIA_03."' />"; } $text .= "</td></tr></table></form></div>"; $ns->tablerender($configtitle, $text); require_once(e_ADMIN."footer.php"); function eplayerGetFiles($prefixdir, $pathdir, $sub=0){ global $t_array, $FILES_DIRECTORY; if (substr($pathdir, strlen($pathdir)-1, 1) != "/") { $pathdir .= "/"; } $dh = opendir($prefixdir.$pathdir); $size = 0; $search = array("../", str_replace("../","",$DOWNLOADS_DIRECTORY), $FILES_DIRECTORY, "downloads/", "downloadimages/", "downloadthumbs/"); $replace = array("", "", "", "", "", ""); while ($file = readdir($dh)) { if ($file != "." and $file != ".." && $file != "index.html" && $file != "null.txt"){ if (is_file($prefixdir.$pathdir.$file)) { $t_array[] = $prefixdir.$pathdir.$file.":".str_replace($search, $replace, $pathdir.$file);; } else { if(!preg_match("#^CVS#", $prefixdir.$patchdir.$file)) { eplayerGetFiles($prefixdir, $pathdir.$file."/"); } } } } closedir($dh); sort($t_array); for ($i=0; $i<count($t_array); $i++) { $csv .= $t_array[$i]; if ($i<count($t_array)-1) { $csv .= ","; } } return $csv; } ?>

Posté : 07 févr. 2009, 13:05
par Aureusms
Utilise une fonction peu exploiter de str_replace : le mode tableau :
j'en fais que 5 pour que tu comprennes.
$tab_accentue = array ("à","á","â","ã","é");
$tab_non_acentue = array ("a","a","a","a","e");

$texte = str_replace ($tab_accentue,$tab_non_acentue,$texte);

Posté : 07 févr. 2009, 13:29
par papayou_s
j ai essayé ton code et j ai fais un test ça ne marche pas

Posté : 07 févr. 2009, 19:04
par Aureusms
Je ne vois pas d'erreur cependant. Mais il ne marche pas sur quoi ? Où l'as tu intégré et comment ?

Posté : 07 févr. 2009, 20:13
par papayou_s
je l ai copié telle que jute avant // Data is valid so try and update
et c'est comme si il ce passe rien les é sont trensformé é pourquoi

Posté : 07 févr. 2009, 20:17
par Aureusms
C'est dû à l'encodage de ta page. Qu'as tu comme en-tête HTML ? (là où tu devrais avoir comme par exemple : )

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=iso-8859-1">

Posté : 07 févr. 2009, 21:12
par papayou_s
cette page que je viens de presenter en haut proviens d un plugin .
l entete que tu me dis et ou c'est le portail qui la genere

j ai afficher source dans mon navigateur et j ai ça

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang="en">
<head>
<title>e107 générateur de site web : Admin Area</title>
exct...

donc mon probleme serai du à ça

Posté : 07 févr. 2009, 23:59
par Aureusms
Oui mais là tu as quoi (à cette ligne): <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=iso-8859-1">

Posté : 08 févr. 2009, 07:30
par Invité
j'ai ça
<meta http-equiv='content-type' content='text/html; charset=utf-8' />

Posté : 08 févr. 2009, 20:24
par Aureusms
L'UTF-8 gère les accents normalement. Essaye plutôt <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=iso-8859-1"> pour les écritures européennes et iso-8859-15 pour gérer le iso-8859-1 + le signe euro.

Sinon as tu une des ces deux fonctions quelque part utf8_encode() ou utf8_decode()? Je pense que tu encode quelque chose de déjà encoder.
Pour t'aider montre moi le bout de code où tu as mis le mien (juste un bout). Pense aussi à mettre le contenu des variables au cas où.

Posté : 08 févr. 2009, 23:37
par papayou_s
j ai touvé ça dans une page de mon portail

cette fonction fais parti d une class
voici les nom des fonction qui en font parti

function CXml
function Set_xml_data
function _startElement
function _endElement
function _cData

function _cleanString( $string )
{
return utf8_decode( trim( $string ) );
}

et j ai trouvé ça dans un autre fichier e_parse_class.php
// Is $str a UTF8 string?
	$utf8 = ($utf || CHARSET == 'utf-8') ? "u" : "";

voila ou j ai mi ton code
    {
         $message = ATOLL_ADMIN_MEDIA_04;
         unset($_POST['update']);
      } 
      else 
      {
         if ($debug) print "<br>".mysql_error()."<br>";
         $message = ATOLL_ADMIN_MEDIA_05;
      }
   }
   
$tab_accentue = array ("à","á","â","ã","é","À","Á","Â","Ã","Ä","Å","ä","å","Ò","Ó","Ô","Õ","È","É","Ê","Ë","è","ê","ë""); 
$tab_non_acentue = array ("a","a","a","a","e","A","A","A","A","A","A","a","a","O","O","O","O","E","E","E","E","e","e","e"); 

$texte = str_replace ($tab_accentue,$tab_non_acentue,$texte);


// Obtenez les détails de la Base de Donner et Edit, sinon ensemble de données POST
   if (isset($_POST['edit'])) 
   {
      $sql -> db_Select($atolltable, "*", " $primaryid='".$_POST['existing']."' ");
      
      $row = $sql->db_Fetch();      
   } 
[/php]

Posté : 10 févr. 2009, 11:03
par Aureusms
Bonjour,

As tu mis quelque chose dans $texte ?
car si je lis :
$tab_accentue = array ("à","á","â","ã","é","À","Á","Â","Ã","Ä","Å","ä","å","Ò","Ó","Ô","Õ","È","É","Ê","Ë","è","ê","ë""); 
$tab_non_acentue = array ("a","a","a","a","e","A","A","A","A","A","A","a","a","O","O","O","O","E","E","E","E","e","e","e"); 

$texte_remplace = str_replace ($tab_accentue,$tab_non_acentue,$texte); 
il y a déjà une erreur ..."ê","ë""); ici

et je ne sais pas si tu as utilisé $texte i.e si $texte = "mot"; ou quelque chose comme cela .
Juste pour te dire que $texte peux aussi être $message, $cequetuveux, "unmot", "une phrase complète". Pour cela, j'ai changé $texte par $texte_remplace plus haut pour que tu comprenne mieux

Posté : 10 févr. 2009, 16:21
par papayou_s
bonjour

oui , j ai vu que j avais fais une erreur je l'ai enlevé " mais ça marche toujours pas
j avais laissé $texte car dans la page de code . il y a la variable texte
et comme cité plus au je ne sais pas dans quel variable se retrouve mes données texte
car plusieur variable et c'est pas moi l auteur du plugin
les variables

$fieldname
$fieldtype
$inputstr

ou peut etre une autre

Posté : 10 févr. 2009, 17:30
par mere-teresa
As tu essayé du utf8_encode() ou utf8_decode() selon ton problème ?
Ou encore d'ajouter en PHP : header('Content-Type: text/html; charset=utf-8');

Posté : 10 févr. 2009, 19:22
par papayou_s
je dois utuliser les fonctions utf8_encode() et utf8_decode() dans la page du plugin , car dans les pages du portail ,d'autre plugins envois des infos dans la base comme celui ci est ça marche

dans ma page j ai trouvé ça et je l ai mi en place .
et ça plante

string utf8_decode ( string $row )

mais information sont dans quel variables

$inputstr
$fieldname
$fieldtype
$row