Ecriture sur BDD en SQL...Galère!

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Ecriture sur BDD en SQL...Galère!

Re: Ecriture sur BDD en SQL...Galère!

par moogli » 21 sept. 2011, 01:31

de rien :mrgreen:

Re: Ecriture sur BDD en SQL...Galère!

par AleMatt » 21 sept. 2011, 00:44

CA Y EST, CA MARCHE =D>

Milles merci Moogli, un petit erreur de guillemet manquant ici:

<p style="font-family: Arial, font-size:2,color=black">

Mais vraiment tu es un as, merci!

Re: Ecriture sur BDD en SQL...Galère!

par AleMatt » 21 sept. 2011, 00:33

Bon, on en arrive ici

Il faut remplire tous les champs les gens ^^

ça avance, ça avance... ;)

Re: Ecriture sur BDD en SQL...Galère!

par AleMatt » 21 sept. 2011, 00:26

Ha c'était une petite paranthése qui manquait! :D

Re: Ecriture sur BDD en SQL...Galère!

par moogli » 21 sept. 2011, 00:23

effectivement j'ai oublié une parenthèse fermante sur cette ligne ......

Re: Ecriture sur BDD en SQL...Galère!

par AleMatt » 21 sept. 2011, 00:21

Une c'tite erreur!

Parse error: syntax error, unexpected T_BOOLEAN_AND, expecting ')' in /home/alematt/public_html/write_Livredor.php on line 11

