Deux problèmes sur page PHP

Résolu/Fermé
guigeek Messages postés 18 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 15 août 2008 - 14 juin 2007 à 11:23
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 15 juin 2007 à 16:07
bonjour
j'ai créé une base de données MySql avec deux tables : CLIENT et ConnaissanceEntreprise (pour savoir comment les clients ont connu l'entreprise).
j'ai ensuite créé un formulaire "clients.php" pour que l'entreprise puisse ajouter des clients et pour que les clients puisse nt entrer e
ux-mêmes leurs informations quand ils iront sur le site web (qui n'est pas encore fait).

j'ai deux problèmes sur ma page PHP:
- j'ai une liste déroulante qui ne rammène rien alors que je fais entrer des données de la base
- quand j'envoi les données vers la base, il n'y a rien d'ajouter dans la base.

voici mon code :

<html>
<head>
  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
  <title>Ajout de client</title>
</head>

<body>

<div style="text-align: center;"><big><big><span style="font-weight: bold;">AJOUTER UN CLIENT<br>

<br>

</span></big></big>
<div style="text-align: left;">

<form name="form1" method="post" action="clients.php">

<table style="text-align: left; width: 796px;" border="0" cellpadding="2" cellspacing="2">


    <tr>

      <td style="width: 179px;">Nom *</td>

      <td style="width: 202px;"><input type="text" name="NomClient"></td>

      <td style="width: 252px;">Adresse de livraison (si
diff&eacute;rente)</td>

      <td style="width: 156px;"><input type="text" name="AdresseLivraison"></td>

    </tr>

    <tr>

      <td style="width: 179px;">Prenom *</td>

      <td style="width: 202px;"><input type="text" name="PrenomClient"></td>

      <td style="width: 252px;">Code postal de livraison (si diff&eacute;rente)</td>

      <td style="width: 156px;"><input type="text" name="CodePostalLivraison"></td>

    </tr>

    <tr>

      <td style="width: 179px;">Adresse *</td>

      <td style="width: 202px;"><input type="text" name="AdresseClient"></td>

      <td style="width: 252px;">Ville de livraison (si
diff&eacute;rente)</td>

      <td style="width: 156px;"><input type="text" name="VilleLivraison"></td>

    </tr>

    <tr>

      <td style="width: 179px;">Code postal *</td>

      <td style="width: 202px;"><input type="text" name="CodePostalClient"></td>

      <td style="width: 252px;">Telephone *</td>

      <td style="width: 156px;"><input type="text" name="Telephone"></td>

    </tr>

    <tr>

      <td style="width: 179px;">Ville *</td>

      <td style="width: 202px;"><input type="text" name="VilleClient"></td>

      <td style="width: 252px;">Fax</td>

      <td style="width: 156px;"><input type="text" name="Fax"></td>

    </tr>

    <tr>

      <td style="width: 179px;">Connaissance de l'entreprise</td>

      <td>


	<select name="connaissance">
	<?php
mysql_connect('localhost', 'root', "mp2003") or die ("connexion impossible");
mysql_select_db('CLIENT') or die ("La base de données n'est pas accessible");
echo '<p>Choisissez un adherent:</p>';
$retour = mysql_query("SELECT * FROM ConnaissanceEntreprise ORDER BY NoConnaissance DESC") or die(mysql_error());
while ($donnees = mysql_fetch_array($retour))
{
	?>
      <option value="<?php echo $donnnees['NoConnaissance'] ?>"> <?php echo $donnees['Connaissance'] ?></option>
<?php
}
?>
	</select>

	
      </td>

      <td style="width: 252px;">Adresse E-mail *</td>

      <td style="width: 156px;"><input type="text" name="AdresseEmail"></td>

    </tr>
</table>

<br>


* : Champs obligatoires
<form action="file:///C:/EasyPHP/www/clients.php" method="POST">
<?php
mysql_connect('localhost', 'root', "mp2003") or die ("connexion impossible");
mysql_select_db('CLIENT') or die ("La base de données n'est pas accessible");
?>
<div align="center">
<input type="submit" name="envoyer" value="Envoyer">
<input type="reset" name="annuler" value="annuler">
</div>
</form>

<?php
$ok = 1;

if (isset($_POST['NomClient']))
{$nom = $_POST['NomClient'];}
else {$ok = 0;}

if (isset($_POST['PrenomClient']))
{$prenom = $_POST['PrenomClient'];}
else {$ok = 0;}

if (isset($_POST['AdresseClient']))
{$adresse = $_POST['AdresseClient'];}
else {$ok = 0;}

if (isset($_POST['CodePostalClient']))
{$codepostal = $_POST['CodePostalClient'];}
else {$ok = 0;}

if (isset($_POST['VilleClient']))
{$ville = $_POST['VilleClient'];}
else {$ok = 0;}

$adresselivr = $_POST['AdresseLivraison'];

$cplivr = $_POST['CodePostalLivraison'];

$villelivr = $_POST['VilleLivraison'];

if (isset($_POST['Telephone']))
{$telephone = $_POST['Telephone']};
else {$ok = 0;}

$fax = $_POST['Fax'];

if (isset($_POST['NoConnaissance']))
{$noconnaissance = $_POST['NoConnaissance'];}
else {$ok = 0;}

if (isset($_POST['AdresseEmail']))
{$email = $_POST['AdresseEmail'];}
else {$ok = 0;}


$requete = "INSERT INTO CLIENT VALUES ('',
'$nom',
'$prenom',
'$adresse',
'$codepostal',
'$ville',
'$adresselivr',
'$cplivr',
'$villelivr',
'$telephone',
'$fax',
'$noconnaissance',
'$email')";

