Aide pour formulaire d'envoie php vers base de données

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

05 avr. 2008, 19:12

Essaie d'être logique... commence par lire et comprendre le message d'erreur.

Code : Tout sélectionner

Notice: Undefined index: nomcli in c:\....\transfertclient3.php on line 10
- "Notice" : c'est un avertissement, donc juste un message pour information, ça ne perturbe pas plus que ça l'exécution du code php.
- "Undefined index" : tu fais appel à une clé d'un tableau alors que cette clé n'existe pas. A côté de ça, il te donne le nom de la clé en question "nomcli" ainsi que le script et la ligne à laquelle cet avertissement apparait.

Maintenant soyons logique, d'après le message d'erreur et ta ligne 10, il est évident qu'il fait allusion à $_POST["nomcli"]. Donc en résumé, il n'y a pas d'index "nomcli" dans $_POST. Tu ne peux donc pas tester sa valeur et savoir si elle est évaluée comme étant TRUE.

Pour t'en convaincre tu peux afficher la valeur de $_POST (avec la fonction print_r() par exemple)

La question est maintenant de savoir pourquoi est-ce que cet index n'existe pas dans $_POST, la réponse est : parce que quand tu arrives sur la page la première fois, le formulaire n'a pas encore été envoyé. Tu ne peux donc pas manipuler ses variables.

Il te faut donc t'assurer que ta variable existe avant de pouvoir l'utiliser. Pour savoir si une variable est définie on utilise isSet(). Ton test deviendrait alors
if ( isSet($_POST["nomcli"]) && $_POST["nomcli"] && ...) // si ma variable est définie et a pour valeur TRUE
Bien que cela revienne au même, il est plus clair et plus explicite de tester que ta variable n'est pas vide plutôt que de vérifier si sa valeur est TRUE.
if ( isSet($_POST["nomcli"]) && $_POST["nomcli"]!='' && ...) // si ma variable est définie et n'est pas vide
Il se trouve par ailleurs que ces deux tests (définition et contenu) sont également fait par la fonction empty()
if ( empty($_POST["nomcli"]) && ...) // si ma variable n'est pas définie ou est vide
Or ce que tu veux c'est le contraire, on utilise alors l'opérateur de négation: "!"
if ( !empty($_POST["nomcli"]) && ...) // si ma variable est pas définie et n'est pas vide
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 19 Messages

06 avr. 2008, 13:52

Ok, merci, je vais essayer.

Eléphanteau du PHP | 19 Messages

07 avr. 2008, 06:55

Bonjour, voici mon script :

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body> <?php // Récupération et protection après la vérification de leur saisie dans le formulaire if(isset($_POST["nomcli"]) && isset($_POST["prenomcli"]) && isset($_POST["adressecli"]) && isset($_POST["telcli"]) && isset($_POST["melcli"]) && isset($_POST["nores"]) && isset($_POST["dateresdeb"]) && isset($_POST["dateresfin"]) && isset($_POST["nogite"])) { $nomcli=mysql_real_escape_string(htmlspecialchars($_POST["nomcli"])); $prenomcli=mysql_real_escape_string(htmlspecialchars($_POST["prenomcli"])); $adressecli=mysql_real_escape_string(htmlspecialchars($_POST["adressecli"])); $telcli=mysql_real_escape_string(htmlspecialchars($_POST["telcli"])); $melcli=mysql_real_escape_string(htmlspecialchars($_POST["melcli"])); $nores=mysql_real_escape_string(htmlspecialchars($_POST["nores"])); $dateresdeb=mysql_real_escape_string(htmlspecialchars($_POST["dateresdeb"])); $dateresfin=mysql_real_escape_string(htmlspecialchars($_POST["dateresfin"])); $nogite=mysql_real_escape_string(htmlspecialchars($_POST["nogite"])); } else { die("Vous n'avez pas rempli entièrement votre formulaire"); } // Affichage d'un message de contrôle echo "Cher(e) ".$nomcli." ".$prenomcli.",<br/>"; echo "Vous désirez réserver le gîte numéro ".$nogite."."; // Connexion au serveur MySQL $db=mysql_connect("localhost","root","GSI") or die("erreur de connexion".mysql_error()); // Ouverture de la base Gîte du vertige mysql_select_db("Gite du vertige",$db) or die("erreur de connexion à la base Gite du vertige"); // Requête d'insertion des valeurs dans la table client $sql="INSERT INTO client (nomcli, prenomcli, adressecli, telcli, melcli, nores) VALUES('$nomcli','$prenomcli','$adressecli','$telcli','$melcli','$nores')"; // Exécution de la requête mysql_query($sql); // Requête d'insertion des valeurs dans la table reservation $sql="INSERT INTO reservation (nores, dateresdeb , dateresfin, nogite) VALUES('$nores','$dateresdeb','$dateresfin','$nogite')"; // Exécution de la requête mysql_query($sql); echo "<br/><br/> Vos données ont bien été envoyées dans notre base de données. Nous vous enverrons un mail dès que possible pour vous informer de la disponibilité du gîte"; // Fermeture de la connexion à MySql mysql_close(); ?> </body> </html>
Lorsque je rempli mon formulaire et que je l'envoie, je reçois ce message : "Vous n'avez pas rempli entièrement votre formulaire"
Mon but est d'envoyer les informations, entrées dans le formulaire, dans ma base de données. Pouvez-vous m'aider s'il vous plaît ?

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

