Exploitation valeurs d'un formulaire dans une requête SQL

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 : Exploitation valeurs d'un formulaire dans une requête SQL

Re: [RESOLU] Troujours rien de resolu helas

par sirakawa » 04 oct. 2013, 09:14

Coucou,
Pourrais-tu changer le titre de ton message?

Re: [RESOLU] Troujours rien de resolu helas

par nettoyer » 03 oct. 2013, 16:44

Bonjour,
L'objet de ma demande n'était peut etre pas tres clair, j'en convient, mais j'ai quand même reçu des réponses cohérentes. - Ok je ferai mieux la prochaine fois

L'objet de mon dernier message était bien, me semble t'il, de remercier les membres qui m'ont aider malgré le titre de ma demande
Mais je regrette quand un membres me repond qu'il faut lire les tutos, c'est une evidence

J'ai BIEN remercier les membres qui ont pris la peine de lire autrement qu'en diagonale mes messages, et encore une fois je les remercie
Mais quand un message d'un membre ne sert strictement a rien je le dis aussi

Merci a vous de passer du temps pour les autres
cordialement

Re: [RESOLU] Troujours rien de resolu helas

par moogli » 03 oct. 2013, 15:33

peux être ne t'es tu pas poser la question de qui viens sur un forum et comment on fait pour recherche un message sur un forum.
hors ton titre n'est en rien explicite (comme demande dans la charte que tu as accepté d'ailleurs) et ne permet pas de savoir de quoi il en retourne du coup on ne lit pas ton sujet alors qu'il pourrait être utile à quelqu'un .

ceci dit si la fonction de recherche servait à quelque chose il y aurait moins de sujet :mrgreen:

et puisse que tu n'aprécie pas certaine réponse sache simplement que le but du forum et l'apprentissage du langage et l'aide à l'apprentissage. Toi tu demande à ce que l'on te le fasse.

ce que tu souhaite faire fait partie de la plus part des tutos de base sur des sites comme http://lephpfacile.com ou http://www.phpdebutant.org et ton ne reflète en rien la compréhension de ce tuto.

Pour revenir sur ta demande, elle n'est pas clair, le français approximatif (j'ai moi aussi du mal mais j'essais de faire des efforts pour avoir une syntaxe correct ;) ).

perso je t'aurais orienté vers des tutos expliquant la récupération de valeur d'un formulaire et comment utiliser une base de données ;)

être débutant tout le monde l'est cela n'exclus la recherche et de poser une question correctement lorsque l'on ne trouve pas seul (une question bien posé, c'est comme un problème bien posé quasiment tous est fait ;)).

@+

Re: Troujours rien de resolu helas

par nettoyer » 03 oct. 2013, 10:39

Je remercie vivement sarakawa, embryon, et orenx22 qui m’a donné des outils, qui ensemble et séparémént m’ont donné la solution

quand a la reponse de fœtus citée ici

Salut,

Tu devrais te lire un bon tuto pour voir comment marche PHP avec les fonctionnalités web et pour communiquer avec ta base de données... J'ai peur que ta requête ne soit pas très très efficace !

Et aussi, pour la prochaine fois, ça serait bien de mettre un sujet un peu plus explicite !


Ce n’est pas la peine de perdre ne fusse que 5 secondes pour copier coler ce message

1 quand on fait appel au forum, c’est qu’on a lu et relu et qu'on a tester et retest - on vient au forum quand c'est presque désesperer
2 N’a tu jamais été débutant ?
3 qu’est ce que ta réponse apporte a la collectivité de plus ?
4 Il fut intéressant de lire ma question et de chercher une solution

En conclusion, je peux meme moi comme HYPER débutant répondre a toutes les questions du forum
En repondant Exactement ce que tu m’a répondu

Désolé l’ami, au lieu de répondre à xx message essaye de trouver une solution aux problèmes posés, ce que les gens que je remercie on fait

Re: Troujours rien de resolu helas

par orenx22 » 02 oct. 2013, 18:13

Bonjour l'ami,

Je vais te donner des outils qui vont te permettre de travailler simplement avec une interaction avec un base de donnée.

1ère Étape : Les outils !

Je t'invite à télécharger ces outils (gratuit) :

Netbeans : C'est un ide, c'est à dire une application qui va te permettre de codé plus facilement grâce à l'auto complétion (tu tapes 3 lettres sa écrit le reste).
https://netbeans.org/downloads/index.html (colonne PHP)

MySQL Workbench : C'est un application qui va te permettre de schématiser ta base de données.
http://dev.mysql.com/get/Downloads/MySQ ... mysql.com/

Wamp (win) / Lamp (mac) : application regroupant un packaging (PHP, Mysql, autres) sur le service Apache (serveur web).

