Problème d'URL ($_GET)

killermano66 Messages postés 249 Statut Membre -  
killermano66 Messages postés 249 Statut Membre -
Salut,

J'ai un petit soucis d'url pour un script permettant de modifier certaines entrée de ma base via un formulaire (système d'administration). Une des URL n'est pas reconnue ou prise en compte et donc la validation de mon formulaire est impossible.

J'arives donc à lister tous mes articles et à les afficher dans un formulaire lorsqu'on clique sur le nom de l'un d'entre eux. Aprés ce clic, je suis redirigé vers une page contenant le formulaire déjà remplis avec les infos de l'article sur lequel j'ai cliqué. Mon soucis c'est à la validation de ce formulaire (si je veux modifier mon articles et le revalider), la page vers laquelle je désires être renvoyé n'est pas trouvé.

L'url est du type : fichiers/admin/valid_modif.php?id=3
id correspondant au numéro de l'article.

A savoir que cette zone d'administration possède elle aussi un système de navigation avec $_GET et la page générale de modification (celle qui liste tous mes articles) a une URL du type: index.php?page=modif. L'articles une fois cliqué pour être modifié à une url du type: index.php?page=modif&id=3 (id correspondant toujours au numéro de l'articles dans la BDD)

J'ai donc essayé simplement un index.php?page=valid_modif&id=3, la la page est trouvée mais elle est vide alors qu'elle devrait m'annoncer le sucés ou l'échec de la modification de l'article en question. J'en déduis donc qu'elle n'est pas trouvée.

Voilà, c'est peut être un peu tordue, j'ai essayé de détailler un maximum, je vous met le code en dessous :

modification.php
<?php
include('../connection.php'); //On se connecte à la base
if(isset($_GET['id'])){ //si la variable id existe 
//Lien vers les editos prés a etre modifiés.
	$requete_selection = mysql_query('SELECT * 
					  FROM editorial 
				          WHERE id='.$_GET['id']) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

	$donnees = mysql_fetch_array($requete_selection);
?>
	
	<form action="valid_modif.php?id=<?php echo $donnees['id']; ?>" method="post">
	Titre :<input type="text" name="titre" value="<?php echo $donnees['titre']; ?>" /><br /><br />
	
	Contenue : <br />
	<textarea name="contenu" rows="30" cols="30" style="width: 50%">
	<?php echo $donnees['contenue']; ?>
	</textarea>
	
	Auteur :
	<input type="text" name="auteur" value="<?php echo $donnees['auteur']; ?>" /><br />
	<input type="submit" value="Valider">
	</form>
	
	
<?php	
}
//Lien page modification
else {
	$requete_selection = mysql_query('SELECT * 
					FROM editorial') or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
	while ($donnees = mysql_fetch_array($requete_selection)){

		echo '<a href="index.php?page=modif&id='.$donnees["id"].' ">';
		echo $donnees['titre'] . '</a>' . ' ' . ' par ';
		echo $donnees['auteur'] . '<br />';		
	}
}
mysql_close(); //On se déconnecte
?>


Et la page valid_modif
<?php
if ((empty($_POST['titre'])) OR (empty($_POST['contenu'])) OR (empty($_POST['auteur']))) //On teste si les champs sont bien remplis
{
	//Un ou plusieurs champs sont vides
	echo("Au moins un champ est vide, l'editorial n'a pas pu etre mis a jour<br />");
	echo("Vous allez etre redirige vers le formulaire dans 3 secondes<br />");
	echo("Si vous ne voulez pas attendre <a href='../index.php' alt='Formulaire'>Cliquez ici</a>");
	header("Refresh: 3; URL=../index.php");
}
else {
	//Tous les champs sont bien renseignés
	include ("../connection.php/");
	$titre = mysql_real_escape_string($_POST['titre']);
	$contenu = mysql_real_escape_string($_POST['contenu']);
	$auteur = mysql_real_escape_string($_POST['auteur']);
	$date = time();	
		
	//Rajout de $_GET id aprés la fermeture de la requete par concaténation	
	$requete_update = "UPDATE editorial SET titre='$titre' , contenue='$contenu' , auteur='$auteur' , date='$date' WHERE id=".$_GET['id']; 
					
	$requete = mysql_query($requete_update) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // Renvoi une erreur en cas de problème.	
	echo("L'editorial a etait correctement mis a jour<br />");
	echo("Vous allez etre redirige vers le formulaire dans 3 secondes<br />");
	echo("Si vous ne voulez pas attendre <a href='../index.php' alt='Formulaire'>Cliquez ici</a>");
	header("Refresh: 3; URL=../index.php");
}
?>


Merci bien à ceux qui auront le courage de me lire ;)

2 réponses

jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
et pourquoi tu passes ton id en GET et pas en post comme les autres ?
par exemple tu mets champs caché (input de type hidden) pour ton ID
du coup tu le récupère comme le reste en POST et plus en GET
0
killermano66 Messages postés 249 Statut Membre 41
 
C'est pas bête du tout, je suis juste pas habitué du tout à cette façon de faire avec les champs caché mais ça m'a l'air bien plus souple et simple d'utilisation en effet. Je vais tenter le coup dans tous les cas. Merci bien.

Par contre si quelqu'un à une idée du problème avec $_GET car ça m'intéresse de savoit ou se trouve le problème, et surtout de le comprendre.
0