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:
CODE2:
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']))) : '';
En effet, quand je remplace
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 !"; } // } ?> <!-- --------------------------------------------------------------- -->
* CODE1 paret
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'] : '';
* CODE2 parça marche en ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part <?php include("session_form.php"); ?>
Après lecture de documents (ça reste flou) je pense qu'il faut retravailler les htmlspecialchars:
Mais pour le reste ... ??
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') : '';
Pouvez vous m'aider?
Cordialement
Partager