Création forum
kmorel
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour cher amis. je suis un programmeur débutant qui essaie de créer un forum pour son site. j'en suis a la page ou on doit insérer une réponse au sujet proposé. j'ai une erreur dans le code que je n'arrive pas à cerner.
Voici le code
Voici l'erreur que cela m'affiche: Parse error: syntax error, unexpected end of file in /home/cp1022993/public_html/forum/lire_sujet.php on line 113.
Merci d'avance pour votre aide.
Voici le code
<?php session_start();?> <?php // on teste si le formulaire a été soumis if (isset ($_POST['go']) && $_POST['go']=='Poster') { // on teste la déclaration de nos variables if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['message'])) { $erreur = 'Les variables nécessaires au script ne sont pas définies.'; } else { // on teste si les variables ne sont pas vides if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['message'])) { $erreur = 'Au moins un des champs est vide.'; } // si tout est bon, on peut commencer l'insertion dans la base else { // on se connecte à notre base error_reporting(E_ALL); ini_set('display_errors', TRUE);ini_set('display_startup_errors', TRUE); try{ $bdd =new PDO('mysql:host=localhost; dbname=cp1022993_reveil; charset=utf8', 'cp1022993_momo', 'ultimatum2018'); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage());} // on calcule la date actuelle $date = date("Y-m-d H:i:s"); if (!isset($_GET['id_sujet_a_lire'])) { echo 'Sujet non défini.';} else{ // préparation de la requête d'insertion (pour la table forum_rep) $sql = 'INSERT INTO forum_rep (forum_rep_id, forum_rep_auteur, message , date_rep) VALUES(:forum_rep__id, :forum_rep_auteur, :message, :date_rep)'; $datas= array (':forum_rep__id'=> $_GET['id_sujet_a_lire'] , ':forum_rep_auteur'=> $_POST['auteur'], ':message'=> $_POST['message'], ':date_rep'=>$date); // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) try{ $req = $bdd->prepare($sql); $req->execute($datas);} catch (Exception $e) {echo "<br>ERREUR dans la requête ! " . $sql ."<br>" .$e->getMessage();} // on redirige vers la page d'accueil header('Location: lire_sujet.php'); // on termine le script courant exit ;?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></sxript><! [endif]--> <link rel="stylesheet" href=".css"/> <title>Lecture d'un sujet</title> </head> <body> <?php // on prépare notre requête $sql = 'SELECT * FROM forum_sujets WHERE sujet_id=:sujet_id'; $datas=array( ':sujet_id'=>$_GET['id_sujet_a_lire']); sscanf($datas['date_derniere_reponse'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde); try{ $req = $bdd->prepare($sql); $req->execute($datas);}catch(Exception $e) {echo "<br>ERREUR dans la requête ! " . $sql ."<br>" .$e->getMessage();} $resultat = $req->fetch(PDO::FETCH_ASSOC); $sql = 'SELECT * FROM forum_rep WHERE forum_rep__id=:forum_rep_id'; $resultat=array( ':forum_rep__id'=>$_GET['id_sujet_a_lire']); sscanf($resultat['date_rep'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $moi, $jou, $heur, $min, $sec); echo '<section class="auteur"> <span class="auteur">' .htmlspecialchars($datas['sujet_auteur']).'<br> <span class)"date">'.$jour. '-' .$mois. '-' .$annee. ' ' .$heure. ':' .$minute.'<span>'; '<span class="message">' .htmlspecialchars($datas['sujet_messages']).'<span><section>'; while($resultat = $req->fetch()); echo '<section class="rep"> <span class="rep">' .htmlspecialchars($resultat['forum_rep_auteur']).'<br> <span class)"date">'.$jou. '-' .$moi. '-' .$an. ' ' .$heur. ':' .$min.'<span>'; '<span class="message">' .htmlspecialchars($resultat['message']).'<span></section>.'; echo '<h2>Insérer une Réponse</h2> <form action="insert_rep.php" method="post"> <table> <tr><td> Auteur : </td><td> <input type="text" name="auteur" maxlength="30" size="50" value="<?php echo' .htmlspecialchars($_SESSION['nom']). ' '.htmlspecialchars($_SESSION['prenom']). ';?>"> </td></tr><tr><td> Message : </td><td> <textarea name="message" cols="50" rows="10"><?php if (isset('.$_POST['message'].')) echo' .htmlentities(trim($_POST['message'])).';?></textarea> </td></tr><tr><td><td align="right"> <input type="submit" name="go" value="Répondre"> </td></tr></table> </form>';?> </body> </html>
Voici l'erreur que cela m'affiche: Parse error: syntax error, unexpected end of file in /home/cp1022993/public_html/forum/lire_sujet.php on line 113.
Merci d'avance pour votre aide.
A voir également:
- Création forum
- Creation compte gmail - Guide
- Création site web - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création compte google - Guide
- Abonnement iptv illegaal forum - Forum TV & Vidéo
1 réponse
Bonjour,
Plusieurs erreurs....
Une accolade oubliée,
Des instructions php
Sans parler du code php placé au hasard dans ton code...
Essaye ceci (et inspire t'en pour tes prochains codes...)
Plusieurs erreurs....
Une accolade oubliée,
Des instructions php
<?php....; ?>alors que tu te trouves déjà dans un bloc de code php...
Sans parler du code php placé au hasard dans ton code...
Essaye ceci (et inspire t'en pour tes prochains codes...)
<?php session_start(); //-------------------------------------------------------------------// //Affichage des erreurs PHP (se place AU DEBUT du code) //-------------------------------------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //-------------------------------------------------------------------// //connexion à la bdd //-------------------------------------------------------------------// try{ $bdd =new PDO('mysql:host=localhost;dbname=cp1022993_reveil; charset=utf8', 'cp1022993_momo', 'ultimatum2018'); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } //-------------------------------------------------------------------// //recuperation PROPRE des variables AVANT de les utiliser //-------------------------------------------------------------------// $nom = !empty($_SESSION['nom']) ? $_SESSION['nom'] : ""; $prenom = !empty($_SESSION['prenom']) ? $_SESSION['prenom'] : ""; $auteur = !empty($_POST['auteur']) ? $_POST['auteur'] : NULL; $titre = !empty($_POST['titre']) ? $_POST['titre'] : NULL; $message = !empty($_POST['message']) ? $_POST['message'] : NULL; $go = !empty($_POST['go']) ? $_POST['go'] : NULL; $id_sujet_a_lire = !empty($_GET['id_sujet_a_lire']) ? $_GET['id_sujet_a_lire'] : NULL; // on calcule la date actuelle $date = date("Y-m-d H:i:s"); //-------------------------------------------------------------------// // Début du traitement du formulaire //-------------------------------------------------------------------// if ($go =='Poster') { // on teste la déclaration de nos variables if (!$auteur || !$titre || !$message) { $erreur = 'Au moins un des champs est vide.'; } } else { if (!$id_sujet_a_lire) { echo 'Sujet non défini.'; } else { // préparation de la requête d'insertion (pour la table forum_rep) $sql = 'INSERT INTO forum_rep (forum_rep_id, forum_rep_auteur, message , date_rep) VALUES(:forum_rep__id, :forum_rep_auteur, :message, :date_rep)'; $datas= array (':forum_rep__id'=> $id_sujet_a_lire, ':forum_rep_auteur'=> $auteur, ':message'=> $message, ':date_rep'=>$date ); // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) try{ $req = $bdd->prepare($sql); $req->execute($datas); } catch (Exception $e) { echo "<br>ERREUR dans la requête ! " . $sql ."<br>" .$e->getMessage(); exit(); // sinon tu ne verras jamais l'erreur avant la redirection ! } // on redirige vers la page d'accueil header('Location: lire_sujet.php'); // on termine le script courant exit(); } //-------------------------------------------------------------------// //récupération des sujets //-------------------------------------------------------------------// $sql = 'SELECT * FROM forum_sujets WHERE sujet_id=:sujet_id'; $datas = array(':sujet_id'=>$id_sujet_a_lire); try{ $req = $bdd->prepare($sql); $req->execute($datas); $sujets = $req->fetchAll(PDO::FETCH_ASSOC); }catch(Exception $e){ echo "<br>ERREUR dans la requête ! " . $sql ."<br>" .$e->getMessage(); } //-------------------------------------------------------------------// //récupération des répponses //-------------------------------------------------------------------// $sql = 'SELECT * FROM forum_rep WHERE forum_rep__id=:forum_rep_id'; $resultat=array(':forum_rep__id'=>$id_sujet_a_lire); try{ $req = $bdd->prepare($sql); $req->execute($datas); $reponses = $req->fetchAll(PDO::FETCH_ASSOC); }catch(Exception $e){ echo "<br>ERREUR dans la requête ! " . $sql ."<br>" .$e->getMessage(); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></sxript><! [endif]--> <link rel="stylesheet" href=".css"/> <title>Lecture d'un sujet</title> </head> <body> <div class="forum-item"> <?php sscanf($sujets['date_derniere_reponse'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde); echo '<section class="auteur"> <span class="auteur">' .htmlspecialchars($sujet['sujet_auteur']).'<br> <span class)"date">'.$jour. '-' .$mois. '-' .$annee. ' ' .$heure. ':' .$minute.'<span>'; '<span class="message">' .htmlspecialchars($sujet['sujet_messages']).'<span><section>'; //on boucle sur les réponses au sujet : foreach($reponses as $rep){ sscanf($reponse['date_rep'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $moi, $jou, $heur, $min, $sec); echo '<section class="rep"> <span class="rep">' .htmlspecialchars($rep['forum_rep_auteur']).'<br> <span class)"date">'.$jou. '-' .$moi. '-' .$an. ' ' .$heur. ':' .$min.'<span>'; '<span class="message">' .htmlspecialchars($rep['message']).'<span></section>.'; } echo '<h2>Insérer une Réponse</h2> <form action="insert_rep.php" method="post"> <table> <tr> <td>Auteur :</td> <td><input type="text" name="auteur" maxlength="30" size="50" value="'.htmlspecialchars($nom). ' '.htmlspecialchars($prenom). '"></td> </tr> <tr> <td>Message :</td> <td> <textarea name="message" cols="50" rows="10">'; if ($message){ echo htmlentities(trim($message)); } echo'</textarea> </td> </tr> <tr> <td><td align="right"><input type="submit" name="go" value="Répondre"></td> </tr> </table> </form>'; ?> </div> </body> </html>
Que dos je faire?
J'ai écrit le code de tête... il se peut qu'il y ait d'autres coquilles