[PHP] Probléme de transfert de variable

[Résolu/Fermé]
Signaler
Messages postés
118
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
5 octobre 2012
-
Messages postés
118
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
5 octobre 2012
-
Bonjour a tous,

Voila je dispose d un formulaire nomé frm_Supprimer_Utilisateur.php qui récupére qui dans un input récupére la variable "$nom" celle-ci est utilisé pour récupéré les données de l'utilisateur dans la page afficher_Avant_Suppression.php jusqu a la pas de souci tout fonctionne
( le tableau avec les donneés de la personnes s'affiche comme voulu)
seuleument voila, Une fois les données récupéré le l'administarteur a le choix de continuer la suppression (grace a un submit "oui/non")sur la page supprimerNom.php mais le paramétre ne passe pas a la page suivante, j'utilise la fonction "GET"
je n arrive pas a récupéré la variable et le msg d'erreur est le suivant "La variable Pseudo est vide" !!!
Je vous laisse les codes de mes pages afficher_Avant_Suppression.php et supprimerNom


<!--afficher_Avant_Suppression.php-->
<html>
<head>
<title>Suppression du client</title>
<link rel ="stylesheet" type="text/css" href="background.css">
</head>
<body>
<?php
		include ('connect.php');
		$query=mysql_query("select num, nom, Prénom, Adresse, CP, Ville, Pays from valeurs");
		$MonPseudo = $_POST['Nom'];
		echo $MonPseudo;
		?><form action="supprimerNom.php?Pseudo="$MonPseudo"" method ='GET'><?php
		echo "<h3> Le client(e) suivant(e) est prêt(e) a être supprimer </h3>";
		echo '<p><TABLE BORDER=2>';
		echo"<TR><TH WIDTH=50>NUM</TH><TH WIDTH=100>NOM</TH><TH WIDTH=100>PRENOM</TH><TH WIDTH=120>ADRESSE</TH><TH WIDTH=100>CODE POSTAL</TH><TH WIDTH=150>VILLE</TH><TH WIDTH=100>PAYS</TH></TR>";
		$ligne=mysql_fetch_array($query);
		while($ligne)
		{
			if (md5($ligne['nom']) == md5($_POST['Nom']))
			{
				echo "<TR><TD>".$ligne["num"]."</TD>
				<TD>".$ligne["nom"]."</TD>
				<TD>".$ligne["Prénom"]."</TD>
				<TD>".$ligne["Adresse"]."</TD>
				<TD>".$ligne["CP"]."</TD>
				<TD>".$ligne["Ville"]."</TD>
				<TD>".$ligne["Pays"]."</TD></TR>";
				echo "<br>";
			}
			$ligne=mysql_fetch_array($query);
		}
		echo"</table></p>";
		
		?>Etes-vous sûr de vouloir supprimer ce (tte) client(e) ?
		<input type="submit" name = "oui" value="oui"/>
		<input type="reset" name = "non" value="non"/>
		</form>
		
		<?php
		
		mysql_close();
?>
</body>
</html>


<!--supprimerNom.php-->


<html>
<head>
<title> Supprimer un nom </title>
<link rel ="stylesheet" type="text/css" href="background.css">
</head>
<body>
<?php
$NomSuppr=$_GET['Pseudo'];
echo $NomSuppr;
if($NomSuppr != "")
{
	include ('connect.php');
	$requete = "DELETE FROM valeurs WHERE nom ='$NomSuppr'";
	$execution = mysql_query($requete);
	if($execution)
		{
		echo "<font face='Verdana' size='2'>Le nom a bien été effacé de la table <b>valeurs</b></font>";
		}
	else 
	{
		echo "Le client n'a pas été éffacé";
	}
}
else 
{
	echo "La variable pseudo est vide";
}
?>
</body>
</html>



Merci d'avance pour vos réponses

Winco07

10 réponses

salut,
essaye de remplacer cette ligne : <form action="supprimerNom.php?Pseudo="$MonPseudo"" method ='GET'> par <form action="supprimerNom.php?Pseudo='.$MonPseudo.'" method ="GET"'>
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
892
Bonjour,

deux erreurs dans cette partie:

?>
<form action="supprimerNom.php?Pseudo="$MonPseudo"" method ='GET'><?php


d'une part tu mets des " dans une chaine qui commence et finit par des " donc pb

ensuite tu n'es plus dans la partie php mais html alors pour que ta variable soit interprétées il faut faire:


?>
		<form action="supprimerNom.php?Pseudo=<?php echo $MonPseudo ; ?>" method ="GET">
		<?php
Messages postés
118
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
5 octobre 2012

Merci a zz10 et a Alain pour leur réponse . Cependant cela ne marche pas :( Suite a ca j'aurais voulu savoir si il était possible de passer par la méthode "POST" pluto que "GET"

Merci

Winco07
Ouai c'est possible. Utilise POST à la place de GET et récupére tes variables grac à $_POST['nomvar']...
Je mettais trompé dans mon précédent post mais je ne vois aps pkoi le script d'alain ne fonctionne pas..
++
Messages postés
118
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
5 octobre 2012

Bonjour,

Quand je remplace une partie de mon script par celui d'Alain logiquement je devrais voir apparaitre la valeur de la variable MonPseudo dans l'URL mais voila ce que j obtient :

http://localhost/essai/supprimerNom.php?valider=oui

Seule l'action du bouton valider apparait. Je vais donc essayé de passer ma variable par la fonction post
Messages postés
118
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
5 octobre 2012

Bonjour,

Grande décéption. même en passant par la méthode post rien ne marche!! Je pense donc me relancé dans une nouvelle page php. merci en tout cas de votre aide
Donne moi tout le code concerné et le script sql de la base de données, je vais voir ce que je peu faire paske ca m"intrigue kan meme
Messages postés
118
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
5 octobre 2012

Bonjour zz10,

Merci pour ta péséverance.

Je te donne plus d'éxplication et je vais te fournir les scripts.

J'ai plusieurs modules php qui me permettent soit d'ajouter un utilisateur, soit de modifier les données d'un utilisateur ou encor de supprimer un utilisateur.

Les deux premiers modules fonctionnent correctement. Seul le module de suppression bug. Le premier script frm_Supprimer_Utilisateur.php me permet de saisir
le nom et prénom de l'utilisateur a supprimer. Ces variables sont ensuite transmisent par la methode POST a la page Afficher_Avant_Suppression.php qui elle cherche les données correspondant
a l'utilisateur dans la base de données. La page affiche bien dans un tableur les données de l'utilisateur. Une fois la confirmation envoyer la page
"SupprimerNom.php s'ouvre et le srcipt est éxécuter mais la ca ne marche pas ma variable est vide.

Voila aprés ces quelques éxplication qui te seront utile j éspére je te donne les scripts des 3 pages:

<!--frm_supprimer_utilisateur.php-->

<?php
include("test_connexion.php")
?>
<html>
<head>
<title> Supprimer un utilisateur </title>
<link rel="stylesheet" type="text/css" href="style_div.css"/>
</head>
<body>
<div id ="bandeau">
Suppression d'un utilisateur
</div>
<div id ="menu">
<?php include ('menu_Administrateur.php');?>
</div>
<div id ="contenu"><br><br><br><br>
<fieldset>
	<legend>Utilisateurs à modifier </legend>
	<form action="afficher_Avant_Suppression.php?<?php echo SID?>" method="post">
	<label for="Nom">Veuillez taper votre nom :</label><br>
<input type="text" id="Nom" name="Nom" /><br><br>
</fieldset>
<input type="submit" value="Valider" />
<input type="reset" value="Effacer">
</form>
</body>
</html>


<!--afficher_Avant_Suppression.php-->

<?php
include("test_connexion.php")
?>
<html>
<head>
<title> Supprimer un untilisateur </title>
<link rel="stylesheet" type="text/css" href="style_div.css"/>
</head>
<body>
<div id ="bandeau">
Suppression d'un utilisateur
</div>
<div id ="menu">
<?php include ('menu_Administrateur.php');?>
</div>
<div id ="contenu"><center>
<?php
	include ('connect.php');
	$query=mysql_query("select num, nom, Prénom, Adresse, CP, Ville, Service from valeurs");
	$MonPseudo = $_POST['Nom'];
	?>
	<form action="supprimerNom.php?<?php echo SID; ?>" method ="POST">
	<?php
	echo "<h3> Le client(e) suivant(e) est prêt(e) a être supprimer </h3>";
	echo '<p><TABLE BORDER=2>';
	echo"<TR><TH WIDTH=50>NUM</TH><TH WIDTH=100>NOM</TH><TH WIDTH=100>PRENOM</TH><TH WIDTH=120>ADRESSE</TH><TH WIDTH=100>CODE POSTAL</TH><TH WIDTH=150>VILLE</TH><TH WIDTH=100>Service</TH></TR>";
	$ligne=mysql_fetch_array($query);
	while($ligne)
		{
		if ($ligne['nom'] == $_POST['Nom'])
		{
		echo "<TR><TD>".$ligne["num"]."</TD>
			<TD>".$ligne["nom"]."</TD>
			<TD>".$ligne["Prénom"]."</TD>
			<TD>".$ligne["Adresse"]."</TD>
			<TD>".$ligne["CP"]."</TD>
			<TD>".$ligne["Ville"]."</TD>
			<TD>".$ligne["Service"]."</TD></TR>";
			echo "<br>";
			$MonNom = $ligne["nom"];
		}
			$ligne=mysql_fetch_array($query);
		}
		echo"</table></p>";
		?></center>
		Etes-vous sûr de vouloir supprimer cet utilisateur ?
		<input type="submit" name = "valider" value="Oui"/>
		</form>
		<form action="menu_Administrateur.php?<?php echo SID; ?>" method ="POST">
		<input type="submit" name = "non" value="Non"/>
		</form>
		<?php
	mysql_close();
?>
</body>
</html>



<!--supprimerNom.php-->

<?php
include("test_connexion.php")
?>
<html>
<head>
<title> Supprimer un nom </title>
<link rel ="stylesheet" type="text/css" href="background.css">
</head>
<body>
<?php
$NomSuppr = $_POST['MonNom'];
echo $NomSuppr;
if($MonNom != "")
{
	include ('connect.php');
	$requete = "DELETE FROM valeurs WHERE nom ='$MonNom'";
	$execution = mysql_query($requete);
	if($execution)
		{
		echo "<font face='Verdana' size='2'>Le nom a bien été effacé de la table <b>valeurs</b></font>";
		}
	else 
	{
		echo "Le client n'a pas été éffacé";
	}
}
else 
{
	echo "La variable pseudo est vide";
}
?>
</body>
</html>


Dans ma base il y a deux table, la table "membres" et la table "valeurs"(celle qui nous interesse).

La table valeurs se présentes sous cette forme :

num //(qui est la clé primaire)
nom
Prénom
Adresse
CP //(code postal)
Ville
Service

Voila si tu as d autre question n'hésite pas.

Bon courage

Winco07
Bon voila j'ai corigé ton script.

Je te conseil tout d'abord à l'avenir de travaillé avec les clé primaire (identifiant) c'est plus simple t ca evite des confusions.


Voila commet tu dois corigé :

fichier avantsupprimer

while($ligne)
{
echo "<TR><TD>".$ligne["num"]."</TD>
<TD>".$ligne["nom"]."</TD>
<TD>".$ligne["Prénom"]."</TD>
<TD>".$ligne["Adresse"]."</TD>
<TD>".$ligne["CP"]."</TD>
<TD>".$ligne["Ville"]."</TD>
<TD>".$ligne["Service"]."</TD></TR>";
echo '<br>
<input type="hidden" name="idcli" value="'.$ligne['num'].'" />'; //ligne qui fait la différence
$MonNom = $ligne["nom"];
$ligne=mysql_fetch_array($query);
}
echo"</table></p>";



dans le fichier supprimernom




<html>
<head>
<title> Supprimer un nom </title>
<link rel ="stylesheet" type="text/css" href="background.css">
</head>
<body>
<?php
$id = $_POST['idcli'];
echo $NomSuppr;
if($id != "")
{
include ('connect.php');
$requete = "DELETE FROM client WHERE num =$id";
$execution = mysql_query($requete);
if($execution)
{
echo "<font face='Verdana' size='2'>Le nom a bien été effacé de la table <b>client</b></font>";
}
else
{
echo "Le client n'a pas été éffacé";
}
}
else
{
echo "La variable pseudo est vide";
}
?>
</body>
</html>


Voila voila
++
Messages postés
118
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
5 octobre 2012

Merci beaucoup Zz10, ca marche enfin .

Petite réctification une nouvelle ligne apparait :" Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\essai\afficher_Avant_Suppression.php on line 28"

J ai du faire encor quelque petit test car il y a dans ton script une petite erreur mais je ne peux pas t'en vouloir pour si peu ^^ .

Il s'agit juste d'une erreur de nom de table
$requete = "DELETE FROM client WHERE num =$id";

Il s'agit de la table valeurs.

En tout cas merci pour ton aide précieuse.

Bon week end!

Cordialement

Winco07