Array PHP email

dinolam81 Messages postés 9 Date d'inscription lundi 30 décembre 2013 Statut Membre Dernière intervention 20 septembre 2016 - 20 sept. 2016 à 18:16
jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 - 21 sept. 2016 à 01:34
Bonjour à tous,
J'ai un souci au niveau de mon code et je ne comprends pas l'origine de ce problème. En effet, j'ai créé une fonction PHP contenant un tableau avec une liste des mots interdits. Il s'agit d'un système de question/réponse. Si un client saisit un mot interdit dans sa réponse, je vérifie que ce mot ou expression est dans mon tableau. Si le mot existe et est interdit j'envoie un émail à l'administrateur pour le signaler, sinon j'enregistre la réponse et je l'affiche. Même dans le cas ou le mot est interdit j'enregistre quand même la réponse et c'est juste au niveau de l'affichage que je remplace le mot par des étoiles (***). L'envoie de mail c'est pour informer l'administrateur qu'un mot interdit a été saisi et lui permettre de le modérer ou de le supprimer.
Voici mon script :

// fonction mots interdits:
function motInterdit ($mot) {
$mots = array(
'mot 1',
'mot 2',
'mot 3'
);
$mot_remplacement = '******';
$data = str_ireplace($mots, $mot_remplacement, $mot);
return $data;
}
// requête d'insertion ici
/*.........*/

// select
$q = array('lastId'=>$lastId);
$sql = 'SELECT * FROM reponse WHERE reponse_id = :lastId';
$req = $db->prepare($sql);
$req->execute($q) or die(print_r($db->errorInfo()));

foreach ($req->fetchAll() as $data):
$tab = nl2br(htmlspecialchars($data));
$resTab = motInterdit ($tab);

if (is_array(resTab) && in_array($tab, $resTab)) {
// envoie de mail
mail($to, $subject, $message, $headers);
}
endforeach;

Je pense que mon problème c'est au niveau de la vérification si le mot interdit existe dans mon tableau. Car je n'arrive pas à envoyer mon mail. Mais je n'ai pas de problème au niveau du traitement de mon mail car si je fais un test d’envoi de mail avec un mot correcte ça fonctionne.
Merci pour votre aide !

1 réponse

jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 344
21 sept. 2016 à 01:34
Bonjour,

Déjà :
  if (is_array(resTab) && in_array($tab, $resTab)) {

resTab sans le $ devant ?? Ton souci vient de là je pense.


Pour éviter ce genre de soucis... penses à activer l'affichage des erreurs PHP sur ta page.
via la commande
// Affichage de toutes les erreurs PHP
error_reporting(E_ALL)
ini_set('display_errors', '1');


là ton code t'aurait sûrement indiqué un truc du genre : "undefined constant resTab ... in ... //truc.php line 26"
0
Rejoignez-nous