mysql_query($requete) or die('Erreur SQL !'.mysql_error());


echo 'vous n\'avez pas rempli tous les champs obligatoires';

?>


<p><br>

<a href="file:///C:/EasyPHP/www/listeClients.php">Voir la liste des clients</a>
</p>

<p align="right"> <a href="file:///C:/EasyPHP/www/clients.php">haut
de la page</a> </p>

<big><big><span style="font-weight: bold;"></span></big></big><big><big><span style="font-weight: bold;"></span></big></big></div>

</div>

</body>
</html>

10 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
14 juin 2007 à 12:34
salut,

tu ouvres deux fois <form>.
donc seulement ce qui suit est envoyé :
<form action="file:///C:/EasyPHP/www/clients.php" method="POST">
<?php
mysql_connect('localhost', 'root', "mp2003") or die ("connexion impossible");
mysql_select_db('CLIENT') or die ("La base de données n'est pas accessible");
?>
<div align="center">
<input type="submit" name="envoyer" value="Envoyer">
<input type="reset" name="annuler" value="annuler">
</div>
</form>

le <select> n'est pas dans le formulaire, il est pas envoyé.
0
guigeek Messages postés 18 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 15 août 2008 2
14 juin 2007 à 15:31
j'ai enlevé le 2ème <form> et j'ai replacé le </form> à la fin, avant </div> </body> </html>
mais ça ne marche toujours pas
0
moi pour mes prob de form je me cré une page test qui recoit les informations, et comme ca je vois qu elle informations arrive ou pas.
De plus lorsque ton script est toujours en cours de debugage utilise la fonction "get" ca te permettra de voir les informations qui circule dans la barre d adresse.
;) bon courage faut etre patient
0
guigeek Messages postés 18 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 15 août 2008 2
14 juin 2007 à 15:49
pour ta page de test, tu fais comment?
0
tu créé une page de donné dans lesquels tu récup tes donné du form
premier page :
<form method="get" action="test.php">*
.
.
.
</form>
deuxieme page
if(!empty($_GET['nomDuArecuperer']))
{
echo("$_GET['nomDuArecuperer']");
}
else
{
echo("ca marche pas");
}


Voila en gros le principe et tu verra si le probleme viens de la recupération des données (si il en manque aps lorsque tu recupere) ou si il vient des requetes

