begin process at 2012 05 31 13:18:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Quelle action pour mon formulaire?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales