Parse error: syntax error, unexpected '['

Par GreenWitch, il y a 10 ans


Bonjour,
Je suis débutant. J'ai suivi le tutoriel Tutoriel PHP : Formulaire de Contact.
Ca fonctionne bien avec Wamp mais lorsque j'essaie en ligne, j'ai cette erreur : Parse error: syntax error, unexpected '['.
J'ai cherché sur le web et j'ai cru comprendre que c'était un problème de version de PHP. Mais je ne comprends pas bien comment résoudre
le problème.
Est-ce que quelqu'un pourrait m'éclairer un peu ? Merci beaucoup.

7 réponses

Carouge10, il y a 10 ans

Bonjour,
Sans l'erreur exate et le code correspondant ça va être dur.
Vous utilisez qu'elle syntaxe pour faire des tableaux : [] ou array() ?

GreenWitch, il y a 10 ans

Bonjour,
j'utilise la syntaxe avec les crochets.
Ca c'est le code de ma page Formulaire:

<?php if(array_key_exists('errors', $_SESSION)): ?> <div id="textphp"> <?= implode(' - ', $_SESSION['errors']); ?> </div> <?php endif; ?> <?php if(array_key_exists('succes', $_SESSION)): ?> <div id="textphp"> Votre message a bien été envoyé ! </div> <?php endif; ?> <form action="cible.php" method="post"> <label for="inputname">nom</label> <input type="text" name="name" id="inputname" value="<?= isset($_SESSION['inputs']['name']) ? $_SESSION['inputs']['name'] : ''; ?>">&nbsp <label for="inputmail">e-mail</label> <input type="email" name="email" id="inputmail" value="<?= isset($_SESSION['inputs']['email']) ? $_SESSION['inputs']['email'] : ''; ?>"> <br><br> <label for="inputmessage">message</label><br> <textarea name="message" id="inputmessage" cols="60" rows="10"><?= isset($_SESSION['inputs']['message']) ? $_SESSION['inputs']['message'] : ''; ?></textarea><br><br> <button id="boutonenv" type="submit">Envoyer</button> </form> <?php unset($_SESSION['inputs']); unset($_SESSION['succes']); unset($_SESSION['errors']); ?>

Et ceci est ma page Cible:

<?php $errors = []; if(!array_key_exists('name', $_POST) || $_POST['name'] == ''){ $errors['name'] = "Vous n'avez pas renseigné votre nom"; } if(!array_key_exists('email', $_POST) || $_POST['email'] == '' ){ $errors['email'] = "Vous n'avez pas renseigné votre email"; } if(!array_key_exists('message', $_POST) || $_POST['message'] == ''){ $errors['message'] = "Vous n'avez pas écrit de message"; } session_start(); if(!empty($errors)){ $_SESSION['errors'] = $errors; $_SESSION['inputs'] = $_POST; header('Location: contact.php'); }else{ $_SESSION['succes'] = 1; $message = $_POST['message']; $headers = 'FROM: -------.free.fr'; mail('------@free.fr','Formulaire de contact',$message,$headers); header('Location: contact.php'); } ?>

Sur Wamp la version PHP est 5.5.12
J'utilise mon FAI qui est Free

GreenWitch, il y a 10 ans

Mince c'est pas terrible :-)
J'ai du faire une mauvaise manip avec le Markdown !
Je suis paumé :-) Comment fais-ton pour mettre du code correctement ?

Carouge10, il y a 10 ans

Mettez votre code entre les ... du markdown.
L'erreur viens du fait que votre serveur utilise une version plus ancienne de php qui ne reconnais pas la déclaration des tableau avec des crochets.
Utilisez la syntaxe avec array et cela devrait résoudre votre problème

GreenWitch, il y a 10 ans

Je vais essayer la syntaxe avec array.
Merci de votre gentillesse :-)

Carouge10, il y a 10 ans

Vous pouvez éditer votre post quand faite de la mise en page

GreenWitch, il y a 10 ans

Oui, je vais essayer de remettre en page correctement le code.