Perte de variable $_GET apres actualisation de la page

Fermé
Hector187 Messages postés 8 Date d'inscription mercredi 13 mars 2013 Statut Membre Dernière intervention 2 avril 2013 - 2 avril 2013 à 17:34
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 - 2 avril 2013 à 23:25
Bonjour,



Bonjour voila ce que je tente de réaliser : sur ma Page A j'ai une requete qui me permet de récupérer des Billets dans chaque billet j'ai un lien appelé commentaire (qui transmet la variable $_GET['id_billet] qui ouvre une page B afin de reprendre le billet ciblé avec les commentaires liés à ce même billet. Sur ma pages B je récupère bien tout, sauf que j'ai voulu intégrer un formulaire (sur ma page B) qui permet d'ajouter des commentaires au billet.

Le problème est que lorsque j'envoie le formulaire ca me réactualise la page et je perd ma variable $_GET['id_billet] résultat : "plus aucune info liés au billet ne s'affiche".
Existe t-il une solution afin qu'après avoir actualiser ma page deux elle puisse qd meme conserver la variable $_GET['id_billet] transmise par url de ma page un à deux ?
A voir également:

3 réponses

Utilisateur anonyme
2 avril 2013 à 17:47
Peux tu poster le bout de code dans lequel l'envoi est sensé se faire?
0
Hector187 Messages postés 8 Date d'inscription mercredi 13 mars 2013 Statut Membre Dernière intervention 2 avril 2013
2 avril 2013 à 18:24
<a href="commentairebillet.php?billet=<?php echo $donnees['id']; ?>">Commentaires</a> correspond au liens de la page A qui passe la variable

voici le code de la page qui réceptionne (code long et pas encore fini comme pb rencontré en cours de route dsl en plus je débute en php) :

<?php
session_start();

if(empty($_SESSION['pseudo']))
{
header ('location: mbnlogin.php');
}

?>

<!Doctype htlm>
    <head>
        <meta charset="utf-8" />
		<link rel="stylesheet" href="navigateur.css" />
		<link rel="stylesheet" href="commentaire.css" />
        <title>MBN Commentaire billet</title>
	</head>	
	
	
	<body>
	
	<?php
		
		// Connexion à la base de données
		try
		{
			$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
		}
		catch(Exception $e)
		{
				die('Erreur : '.$e->getMessage());
		}
		// Récupération du billet par Get
		$req = $bdd->prepare('SELECT id, pseudo, titre, commentaire, date FROM bloggy WHERE id = ?');
		$req->execute(array($_GET['billet']));
		$donnees = $req->fetch();
		
		$req->closeCursor(); // Important : on libère le curseur pour la prochaine requête
	?>
	
	<div id="postfinal">
	
		<div id="autor"><p><strong>Auteur : </strong><?php echo $donnees['pseudo'] ?></p></div><div id="titro"><p><strong>Titre : </strong><?php echo $donnees['titre'] ?></p></div><br /><p id="comment"><?php echo $donnees['commentaire'] ?></p><br /><div id="teatime"><p><?php echo $donnees['date'] ?></p></div><br />
		
	</div>
	
	
	
	<div id="lescommentaires">
	
		<h1>Il a dit je cite : </h1>
	<?php	
		// Récupération des commentaires du billet table commentaire
		$req = $bdd->prepare('SELECT id, auteur, commentaire, date FROM commentaires WHERE id_billet = ? ORDER BY date DESC LIMIT 0,10');
		$req->execute(array($_GET['billet']));
		$donnees = $req->fetch();
		
		while ($donnees = $req->fetch())
		{
		?>
		<p> Auteur : <?php echo $donnees['auteur'] ?> le : <?php echo $donnees['date'] ?></p><p> <?php echo $donnees['commentaire'] ?>
		<?php
		}
		$req->closeCursor(); 
	
	?>
	</div>
	
	<div id="formulairedeux">
	
		<form method="post" action="commentairebillet.php">
	
		<input type="hidden" name="id_billet" value="<?php echo $_GET['billet']; ?>" />
		<input type="hidden" name="auteur" value="<?php echo $_SESSION['pseudo']; ?>" />
		<label><strong> Auteur : </strong></label> <input type="text" name="auteur" value="<?php echo $_SESSION['pseudo']; ?>"  DISABLED />
		<label><strong> Comment ?</strong> (500 caractères max) : </label><textarea placeholder="Entre ton commentaire ici"  name="commentaire"   maxlength="500" onkeyup="return ismaxlength(this)"></textarea>
		<input type="hidden" name="date"/>
		<input type="submit" value="Balance" id="balance"/>
		
		
		</form>
	</div>
	<?php
		if(!empty($_POST['commentaire']))
		{
		// On ajoute une entrée dans la table bugreport
		$req = $bdd->prepare('INSERT INTO commentaires(id-billet, auteur, commentaire, date ) VALUES(:id_billet, :auteur, :commentaire,  now())');
		$req->execute(array(
						'id_billet' => $_POST['id_billet'],
						'auteur' => $_POST['auteur'],
						'commentaire' => $_POST['commentaire'],
						
						));
	
	
	
	$req->closeCursor(); 
	}
	?>
	
	
	
	</body>
	