2ème Etape : Classe / objet View et PDO !

Si vous n'avez jamais fait de PHP objet ce n'est pas bien grave, il faut voir ces classes comme des outils avec des fonctions à disposition pour faire certain traitement. Je vous invite donc à place l'élément qui va suivre dans un fichier nommé par exemple "view.php" dans un dossier "class" de votre répertoire racine, sachant que l'objet "PDO" est intégré à PHP.

Image

Télécharge le fichier "view.php" : http://www.e-system.fr/data/view.rar

La classe "view" possède une fonction important : load( $filename ), avec "$filename" le chemin d'un fichier HTML ou PHTML (PHP + HTML). Celle-ci permet d'importer se fichier et de pouvoir y ajouter très simplement des variables. Vous avez tous jouer à un jeu en cours d'anglais, ou dans un texte le professeur remplacer un mot ou une suite de mots par un trait. C'est un peu la même logique, le texte représente le code HTML, les traits les variables PHP ou l'on peut mettre ce que l'on désire.

Exemple pour l’exploitation de l'objet de vue (classe "view") :

Image

Télécharger cette étape ici : http://www.e-system.fr/data/result1.rar

Si vous regarder le code source de la page index.php, comme par magie les variables ont été replacer par les valeurs données dans l'index.

Mise en relation entre un base de données et l'objet de vue "view" :

SQL rataché pour créer la base de donnée et la table utilisateur :

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

-- -----------------------------------------------------
-- Table `dbname`.`utilisateur`
-- -----------------------------------------------------

CREATE  TABLE IF NOT EXISTS `dbname`.`utilisateur` (
  `id` INT NOT NULL AUTO_INCREMENT ,
  `nom` VARCHAR(45) NULL ,
  `prenom` VARCHAR(45) NULL ,
  PRIMARY KEY (`id`) )
ENGINE = InnoDB;

SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Image

Télécharger cette étape ici : http://www.e-system.fr/data/result2.rar

Voyer bien l'exploitation de la boucle foreach() dans le fichier "main.phtml" ainsi que la condition pour afficher un résultat ou non.

Comment insérer des données dans la base de données ?

Image

Attention j'ai fait une erreur 'INSERT INTO utilisateur' et pas 'utisateur' >< !

Voilà, vous avez deux outils en main pour faire tout ce que vous voulez en séparant les fichiers de vu ("view") et le traitements. Reste plus qu'a vous créer un système qui gère le requête de votre site, exemple avec le query de l'url :

index.php?page="accueil"

J’espère que cette petite explication vous sera bénéfique. En vous souhaitant une bonne programmation, à vos clavier, 3,2,1, GO !

Ciao.

Re: Troujours rien de resolu helas

par sirakawa » 02 oct. 2013, 18:11

essaie ceci:
$sql = "INSERT INTO `client` (`client_nom`) VALUES ($nom)"; // modifier suivant conseil de sarakawa
print "$sql";
//et de le mettre dans phpmyadmin
$resultat = $mysqli->query($sql);

Re: Troujours rien de resolu helas

par nettoyer » 02 oct. 2013, 18:01

Merci Sarakawa mais helas

"insertion ratée"
<p>
<br />
    Veuillez taper votre nom :
</p>
 
euillez taper votre nom :
</p>

<form action = '' method='post'>
<p>
<input id='nom' name='nom' value='' />
<!--ajout ce cet input caché qui te permet de savoir si on est déjà passé et d'agir en conséquence-->
<input type ='hidden' name ='passage' value = '$passage' />
<input type='submit' value='Valider' />

</p>
</form>";


<?php
print "$chaine";


$nom = $_POST['nom'];
print "vous vous nommez ".$nom;

?>


<?php
echo "texte saisi $nom";//pour tester le resultat
?>


