Rechercher : dans
Par :

[PHP] Probléme de transfert de variable

Dernière réponse le 20 jun 2008 à 15:44:00 winco07, le 16 jun 2008 à 14:49:47 
 Signaler ce message aux modérateurs

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
Configuration: Windows XP
Firefox 2.0.0.11

Meilleures réponses pour « [PHP] Probléme de transfert de variable » dans :
PHP - Les variables Voir Concept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
PHP - Les variables d'environnement Voir Notion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
[PHP] Les ressemblances à ne pas confondre VoirIntroduction Concaténation ou paramètres ? Guillemets/Apostrophe Structure require/include isset vs empty htmlentities ou htmlspecialchars ? Nombre de signes égal Introduction Cette astuce présente plusieurs fonction ou astuces en...

1

zz10, le 16 jun 2008 à 23:46:46

Salut,
essaye de remplacer cette ligne : <form action="supprimerNom.php?Pseudo="$MonPseudo"" method ='GET'> par <form action="supprimerNom.php?Pseudo='.$MonPseudo.'" method ="GET"'>

Répondre à zz10

2

Alain_42, le 17 jun 2008 à 11:02:02

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

Répondre à Alain_42

3

winco07, le 18 jun 2008 à 09:44:03

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

Répondre à winco07

4

zz10, le 18 jun 2008 à 22:42:20

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..
++

Répondre à zz10

5

winco07, le 19 jun 2008 à 08:59:15

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

Répondre à winco07

6

winco07, le 20 jun 2008 à 11:40:54

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

Répondre à winco07

7

zz10, le 20 jun 2008 à 13:10:52

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

Répondre à zz10

8

winco07, le 20 jun 2008 à 14:26:36

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

Répondre à winco07

9

zz10, le 20 jun 2008 à 15:05:44

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
++

Répondre à zz10

10

 winco07, le 20 jun 2008 à 15:44:00

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

Répondre à winco07