Problème php

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

Étant en train de réaliser un système de news, je rencontre un problème..
Je me suis relu plusieurs fois sans le comprendre, pouvez vous m'aidez ?

<?php
     require "../config.php";
	 mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
	 mysql_select_db(DB_BDD);
	 if(!empty($_POST)){
	   extract($_POST);
	   $sql="UPDATE news SET titre='$titre', contenu='$contenu' WHERE id=$id";
	   $req = mysql_query($sql) or die('Erreur SQL');
$sql = "SELECT * FROM news WHERE id={$_GET["id"]}";  
$req = mysql_query($sql) or die('Erreur SQL');
echo "News Modifiée";
$_GET["id"]=$id;
}
$titre = NULL;
$contenu = NULL;
?>

           <form method="post" action="edit.php"/>
	       <input type="hidden" value="<?php echo $data["id"];?>"/>
    Titre :<input type="text" name="titre" value="<?php echo $data["titre"]; ?>">

	Contenu :<br/>
	<textarea name="contenu" style="width:100%;height:150px;" value="	<?php echo $data["contenu"]; ?>"></textarea>
	<input type="submit" value="Envoyer la news">
	</form>



Merci d'avance de vos réponses


A voir également:

4 réponses

msarah Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   7
 
Si la ligne 5 c'est $id=$_GET["id"], ça veut dire que tu n'as pas envoyé id dans l'url qui t'amène à cette page, ton url doit être "fichier. php?id=valeur". Tu dois tester avant si $_GET est vide tu mets
if(isset($_GET["id"])){
  $id=(int)$_GET["id"];
}

À la place de $id=$_GET["id"];
1
msarah Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   7
 
Salut, alors je me suis permis de modifier un peu ton code mais je ne suis pas sur que cela va arranger ton problème si tu peux être plus précise sur ce qui se passe. En attendant voila ton code modifier si tu veux tester.
<?php
     require "../config.php";
	 mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
	 mysql_select_db(DB_BDD);
	 $id=$_GET["id"];
if(!empty($_POST)){
	  $titre=mysql_real_escape_string($_POST["titre"]);
	  $contenu=mysql_real_escape_string($_POST["contenu"]);
	  $sql="UPDATE news SET titre='$titre', contenu='$contenu' WHERE id=$id";
	  $req = mysql_query($sql) or die('Erreur SQL');
         // c'est mieux de preciser ce que tu veux selectionner que mettre *
	  $sql2 = "SELECT id,titre,contenu FROM news WHERE id=$id";  
	  $req2 = mysql_query($sql2) or die('Erreur SQL');
	  $data= mysql_fetch_assoc($req2);
	  echo "News Modifiée";
}
$titre = NULL;
$contenu = NULL;
?>
<form method="post" action="edit.php"/>
	       <input type="hidden" value="<?php echo $data["id"];?>"/>
    		Titre :<input type="text" name="titre" value="<?php echo stripslashes($data["titre"]); ?>">
			Contenu :<br/>
			<textarea name="contenu" style="width:100%;height:150px;"><?php echo stripslashes($data["contenu"]); ?></textarea>
	<input type="submit" value="Envoyer la news">
</form>
0
msarah Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   7
 
je crois que si ton formulaire sert a modifier une news tu dois mettre cette partie du code :
 $sql2 = "SELECT id,titre,contenu FROM news WHERE id=$id";  
	  $req2 = mysql_query($sql2) or die('Erreur SQL');
	  $data= mysql_fetch_assoc($req2);
En dehors de ton if, a la place de $titre=NULL; et $contenu=NULL;
0
Utilisateur anonyme
 
Merci sa ma très bien aidé, juste une dernière question, il y a une erreur Undefined Index à la ligne 5 tu sait pourquoi ?

<?php
     require "../config.php";
	 mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
	 mysql_select_db(DB_BDD);
	 $id=$_GET["id"]; // Ici	 
if(!empty($_POST)){
	  $titre=mysql_real_escape_string($_POST["titre"]);
	  $contenu=mysql_real_escape_string($_POST["contenu"]);
	  $sql="UPDATE news SET titre='$titre', contenu='$contenu' WHERE id=$id";
	  $req = mysql_query($sql) or die('Erreur SQL');
         // c'est mieux de preciser ce que tu veux selectionner que mettre *
	  echo "News Modifiée";
}
 $sql2 = "SELECT id,titre,contenu FROM news WHERE id=$id";  
	  $req2 = mysql_query($sql2) or die('Erreur SQL');
	  $data= mysql_fetch_assoc($req2);
?>
<form method="post" action="edit.php"/>
	       <input type="hidden" value="<?php echo $data["id"];?>"/>
    		Titre :<input type="text" name="titre" value="<?php echo stripslashes($data["titre"]); ?>">
			<br/>
             Contenu :</br>
			<textarea name="contenu" style="width:100%;height:150px;"><?php echo stripslashes($data["contenu"]); ?></textarea>
	<input type="submit" value="Envoyer la news">
</form>


0
Utilisateur anonyme
 
Merci ça marche :)
0