<?php
include './includes/config.php'; // ok pour ouverture de BD
//il faut ajouter du code pour se connecter et ouvrir la bdd
$mysqli = new mysqli('mysql5-2.1000gp', 'lamberttbase', 'valide3810', 'lamberttbase');
if ($mysqli->connect_error) 
{
die('Erreur de connexion (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
}
else
{
$sql = "INSERT INTO `client` (`client_nom`) VALUES ($nom)"; // modifier suivant conseil de sarakawa
$resultat = $mysqli->query($sql);
if ($resultat === true)
{
$message = "Insertion faite";
}
else
{
$message = "Insertion ratée";
}
print "$message";
}
?>

Re: Troujours rien de resolu helas

par sirakawa » 02 oct. 2013, 17:47

<?php
include './includes/config.php'; // ok pour ouverture de BD
//il faut ajouter du code pour se connecter et ouvrir la bdd
$mysqli = new mysqli('localhost', 'lambert_base', 'my_password', 'my_db');
if ($mysqli->connect_error)
{
die('Erreur de connexion (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
}
else
{
$sql = "INSERT INTO `client` (`client_nom`) VALUES ($nom)"; // modifier suivant conseil de sarakawa
$resultat = $mysqli->query($sql);
if ($resultat === true)
{
$message = "Insertion faite";
}
else
{
$message = "Insertion ratée";
}
print "$message";
}
?>

Re: Troujours rien de resolu helas

par nettoyer » 02 oct. 2013, 17:26

merci...Sarakawa .

Le formulaire fonctionne bien - plus de message d'erreur mais rien d'inserer dans la BD

Voici le lien pour tester ce formulaire http://www.lambert-thierry.be/test.php

voici les code d'acces a la BD - le pass est valide3810 - base de donne test tu peux faire ce que tu veux dedans !!!!

Image

voici le script modifier suivant tes conseils
<p>
<br />
    Veuillez taper votre nom :
</p>
 
euillez taper votre nom :
</p>

<form action = '' method='post'>
<p>
<input id='nom' name='nom' value='' />
<!--ajout ce cet input caché qui te permet de savoir si on est déjà passé et d'agir en conséquence-->
<input type ='hidden' name ='passage' value = '$passage' />
<input type='submit' value='Valider' />

</p>
</form>";


<?php
print "$chaine";


$nom = $_POST['nom'];
print "vous vous nommez ".$nom;

?>


<?php
echo "texte saisi $nom";//pour tester le resultat
?>
<?php
include './includes/config.php'; // ok pour ouverture de BD

$sql = "INSERT INTO `client` (`client_nom`) VALUES ($nom)"; // modifier suivant conseil de sarakawa

//$sql = 'INSERT INTO `client`(`client_nom`, `client_date1`, `client_date2`, `client_passwd`, `client_adresse`, `client_cp`, `client_ville`, `client_note`, `client_tel`, `client_gsm`, `date_ajout`) VALUES ('$nom';"test","test","test","test","test","test","test","test","test","test")';

?>

Re: Troujours rien de resolu helas

par sirakawa » 02 oct. 2013, 17:02

C'est moi qui suis nul:
//il faudrait savoir si client_id est autoincrement
//S'il est autoincrement, tu peux supprimer `client_id`, et [value-1],
/* version originale
$sql = 'INSERT INTO `client` (`client_id`, `client_nom`, `client_date1`, `client_date2`, `client_passwd`,
`client_adresse`, `client_cp`, `client_ville`, `client_note`, `client_tel`, `client_gsm`, `date_ajout`)
VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7],[value-8],[value-9],[value-10],[value-11],[value-12])';*/
//il faut remplacer [value-2] par '$nom'; mais pour les autres il faudrait que tu ajoutes des input dans ton formulaire.
//Dans l'immédiat tu peux essayer de remplacer value-3... par ''...
Essaie simplement ça:
$sql = "INSERT INTO `client` (`client_nom`) VALUES ($nom)";

Re: Troujours rien de resolu helas

par nettoyer » 02 oct. 2013, 16:53

Merci de ta reponse (sirakawa)
j'ai donc remplacer ce que tu ma conseiller

Parse error: syntax error, unexpected T_VARIABLE in /homez.108/lambertt/www/test.php on line 40

dur dur....c'est pas evident

LIGNE 40 $sql = 'INSERT INTO `client`(`client.......
<p>
<br />
    Veuillez taper votre nom :
</p>
 
euillez taper votre nom :
</p>

<form action = '' method='post'>
<p>
<input id='nom' name='nom' value='' />
<!--ajout ce cet input caché qui te permet de savoir si on est déjà passé et d'agir en conséquence-->
<input type ='hidden' name ='passage' value = '$passage' />
<input type='submit' value='Valider' />

</p>
</form>";


<?php
print "$chaine";


$nom = $_POST['nom'];
print "vous vous nommez ".$nom;

?>


<?php
echo "texte saisi $nom";//pour tester le resultat
?>
<?php
include './includes/config.php'; // ok pour ouverture de BD


// C'EST ICI QUE JE NE SAIS PAS CE QUE JE DOIT METTRE COMME "VALUE-2"
// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

$sql = 'INSERT INTO `client`(`client_nom`, `client_date1`, `client_date2`, `client_passwd`, `client_adresse`, `client_cp`, `client_ville`, `client_note`, `client_tel`, `client_gsm`, `date_ajout`) VALUES ('$nom';"test","test","test","test","test","test","test","test","test","test")';

?>

<?php
/*reponse de sirakawa


print "$chaine";
}
else
{
$nom = $_POST['nom'];
print "vous vous nommez ".$nom;

//on suppose que la connexion à la base est faite
//il faudrait savoir si client_id est autoincrement	
//S'il est autoincrement, tu peux supprimer `client_id`, et [value-1],

//	$sql = 'INSERT INTO `client` (`client_id`, `client_nom`, `client_date1`, `client_date2`, `client_passwd`, 
`client_adresse`, `client_cp`, `client_ville`, `client_note`, `client_tel`, `client_gsm`, `date_ajout`) 
VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7],[value-8],[value-9],[value-10],[value-11],[value-12])';
//il faut remplacer [value-2] par '$nom'; mais pour les autres il faudrait que tu ajoutes des input dans ton formulaire.
//Dans l'immédiat tu peux essayer de remplacer value-3... par ''...



?>

*/




Re: Troujours rien de resolu helas

par sirakawa » 02 oct. 2013, 16:20

<?PHP
//Je préfère tout faire en PHP car ça évite d'intercaler du php un peu partout dans le HTML
//mettre ça toutes les fois où on n'est pas sûr de ce qui passe d'un module à l'autre
//il est normal que la première fois on ait un array() : tableau vide
print_r($_POST);
$passage = isset($_POST['passage']) ? $_POST['passage']+1: 1;
// vérifie que $passage a changé de valeur
print "<br />";
var_dump($passage);
if ($passage == 1)
{
$chaine = "
<br />
Veuillez taper votre nom :
</p>

<form action = '' method='post'>
<p>
<input id='nom' name='nom' value='' />
<!--ajout ce cet input caché qui te permet de savoir si on est déjà passé et d'agir en conséquence-->
<input type ='hidden' name ='passage' value = '$passage' />
<input type='submit' value='Valider' />

</p>
</form>";

print "$chaine";
}
else
{
$nom = $_POST['nom'];
print "vous vous nommez ".$nom;
//on suppose que la connexion à la base est faite
//il faudrait savoir si client_id est autoincrement
//S'il est autoincrement, tu peux supprimer `client_id`, et [value-1],

// $sql = 'INSERT INTO `client` (`client_id`, `client_nom`, `client_date1`, `client_date2`, `client_passwd`,
`client_adresse`, `client_cp`, `client_ville`, `client_note`, `client_tel`, `client_gsm`, `date_ajout`)
VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7],[value-8],[value-9],[value-10],[value-11],[value-12])';
//il faut remplacer [value-2] par '$nom'; mais pour les autres il faudrait que tu ajoutes des input dans ton formulaire.
//Dans l'immédiat tu peux essayer de remplacer value-3... par ''...


}
?>