</html>


si cela peux t'éclairer !!!! merci en tout cas.
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 2/04/2013 à 23:34
<?php
session_start();

if(empty($_SESSION['pseudo'])) {
    header ('location: mbnlogin.php');
}
?>

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="navigateur.css" />
    <link rel="stylesheet" href="commentaire.css" />
    <title>MBN Commentaire billet</title>
</head>

<body>
    <?php
        // Connexion à la base de données
        try {
            $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
        }
        catch(Exception $e) {
            die('Erreur : '.$e->getMessage());
        }

        // Récupération du billet par Get
        $req = $bdd->prepare('
                        SELECT *
                        FROM bloggy
                        WHERE id = ?');
        $req->execute(array($_GET['billet']));
        $donnees = $req->fetch();
        $req->closeCursor();
    ?>

    <div id="postfinal">
        <div id="autor">
            <p>
                <strong>Auteur : </strong>
                <?php echo $donnees['pseudo'] ?>
            </p>
        </div>

        <div id="titro">
            <p>
                <strong>Titre : </strong>
                <?php echo $donnees['titre'] ?>
            </p>
        </div>

        <br />

        <p id="comment">
            <?php echo $donnees['commentaire'] ?>
        </p>

        <br />

        <div id="teatime">
            <p><?php echo $donnees['date'] ?></p>
        </div>

        <br />
    </div>

    <div id="lescommentaires">
        <h1>Il a dit je cite : </h1>
 <?php
     // Récupération des commentaires du billet table commentaire
     $req = $bdd->prepare('
                                SELECT *
                                FROM commentaires
                                WHERE id_billet = ?
                                ORDER BY date DESC
                                LIMIT 0,10');
     $req->execute(array($_GET['billet']));
     $donnees = $req->fetch();

     while ($donnees = $req->fetch()) {
                echo '<p>',
                'Auteur : ' . $donnees['auteur'],
                ' le : ' . $donnees['date'],
                '</p>';

                echo '<p>' . $donnees['commentaire'] . '</p>';
     }
     $req->closeCursor();
 ?>
    </div>

    <div id="formulairedeux">
        <form method="post" action="#">
            <label><strong> Auteur : </strong></label>
            <input type="text" name="auteur" value="<?php echo $_SESSION['pseudo']; ?>"  disabled />

            <label><strong> Comment ?</strong> (500 caractères max) : </label>
            <textarea placeholder="Entre ton commentaire ici" name="commentaire" maxlength="500" onkeyup="return ismaxlength(this)"></textarea>
            <input type="submit" value="Balance" id="balance"/>
        </form>
    </div>

    <?php
        if(isset($_POST['commentaire']) AND !empty($_POST['commentaire'])) {
            // On ajoute une entrée dans la table bugreport
            $req = $bdd->prepare('
                        INSERT INTO commentaires
                        (id-billet, auteur, commentaire, date )
                        VALUES(:id_billet, :auteur, :commentaire,  NOW())');
            $req->execute(array(
                            ':id_billet' => $_GET['billet'],
                            ':auteur' => $_SESSION['pseudo'],
                            ':commentaire' => $_POST['commentaire']
                            ));
            $req->closeCursor();
         }
    ?>

</body>
</html>


Mettez en résolu quand c'est résolu -.- ...
0