ViPHP
ViPHP | 4039 Messages

07 avr. 2008, 09:08

c'est un cours de quoi en fait ? et de quel niveau ? non pasque la, je vois pas trop à quoi ça sert..

On arrivera certainement à le faire, mais il te manque quand même les bases les plus primaires.. c'est pas un cursus qui vous destine au dev. web, rassure-moi? si c'est une introduction générale, je comprends mieux, mais alors je vois pas trop l'interêt de faire un formulaire.. enfin soit, avançons..

Dans ton code, tu peux facilement supposer pourquoi ce message s'affiche. Si tu ne le vois pas, tu ne saisis en fait pas du tout ce qu'il fait, et je vois mal comment tu l'expliquerais lors d'un oral..(surtout qu'un oral, c'est méga-miné comme terrain..)

mais ça me concerne pas, on est d'accord, alors:

Tu as donc:
Si et seulement y'a tout ce qu'il faut
=> enregistre le bazar dans des variables.
Sinon, si c'est pas le cas, que c'est pas tout à fait bon
=> arrête tout, et dis que "vous n'avez pas bien rempli".

A partir de la, il doit donc y avoir un petit truc qui n'est pas tout à fait comme il se doit dans ta condition (ce qu'il y a dans le IF). C'est peut-être pas ton script. C'est peut-être que dans ton formulaire html, quelque chôse manque, un nom mal écrit, un champ qui manque, quelque chôse.. de ce que j'ai pu voir sur la page précédente, je me doute fort bien de ce qui pourrait manquer, mais je ne donne que des indices, a toi de faire le boulot :wink:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 19 Messages

07 avr. 2008, 13:48

