Fichier effacer

gauthier 62
Invité n'ayant pas de compte PHPfrance

21 juil. 2010, 22:42

]<?php
include('config.php');
/*_____________________CONNEXION__________________________*/

mysql_connect("$hote","$utilisateur","$password");
mysql_select_db("$base") or die("erreur de connexion a la base de donnees");

/* _________________RECUP_DES_DONNEES____________________ */
$oui = (isset($_POST['oui'])) ? $_POST['oui'] : false;

{

  while (list($var, $value) = each($_GET))
    {
      $biens["$var"] = $value;
    }

if(isset($_GET['id']))
{
//execution de ton code
$effacer=mysql_query("delete from biens where id= '$_GET[id]'") or die (mysql_error());
}
else{}

echo "<h1 align=center>Enregistrement effacé<br><br><a href='listing.php'>Retour</a>";


// EFFACE SI ID=X AU CHARGEMENT
echo "<p align=center><font size=2><b>Voulez-vous effacer définitivement l'enregistrement suivant ?</b></font></p> ";

if(isset($_GET['eff'])){

$result = mysql_query("select * from biens where id='$_GET[eff]'") or die(mysql_error()); //Execute la requete
	
    // traite les résultats de la requete tant qu'il, y en a
    while(($donnees = mysql_fetch_array($result)))
    { 

       $id=$donnees[0];
	$dossier=$donnees[1];
	$codetypeB=$donnees[2];
	$description=$donnees[3];
	$date_annonce=$donnees[4];
	$lieu=$donnees[5];
	$prix=$donnees[6];
	$photo=$donnees[7];
	$photo1=$donnees[8];
	$photo2=$donnees[9];
	$photo3=$donnees[10];
	$codetypeC=$donnees[11];
	$nbre_piece=$donnees[12];
	$surface=$donnees[13];
	$localisation=$donnees[14];

echo "<center><table width=400><tr><td width=400 class=eff_civi>N° Dossier :  $dossier</td></tr></table></center>";					
echo "<br><br><br><p align=center><font size=2><b><a href='effacer.php?id=$id&oui=1'>OUI</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='listing.php'>NON</a></b></font></p>";



     }//Fin du while
}//Fin du if



else{
echo"erreur eff est non défini";
}
?>
[/php

Ce script devrait supprimer des enregistrements de ma base en l'occurrence là il ne le fait pas et de plus il devrait m'afficher oui ou non pour savoir si je veux vraiment supprimer et il ne me l'affiche pas.

merci de me venir en aide

ViPHP
ViPHP | 1136 Messages

22 juil. 2010, 07:58

Nous ne sommes pas une plateforme de support :evil:

Le fait de dire bonjour est minimum , et faire attention à ce que le code php soit bien mis sous balises aussi .

que fait l'accolade sous cette ligne ? sans être fermé !
...

$oui = (isset($_POST['oui'])) ? $_POST['oui'] : false;

{

...

Sinon , sache que ton script est sujet aux injections sql , ( tu concatènes directement tes $_GET dans tes requêtes ).

Petit nouveau ! | 8 Messages

22 juil. 2010, 09:18

Bonjour ,Arf

Desolé, je voulais modifier le post mais vu que je n'étais pas encore inscrit je n'ai pas put le modifier :? :(

Avez une solution à mon probleme?

<?php
include('config.php');
/*_____________________CONNEXION__________________________*/

mysql_connect("$hote","$utilisateur","$password");
mysql_select_db("$base") or die("erreur de connexion a la base de donnees");

/* _________________RECUP_DES_DONNEES____________________ */

$oui = (isset($_POST['oui'])) ? $_POST['oui'] : false;

{
  while (list($var, $value) = each($_GET))
    {
      $biens["$var"] = $value;
    }

		if(isset($_GET['id']))
		{
		//execution de ton code
		$effacer=mysql_query("delete from biens where id= '$_GET[id]'") or die (mysql_error());
		}
	else{}

	echo "<h1 align=center>Enregistrement effacé<br><br><a href='listing.php'>Retour</a>";


	// EFFACE SI ID=X AU CHARGEMENT
	echo "<p align=center><font size=2><b>Voulez-vous effacer définitivement l'enregistrement suivant ?</b></font></p> ";

	if(isset($_GET['eff']))
	{

	$result = mysql_query("select * from biens where id='$_GET[eff]'") or die(mysql_error()); //Execute la requete
	
    // traite les résultats de la requete tant qu'il, y en a
			while(($donnees = mysql_fetch_array($result)))
			{ 

			$id=$donnees[0];
			$dossier=$donnees[1];
			$codetypeB=$donnees[2];
			$description=$donnees[3];
			$date_annonce=$donnees[4];
			$lieu=$donnees[5];
			$prix=$donnees[6];
			$photo=$donnees[7];
			$photo1=$donnees[8];
			$photo2=$donnees[9];
			$photo3=$donnees[10];
			$codetypeC=$donnees[11];
			$nbre_piece=$donnees[12];
			$surface=$donnees[13];
			$localisation=$donnees[14];

		echo "<center><table width=400><tr><td width=400 class=eff_civi>N° Dossier :  $dossier</td></tr></table></center>";					
		echo "<br><br><br><p align=center><font size=2><b><a href='effacer.php?id=$id&oui=1'>OUI</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='listing.php'>NON</a></b></font></p>";



			 }//Fin du while
	}//Fin du if



	else
	{
	echo"erreur eff est non défini";
	}
}
?>

ViPHP
AB
ViPHP | 5818 Messages

22 juil. 2010, 18:59

Ben faudrait repasser par la case départ...

Tu définis une variable $oui que tu n'utilise pas, tu ouvres un accolade { apparemment sans condition préalable ...

Sur le principe ce serait plutôt quelque chose dans le genre
$oui = isset($_POST['oui']) ? $_POST['oui'] : null;
$identifiant = isset($_GET['id']) , intval($_GET['id']) : null;// intval pour caster la variable en numérique (puisqu'apparemment tu attends une valeur numérique)

if (isset($oui,$identifiant))
{
//code de connexion à la bdd si non déjà effectué
//...
// fin du code de connexion

$query = "DELETE FROM biens WHERE id = '".mysql_real_escape_string($identifiant)."'";
$delete = mysql_query($query) or die  (mysql_error());
}

Petit nouveau ! | 8 Messages

22 juil. 2010, 21:28

Merci, c'est bon j'ai trouvé mon erreur :D :D :D :D

ViPHP
AB
ViPHP | 5818 Messages

23 juil. 2010, 03:30

Ok enfin que cela ne t'empêches pas de prendre l'habitude d'utiliser mysql_real_escape_string() pour sécuriser les données dans tes requêtes (comme dans mon exemple), car sinon comme l'a déjà dit stopher ton script sera sensible aux injections sql (facilement piratable).