Petit conseil quand tu es pas sur n hesite pas à te faire des repaires qui s affiche dans certaines condition de maniere a debugger le code et savoir si il rentre a des endroits ou il devrait pas ou autre.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
guigeek Messages postés 18 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 15 août 2008 2
14 juin 2007 à 16:16
donc il faut juste que dans ma page "clients.php" j'enlève toute la partie des "if isset ..." et compagnie , et je change le <form> en changeant le "post" avec le "get"
et que dans la page "test.php" je mette tous les "if (!empty ..."
c ca ??????
0
tu n a pas situé le probleme, tu sais pas si ca vient ou non de la recuperation.
tu crée une page test avec des empty (si c'est vide ca ira dans le else sinon ca affichera ce que tu veux)

tout ce que tu as changer c'est le form et le passer en method="get" action="test.php" et apres tu test ta recupération de donné. Une fois que la récupération tu sais que ton formulaire envoie toutes tes données.
Puis tu garde la method get et tu test avec ton fichier d origine et en mettant des echo de ce que tu récupère pour si c'est bien ce que tu dois récupéré.
Si tout est bon c'est que ton prob viens d ailleur lol
0
guigeek Messages postés 18 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 15 août 2008 2
14 juin 2007 à 16:41
bon, j'ai modifié le <form method="post" action="test.php"> en <form method="get" action="test.php"> et j'ai créé test.php et ca donne ca :
<?php
if(!empty($_GET['NomClient']))
{
echo("$_GET['NomClient']");
}
else
{
echo("ca marche pas");
}

if(!empty($_GET['PrenomClient']))
{
echo("$_GET['PrenomClient']");
}
else
{
echo("ca marche pas");
}

if(!empty($_GET['AdresseClient']))
{
echo("$_GET['AdresseClient']");
}
else
{
echo("ca marche pas");
}

if(!empty($_GET['CodePostalClient']))
{
echo("$_GET['CodePostalClient']");
}
else
{
echo("ca marche pas");
}

if(!empty($_GET['VilleClient']))
{
echo("$_GET['VilleClient']");
}
else
{
echo("ca marche pas");
}

$adresselivr = $_GET['AdresseLivraison'];

$cplivr = $_GET['CodePostalLivraison'];

$villelivr = $_GET['VilleLivraison'];


if(!empty($_GET['Telephone']))
{
echo("$_GET['Telephone']");
}
else
{
echo("ca marche pas");
}

$fax = $_GET['Fax'];

if(!empty($_GET['NoConnaissance']))
{
echo("$_GET['NoConnaissance']");
}
else
{
echo("ca marche pas");
}

if(!empty($_GET['AdresseEmail']))
{
echo("$_GET['AdresseEmail']");
}
else
{
echo("ca marche pas");
}

?>



jusque là, est-ce que c'est bon ?
dans la barre d'adresse aorès l'envoi j'ai : "file:///C:/EasyPHP/www/test.php?NomClient=Torticoli&AdresseLivraison=&
PrenomClient=Hector&CodePostalLivraison=&AdresseClient=18+rue+des+cerisiers&
VilleLivraison=&CodePostalClient=35000&Telephone=0202020202&
VilleClient=St+Jacques+de+la+mangue&Fax=&connaissance=%3C%3Fphp+echo+
%24donnnees%5B%27NoConnaissance%27%5D+%3F%3E
&AdresseEmail=jerome%40pamplemousse.fr&envoyer=Envoyer"
0
guigeek Messages postés 18 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 15 août 2008 2
14 juin 2007 à 17:49
svp aidez-moi c'est pour un stage, c'est urgent et je suis pas un pro en php!
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
14 juin 2007 à 20:15
re,

le "stage" et "c'est urgent" : on s'en fout.
"je suis pas un pro" et alors tu crois qu'il a que des pros sur le forum ?
si c'était le cas tu aurais une sacrée note à régler…
donc : pas de pro d'un côté, pas d'urgent de l'autre.

ton problème. où en es-tu ?
tu récupères les infos, c'est correcte ?
teste ta requête sql, teste la dans phpMyAdmin pour voir si elle fonctionne.
mais tu devrais ajouter le nom des champs à mettre à jours. sinon si tu n'ajoutes pas autant de valeurs qu'il y a de champs ça ne fonctionnera pas. une bdd c'est puissant mais ça lis pas dans les boules de cristal !
-;o)
0
guigeek Messages postés 18 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 15 août 2008 2
15 juin 2007 à 15:05
merci de m'avoir aidé mais en fait le problème ne venait pas du code mais il faut que quand je tape l'adresse dans la barre d'adresse je rajoute "localhost" entre le http et le fichier.php
A+
0
euh..... je peut rire... dsl lollllll
Bon dans tous les cas guigeek le principe de vérification est important pour le debugage que ca soit en php ou c++. Quand tu as un soucie faut debuger ton code avec des repere de maniere a situer exactement l erreur.
Et la si tu n arrive pas tu demande de l'aide car tres souvent ce sont des petites betises les erreurs
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
15 juin 2007 à 16:07
salut,

bon c'est vrai que sur ce coup là t'as été plus gui que geek !
-;o)
mais au moins tu peux être sûr que tu ne te fera surement plus jamais avoir.
s'en sortir tout seul c'est toujours la meilleure école !

bon courage pour la suite !
0