Bonjour

Niveau débutant

Mon travail fonctionne bien en local mais en ligne le code ne fonctionne pas
Après un entretien avec un technicien hébergeur le problème vient de la version PHP
Mon hébergeur est en PHP5.5
Aussi existe t-il un outils ou une astuce permettant de dire quel morceau de code n'est plus compatible avec la version du PHP
Question ... bête: est ce que la couleur du code dans notepad est un indice? htmlspecialchars, trim, str_replace sont en noir

Voici les morceau de code qu'il faut actualiser:
CODE1:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
	$nom_lo 		= (isset($_POST['nom_lo']))?				htmlspecialchars(stripslashes(trim($_POST['nom_lo']))) : '';
	$prenom_lo		= (isset($_POST['prenom_lo']))?				htmlspecialchars(stripslashes(trim($_POST['prenom_lo']))) : '';
	$mail_lo 		= (isset($_POST['mail_lo']))?				htmlspecialchars(stripslashes(trim($_POST['mail_lo']))) : '';
	$message_lo 	= (isset($_POST['message_lo']))?			htmlspecialchars(stripslashes(trim($_POST['message_lo']))) : '';	
	$lang			= (isset($_POST['Form_Livreor_Submit']))?	htmlspecialchars(stripslashes(trim($_POST['Form_Livreor_Submit']))) : '';
CODE2:
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
<!-- PROTECTION FAILLE INCLUDE: securise include("session_form.php");
--------------------------------------------------------------- -->
<?php
//empty: détermine si une variable est vide
if (empty($page1)) {	
 $page1 = "session_form";
 // On limite l'inclusion aux fichiers.php en ajoutant dynamiquement l'extension
 $page1 = $page1.".php";
 // On enlève les éventuels espaces (trim)
 $page1 = trim($page1);
}
 
// On évite les caractères qui permettent de naviguer dans les répertoires
// str_replace: remplace toutes les occurrences dans une chaîne
$page1 = str_replace("../","protect",$page1);
$page1 = str_replace(";","protect",$page1);
$page1 = str_replace("%","protect",$page1);
 
// On interdit l'inclusion de dossiers protégés par htaccess
// preg_match: expression rationnelle standard
// if (preg_match("/admin/",$page1)) {		// / pour delimiter
// echo "Vous n'avez pas accès à ce répertoire";
// }
 
// else {
    // On vérifie que la page est bien sur le serveur
	// file_exists: vérifie si un fichier ou un dossier existe
    if (file_exists($page1) && $page1 != 'index.php') {
       include("./".$page1); 
    }
    else {
        echo "Page inexistante !";
    }
//	}
?>
<!-- --------------------------------------------------------------- -->
En effet, quand je remplace
* CODE1 par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$nom_lo= (isset($_POST['nom_lo'])) ? $_POST['nom_lo'] : ''; ... $lang= (isset($_POST['lang'])) ? $_POST['lang'] : '';
et
* CODE2 par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<?php include("session_form.php"); ?>
ça marche en ligne

Après lecture de documents (ça reste flou) je pense qu'il faut retravailler les htmlspecialchars:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
$nom_lo			= (isset($_POST['nom_lo']))					?	htmlspecialchars(stripslashes(trim($_POST['nom_lo'])), ENT_QUOTES, 'UTF-8')		: '';
$prenom_lo		= (isset($_POST['prenom_lo']))				?	htmlspecialchars(stripslashes(trim($_POST['prenom_lo'])), ENT_QUOTES, 'UTF-8')	: '';
$mail_lo		= (isset($_POST['mail_lo']))				?	htmlspecialchars(stripslashes(trim($_POST['mail_lo'])), ENT_QUOTES, 'UTF-8')	: '';
$message_lo		= (isset($_POST['message_lo']))				?	htmlspecialchars(stripslashes(trim($_POST['message_lo'])), ENT_QUOTES, 'UTF-8')	: '';
$lang			= (isset($_POST['Form_Livreor_Submit']))	?	htmlspecialchars(stripslashes(trim($_POST['lang'])), ENT_QUOTES, 'UTF-8')		: '';
Mais pour le reste ... ??

Pouvez vous m'aider?

Cordialement