IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Création d'un Forum


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Création d'un Forum
    Bonjour, voila je me permet de vous envoyer ce message car j'ai un soucis avec mes pages php que je n'arrive pas a regler, et je suis venu vous demander votre aide si vous le voulez bien .

    Je vous met mes 4 pages x) (désolé si il y a autant de pages ) cest pour mon forum que je cree

    Je vous ai mis les commentaire en php


    index. php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <html>
    <head>
    <title>Index de notre forum</title>
    </head>
    <body>
     
    <!-- on place un lien permettant d'accéder à la page contenant le formulaire d'insertion d'un nouveau sujet -->
    <a href="./insert_sujet.php">Insérer un sujet</a>
     
    <br /><br />
     
    <?php
    // on se connecte à notre base de données
    $base = mysql_connect ('serveur', 'login', 'password');
    mysql_select_db ('nom_base', $base) ;
     
    // préparation de la requete
    $sql = 'SELECT id, auteur, titre, date_derniere_reponse FROM forum_sujets ORDER BY date_derniere_reponse DESC';
     
    // 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)
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    // on compte le nombre de sujets du forum
    $nb_sujets = mysql_num_rows ($req);
     
    if ($nb_sujets == 0) {
    	echo 'Aucun sujet';
    }
    else {
    	?>
    	<table width="500" border="1"><tr>
    	<td>
    	Auteur
    	</td><td>
    	Titre du sujet
    	</td><td>
    	Date dernière réponse
    	</td></tr>
    	<?php
    	// on va scanner tous les tuples un par un
    	while ($data = mysql_fetch_array($req)) {
     
    	// on décompose la date
    	sscanf($data['date_derniere_reponse'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde);
     
    	// on affiche les résultats
    	echo '<tr>';
    	echo '<td>';
     
    	// on affiche le nom de l'auteur de sujet
    	echo htmlentities(trim($data['auteur']));
    	echo '</td><td>';
     
    	// on affiche le titre du sujet, et sur ce sujet, on insère le lien qui nous permettra de lire les différentes réponses de ce sujet
    	echo '<a href="./lire_sujet.php?id_sujet_a_lire=' , $data['id'] , '">' , htmlentities(trim($data['titre'])) , '</a>';
     
    	echo '</td><td>';
     
    	// on affiche la date de la dernière réponse de ce sujet
    	echo $jour , '-' , $mois , '-' , $annee , ' ' , $heure , ':' , $minute;
    	}
    	?>
    	</td></tr></table>
    	<?php
     
     
    // on libère l'espace mémoire alloué pour cette requête
    mysql_free_result ($req);
    // on ferme la connexion à la base de données.
    mysql_close ();
    ?>
    </body>
    </html>
    insert_reponse.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    <?php
    // on teste si le formulaire a été soumis
    if (isset ($_POST['go']) && $_POST['go']=='Poster') {
    	// on teste le contenu de la variable $auteur
    	if (!isset($_POST['auteur']) || !isset($_POST['message']) || !isset($_GET['numero_du_sujet'])) {
    	$erreur = 'Les variables nécessaires au script ne sont pas définies.';
    	}
    	else {
    	if (empty($_POST['auteur']) || empty($_POST['message']) || empty($_GET['numero_du_sujet'])) {
    		$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 de données
    		$base = mysql_connect ('serveur', 'login', 'password');
    		mysql_select_db ('nom_base', $base) ;
     
    		// on recupere la date de l'instant présent
    		$date = date("Y-m-d H:i:s");
     
    		// préparation de la requête d'insertion (table forum_reponses)
    		$sql = 'INSERT INTO forum_reponses VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['message']).'", "'.$date.'", "'.$_GET['numero_du_sujet'].'")';
     
    		// 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)
    		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
     
    		// préparation de la requête de modification de la date de la dernière réponse postée (dans la table forum_sujets)
    		$sql = 'UPDATE forum_sujets SET date_derniere_reponse="'.$date.'" WHERE id="'.$_GET['numero_du_sujet'].'"';
     
    		// 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)
    		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
     
    		// on ferme la connexion à la base de données
    		mysql_close();
     
    		// on redirige vers la page de lecture du sujet en cours
    		header('Location: lire_sujet.php?id_sujet_a_lire='.$_GET['numero_du_sujet']);
     
    		// on termine le script courant
    		exit;
    	}
    	}
    }
    ?>
     
    <html>
    <head>
    <title>Insertion d'une nouvelle réponse</title>
    </head>
     
    <body>
     
    <!-- on fait pointer le formulaire vers la page traitant les données -->
    <form action="insert_reponse.php?numero_du_sujet=<?php echo $_GET['numero_du_sujet']; ?>" method="post">
    <table>
    <tr><td>
    Auteur :
    </td><td>
    <input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
    </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="Poster">
    </td></tr></table>
    </form>
    <?php
    if (isset($erreur)) echo '<br /><br />',$erreur;
    ?>
    </body>
    </html>
    insert_sujet.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    <?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
    		$base = mysql_connect ('serveur', 'login', 'password');
    		mysql_select_db ('nom_base', $base) ;
     
    		// on calcule la date actuelle
    		$date = date("Y-m-d H:i:s");
     
    		// préparation de la requête d'insertion (pour la table forum_sujets)
    		$sql = 'INSERT INTO forum_sujets VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['titre']).'", "'.$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)
    		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
     
    		// on recupère l'id qui vient de s'insérer dans la table forum_sujets
    		$id_sujet = mysql_insert_id();
     
    		// lancement de la requête d'insertion (pour la table forum_reponses
    		$sql = 'INSERT INTO forum_reponses VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['message']).'", "'.$date.'", "'.$id_sujet.'")';
     
    		// 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)
    		mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
     
    		// on ferme la connexion à la base de données
    		mysql_close();
     
    		// on redirige vers la page d'accueil
    		header('Location: index.php');
     
    		// on termine le script courant
    		exit;
    	}
    	}
    }
    ?>
    <html>
    <head>
    <title>Insertion d'un nouveau sujet</title>
    </head>
     
    <body>
     
    <!-- on fait pointer le formulaire vers la page traitant les données -->
    <form action="insert_sujet.php" method="post">
    <table>
    <tr><td>
    Auteur :
    </td><td>
    <input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
    </td></tr><tr><td>
    Titre :
    </td><td>
    <input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo htmlentities(trim($_POST['titre'])); ?>">
    </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="Poster">
    </td></tr></table>
    </form>
    <?php
    // on affiche les erreurs éventuelles
    if (isset($erreur)) echo '<br /><br />',$erreur;
    ?>
    </body>
    </html>
    lire_sujet.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <html>
    <head>
    <title>Lecture d'un sujet</title>
    </head>
    <body>
     
    <?php
    if (!isset($_GET['id_sujet_a_lire'])) {
    	echo 'Sujet non défini.';
    }
    else {
    ?>
    	<table width="500" border="1"><tr>
    	<td>
    	Auteur
    	</td><td>
    	Messages
    	</td></tr>
    	<?php
    	// on se connecte à notre base de données
    	$base = mysql_connect ('serveur', 'login', 'password');
    	mysql_select_db ('nom_base', $base) ;
     
    	// on prépare notre requête
    	$sql = 'SELECT auteur, message, date_reponse FROM forum_reponses WHERE correspondance_sujet="'.$_GET['id_sujet_a_lire'].'" ORDER BY date_reponse ASC';
     
    	// 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)
    	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    	// on va scanner tous les tuples un par un
    	while ($data = mysql_fetch_array($req)) {
     
    	// on décompose la date
    	sscanf($data['date_reponse'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde);
     
    	// on affiche les résultats
    	echo '<tr>';
    	echo '<td>';
     
    	// on affiche le nom de l'auteur de sujet ainsi que la date de la réponse
    	echo htmlentities(trim($data['auteur']));
    	echo '<br />';
    	echo $jour , '-' , $mois , '-' , $annee , ' ' , $heure , ':' , $minute;
     
    	echo '</td><td>';
     
    	// on affiche le message
    	echo nl2br(htmlentities(trim($data['message'])));
    	echo '</td></tr>';
    	}
     
    	// on libère l'espace mémoire alloué pour cette reqête
    	mysql_free_result ($req);
    	// on ferme la connection à la base de données.
    	mysql_close ();
    	?>
     
    	<!-- on ferme notre table html -->
    	</table>
    	<br /><br />
    	<!-- on insère un lien qui nous permettra de rajouter des réponses à ce sujet -->
    	<a href="./insert_reponse.php?numero_du_sujet=<?php echo $_GET['id_sujet_a_lire']; ?>">Répondre</a>
    	<?php
    }
    ?>
    <br /><br />
    <!-- on insère un lien qui nous permettra de retourner à l'accueil du forum -->
    <a href="./index.php">Retour à l'accueil</a>
     
    </body>
    </html>


    Aidez moi svp,

    Coordialement Kunchikii,

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    j'ai un soucis avec mes pages php que je n'arrive pas a regler
    Il semble que tu aies légèrement oublié de dire quel est le problème que tu rencontres...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Re Probleme Php Forum
    Veuillez m'excusez je vous envoi les screen en vous expliquant :

    Voici le screen quand j'arrive sur ma page :

    Nom : Capture d’écran (1).png
Affichages : 54
Taille : 81,3 Ko

    Ensuite quand je veut poster un message :

    Nom : Capture d’écran (2).png
Affichages : 54
Taille : 80,0 Ko

    Voila.
    J'aimerais beaucoup que l'on m'aide car c'est un travail a faire pour le 15 Mars et j'aimerais beaucoup que l'on m'aide, je ferais de meme ^^.
    Coordialement, Kunchikii,

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu as visiblement des problèmes d'encodage dans ta 1ere page. A lire : Passez à l'UTF-8 sans manquer une étape

    Pour la 2e : le message est assez clair : "Access denied", autrement dit "accès interdit". Vérifie les identifiants que tu utilises pour te connecter à la bdd.

    Au passage, les fonctions mysql_xxxx sont obsolètes dans les dernières versions de PHP. Je te conseille de te tourner vers mysqli qui peut fonctionner quasiment pareil : http://fr2.php.net/manual/fr/book.mysqli.php
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. [MySQL] Création d'un forum, besoin de votre avis
    Par swf_err2str dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/04/2006, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo