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.
Bonjour,
Sans l'erreur exate et le code correspondant ça va être dur.
Vous utilisez qu'elle syntaxe pour faire des tableaux : [] ou array() ?
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'] : ''; ?>"> 
<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
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 ?
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