Page 1 sur 1
ERROR : PHP
Posté : 22 nov. 2012, 13:37
par bob56@
Bonjour à tous

,
Voilà mon soucis : J'ai plusieurs erreurs dans mon fichier Log
Parlons de la première =
ERROR : PHP Error #8192 : Function ereg() is deprecated /htdocs/forum/libs/required/lib.get_topics.inc#90
==========================================================================
while($row = $fog_db->fetch_assoc()){
if($row['id'] != $tid){
$tid = $row['id'];
$array[$tid] = $row;
while(list($key,$val) = each($row))
//---ligne90---- // if(ereg('^f_',$key)){
unset($array[$tid][$key]);
$array[$tid]['forum'][substr($key,2)] = $val;
}
reset($row);
while(list($key,$val) = each($row))
if(ereg('^p_',$key)){
si vous avez la solution, par
avance Merci
Re: ERROR : PHP Error #8192
Posté : 22 nov. 2012, 14:18
par dix2
ereg est une fonction obsolète
il faut utiliser preg_match a la place
Re: ERROR : PHP Error #8192
Posté : 22 nov. 2012, 14:21
par Saian
Bonjour bob, c'est juste un message pour dire que la fonction ereg est dépréciée.
Une fonction dépréciée est une fonction vouée à disparaître dans une futur version. Tu devrais donc plutôt utiliser la fonction preg_match.
Si tu vas regarder la doc php tu pourras voir ce message (concernant la fonction ereg) : Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.
Re: ERROR : PHP Error #8192
Posté : 22 nov. 2012, 15:39
par bob56@
OK Merci , j'ai remplacé ereg ceux qui m'amène à une autre erreur, ou placer mon délimiteur de fin et quel caractère alpha-numérique ?
ERROR : PHP Warning : preg_match() [function.preg-match]: No ending delimiter '^' found /htdocs/forum/libs/required/lib.get_topics.inc#96
-----------------------------------------------------------------------------------------
while($row = $fog_db->fetch_assoc()){
if($row['id'] != $tid){
$tid = $row['id'];
$array[$tid] = $row;
while(list($key,$val) = each($row))
//---ligne 90--Aucun délimiteur de fin-?--// if(preg_match('^f_',$key)){
unset($array[$tid][$key]);
$array[$tid]['forum'][substr($key,2)] = $val;
}
reset($row);
while(list($key,$val) = each($row))
//---ligne 96--Aucun délimiteur de fin-?--// if(preg_match('^p_',$key)){
unset($array[$tid][$key]);
$array[$tid]['poll'][substr($key,2)] = $val;
}
Re: ERROR : PHP
Posté : 22 nov. 2012, 15:56
par Saian
Moi j'utilise l'accent grave. En général on utilise un caractère qu'on ne retrouvera pas dans le pattern. Et le délimiteur doit entourer la chaine.
Comme ta chaine commence par ^ le parser s'attend à avoir un ^ à la fin de la chaine.
$pattern = '`^f_`';// chaine commençant par f_
Re: ERROR : PHP
Posté : 22 nov. 2012, 16:35
par bob56@
Excellent,

encore merci plus ce message d'erreur
autre erreur = je vais ouvrir un autre post car çà va faire brouillon
Re: ERROR : PHP
Posté : 22 nov. 2012, 16:36
par Nagol
Juste pour ajouter à la bonne réponse de saian, le délimiteur dans les fonction pcre (dont preg_match) est nécessaire pour passer des options à une expression régulière, la plus courante étant "i" pour rendre le regexp case insensitive
exemple:
matchera si $var commence par "_f"
matchera si $var commence par "_f" ou "_F"
Il y a beaucoup d'autres options bien évidemment, et c'est pour ça qu'on a besoin d'un délimiteur même dans les cas ou il n'y a pas d'options pour le regexp.
Re: ERROR : PHP
Posté : 22 nov. 2012, 16:39
par Nagol
Si c'est toi qui a configuré open_basedir sur le serveur alors il va falloir revoir la structure des fichiers, open_basedir est une directive de configuration de php qui limite l'action de php à une série de répertoire, tu cherches à atteindre un fichier qui n'est pas dans cette série de répertoire, ou l'un de ses sous-répertoires, du coup erreur...