Accueil > Forum > > > > Quelle action pour mon formulaire?
Quelle action pour mon formulaire?
dimanche 3 janvier 2010 à 10:36:28 |
Quelle action pour mon formulaire?

padymen
|
Bonjour, j'ai écrit un formulaire pour créer un fichier XML et un formulaire pour alimenter une base de donnée. Comme les champs ne sont pas disjoints, j'ai fusionné les deux formulaires. Malheureusement, je n'obtient pas le résultat attendu : Le fichier XML se crée bien mais la base ne s'alimente pas. Voici les fichiers :
Premièrement le fichier contenant le formulaire ( insertion2.php ):
Code PHP : <?php
/* Création du XML */
include('xml_gen.php');
/* Modification dans la BD */
include('insertion.php');
?>
<html>
<head>
<style type="text/css">
<!--
-->
</style>
</head>
<body>
<h1>Insérer un nouveau fichier :</h1><br />
<form name="form" action="insertion2.php" method="POST">
<fieldset><label> Champs obligatoires </label>
<p>
<label>artiste :
<input type="text" name="creator" id="creator">
</label>
<p>
<label>titre
<input type="text" name="title" id="title">
</label>
</p>
</p>
<p>style :
<label>
<input type="text" name="style" id="style">
</label>
</p>
</fieldset>
<fieldset><label> Champs facultatifs </label>
<p>
<p>
<label>album
<input type="text" name="album" id="album">
</label>
</p>
<p>
<label>annotation
<input type="text" name="annotation" id="annotation">
</label>
</p>
<p>
<label>
<input type="submit" name="Envoyer" id="Envoyer" value="Envoyer">
</label>
</p>
</fieldset>
<p> </p>
</form>
</body>
</html>
Ensuite le fichier créant le XML ( xml_gen.php ):
Code PHP : <?php
if(isset($_POST['title']) and isset($_POST['creator']) and $_POST['title'] != '' and $_POST['creator'] != ''){
$title = $_POST['title'] ;
$creator = $_POST['creator'];
$path = 'xml/' . $creator . '.xml';
$location = '/mp3/' . $creator . '_' . $title . '.mp3';
$album = isset($_POST['album']) ? $_POST['album'] : '';
$annotation = isset($_POST['annotation']) ? $_POST['annotation'] : '';
$content = '';
if(is_file($path)){ // Si le xml est déjà créer
$TabFich = file($path,FILE_TEXT);
$inF = fopen($path,"w");
for($i = 0; $i < count($TabFich)-2; $i++)
fputs($inF,$TabFich[$i]);
$content = "\n" . '<track>'
. "\n" . '<location>' . $location . '</location>'
. "\n" . '<creator>' . $creator . '</creator>'
. "\n" . '<album>' . $album . '</album>'
. "\n" . '<title>' . $title . '</title>'
. "\n" . '<annotation>' . $annotation . '</annotation>'
. "\n" . '<duration></duration>'
. "\n" . '<image></image>'
. "\n" . '<info></info>'
. "\n" . '<link></link>'
. "\n" . '</track>'
. "\n" . '</trackList>'
. "\n" . '</playlist>';
}
else{
$inF = fopen($path,"w");
$content = '<?xml version="1.0" encoding="UTF-8"?>'
. "\n" . '<playlist version="1" xmlns="http://xspf.org/ns/0/">'
. "\n" . '<title></title>'
. "\n" . '<creator></creator>'
. "\n" . '<link></link>'
. "\n" . '<info>The Best Playlist for Testing</info>'
. "\n" . '<image>covers/tracklist.jpg</image>'
. "\n"
. "\n" . '<trackList>'
. "\n"
. "\n" . '<track>'
. "\n" . '<location> mp3/' . $creator . '_' . $title . '.mp3</location>'
. "\n" . '<creator>' . $creator . '</creator>'
. "\n" . '<album></album>'
. "\n" . '<title>' . $title . '</title>'
. "\n" . '<annotation></annotation>'
. "\n" . '<duration></duration>'
. "\n" . '<image></image>'
. "\n" . '<info></info>'
. "\n" . '<link></link>'
. "\n" . '</track>'
. "\n" . '</trackList>'
. "\n" . '</playlist>';
}
fputs($inF,$content);
fclose($inF);
echo 'Le fichier ' . $path . ' a été mis à jour<br />'
. 'Titre : ' . $title . '<br />'
. 'Artiste : ' .$creator . '<br />'
. 'Location : ' .$location . '<br />'
. '<br />';
}
?>
Et enfin le fichier alimentant la base de donnée ( insertion.php ):
Code PHP : <?php
require_once('Connections/zik.php');
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
$insertSQL = sprintf("INSERT INTO infos_tbl (artiste, style) VALUES (%s, %s)",
GetSQLValueString($_POST['creator'], "text"),
GetSQLValueString($_POST['style'], "text"));
mysql_select_db($database_zik, $zik);
$Result1 = mysql_query($insertSQL, $zik) or die(mysql_error());
}
?>
J'ai testé séparément les deux derniers fichiers et ils fonctionnent. C'est le formulaire qui est mal conçu. Je pense que l'erreur est dans l'action du formulaire mais je ne sais pas quoi écrire.
|
|
lundi 4 janvier 2010 à 07:50:23 |
Re : Quelle action pour mon formulaire?

