Récuper donnée d'un Formulaire joomla vers BDD php myadmin

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 : Récuper donnée d'un Formulaire joomla vers BDD php myadmin

Re: Récuper donnée d'un Formulaire joomla vers BDD php myadmin

par gaston04 » 21 juin 2010, 01:24

Bonsoir,

J'ai étudié votre problème d'un peu plus près !

Sur Joomla il vaut mieux pour vous d'utiliser le mode Wrapper pour l'interprétation de votre formulaire.
Créer un répertoire formulaire n'importe où dans votre site.
Créer 2 fichiers, formulaire.html et formulaire2.php à l'intérieur du répertoire formulaire.
Allez dans l'administration de Joomla, aller dans Menus->Main Menu, créer un nouveau menu "Encapsuleur (Wrapper)" et indiquez le Titre du lien dans le Menu Principal. ex : Titre : Artistes - Alias : art et puis en haut à droite dans URL de l'encapsuleur, indiquez le chemin de la page html ex : http://localhost/mon_repertoire_formula ... laire.html

Aller dans PHP MyAdmin, créer une base de donnée artistes, et créez la table "rockabilly_music" et le tour est jouer.

Fichier formulaire.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Enregistrement d'artistes</title>
</head>
<body>
<form method="POST" action="formulaire2.php">
<input type="text" name="nom" size="30" value="Nom" maxlength="35">
<input type="text" name="localisation" size="40" value="Localisation" maxlength="35">
<input type="submit" value="Envoyer" name="envoyer">
</form>
</body>
</html>
Fichier formulaire2.php
<?php 

/***************************
* Petit formulaire simple  *
* Alain Broye              *
* [email protected]      *
* Forum PHPFrance          *
***************************/

// On commence par récupérer les champs 
if(isset($_POST['nom']))      $nom=$_POST['nom'];
else      $nom="";

if(isset($_POST['localisation']))      $localisation=$_POST['localisation'];
else      $localisation="";

// On vérifie si les champs sont vides 
if(empty($nom) OR empty($localisation)) 
    { 
    echo '<font color="red">Attention, tous les champs sont obligatoires !</font>'; 
    } 

// Aucun champ n'est vide, on peut enregistrer dans la table 
else      
    { 
	
    // connexion à la base
    $db = mysql_connect('localhost', 'root', 'mot_de_passe')  or die('Erreur de connexion '.mysql_error());

    // sélection de la base  
    mysql_select_db('nom_de_base',$db)  or die('Erreur de selection '.mysql_error()); 
     
    // on écrit la requête sql 
    $sql = "INSERT INTO nom_de_la_table(id, nom, localisation) VALUES('','$nom','$localisation')"; 
     
    // on insère les informations du formulaire dans la table 
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 

    // on affiche le résultat pour le visiteur 
    echo "Merci ! Vos infos on &eacute;t&eacute; ajout&eacute;es &agrave; notre base de donn&eacute;es.";

    // on ferme la connexion
    mysql_close();   
	}
?> 
La table SQL "nom_de_la_table"
--
-- Structure de la table `nom_de_la_table`
--

CREATE TABLE IF NOT EXISTS `nom_de_la_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nom` varchar(35) CHARACTER SET utf8 NOT NULL,
  `localisation` varchar(35) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_2` (`id`),
  KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Contenu de la table `nom_de_la_table`
--
Voilà, je l'ai tester, ça marche nickel, après a vous de l'adapter à votre convenance.
Par contre ce script ne gère par les doublons dans la base de données.

Re: Récuper donnée d'un Formulaire joomla vers BDD php myadmin

par gaston04 » 20 juin 2010, 18:19

Bon si j'ai bien compris, vous souhaitez renseigné 3 données dans la table artistes
1 - id
2 - nom
3 - localisation

Mais votre formulaire ne permet l'entrée que d'une seule information est-ce normal ?

Re: Récuper donnée d'un Formulaire joomla vers BDD php myadmin

par Penny » 20 juin 2010, 14:12

Bonjour,
Merci beaucoup de votre réponse !

J'ai intégré mon formulaire sur le site via un article en utilisant l'éditeur "éditer le code HTML".
Cela n'est peut-être pas suffisant du coup ?...

Merci :)

Re: Récuper donnée d'un Formulaire joomla vers BDD php myadmin

par gaston04 » 20 juin 2010, 12:21

Bonjour Penny,

J'aimerais savoir où ce situe exactement votre formulaire html ?
L'avez vous mis en place en mode Wrapper ? Avec appel vers un lien externe du style : http://www.sitejoomla.fr/dossier/formulaire.html
Ou l'avez vous intégré dans un article avec un éditeur WYSIWYG ?

Merci de votre réponse !

Récuper donnée d'un Formulaire joomla vers BDD php myadmin

par Penny » 20 juin 2010, 00:09

Bonjour,

Je suis actuellement en train de réaliser un projet de site sous Joomla en local. Le site est fait. J'ai aussi réalisé une base de donnée sur PHP MyAdmin ainsi qu'un formulaire qui est placé sur mon site.

Pour relier ma BDD au formulaire j'ai réalisé un script php dans lequel Joomla ne détecte pas d'erreur mais rien n'est transmis sur ma BDD.

Serait-il possible que quelqu'un puisse regarder ce que j'ai fait pour voir s'il y a des erreurs. Ce serait vraiment super gentil, parce que là, je ne trouve plus aucune solution :)!

D'avance merci :priere:

Voici mon formulaire html placé sur le site :

FORMULAIRE
(placé dans Joomla >web.zmwsc>
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title></title>
</head>
<body>
<form method="post" action="formulaire2.php"
name="formulaire"><input name="artiste"
value="artiste"><input name="OK" value="OK" type="submit"><input
name="RESET" value="RESET" type="reset"><br>
</form>
</body>
</html>

Je l'ai alors relié à un formulaire2.php (placé dans Joomla>web.zmwsc>joomla>projet_base_de_donnée)

<?php
if (!empty($_POST['artiste'])) $artiste=$_POST['artiste'];
else $artiste="";
$mysql_link = mysql_connect('localhost','root','');
if($mysql_link)
{
$requete="INSERT INTO artistes(noms_artistes) VALUES('','$artiste',)";
$execution=mysql_db_query("rockabilly_music",$requete);
echo 'Vos infos ont ete rajoutees a la base de donnee.';
}
mysql_close();
?>

PS : J'ai une base de donnée avec deux tables. Et dans la table 'artistes' où je souhaite rajouter mon élément, il y a 3 champs : id_artistes; nom_artistes et enfin localisation_artistes. (j'ai peur de m'être trompé dans le formulaire à ce niveau)

Voilà voilà. Et du coup, quand je rentre quelque chose dans le formulaire sur mon site, tout semble aller bien, mais sur PhP my admin, rien ne s'ajoute :evil:

En tout cas, merci beaucoup si vous pouvez me venir en aide :D
Bonne soirée !