Modification d'un article passage $_GET

cortex.MINUSSE Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
cortex.MINUSSE Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir à tous,

Voila un grand classique je pense pour la plupart d'entre vous. J'ai créée une page me permettant d'afficher supprimer un article, jusque là tout va bien le problème est donc lorsque je cherche à l'éditer.

Je passe dans mon url une variable ex:correction.php?id_article=1

dans cette nouvelle page je récupère la valeur de mon GET pour bien afficher le message à corrigé. Là ou ca commence à aller mal c'est quand je renvoie mes paramètres ma variable get n'existe plus et donc je ne récupère plus mon id_article. Voila un extrait de mon code
<?php

//récupération des variable pour le définir dans le tableau
$requete = "SELECT * FROM article WHERE id_article=$_GET[id_article]";
$resultat = mysql_query ($requete);
$row = mysql_fetch_assoc($resultat);
//echo "$requete<br/>$_GET[id_article]<br/>$row[title]<br/>$row[article]<br/>$row[date_article]";

//Modification de l'article

if (isset($_POST['mod_article'])) 
{
	if (!empty($_POST['titlenew']) && !empty($_POST['articlenew']))
	{
	$titlenew = $_POST['titlenew'];
	$articlenew = $_POST['articlenew'];
	$req = mysql_query ("UPDATE article SET title='$titlenew' article='$articlenew' WHERE id_article=$_GET[id_article]");
	echo $req;
	//header("location:index.php");
	}
}?>		
<div class="create_article">
	<form method="post" action="modif_article.php">
	<fieldset>
		<legend>Modification de l'article <?php echo $_GET['id_article'];?></legend>
		<input type="hidden" name="date_article" value="<?php echo $row['date_article']; ?>" />
		<input type="hidden" name="id_article" value="<?php echo $_GET['id_article'];?>" />
		<p class="clear"><label for="titre">Titre de l'article</label><input type="text" class="champs" value="<?php echo $row['title']; ?>" name="titlenew" id="titre" /></p>
		<p class="clear"><label for="article">Article</label><textarea id="article" name="articlenew" rows="5" cols="50"><?php echo $row['article']; ?></textarea></p>
		<p class="validation"><input type="submit" value="Modifier l'article" name="mod_article" /></p>
	</fieldset>
	</form>
</div>


Superbe erreur qui s'explique puisque id_article n'existe plus. Du coup comme m'y prendre ?
J'ai tenté define() de ma variable sans succès. Quelqu'un pourrait de donner un coup de main tant qu'il me reste encore des cheveux.
D'avance merci
A voir également:

7 réponses

informapierre Messages postés 425 Date d'inscription   Statut Membre Dernière intervention   49
 
Tu cherche à faire quoi au juste ? Conservez le contenu d'une variable GET ?
0
cortex.MINUSSE Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
C'est l'idée oui! ca me permettrais de faire mon update correctement, mais après relecture et mise en dur de mon id_article il semblerait que ma requête soit fausse. Je vais revoir le tout.
0
informapierre Messages postés 425 Date d'inscription   Statut Membre Dernière intervention   49
 
Pour conserver le contenu de ta variable à travers les pages, tu peux sois utiliser les cookies (stockés sur le poste du client) soit les variable de session en fessant par exemple
$_SESSION['nomdelavarible'] = 0;
$_GET['tavariable'] = $_SESSION['nomdelavarible'];

ainsi, ta variable est donc conservé au fil de la navigation et tu continuer à y accéder par $_SESSION['nomdelavarible']; :D
Par contre, fait attention je vois que ton code n'est pas du tout sécuriser.
Tu utilise directement tes variables GET dans tes requêtes SQL et leurs contenu n'est pas traité, imagine si quelqu'un remplace l'id dans l'url par un code malveillant et qu'il recharge la page ? N'importe qui peut facilement faire joujou avec ta base de donnée :/
0
informapierre Messages postés 425 Date d'inscription   Statut Membre Dernière intervention   49
 
Pour conserver le contenu de ta variable à travers les pages, tu peux sois utiliser les cookies (stockés sur le poste du client) soit les variable de session en fessant par exemple
$_SESSION['nomdelavarible'] = 0;
$_GET['tavariable'] = $_SESSION['nomdelavarible'];

ainsi, ta variable est donc conservé au fil de la navigation et tu continuer à y accéder par $_SESSION['nomdelavarible']; :D
Par contre, fait attention je vois que ton code n'est pas du tout sécuriser.
Tu utilise directement tes variables GET dans tes requêtes SQL et leurs contenu n'est pas traité, imagine si quelqu'un remplace l'id dans l'url par un code malveillant et qu'il recharge la page ? N'importe qui peut facilement faire joujou avec ta base de donnée :/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ljm972 Messages postés 255 Date d'inscription   Statut Membre Dernière intervention   29
 
Salut,
tu as une erreur :
remplace : $_GET[id_article]
par : $_GET['id_article']
0
informapierre Messages postés 425 Date d'inscription   Statut Membre Dernière intervention   49
 
bien vu ;)
0
cortex.MINUSSE Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai totalement revue ma copie en utilisant effectivement une variable de session ça fonctionne correctement. Tu soulèves en revanche un problème important de sécurité.. ben je vais la réécrire différemment :D.

Merci du coup de main.
0