Ligne 11:
if (!empty($_POST['submit'] && $_POST['submit'] == 'Valider') {

Re: Ecriture sur BDD en SQL...Galère!

par moogli » 20 sept. 2011, 23:54

Et ça ne marche toujours pas, je suis désespéré! :?
explique plus :)

ton code formulaire plus valide :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Livre d"Or</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
	<body bgcolor="#CC7005">
		<form  action="write_Livredor.php" method="post">
			<p style="font-family: Arial, font-size:2,color=black>
				Votre nom          : <input type="text" name="nom" size="50" value="TOTO" /><br />
				Votre prénom       : <input type="text" name="prenom" size="50" value="EDDY"><br />
				Votre Pseudo       : <input type="text" name="pseudo" size="50" value="TODY"><br />
				URL de votre site    : <input type="text" name="siteweb" size="50" value="http://www.totoeddy.com"><br />
				Votre Email         : <input type="text" name="mail" size="50" value="[email protected]" /><br /> 
				Message          : <input type="text" name="message" size="100" value="Cest quand que ça marche?" /><br />
				<input type="submit" name="submit" value="Valider" />
			</p>
	</form>
	</body>
</html>
ta page de validation du formulaire ne tiens pas du tout compte du formulaire donc heu ben ça marche pas XD

voila a quoi peux ressembler la validation du formulaire
<?php
// Vérification des champs nom et prenom (si il ne sont pas vides ?)
// Today=date("d-m-y"); 
// Si on n'arrive pas à se connecter, afficher la raison
$mysql_link = mysql_connect('localhost', '*****', '******') or die("Erreur à la connexion : ".mysql_error());
if (!$mysql_link){
  die('Could not connect: ' . mysql_error());
}
mysql_select_db("alematt_livredor", $mysql_link);
// validation du formulaire
if (!empty($_POST['submit'] && $_POST['submit'] == 'Valider') {
	if (!empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['pseudo']) && !empty($_POST['siteweb']) && !empty($_POST['mail']) && !empty($_POST['message']) ) {
	$sql = 'INSERT INTO Messages(Nom, Prénom, Mail, siteWeb, Message, Pseudo)
VALUES (\''.mysql_real_escape_string($_POST['nom']).'\',
\''.mysql_real_escape_string($_POST['prenom']).'\',
\''.mysql_real_escape_string($_POST['email']).'\',
\''.mysql_real_escape_string($_POST['siteweb']).'\',
\''.mysql_real_escape_string($_POST['message']).'\',
\''.mysql_real_escape_string($_POST['pseudo']).'\')';
	if (!mysql_query($sql,$mysql_link)){
	  die('Error: ' . mysql_error());
	  }
	echo '<p style="font-family=Arial,color:white,font-size:12px">1 entrée ajoutée</p>';
	}
	else {
		echo '<p style="color:red; border: 1px solid red">Il faut remplire tous les champs les gens ^^';
	}
}
mysql_close($mysql_link)
?>

A tester :)

@+

Re: Ecriture sur BDD en SQL...Galère!

par AleMatt » 20 sept. 2011, 23:34

Merci Moogli

J'ai remanié l'ensemble

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Livre d'Or</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <BODY bgcolor="#CC7005"> <form action="write_Livredor.php" method="post"> <font face='Arial' size='2'color=black> Votre nom : <input type='text' name='nom' size='50' value='TOTO'><br> Votre prénom : <input type='text' name='prenom' size='50' value='EDDY'><br> Votre Pseudo : <input type='text' name='pseudo' size='50' value='TODY'><br> URL de votre site : <input type='text' name='siteweb' size='50' value='http://www.totoeddy.com'><br> Votre Email : <input type='text' name='mail' size='50' value='[email protected]'><br> Message : <input type='text' name='message' size='100' value='Cest quand que ça marche?'><br> <input type='submit' value='Valider'></font></form> </body> </html>
ET write_Livredor.php

Code : Tout sélectionner

<?php // Vérification des champs nom et prenom (si il ne sont pas vides ?) // Today=date("d-m-y"); // Si on n'arrive pas à se connecter, afficher la raison $mysql_link = mysql_connect('localhost', 'Login', 'Pass') or die("Erreur à la connexion : ".mysql_error()); if (!$mysql_link) { die('Could not connect: ' . mysql_error()); } mysql_select_db("alematt_livredor", $mysql_link); // Requete d'insertion MYSQL $sql=("INSERT INTO Messages(Nom, Prénom, Mail, siteWeb, Message, Pseudo) VALUES ('$POST[nom]','$POST[prenom]','$POST[mail]','$POST[siteweb]','$POST[message]','$POST[pseudo]')"); if (!mysql_query($sql,$mysql_link)) { die('Error: ' . mysql_error()); } echo <font face="Arial" color="white" size="3">"1 entrée ajoutée"; mysql_close($mysql_link) ?>
Et ça ne marche toujours pas, je suis désespéré! :?

Re: Ecriture sur BDD en SQL...Galère!

par moogli » 20 sept. 2011, 21:27

salut,

ta façon de coder est prévu pour une configuration non standard (register globals = on)
une tuto sur la validation des formulaires http://www.phpdebutant.org/article56.php


@+

Re: Ecriture sur BDD en SQL...Galère!

par AleMatt » 20 sept. 2011, 20:17

C'est fait, mais cela ne change rien, du moins pas visiblement... :?

Re: Ecriture sur BDD en SQL...Galère!

par Cyrano » 20 sept. 2011, 19:07

remplace donc mysql_db_query() par mysql_query() pour commencer...

Re: Ecriture sur BDD en SQL...Galère!

par AleMatt » 20 sept. 2011, 18:53

Bon, je récapitule,

L’appel du formulaire (Form_livredor.php) est placé dans une frame de ma page.

Form_livredor.php

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Livre d'Or</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <BODY BGCOLOR=black> <form action="./write_Livredor.php" method="get"> <font face='Arial' size='2'color=white> Votre nom : <input type='text' name='nom' size='50' value='TOTO'><br> Votre prénom : <input type='text' name='prenom' size='50' value='EDDY'><br> Votre Pseudo : <input type='text' name='pseudo' size='50' value='TODY'><br> URL de votre site : <input type='text' name='siteweb' size='50' value='http://www.totoeddy.com'><br> Votre Email : <input type='text' name='mail' size='50' value='[email protected]'><br> Message : <input type='text' name='message' size='100' value='Cest quand que ça marche?'><br> <input type='submit' value='Valider'></font></form> $date = date("j/n/Y"); $nom=$_GET['nom']; $prenom=$_GET['prenom']; $pseudo=$_GET['pseudo']; $siteweb=$_GET['siteweb']; $mail=$_GET['mail']; $message=$_GET['message']; </body> </html>
Le formulaire s'afiche bien, et il est sensé appeler le fichier write_livredor.php

Code : Tout sélectionner

<?php // Vérification des champs nom et prenom (si il ne sont pas vides ?) if($nom != "" && $prenom != "") { // Si on n'arrive pas à se connecter, afficher la raison $mysql_link = mysql_connect('localhost', 'secret', 'encoreplussecret') or die("Erreur à la connexion : ".mysql_error()); // Requete d'insertion MYSQL $requete = "INSERT INTO Messages (Nom,Prénom,Date,Pseudo,Mail,siteWeb,Message) VALUES ('$nom','$prenom','$date','$pseudo','$mail','$siteweb','$message')"; // Execution de cette requete dans la base essai. Pareil, si echec de la requête, afficher le message d'erreur $execution = mysql_db_query("alematt_livredor", $requete) or die ("Erreur de requête : ".mysql_error()); } ?>
Mais rien n'est ajouté à la BDD.

Voila, j'ai l'impression que le lien entre le formulaire (Form_livredor.php) et la requete (Write_livredor.php) ne se fait pas...

Donc, AU SECOURS! :mrgreen:

Ha oui, ma BDD

Re: Ecriture sur BDD en SQL...Galère!

par AleMatt » 20 sept. 2011, 18:19

Merci,
J'ai oublié de préciser que j'ai commencé le langage PHP et SQL samedi soir, donc désolé pour mes maladresses! :oops:

Je vais voir tout cela! ;)

