alexjx

Inscris le 05/02/2015 à 12:48
  • Nombre de sujets
    Aucun
  • Nombre de messages
    3
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses dernières news

Aucune news

Ses derniers sujets sur les forums

Aucun sujet créé dans les forums

Ses derniers messages sur les forums

forum
alexjx
le 06/02/2015 à 18:26
erreur avec htmlentities
Bonjour,

echo nl2br(htmlentities($val['texte']));

doit fonctionner.
J'ai moi-même fait le test avec une variable que j'appelle $variable
(au lieu de $val['texte'] mais c'est pareil, tu appelles ta variable comme tu veux).

nl2br(htmlentities($variable));

donne le même rendu à l'écran que:
nl2br($variable);

(si bien sûr tu n'as pas d'injection xss dans un script côté serveur)
à la grande différence, bien sûr, que ta première ligne est protégée contre
les injections xss et l'autre non, chose que tu ne vois pas à l'oeil nu.

Donc si ça doit fonctionner, à moins que ton affichage se fasse à l'intérieur d'un
input (dans ce cas oui htmlentities risque de ne pas fonctionner).
Si c'est le cas, pourquoi ne pas utiliser à la place des expressions régulières
qui font barrage aux 2 chevrons, au et commercial, aux guillemets simples et
aux guillemets doubles (pour reprendre les caractères couverts par htmlspecialchars,
sachant que ce dernier est suffisant, tu n'as pas besoin d'aller jusqu'à utiliser htmlentities
pour te protéger des injections xss).

Maintenant, si tout ça c'est nouveau pour toi, renseigne-toi (par internet par exemple,
tu y trouves de nombreux tutos et messages d'autres utilisateurs) déjà sur
ce qu'on appelle injections xss et injections sql.
A mon avis ça c'est le début pour prendre les choses par le bon bout.
Quand tu parles de htmlentities c'est pour te protéger des injections xss.
Il s'agit en gros d'un script javascript malveillant qui reste dans ta bdd jusqu'à
ce que son contenu soit appelé pour être affiché à l'écran, et l'utilisateur peut être par
exemple redirigé vers un site "pas très fréquentable".
mais il faut savoir qu'il existe aussi des injections sql (tu connais peut-être mysqli_real_escape_string qui sert à s'en prémunir) bien plus dangereuses encore puisqu'elles attaquent le contenu de ta bdd.
Je pense qu'il faut déjà que tu regardes ici et là pour différencier ces deux types d'attaques, et voir comment s'en prémunir.

Tu remarqueras aussi que tu as un point-virgule en trop au début
de la deuxième ligne que tu as écrit.
alexjx
Salut,

Problème de jeu de caractères.
Je suppose que tes caractères sont lus comme de l'ASCII,
car ici ce sont les caractères non utilisés en anglais qui ne sont pas compris.

Essaie d'ajouter ça en haut de tes pages (en php):
header('Content-Type: text/html; charset=UTF-8');


Essaie encore de mettre dans tes balises d'en-tête:
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8"/>
...
</head>

Si ça fonctionne, repère si un des deux ne sert à rien et garde que celui qui sert.

Si ça ne fonctionne toujours pas, tu dois peut-être rajouter encore cette ligne derrière
tes identifiants de connexion:
mysqli_query($connexion, "SET NAMES 'utf8'");

(sachant ici que $connexion est le nom que j'ai donné à la variable qui permet de se connecter au serveur MySQL grâce à la fonction mysqli_connect. J'écris cette ligne de code sous ma ou mes variables qui permettent ma connection => hôte, utilisateur, mot de passe et nom de base.
J'ai déjà été bloqué comme toi et c'est qui qui m'a sauvé!
Mais je n'ai par contre jamais créer un programme d'envoi d'e-mail, donc je ne sais pas trop comment ça fonctionne.
Mais ça peut peut-être marcher.
alexjx
le 05/02/2015 à 12:59
erreur de syntaxe : unexpected
<?php
if($type != 'new' && $resultat['dif_days'] <= $nb_days2benew) {
if (isset($resultat['heure_validation_fr']) && isset($resultat['min_validation_fr'])){
echo "Validée hier à : " . $resultat['heure_validation_fr'] . ":" . $resultat['min_validation_fr'];
}
}
?>

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours