8768 sujets

Développement web côté serveur, CMS

Bonjour,
Obligé de demander de l'aide, car ça fait des heures que je bloque sur un petit problème!

Sur un formulaire de contact, lorsqu'on envoie les données, on reçoit un message indiquant que les informations ont bien été envoyées.
Mais avec mon code, j'ai le message d'erreur: "Warning: implode(): Invalid arguments passed in D:\wamp\www\tests\formulaire6avrilPHP.php on line 21"

Voilà le code correspondant:

<?php if(array_key_exists('errors',$_SESSION)):?>
	<div class="alerteformulaire">
		<?= implode('<br />', $_SESSION['errors']);?>
	</div>
<?php endif;?>

<?php if(array_key_exists('success',$_SESSION)):?>
	<div class="retour"> Votre message a bien été envoyé, merci!
		<?= implode('<br />', $_SESSION['success']);?>
	</div>
<?php endif;?>


Merci pour votre aide!
Modifié par abeille (07 Apr 2016 - 14:50)
JENCAL a écrit :
t'a quoi dans session $_SESSION['errors']?

Désolé, mais comment je peux afficher cette valeur?
var_dump?
oui var_dump si tu veux.

mais surtout, qu'est ce que tu attends dans session error (ou l'autre)? un tableau ? une chaine de caractère???

parce que implode nécessite qu'on lui passe un tableau.
Désolé je ne comprends pas, je vais faire autrement!
Modifié par abeille (07 Apr 2016 - 22:14)
y'a rien à comprendre Smiley smile

implode attends un tableau.

l'erreur "Warning: implode(): Invalid arguments passed te dit que tu lui envoie pas un tableau mais un string.
Modifié par JENCAL (08 Apr 2016 - 10:39)
JENCAL a écrit :
y'a rien à comprendre Smiley smile

implode attends un tableau.

l'erreur "Warning: implode(): Invalid arguments passed te dit que tu lui envoie pas un tableau mais un string.
Ok ok, mais je n'ai pas les compétences pour savoir si j'envoie un array ou un string!
J'ai suvi cet excellent tuto, mais rien à faire, le gars va trop vite et je ne comprends pas tout. IL utilise du Bootstrap, puis il fait une optimisation du code.

Si jamais tu veux regarder, mon problème concernant IMPLODE, il se situe à 24min 25".

Merci, à plus.
salut,
dans ton exemple, tu devrais plutôt préférer isset à array_key_exists.
Pour le implode cela signifie que l'argument passé n'est pas de type array (et pas forcément de type string). Tu dois utiliser un var_dump pour voir ce que représente ta valeur :

var_dump($_SESSION['errors']);
Et si tu met a 18minutes55 tu vois que
$errors = [] // un array


et que
$_SESSION['errors'] = $errors;


donc je pense que tu as oublier quelque chose... à toi de me dire.
Modifié par JENCAL (08 Apr 2016 - 13:48)