Re: Ecriture sur BDD en SQL...Galère!

par macgawel » 20 sept. 2011, 17:51

Bonjour.

1. C'est normal que tu utilises la variable $_GET pour récupérer les données envoyées par un formulaire en POST ? #-o

2. Au niveau de tes requêtes, essaye de vérifier ce que tu envoies et le résultat :
// Si on n'arrive pas à se connecter, afficher la raison
$mysql_link = mysql_connect('localhost', 'secret', 'encoreplussecret') or die("Erreur à la connexion : ".mysql_error());

// Requete d'insertion MYSQL
$requete = "INSERT INTO Messages (Nom,Prénom,Date,Pseudo,Mail,siteWeb,Message) VALUES ('$nom','$prenom','$date','$pseudo','$mail','$siteweb','$message')";

// Execution de cette requete dans la base essai. Pareil, si echec de la requête, afficher le message d'erreur
$execution = mysql_db_query("alematt_livredor", $requete) or die ("Erreur de requête : ".mysql_error());
Au passage... la fonction mysql_db_query() est obsolète, utilise plutôt mysql_select_db() et mysql_query() à la place.

Re: Ecriture sur BDD en SQL...Galère!

par AleMatt » 20 sept. 2011, 17:42

Merci pour ces remarques,

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Livre d'Or</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <BODY BGCOLOR=black> <form method='POST' action="http://marc-beuvain.com/write_Livredor.php" method="get"> <font face='Arial' size='2'color=white> Votre nom : <input type='text' name='nom' size='50' value=''><br> Votre prénom : <input type='text' name='prenom' size='50' value=''><br> Votre Pseudo : <input type='text' name='pseudo' size='50' value=''><br> URL de votre site : <input type='text' name='siteweb' size='50' value=''><br> Votre Email : <input type='text' name='mail' size='50' value=''><br> Message : <input type='text' name='message' size='100' value=''><br> <input type='submit' value='Valider'></font></form> $nom=$_GET['nom']; $prenom=$_GET['prenom']; $pseudo=$_GET['pseudo']; $siteweb=$_GET['siteweb']; $mail=$_GET['mail']; $message=$_GET['message']; </body> </html>
Mais rien ne change! #-o Il y a forcement un truc qui ne va pas...Arrgggg!