Dans le formulaire, je mets réservation du X... au X...
Je n'ai pas mis nores dans le formulaire. nores est dans la table client, c'est la clé étrangère qui met en liaison à la table réservation. Donc je me suis dis que si je mets pas nores ce n'est pas grave car dans le formulaire php, normalement, il reconnaît non ?
Au fait je suis en Terminale STG option GSI (Gestion des Systèmes d'informations)

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphanteau du PHP | 19 Messages

07 avr. 2008, 14:52

Je suis donc dans ce cas alors : => arrête tout, et dis que "vous n'avez pas bien rempli".
Mais pourquoi les variables ne sont pas reconnus ? Je comprends pas.
J'ai modifié le script car j'ai des rajouté des valeurs dans le table client :

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body> <?php include("connexion.php"); // Récupération et protection après la vérification de leur saisie dans le formulaire if(isset($_POST["nomcli"]) && isset($_POST["prenomcli"]) && isset($_POST["adressecli"]) && isset($_POST["villecli"]) && isset($_POST["departementcli"]) && isset($_POST["cpcli"]) && isset($_POST["telcli"]) && isset($_POST["melcli"]) && isset($_POST["nores"]) && isset($_POST["dateresdeb"]) && isset($_POST["dateresfin"]) && isset($_POST["nogite"])) { $nomcli=mysql_real_escape_string(htmlspecialchars($_POST["nomcli"])); $prenomcli=mysql_real_escape_string(htmlspecialchars($_POST["prenomcli"])); $adressecli=mysql_real_escape_string(htmlspecialchars($_POST["adressecli"])); $villecli=mysql_real_escape_string(htmlspecialchars($_POST["villecli"])); $departementcli=mysql_real_escape_string(htmlspecialchars($_POST["departementcli"])); $cpcli=mysql_real_escape_string(htmlspecialchars($_POST["cpcli"])); $telcli=mysql_real_escape_string(htmlspecialchars($_POST["telcli"])); $melcli=mysql_real_escape_string(htmlspecialchars($_POST["melcli"])); $nores=mysql_real_escape_string(htmlspecialchars($_POST["nores"])); $dateresdeb=mysql_real_escape_string(htmlspecialchars($_POST["dateresdeb"])); $dateresfin=mysql_real_escape_string(htmlspecialchars($_POST["dateresfin"])); $nogite=mysql_real_escape_string(htmlspecialchars($_POST["nogite"])); } else { die("Vous n'avez pas rempli entièrement votre formulaire"); } // Affichage d'un message de contrôle echo "Cher(e) ".$nomcli." ".$prenomcli.",<br/>"; echo "Vous désirez réserver le gîte numéro ".$nogite."."; // Connexion au serveur MySQL $db=mysql_connect("localhost","root","GSI") or die("erreur de connexion".mysql_error()); // Ouverture de la base Gîte du vertige mysql_select_db("Gite du vertige",$db) or die("erreur de connexion à la base Gite du vertige"); // Requête d'insertion des valeurs dans la table client $sql="INSERT INTO client (nomcli, prenomcli, adressecli, villecli, departementcli, cpcli, telcli, melcli, nores) VALUES('$nomcli','$prenomcli','$adressecli','$villecli','$departementcli','$cpcli','$telcli','$melcli','$nores')"; // Exécution de la requête mysql_query($sql); // Requête d'insertion des valeurs dans la table reservation $sql="INSERT INTO reservation (nores, dateresdeb , dateresfin, nogite) VALUES('$nores','$dateresdeb','$dateresfin','$nogite')"; // Exécution de la requête mysql_query($sql); echo "<br/><br/> Vos données ont bien été envoyées dans notre base de données. Nous vous enverrons un mail dès que possible pour vous informer de la disponibilité du gîte"; // Fermeture de la connexion à MySql mysql_close(); ?> </body> </html>
J'ai rajouté

Code : Tout sélectionner

include("connexion.php");
car j'ai créé un script permettant de se connecter à la base de données. J'ai vu qu'il fallait faire comme ça dans un site. Aidez moi s'il vous plaît.

Eléphanteau du PHP | 19 Messages

07 avr. 2008, 17:31

S'il vous plaît, aidez moi, c'est vraiment urgent, j'attends vos réponses.

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

ViPHP
ViPHP | 4039 Messages

07 avr. 2008, 18:08

Vous n'avez rien fait de semblable ? lors d'un TP/TD ou autre ?
Je suis donc dans ce cas alors : => arrête tout, et dis que "vous n'avez pas bien rempli".
Mais pourquoi les variables ne sont pas reconnus ? Je comprends pas.
Mais elle sont reconnues.. mais comme tu le dis, elle ne sont pas toutes présentes (comme nores).

Si "nores" n'est pas dans le formulaire, pourquoi vouloir le récupérer ?

Le "if" regarde si les variables "existent". Si elles sont envoyées par le formulaire. Dés que l'une d'entre elles manque, Hop !, c'est foutu. Et comme nores manque (puisqu'il n'est pas dans le formulaire), ben ça rate. Il faut donc corriger.

Pour mieux cerner ce que ton script reçoit de la part du serveur mets ceci:
echo "<pre>";
print_r($_POST);
echo "</pre>";
juste avant le if. Il t'affichera les données qui sont reçues par le script.

(et pour ton script tu peux utiliser les balises
 plutôt que les balises [code], c'est plus joli)
Modifié en dernier par Berzemus le 07 avr. 2008, 18:12, modifié 1 fois.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 19 Messages

07 avr. 2008, 18:11

Ok merci ben je vais essayer. Mais nores est la clé étrangère pour client à réservation si je l'enlève je fais comment ?
J'ai fait comme tu m'as dit j'ai mis :
echo "<pre>";
print_r($_POST);
echo "</pre>"; 
avant le if et j'ai ce message : "Array
(
)

Vous n'avez pas rempli entièrement votre formulaire" C'est lorque je ne met pas de données dans le formulaire mais lorsque je met des données tous les champs sont pris en compte sauf nores :
"Array
(
[nomcli] => Lol
[prenomcli] => Babou
[adressecli] => 10 rue des lol
[villecli] => Paris
[departementcli] => Paris
[cpcli] => 75000
[telcli] => 01 45 72 68 94
[melcli] => [email protected]
[dateresdeb] => 1
[type] => 1
[dateresfin] => 1
[nogite] => 1
)

Vous n'avez pas rempli entièrement votre formulaire"
Que dois-je faire ?

Est-ce-que ça va rentrer dans ma base de données si ça marche quand j'aurai réussi?
Je suis vraiment désespéré, je n'arrive pas à résoudre ce problème et l'oral pour ce projet se rapproche.

Eléphanteau du PHP | 19 Messages

07 avr. 2008, 19:11

Le problème est donc nores, j'ai essayé d'effacer cette variable mais après il y a des messages d'erreurs... Je ne comprends vraiment pas. Pouvez-vous m'aidez s'il vous plaît ? J'attends votre réponse .
Voici donc le formulaire que j'ai changé. J'ai laissé nores dans if.... et je ne l'ai pas mis dans insert into... :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<body>

<?php

// Récupération et protection après la vérification de leur saisie dans le formulaire

echo "<pre>";
print_r($_POST);
echo "</pre>"; 
if(isset($_POST["nomcli"]) && isset($_POST["prenomcli"]) && isset($_POST["adressecli"]) && isset($_POST["villecli"]) && isset($_POST["departementcli"]) && isset($_POST["cpcli"]) && isset($_POST["telcli"]) && isset($_POST["melcli"]) && isset($_POST["nores"]) && isset($_POST["dateresdeb"]) && isset($_POST["dateresfin"]) && isset($_POST["nogite"]))
{
$nomcli=mysql_real_escape_string(htmlspecialchars($_POST["nomcli"]));
$prenomcli=mysql_real_escape_string(htmlspecialchars($_POST["prenomcli"]));
$adressecli=mysql_real_escape_string(htmlspecialchars($_POST["adressecli"]));
$villecli=mysql_real_escape_string(htmlspecialchars($_POST["villecli"]));
$departementcli=mysql_real_escape_string(htmlspecialchars($_POST["departementcli"]));
$cpcli=mysql_real_escape_string(htmlspecialchars($_POST["cpcli"]));
$telcli=mysql_real_escape_string(htmlspecialchars($_POST["telcli"]));
$melcli=mysql_real_escape_string(htmlspecialchars($_POST["melcli"]));
$nores=mysql_real_escape_string(htmlspecialchars($_POST["nores"]));
$dateresdeb=mysql_real_escape_string(htmlspecialchars($_POST["dateresdeb"]));
$dateresfin=mysql_real_escape_string(htmlspecialchars($_POST["dateresfin"]));
$nogite=mysql_real_escape_string(htmlspecialchars($_POST["nogite"]));
}
else
{
die("Vous n'avez pas rempli entièrement votre formulaire");
}

// Affichage d'un message de contrôle

echo "Cher(e) ".$nomcli." ".$prenomcli.",<br/>";
echo "Vous désirez réserver le gîte numéro ".$nogite.".";

// Connexion au serveur MySQL

$db=mysql_connect("localhost","root","GSI") or die("erreur de connexion".mysql_error());

// Ouverture de la base Gîte du vertige

mysql_select_db("Gite du vertige",$db) or die("erreur de connexion à la base Gite du vertige");

// Requête d'insertion des valeurs dans la table client

$sql="INSERT INTO client (nomcli, prenomcli, adressecli, villecli, departementcli, cpcli telcli, melcli, nores)
VALUES('$nomcli','$prenomcli','$adressecli','$villecli','$departementcli','$cpcli','$telcli','$melcli','$nores')";

// Exécution de la requête

mysql_query($sql);

// Requête d'insertion des valeurs dans la table reservation

$sql="INSERT INTO reservation (dateresdeb , dateresfin, nogite)
VALUES('$dateresdeb','$dateresfin','$nogite')";

// Exécution de la requête
 
mysql_query($sql);

echo "<br/><br/> Vos données ont bien été envoyées dans notre base de données. Nous vous enverrons un mail dès que possible pour vous informer de la disponibilité du gîte";

// Fermeture de la connexion à MySql

mysql_close();
?>
</body>
</html> 

ViPHP
ViPHP | 4039 Messages

07 avr. 2008, 22:45

Bon, ben on va avancer, pousser un peu hein ?

Cette table:
[nomcli] => Lol
[prenomcli] => Babou
[adressecli] => 10 rue des lol
[villecli] => Paris
[departementcli] => Paris
[cpcli] => 75000
[telcli] => 01 45 72 68 94
[melcli] => [email protected]
[dateresdeb] => 1
[type] => 1
[dateresfin] => 1
[nogite] => 1
représente donc ce que ton script reçoit. C'est ce qu'il à, rien de plus.
Première constatation, à quoi sert "type" ? Attention, ce sont la les données que le formulaire envoie. Elles viennent, en direct, du formulaire. Champs, données, tout.

A partir de la, il est logique, inévitable, que le if, qui recherche l'existance de nores, rate. Lamentablement.

Je vois pas trop à quoi sert nores. Une clé étrangère, certes, mais de quel champ de la table réservation ? Je vois que dans reservation, tu as dateresdeb , dateresfin et nogite. En quoi y-t-il une relation avec la table client ? En attendant, mieux vaut le laisser tomber.

Voilà quelque chôse qui devrait marcher selon ce que j'ai vu. :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<body>

<?php

// Récupération et protection après la vérification de leur saisie dans le formulaire

if (isset($_POST))
	{
	$nomcli=mysql_real_escape_string(htmlspecialchars($_POST["nomcli"]));
	$prenomcli=mysql_real_escape_string(htmlspecialchars($_POST["prenomcli"]));
	$adressecli=mysql_real_escape_string(htmlspecialchars($_POST["adressecli"]));
	$villecli=mysql_real_escape_string(htmlspecialchars($_POST["villecli"]));
	$departementcli=mysql_real_escape_string(htmlspecialchars($_POST["departementcli"]));
	$cpcli=mysql_real_escape_string(htmlspecialchars($_POST["cpcli"]));
	$telcli=mysql_real_escape_string(htmlspecialchars($_POST["telcli"]));
	$melcli=mysql_real_escape_string(htmlspecialchars($_POST["melcli"]));
	//$nores=mysql_real_escape_string(htmlspecialchars($_POST["nores"]));
	$dateresdeb=mysql_real_escape_string(htmlspecialchars($_POST["dateresdeb"]));
	$dateresfin=mysql_real_escape_string(htmlspecialchars($_POST["dateresfin"]));
	$nogite=mysql_real_escape_string(htmlspecialchars($_POST["nogite"]));
	
	$nores = "jesuisperdu";
	}
else
	{
	die("Vous n'avez pas rempli entièrement votre formulaire");
	}

// Affichage d'un message de contrôle

echo "Cher(e) ".$nomcli." ".$prenomcli.",<br/>";
echo "Vous désirez réserver le gîte numéro ".$nogite.".";

// Connexion au serveur MySQL

$db=mysql_connect("localhost","root","GSI") or die("erreur de connexion".mysql_error());

// Ouverture de la base Gîte du vertige

mysql_select_db("Gite du vertige",$db) or die("erreur de connexion à la base Gite du vertige");

// Requête d'insertion des valeurs dans la table client

$sql="INSERT INTO client (nomcli, prenomcli, adressecli, villecli, departementcli, cpcli telcli, melcli, nores)
VALUES('$nomcli','$prenomcli','$adressecli','$villecli','$departementcli','$cpcli','$telcli','$melcli','$nores')";

// Exécution de la requête

mysql_query($sql);

// Requête d'insertion des valeurs dans la table reservation

$sql="INSERT INTO reservation (dateresdeb , dateresfin, nogite)
VALUES('$dateresdeb','$dateresfin','$nogite')";

// Exécution de la requête
 
mysql_query($sql);

echo "<br/><br/> Vos données ont bien été envoyées dans notre base de données. Nous vous enverrons un mail dès que possible pour vous informer de la disponibilité du gîte";

// Fermeture de la connexion à MySql

mysql_close();
?>
</body>
</html>
Et puis, une dernière question, d'ou viens ce script ?
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphanteau du PHP | 19 Messages

08 avr. 2008, 12:10

Merci, ce sript est le mien, je me suis inspiré d'un TD fait en classe et j'ai été aidé sur Internet pour le if.... que je ne connaissais pas. J'ai donc fait comme tu as dis et j'ai toutes ces erreurs :

"Warning: mysql_real_escape_string(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 12

Warning: mysql_real_escape_string(): A link to the server could not be established in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 12

Warning: mysql_real_escape_string(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 13

Warning: mysql_real_escape_string(): A link to the server could not be established in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 13

Warning: mysql_real_escape_string(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 14

Warning: mysql_real_escape_string(): A link to the server could not be established in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 14

Warning: mysql_real_escape_string(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 15

Warning: mysql_real_escape_string(): A link to the server could not be established in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 15

Warning: mysql_real_escape_string(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 16

Warning: mysql_real_escape_string(): A link to the server could not be established in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 16

Warning: mysql_real_escape_string(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 17

Warning: mysql_real_escape_string(): A link to the server could not be established in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 17

Warning: mysql_real_escape_string(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 18

Warning: mysql_real_escape_string(): A link to the server could not be established in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 18

Warning: mysql_real_escape_string(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 19

Warning: mysql_real_escape_string(): A link to the server could not be established in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 19

Warning: mysql_real_escape_string(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 21

Warning: mysql_real_escape_string(): A link to the server could not be established in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 21

Warning: mysql_real_escape_string(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 22

Warning: mysql_real_escape_string(): A link to the server could not be established in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 22

Warning: mysql_real_escape_string(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 23

Warning: mysql_real_escape_string(): A link to the server could not be established in c:\program files\easyphp1-8-modgsi\www\les gites du vertige\transfertclient10.php on line 23
Cher(e) ,
Vous désirez réserver le gîte numéro .

Vos données ont bien été envoyées dans notre base de données. Nous vous enverrons un mail dès que possible pour vous informer de la disponibilité du gîte "

Mammouth du PHP | 19672 Messages

08 avr. 2008, 12:26

Il serait judicieux de créer la connexion AVANT d'utiliser les fonctions mysql_xyz incluant mysql_real_escape_string() :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 19 Messages

08 avr. 2008, 13:30

Merci, j'ai mis la connexion avant, ça marche mais rien ne rentre dans la base de données, voici le script modifié :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<body>

<?php

// Connexion au serveur MySQL

$db=mysql_connect("localhost","root","GSI") or die("erreur de connexion".mysql_error());

// Ouverture de la base Gîte du vertige

mysql_select_db("Gite du vertige",$db) or die("erreur de connexion à la base Gite du vertige");

// Récupération et protection après la vérification de leur saisie dans le formulaire

if (isset($_POST))
    {
    $nomcli=mysql_real_escape_string(htmlspecialchars($_POST["nomcli"]));
    $prenomcli=mysql_real_escape_string(htmlspecialchars($_POST["prenomcli"]));
    $adressecli=mysql_real_escape_string(htmlspecialchars($_POST["adressecli"]));
    $villecli=mysql_real_escape_string(htmlspecialchars($_POST["villecli"]));
    $departementcli=mysql_real_escape_string(htmlspecialchars($_POST["departementcli"]));
    $cpcli=mysql_real_escape_string(htmlspecialchars($_POST["cpcli"]));
    $telcli=mysql_real_escape_string(htmlspecialchars($_POST["telcli"]));
    $melcli=mysql_real_escape_string(htmlspecialchars($_POST["melcli"]));
    //$nores=mysql_real_escape_string(htmlspecialchars($_POST["nores"]));
    $dateresdeb=mysql_real_escape_string(htmlspecialchars($_POST["dateresdeb"]));
    $dateresfin=mysql_real_escape_string(htmlspecialchars($_POST["dateresfin"]));
    $nogite=mysql_real_escape_string(htmlspecialchars($_POST["nogite"]));
    
    $nores = "jesuisperdu";
    }
else
    {
    die("Vous n'avez pas rempli entièrement votre formulaire");
    }

// Affichage d'un message de contrôle

echo "Cher(e) ".$nomcli." ".$prenomcli.",<br/>";
echo "Vous désirez réserver le gîte numéro ".$nogite.".";


// Requête d'insertion des valeurs dans la table client

$sql="INSERT INTO client (nomcli, prenomcli, adressecli, villecli, departementcli, cpcli telcli, melcli, nores)
VALUES('$nomcli','$prenomcli','$adressecli','$villecli','$departementcli','$cpcli','$telcli','$melcli','$nores')";

// Exécution de la requête

mysql_query($sql);

// Requête d'insertion des valeurs dans la table reservation

$sql="INSERT INTO reservation (dateresdeb , dateresfin, nogite)
VALUES('$dateresdeb','$dateresfin','$nogite')";

// Exécution de la requête
 
mysql_query($sql);

echo "<br/><br/> Vos données ont bien été envoyées dans notre base de données. Nous vous enverrons un mail dès que possible pour vous informer de la disponibilité du gîte";

// Fermeture de la connexion à MySql

mysql_close();
?>
</body>
</html>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 avr. 2008, 13:54

Affiches les requêtes SQL générées et vérifies qu'elles sont correctes...
essaye de les jouer dans MySql ou phpMyAdmin...
ajoute un test pour vérifier le résultat de tes mysql_query() et affiche les éventuels messages d'erreur SQL avec mysql_error()...
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...