A suivre

Re: Troujours rien de resolu helas

par computarelier » 02 oct. 2013, 16:06

Salut,

Tu devrais te lire un bon tuto pour voir comment marche PHP avec les fonctionnalités web et pour communiquer avec ta base de données... J'ai peur que ta requête ne soit pas très très efficace ! :-)

Et aussi, pour la prochaine fois, ça serait bien de mettre un sujet un peu plus explicite !

A+,
Computarelier

Exploitation valeurs d'un formulaire dans une requête SQL

par nettoyer » 02 oct. 2013, 15:48

Bonjour je ne trouve pas le texte a taper pour :
- récuperer la valeurde la variable du formulaire $nom
- inserer cette valeur dans value-2

C'est mysql qui ai créer la requete $sql,

Image


Le probleme c'est que je ne sait pas adapter cette requette a mon probleme, je commence vraiment a desesperer et pourtant
ca doit etre hyper simple pour un pro
Je suis certain qu'en 30 secondes c'est résolu, alors que moi j'y suis depuis deux jours et je n'avance pas...oh secours

<br />
    Veuillez taper votre nom :
</p>
 
<form action="" method="post">
<p>
 <input onClick="ds_sh(this);" id="nom" name="nom" value="<?php echo($nom);  // date entree vide?>" style="cursor: text" />
    <input type="submit" value="Valider" />
</p>
</form>

<?php
echo "texte saisi $nom";//pour tester le resultat
?>
<?php
include './includes/config.php'; // ok pour ouverture de BD


// C'EST ICI QUE JE NE SAIS PAS CE QUE JE DOIT METTRE COMME "VALUE-2"
// XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

$sql = 'INSERT INTO `client`(`client_id`, `client_nom`, `client_date1`, `client_date2`, `client_passwd`, `client_adresse`, `client_cp`, `client_ville`, `client_note`, `client_tel`, `client_gsm`, `date_ajout`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7],[value-8],[value-9],[value-10],[value-11],[value-12])';

?>