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 été ajoutées à notre base de donné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.
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 : [b][u]Titre : Artistes[/u][/b] - [b][u]Alias : art[/u][/b] et puis en haut à droite dans [b][u]URL de l'encapsuleur[/u][/b], indiquez le chemin de la page html ex : http://localhost/mon_repertoire_formulaire/formulaire.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
[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>
[/html]
Fichier formulaire2.php
[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 été ajoutées à notre base de données.";
// on ferme la connexion
mysql_close();
}
?> [/php]
La table SQL "nom_de_la_table"
[sql]
--
-- 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`
--[/sql]
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.