mfaraday
|
Bonjour
Ce n'est pas ton form qui est malformé mais le test que tu fais sur son post
En effet tu testes :
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form"))
Mais je n'ai pas vu de champs qui s'appelle MM_insert, donc comme la condition de ton if n'est pas remplie, il passe dessus.
Tu aurais peut être du faire :
if ((isset($_POST["Envoyer"])) && ($_POST["Envoyer"] == "Envoyer"))
Pour tester le fait que l'utilisateur a cliqué sur le bouton envoyer.
(Tout ce que je te dis est à condition d'avoir bien vu le contenu de tes fichiers ;))
Bonne journée
Florian
|
|
lundi 4 janvier 2010 à 13:43:59 |
Re : Quelle action pour mon formulaire?

padymen
|
Bonjour Florian et merci de ta réponse,
en fait on est parti dans une autre direction (mon fils et moi, plus lui que moi !!!!), mais je pense que tu as raison, en fait c'est (en gros) pour : créer et remplir un xml et alimenter une base de donnée à la main, donc on s'est suis dis : autant faire en sorte de tout faire automatiquement, le but principal étant de créer et d'alimenter une espèce de juke box en php, on a donc créé un répertoire "zik" avec des sous répertoires (4 styles différents), une fonction listant le contenu des sous répertoires, les classant par "style", une autre qui crée et remplis les .xml (nécessaire au player "dewplayer"), et enfin une autre qui rempli la base de données, et voila tout fonctionne presque tout seul, il sufit de nomer les .mp3 correctement, de les mettre dans les bons sous répertoire et de lancer la page adéquate, si ça intéresse, voila le résultat
et voila les codes :
dir.php
Code PHP : <?php
require_once('Connections/zik.php');
include('funct_package.php');
$path = 'C:\xampp\htdocs\new\mp3';
$tab = scandir($path);
foreach($tab as $style){
$files = scandir($path . '/' . $style);
if($style != '.' and $style != '..'){
foreach($files as $file){
if($file != '.' and $file != '..'){
$tmp = explode('.',$file);
if($tmp[2] == 'mp3'){
insert_bd($tmp[0],$tmp[1],$style);
}
}
}
}
}
?>
et le funct_package.php :
Code PHP : <?php
if (!function_exists("gen_xml")) {
function gen_xml($artiste,$titre,$style,$album,$annotation){
$path = 'xml/' . $artiste . '.xml';
$location = 'mp3/' . $style . '/' . $artiste . '.' . $titre . '.mp3';
$content = '';
if(is_file($path)){ // Si le xml est déjà créer
$TabFich = file($path,FILE_TEXT);
$inF = fopen($path,"w");
for($i = 0; $i < count($TabFich)-2; $i++)
fputs($inF,$TabFich[$i]);
$content = "\n" . '<track>'
. "\n" . '<location>' . $location . '</location>'
. "\n" . '<artiste>' . $artiste . '</artiste>'
. "\n" . '<album>' . $album . '</album>'
. "\n" . '<title>' . $titre . '</title>'
. "\n" . '<annotation>' . $annotation . '</annotation>'
. "\n" . '<duration></duration>'
. "\n" . '<image></image>'
. "\n" . '<info></info>'
. "\n" . '<link></link>'
. "\n" . '</track>'
. "\n" . '</trackList>'
. "\n" . '</playlist>';
}
else{
$inF = fopen($path,"w");
$content = '<?xml version="1.0" encoding="UTF-8"?>'
. "\n" . '<playlist version="1" xmlns="http://xspf.org/ns/0/">'
. "\n" . '<titre>Ounage Playlist</titre>'
. "\n" . '<artiste>Dew</artiste>'
. "\n" . '<link>http://www.blup.fr/</link>'
. "\n" . '<info>The Best Playlist for Testing</info>'
. "\n" . '<image>covers/tracklist.jpg</image>'
. "\n"
. "\n" . '<trackList>'
. "\n"
. "\n" . '<track>'
. "\n" . '<location>' . $location . '</location>' // $id définie avant l'include de ce fichier dans insertion.php
. "\n" . '<artiste>' . $artiste . '</artiste>'
. "\n" . '<album></album>'
. "\n" . '<title>' . $titre . '</title>'
. "\n" . '<annotation></annotation>'
. "\n" . '<duration></duration>'
. "\n" . '<image></image>'
. "\n" . '<info></info>'
. "\n" . '<link></link>'
. "\n" . '</track>'
. "\n" . '</trackList>'
. "\n" . '</playlist>';
}
fputs($inF,$content);
fclose($inF);
}}
function check_querry($str){
$str= str_replace('\'',' ',$str);
$str= str_replace('(',' ',$str);
$str= str_replace(')',' ',$str);
return $str;
}
if (!function_exists("insert_bd")) {
function insert_bd($artiste, $titre, $style){
echo '<strong>' . $titre . '</strong> de <strong>' . $artiste . '</strong> : ';
$sql = "SELECT COUNT(*) AS count,id,artiste,titre FROM infos_tbl WHERE artiste='" . check_querry($artiste) . "' and titre='" . check_querry($titre) . "'";
$querry = mysql_query($sql);
$result = mysql_fetch_array($querry);
$count = $result['count'];
if($count>0) // morceau existe déjà
echo 'Le morceau existe déjà <br />';
else{ // le morceau n'existe pas
gen_xml($artiste,$titre,$style,'','');
echo 'Morceau non trouvé <br />';
//$insertSQL = "INSERT INTO infos_tbl VALUES('','artiste','titre','cool')";
$insertSQL = "INSERT INTO infos_tbl (ID,artiste,titre,style) VALUES ('', '" . check_querry($artiste) . "','" . check_querry($titre) . "','" . check_querry($style) ."')";
$Result1 = mysql_query($insertSQL) or die(mysql_error());
}
}}
?>
|
|
Cette discussion est classée dans : fichier, code, php, formulaire, color
Répondre à ce message
Sujets en rapport avec ce message
Reponse Formulaire Php en Pop Up [ par nini2tignes ]
Bonjour tout le monde, je recherche parfois des choses vraiment bête. j'ai un formulaire de contact Php qui fonctionne pas mal. [b]Lorsque qu'il est
Inclure un lien php nécessitant de transmettre des informations venant d'un formulaire (method = post) [ par rhoo ]
Bonjour à tous, Comme je l'exprime dans le titre de ce sujet, j'aimerais savoir comment je pourrais inclure une page venant d'un site "extérieur" dan
formulaire [ par nicodonat ]
bonjour j'ai voulu créer un formulaire pour mon site .Normalement le message doit arriver directement dans ma boite mail.C'est le cas c'est déjà ça l
Peut-on changer un variable de code PHP suivant le URL? [ par shyrachtz ]
Bonjour [color=red]Peut-on [b]changer un variable [/b][u][/u][/color]de code [color=red][b]PHP[/b][u][/u][/color] [b]suivant le [color=red]URL[/color
Formulaire en php [ par winosx01 ]
[color=blue]Bonjour, J'ai un fichier excel, avec des champs ou des colonnes : Numéro de lignes, désignation, colonne, calcul, longueur, position débu
chauvechement du frame [ par lina22 ]
bonjour, j'ai un fichier index.php [code=php]session_start(); echo ' <frame name="left_bottom" src=
charger un xml uploadé dans un Mom [ par MotoTouriste ]
Bonjour, J'ai un petit souci et j'aimerai avoir des conseils. Voilà: J'ai un formulaire HTTP d'upload de fichier. L'utilisateur doit uploader un fic
fonction mail avec php [ par cyrilherve ]
salut à tous,je m'initie à l'utilisation de la fonction mail avec php. j'ai pris au hasard un script d'envoi d'e-mail dans un tutoriel d'apprentissage
Aide Code Upload PHP [ par MaitreLgTbD ]
Bonjour, C'est encore moi je sollicite votre aide, actuellement en stage mon projet sollicite un bout de code de upload tous fichiers confondu (la plu
Lancer le téléchargement d'un .exe [ par N3N3SS ]
Bonjour tout le monde, J'ai fini de créer mon site, j'y propose le téléchargement d'un exécutable, calculette de windows pour les tests. J'ai dans m
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|