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 :

Récupération d'un id de page en page [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    étudiante
    Inscrit en
    Septembre 2014
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Septembre 2014
    Messages : 101
    Par défaut Récupération d'un id de page en page
    Bonjour,
    je créée un forum de discussion avec 3 pages (la page forum qui affiche les sujets, la page repforum qui affiche les réponses à un sujet, la page reprepforum qui permet de rédiger une réponse qui, après validation du formulaire, se postera sur repforum). J'espère que c'est assez claire

    Sur forum j'ai un idforum par sujet. Je le récupère sur repforum pour n'avoir que les réponses au sujet choisi. Je souhaite le récupérer de nouveau sur reprepforum pour que la réponse rédigée soit attribuée au bon sujet mais voilà que là, ca ne fonctionne pas.
    Quelqu'un pour m'aider??? J'suis débutante, je galère un peu, désolée!!

    Voilà repforum : (passage de forum à repforum: affichage correct, passage de reprepforum à repforum: affichage de toutes les réponses, donc pas de prise en compte de l'idforum voulu)
    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
     
    <?php
    //Récupération du sujet choisi.
    $bdd = new PDO('mysql:host=..............);
    $req = $bdd->prepare('SELECT pseudo, sujet, DATE_FORMAT(datforum, \'%d/%m/%Y à %Hh%imin%ss\') AS datforum_fr FROM forum WHERE idforum = ?');
    $req->execute(array($_GET['suj']));
    $donnees = $req->fetch();
    ?>
     
    .........
     
    // Récupération des commentaires. 
    $bdd = new PDO('mysql:host=.....................');
    $req = $bdd->prepare('SELECT pseudorep, message, DATE_FORMAT(daterep, \'%d/%m/%Y à %Hh%imin%ss\') AS daterep_fr FROM repforum WHERE idforum = ? ORDER BY daterep');
    $req->execute(array($_GET['suj']));
    while ($donnees = $req->fetch()) {
     
    .......
     
    <form action="repforum.php" method="post" class="creer">
    <input type="submit" name="repondre" value="Répondre à la discussion">
    </form>
    <form action="forum.php" method="post" class="retour">
    <input type="submit" name="retourner" value="Retour aux sujets">
    </form>
     
    <?php
    if(!isset($_POST['repondre'])) {
    }
    elseif((isset($_POST['repondre'])) && (!$_SESSION)) {
    header('Location: reprepforum.php?suj=$_GET['suj']');
    }
    else {
    echo '<div id="marge">
    Pour participer au forum, vous devez d\'abord vous identifiez en créant ou en vous connectant à votre compte</a>.
    </div>';
    }
    Voici reprepforum:
    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
     
    <form action="reprepforum.php" method="post">
    <label for="pseudo">Pseudo</label>
    <input type="text" name="pseudo" size="130" maxlength="30"><br>
    <label for="message">Message</label>
    <textarea name="message" rows="11" cols="97" maxlength="1000" wrap="hard" placeholder="Exprimez-vous"></textarea><br><br><br>
    <input type="submit" value="Envoyer" name="submit">
    <input type="reset" value="Annuler">
    </form>
     
    <?php
    // On vérifie que le formulaire vient d'être envoié.
    if (!isset($_POST['submit'])) {
    }
    // On regarde si nos variables ne sont pas vides.
    elseif ((isset($_POST['submit'])) && (!empty($_POST['pseudo'])) && (!empty($_POST['message']))) {
     
    	// On teste la conformité d'écriture des champs.
    	// Pseudo  
    	$_POST['pseudo'] = htmlspecialchars($_POST['pseudo']);     
    	if (preg_match("#^[a-zA-Z0-9éèàêâùïüëô.-_]{3,30}$#", $_POST['pseudo'])) {
    	// Message
    	$_POST['message'] = htmlspecialchars($_POST['message']);   
    	if (preg_match("#^[a-zA-Z0-9éèàêâùïüëô;,.\"\'() _-]{3,1000}$#", $_POST['message'])) {
     
    		// Insertion des informations dans la base de données
    		$bdd = new PDO('mysql:host=.........');
    		$req = $bdd->prepare('INSERT INTO repforum(idforum, pseudorep, message, daterep) VALUE(:idforum, :pseudo, :message, NOW())');
    		$req->execute(array(
    		':idforum' => $_GET['suj'],
       		':pseudo' => $_POST['pseudo'],
       		':message' => $_POST['message']));
     
    		//Redirection et rafraichissement de la page
    		$delai=1; 
    		$url='repforum.php?suj=$_GET['suj']';
    		header("Refresh: $delai;url=$url");
    Merciiiiiiiii!!!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    tes url sont mal construites
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: reprepforum.php?suj=$_GET['suj']');
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: reprepforum.php?suj=' . $_GET['suj']);
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $url='repforum.php?suj=$_GET['suj']';
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $url='repforum.php?suj=' . $_GET['suj'];
    D'ailleurs je ne comprends meme pas comment ton code pouvait s'executer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Femme Profil pro
    étudiante
    Inscrit en
    Septembre 2014
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Septembre 2014
    Messages : 101
    Par défaut
    Bonjour Sabotage,
    merci pour cette correction, mais ca n'a rien changé, j'ai toujours exactement le mm problème, quand je vais sur reprepforum pour remplir le formulaire afin d'ajouter un commentaire au sujet choisi dans le forum, je valide, je suis redirigée vers repforum et là je vois tous les commentaires concernant ce sujet mais aussi les commentaires des autres sujet, c'est pas sélectif. :-s

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Quand tu reviens sur repforum tu as bien l'id dans l'url ?
    Au passage, revois tes noms : "suj" pour "idforum" c'est incompréhensible ; idem pour "repforum" et "reprepforum"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Femme Profil pro
    étudiante
    Inscrit en
    Septembre 2014
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Septembre 2014
    Messages : 101
    Par défaut
    Bonjour,
    non justement, déjà quand je suis sur repforum (affichage d'un sujet et de ses commentaires) et que je clic pour rejoindre reprepforum (formulaire pour ajouter un commentaire à cette discussion) je n'ai déjà plus de valeur d'id (suj dans ce cas)dans l'url. Du coup ca ne s'arrange pas quand je valide le formulaire de reprepforum pour revenir sur repforum. :-s

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Tu mélanges allégrement les $_POST et $_GET et tu ne formes pas d'url avec GET.

    Exemple dans reprepforum.php

    Tu crée un formulaire avec le chemin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form action="reprepforum.php" method="post">
    dans ce cas il n'y rien de passer en GET or une fois envoyé tu essayes de former une url en récupérant un GET qui n'existe pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (preg_match("#^[a-zA-Z0-9éèàêâùïüëô;,.\"\'() _-]{3,1000}$#", $_POST['message'])) {
    si je rentre dans cette condition, tu essayes le header suivant (que tu dois retravailler comme Sabotage te le conseille) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $delai=1; 
    		$url='repforum.php?suj=$_GET['suj']';
    		header("Refresh: $delai;url=$url");
    Nulle part je ne vois de référence à "suj" !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/04/2011, 09h46
  2. récupération de l'URL complète de la page
    Par tomguiss dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 29/09/2009, 10h42
  3. Récupération des données de formulaire dans une page JSP
    Par fauthie dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 16/09/2009, 14h02
  4. Réponses: 5
    Dernier message: 21/03/2009, 17h33
  5. Réponses: 16
    Dernier message: 29/01/2008, 17h54

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