[Résolu] Cherche conseil sur un script de news
Posté : 04 déc. 2011, 11:58
Bonjour à tous,
Je viens aujourd'hui vers vous car je recherche des réponses à mes questions, étant débutant en PHP je suis pas sûr de faire les choses correctement.
Voici le script que j'ai réalisé :
index.php : :
(2) : Sur "minichat_post.php" je suis pas sûr d'avoir compris réellement le moment ou l'on doit utiliser htmlspecialchars(), doit-on l'utiliser avant de rentrer les données dans la BDD comme sur la page "minichat_post.php" ou virer c'est 2 lignes et utiliser ça seulement sur "index.php" pour afficher les données ? Est-ce que dans tout les cas c'est pareil ?
(3) : Pour le reste est-ce que ce script vous semble correcte ?
Voilà pour mes questions.
Je vous remercie bien d'avance pour l'aide.
Amicalement
Rathorian
Je viens aujourd'hui vers vous car je recherche des réponses à mes questions, étant débutant en PHP je suis pas sûr de faire les choses correctement.
Voici le script que j'ai réalisé :
index.php : :
<?php
// On inclue la page de connexion à MySQL.
include_once('connexion.inc.php');
$req = $pdo->query('SELECT * FROM minichat ORDER BY id_chat DESC LIMIT 0, 10');
while ($donnees = $req->fetch())
{
echo '<p><strong>' .htmlspecialchars($donnees['pseudo_chat'], ENT_QUOTES, 'UTF-8'). '</strong> : ' .htmlspecialchars($donnees['message_chat'], ENT_QUOTES, 'UTF-8').'</p>'."\n\n";
}
$req->closeCursor();
?>
minichat_post.php :
<?php
// On inclue la page de connexion à MySQL.
include_once('connexion.inc.php');
if (isset($_POST['pseudonyme']) AND isset($_POST['message']))
{
// On supprime les espaces inutiles en début et fin de chaîne.
$pseudonyme = trim($_POST['pseudonyme']);
$message = trim($_POST['message']);
if (!empty($pseudonyme) AND !empty($message))
{
/* On convertit les caractères spéciaux en entités HTML,
les guillemets doubles et les guillemets simples,
Jeu de caractères utilisé UTF-8 lors de la conversion. */
$pseudonyme_secu = htmlspecialchars($pseudonyme, ENT_QUOTES, 'UTF-8');
$message_secu = htmlspecialchars($message, ENT_QUOTES, 'UTF-8');
// On prépare la requête.
$req = $pdo->prepare('INSERT INTO minichat(pseudo_chat, message_chat) VALUES(:pseudonyme_secu, :message_secu)');
// Puis on insère les données dans la BDD.
$req->execute(array(
':pseudonyme_secu' => $pseudonyme,
':message_secu' => $message
));
// On termine le traitement de la requête.
$req->closeCursor();
// Enfin, on redirige sur la page du formulaire.
header('Location: index.php');
}
else
{
header('Location: index.php');
}
}
else
{
header('Location: index.php');
}
?>
(1) : Sur "index.php", est-ce qu'il est possible de récupérer les données avec prepare() ? Si oui, comment ? Et est-ce une utilité pour récupérer des données déjà sécurisées avant l'insertion dans la bdd ?(2) : Sur "minichat_post.php" je suis pas sûr d'avoir compris réellement le moment ou l'on doit utiliser htmlspecialchars(), doit-on l'utiliser avant de rentrer les données dans la BDD comme sur la page "minichat_post.php" ou virer c'est 2 lignes et utiliser ça seulement sur "index.php" pour afficher les données ? Est-ce que dans tout les cas c'est pareil ?
(3) : Pour le reste est-ce que ce script vous semble correcte ?
Voilà pour mes questions.
Je vous remercie bien d'avance pour l'aide.
Amicalement
Rathorian