Array PHP email

Messages postés
9
Date d'inscription
lundi 30 décembre 2013
Dernière intervention
20 septembre 2016
- - Dernière réponse : jordane45
Messages postés
23650
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
- 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 !
Afficher la suite 

Votre réponse

1 réponse

Messages postés
23650
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 décembre 2018
0
Merci
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"
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.