Bonjour,
pour corriger un problème, on m'a conseillé de reculer la version de PHP utilisée par l'hébergeur : de PHP5 à PHP4 ; mais je n'ai pas trouvé comment faire...
Bonjour,
pour corriger un problème, on m'a conseillé de reculer la version de PHP utilisée par l'hébergeur : de PHP5 à PHP4 ; mais je n'ai pas trouvé comment faire...
Sans doute parce qu'il ne faut pas le faire...
Si le script ne peut tourner que sous PHP 4 c'est qu'il est trop ancien pour mériter d'être maintenu.
Si tu nous disait quel est le problème concrêt on pourrait sans doute t'aider à le corriger. En attendant, vérifie qu'il ne s'agit pas d'un bug tout bête comme l'usage des register globals.
Il s'agit d'un logiciel (Lauyan Toweb) qui génère des sites.
Voici le code qui pose un problème (mails.php) :et au lieu d'envoyer un mail, on a n fois ce message :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 <?php function is_mail_valid($email) { return eregi("^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$", $email); } function _local_replace_bad($value) { $report_to = ""; $suspicious_str = array ( "content-type:" ,"charset=" ,"mime-version:" ,"multipart/mixed" ,"bcc:" ); $suspect_found = false; $value = stripslashes($value); foreach($suspicious_str as $suspect) { if(eregi($suspect, strtolower($value))) { $suspect_found = true; $value = eregi_replace($suspect, "(anti-spam-".$suspect.")", $value); } } if ($suspect_found) { $ip = (empty($_SERVER['REMOTE_ADDR'])) ? 'empty' : $_SERVER['REMOTE_ADDR']; $rf = (empty($_SERVER['HTTP_REFERER'])) ? 'empty' : $_SERVER['HTTP_REFERER']; $ua = (empty($_SERVER['HTTP_USER_AGENT'])) ? 'empty' : $_SERVER['HTTP_USER_AGENT']; $ru = (empty($_SERVER['REQUEST_URI'])) ? 'empty' : $_SERVER['REQUEST_URI']; $rm = (empty($_SERVER['REQUEST_METHOD'])) ? 'empty' : $_SERVER['REQUEST_METHOD']; if ($ua == "empty") { exit(); } if(isset($report_to) && !empty($report_to)) { @mail( $report_to, "[ABUSE] [SUSPECT] @ " . $_SERVER['HTTP_HOST'] . " by " . $ip, "Stopped possible mail-injection @ " . $_SERVER['HTTP_HOST'] . " by " . $ip . " (" . date('d/m/Y H:i:s') . ")\r\n\r\n" . "*** IP/HOST\r\n" . $ip . "\r\n\r\n" . "*** USER AGENT\r\n" . $ua . "\r\n\r\n" . "*** REFERER\r\n" . $rf . "\r\n\r\n" . "*** REQUEST URI\r\n" . $ru . "\r\n\r\n" . "*** REQUEST METHOD\r\n" . $rm . "\r\n\r\n" . "*** SUSPECT\r\n-----\r\n" . $value . "\r\n-----" ); } } return($value); } ?>et si je remplace eregi() par preg_match(), j'obtiens le même message avec preg_match à la place de eregi...in /htdocs/public/www/_iserv/common/mails.php on line 20 Deprecated: Function eregi() is deprecated
et la routine qui appelle _local_replace_bad() (form2mail.php)
:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 <?php @require_once("../common/mails.php"); @require_once("../common/ipenv.php"); $TO = ""; $URL = ""; $SUBJECT = ""; $LANG = "en"; $message = ""; $intro = ""; while( list($key, $val) = each($_POST) ) { if( $key == "f2memail" ) { $TO = _local_replace_bad( $val ); } else if( $key == "f2msubj" ) { $SUBJECT = _local_replace_bad( $val ); } else if( $key == "f2murl" ) { $URL = _local_replace_bad( $val ); } else if( $key == "f2mlang" ) { $LANG = strtolower( _local_replace_bad( $val ) ); } else $message .= "$key = " . _local_replace_bad( $val ) . "\n"; } $HREF = getenv("HTTP_REFERER"); $HREF = substr( $HREF, 0, strrpos( $HREF, '/' ) + 1 ); if( $LANG == "en" ) { $intro .= "This email comes from the website $HREF"; } else $intro .= "Cet email provient du site web $HREF"; $ipsender = PMA_getIp(); if( $ipsender != "" ) { if( $LANG == "en" ) { $intro .= " and was send by the IP address : $ipsender"; } else $intro .= " et a été envoyé par l'adresse IP : $ipsender"; } if( $TO != "" && $SUBJECT != "" ) { mail($TO, $SUBJECT, $intro."\n\n".$message, "From: $TO\nReturn-Path: $TO\n" ); //, "-f $TO" ); if( $URL != "" ) echo "<html><script type='text/javascript'>window.location='$URL'</script></html>"; } ?>
Partager