Problème formulaire php

Fermé
pinkpooky88 - 9 juin 2010 à 10:20
 pinkpooky88 - 9 juin 2010 à 11:39
Bonjour,

C'est encore moi.
Je poste un autre problème pour mon site.
Je dois faire un site pour des commerçants. J'ai donc créer une interface pour leur faciliter la vie. Ils n'ont pas besoin de gérer la pagination et d'aller sur la base de données pour enregistrer leurs données.
Mais malheureusement j'ai un petit souci avec le code.
Cette interface se compose en plusieurs fichiers:

Voici le premier: Selection.php:
<HTML>
	<HEAD>
		<TITLE> Types de mangas ( selection.php)</TITLE>
		<link rel="shortcut icon" type="image/png" href="favicon.png" />
		<LINK type="text/css" rel="stylesheet" href="styles.css">
	</HEAD>
	<BODY bgcolor="#9FB6CD">
		<div id="conteneur">
		<?php
		include("inf.php");
		$cxn=mysql_connect(SERVER,LOGIN,MDP) or die ('Erreur : '.mysql_error());
		mysql_select_db(BDD,$cxn) or die ('Erreur : '.mysql_error());
			//Recherche les types de mangas dans la table Type par ordre alphabétique
			$query="SELECT mangasEditeur FROM Editeur ORDER BY mangasEditeur";
			$result=mysql_query($query,$cxn) or die ('Erreur : '.mysql_error());
			//Affiche le texte en tête du formulaire
			echo "<table class='page'border='0' cellspacing='0' cellpadding='0'>
					<TR align='center'style='background-image: url(fondbannbis2.png)' height='256' width='800'>
						<TD valign='top'>
							<p class='soustitre'><BR>Choississez l'éditeur du produit <BR>que vous voulez ajouter.</p></TD>
					</TR>";
			//Création d'un formulaire contenant la liste de selection
			echo "<TR align='center' style='background-image: url(fondid.png)' height='507'>
						<TD>Si cet éditeur n'exsite pas encore, cliquez sur le bouton <b>Nouveau éditeur</b> lorsque vous avez terminé.<BR>
							<form action='nouveauNom.php' method='POST'>\n";
			echo "<table cellpadding='5' border='0'>\n";
			echo "<tr>";
			$compteur=0;
			while($ligne=mysql_fetch_assoc($result))
				{
				extract($ligne);
				echo"<td>
					<input type='radio' name='Editeur' valure='$mangasEditeur'>";
					if($compteur==0)
						{
						echo"";
						}
					echo">$mangasEditeur</td>\n";
					$comtpeur++;
				}	
			include("produit_table.inc");
			echo"<TR align='center'style='background-image: url(fondrestebis.png)' height='217'>
					<TD><input type='submit' value='Envoyer'>\n";
			echo "</form><br><a href='choix.html'class='type2'>Revenir à l'interface d'administration</a>\n";
			echo"</tr></table>\n</TD></TR>";
		?>
		</TD></TR>
				</TABLE>
		</div>
	</BODY>
</HTML>


NouveauNom.php
<?php
	/*Programme: noveauNom.php
		Description: Permet à l'utilisateur de saisir des onfos sur le manga. Le programme commence par regarder s'il s'agit d'une nouvelle catégorie.
			Si oui, il la range dans la table Type. Puis tous les mangas présents dans cette catégorie sont sélectionnés et affichés en face d'un 
			bouto radio. L'utilisateur peut saisir un nouveau nom. Des champs sont là pour lui permettre de fournir toutes les infos néceessaires.*/

	if(@$_POST['neobouton']=="Retour à la plage des catégories" or @$_POST['neobouton'] =="Annuler")
			{
			header("Location:selection.php");
			}
		echo"<html>
				<head><title> Ajout d'un nouveau produit</title></head>
				<link rel='shortcut icon' type='image/png' href='favicon.png' />
				<LINK type='text/css' rel='stylesheet' href='styles.css'>
				<body bgcolor='#9FB6CD'>
					<div id='conteneur'>";
		include("fonctionsbis.inc");
		include("inf.php");
	$cxn=mysql_connect(SERVER,LOGIN,MDP) or die or die ('Erreur : '.mysql_error());
	mysql_select_db(BDD,$cxn) or die ('Erreur : '.mysql_error());
		$categorie=$_POST['categorie']; /*S'il s'agit d'une nouvelle catégorie, regarder si les champs appropriés ont bien été renseignés.
			Si ce n'est pas le cas, l'afficher à nouveau afin que l'utilisateur puisse indiquer le nom de la catégorie et sa description.
			Si les champs sont renseignés, ranger la nouvelle catégorie dans la table Type.*/
		if($categorie=="nouveau")
			{
			if($_POST['newdes']=="" or $_POST['neoDesc']=="")
				{
				include("newdes_form.inc");
				exit();
				}
				/*Ajout d'un nouveau type*/
			else
				{
				nouveauType($_POST['newdes'],$_POST['neoDesc'],$cxn);
				$categorie=trim($_POST['newdes']);
				}
			}
		/*Selection des noms de mangas d'une certaine categorie. Si l'utilisateur a défini une nouvelle catégorie, on regarde si elle
			n'existerait pas déjà.*/
		$query="SELECT DISTINCT mangasTitre FROM mangas WHERE mangasEditeur='$categorie' ORDER BY mangasTitre";
		$result=mysql_query($query,$cxn) or die ('SELECT en échec dans nouveauNom');
		$nbLignes=mysql_num_rows($result);
			/*création du formulaire*/
		echo"<table class='page'border='0' cellspacing='0' cellpadding='0'>
				<TR align='center'style='background-image: url(fondbannbisajout.png)' height='256' width='800'>";
		echo"<TD>
			<form action='ajouterMangas.php' method='POST' enctype='multipart/form-data'>\n
					<p class='soustitre'> Nom du Manga</p>\n</TD></TR>";
		echo "<TR align='center'style='background-image: url(fondid.png)' height='507'>
				<TD>";
		if($nbLignes<1)
			{
			echo" <b> Il n'y a aucun nom dans la base de données pour la catégorie $categorie</b>\n";
			}
		else
			{
			while($row=mysql_fetch_assoc($result))
				{
				extract($row);
				echo"<input type='radio' name='mangasTitre' value='$mangasTitre'>";
				echo">$mangasTitre\n";
				}
			}
	
		include("nom_table.inc");
		$mangasDescription="";
		$mangasDate="";
		$mangasImage="";
		$mangasAuteur="";
		include("info_form.inc");
		echo"<TD></TR>";
		echo"<TR align='center'style='background-image: url(fondrestebis.png)' height='217'>
			<TD>";
		echo"<input type='hidden' name='editeur' value='$categorie'>\n";
		echo"<p> <imput type='submit' value='Enregistrer le nouveau nom'>
			<input type='submit' name='neobouton' value='cancel'></form>
			<br><br><a href='choix.html'class='type2'>Revenir à l'interface d'administration</a>\n";
		echo"</TD></TR></TABLE>";
	?>
	</div>
	</body>
	</html>



et enfin AjouterMangas.php
<?php 
	/*Programme: ajoutermangas.php
		description: ajouter un nouvel article à la base de données, puis afficher un écran de confirmation.*/
		
	if(@$_POST['neobouton']=="Annuler")
		{
		header("Lieu:selection.php");
		}
		include("inf.php");
	$cxn=mysql_connect(SERVER,LOGIN,MDP) or die ('Erreur : '.mysql_error());
	mysql_select_db(BDD,$cxn) or die ('Erreur : '.mysql_error());
	foreach($_POST as $champs=>$valeur)
		{
			if($champ !="neoNom" and $champ != "neobouton")
			{
			if($champs=="mangasTitre")
				{
				if($valeur=="nouveau")
					{
					if($_POST['neoNom']=="")
						{
						include("neoNom.inc");
						exit();
						}
					else
						{
						$valeur=$_POST['neoNom'];
						}
					}
				}
			if(!empty($valeur))
				{
				$champs_form[$champ]=ucfirst(strtolower(strip_tags(trim($valeur))));
				$champs_form[$champ]=mysql_real_escape_string($champs_form[$champ],$cxn);
				}
			}
		}	
?>
<html>
	<head><title>Ajout d'un produit</title>
		<link rel="shortcut icon" type="image/png" href="favicon.png" />
		<LINK type="text/css" rel="stylesheet" href="styles.css">
	</head>
	<body bgcolor="#9FB6CD">
		<div id="conteneur">
		<table class='page' border='0' cellspacing='0' cellpadding='0' width="800">
			<tr align='center'style='background-image: url(fondbannbisajoutermangas.png)' height='256' width='800'>
				<td valign="top"> <BR><p class='soustitre'>Ajouter un manga</p></td>
			</tr>
			<tr align='center' style='background-image: url(fondid.png)' height='507'>
				<td>
					<?php
						$champ_array=array_keys($champs_form);
						$champs=implode($champ_array,",",",",",");
						$valeurs=implode($champs_form,'","','","','","');
						$query="INSERT INTO mangas($champs) VALUES(\"$valeurs\")";
						$result=mysql_query($query,$cxn) or die ('Erreur : '.mysql_error());
						$mangasId=mysql_insert_id($cxn);
						$query="SELECT*FROM mangas WHERE mangasId='$mangasId'";
						$result=mysql_query($query,$cxn) or die ('Erreur : '.mysql_error());
						$row=mysqli_fetch_assoc($result);
						extract($row);
						$categorie=$mangasEditeur;
						echo"Le manga suivant a été ajouté au catalogue:<br>
							<ul>
								<li> Editeur: $categorie
								<li> Nom: $mangasTitre
								<li>Date Parution:$mangasDate
								<li>Auteur: $mangasAuteur
								<li>Fichier image: $mangasImage
								<li>Description: $mangasDescription\n";
						echo"</ul>
				</td>
			</tr>";
			echo"<tr align='center'style='background-image: url(fondrestebisajout.png)' height='217'>
				<td>";
						echo "<a href='selection.php'class='type2'>Ajouter un autre manga</a> <br>
								<a href='choix.html'class='type2'>Revenir à l'interface d'administration</a>\n";
					?>
				</td>
			</tr>
		</table>
		</div>
	</body>
</html>



C'est sur la page ajoutermangas.php que je rencontre des erreurs, en effet, sur ma page internet, j'ai ces messages d'erreurs

Warning: array_keys() [function.array-keys]: The first argument should be an array in /mnt/web9/31/99/52403599/htdocs/ajouterMangas.php on line 73

Warning: Wrong parameter count for implode() in /mnt/web9/31/99/52403599/htdocs/ajouterMangas.php on line 74

Warning: Wrong parameter count for implode() in /mnt/web9/31/99/52403599/htdocs/ajouterMangas.php on line 75
Erreur : Column count doesn't match value count at row 1

Est ce quelqu'un pourrait bien m'éclairer sur le problème.Merci d'avance






A voir également:

4 réponses

ChrisCompote Messages postés 73 Date d'inscription mardi 8 juin 2010 Statut Membre Dernière intervention 19 juin 2010 8
9 juin 2010 à 10:46
Ta variable $champ pose problème
PAS
foreach($_POST as $champs=>$valeur)
		{
			if($champ !

MAIS
foreach($_POST as $champs=>$valeur)
		{
			if($champs !

de plus implode n'admet que 2 paramètres :

implode(",",$champ_array);

Cf http://fr.php.net/manual/fr/function.implode.php
0
Merci pour ton aide, j'ai donc rechangé mon code:
<?php 
	/*Programme: ajoutermangas.php
		description: ajouter un nouvel article à la base de données, puis afficher un écran de confirmation.*/
		
	if(@$_POST['neobouton']=="Annuler")
		{
		header("Lieu:selection.php");
		}
		include("inf.php");
	$cxn=mysql_connect(SERVER,LOGIN,MDP) or die ('Erreur : '.mysql_error());
	mysql_select_db(BDD,$cxn) or die ('Erreur : '.mysql_error());
	foreach($_POST as $champs=>$valeur)
		{
			if($champs !="neoNom" and $champs != "neobouton")
			{
			if($champs=="mangasTitre")
				{
				if($valeur=="nouveau")
					{
					if($_POST['neoNom']=="")
						{
						include("neoNom.inc");
						exit();
						}
					else
						{
						$valeur=$_POST['neoNom'];
						}
					}
				}
			if(!empty($valeur))
				{
				$champs_form[$champs]=ucfirst(strtolower(strip_tags(trim($valeur))));
				$champs_form[$champs]=mysql_real_escape_string($champs_form[$champ],$cxn);
				}
			}
		}	
?>
<html>
	<head><title>Ajout d'un produit</title>
		<link rel="shortcut icon" type="image/png" href="favicon.png" />
		<LINK type="text/css" rel="stylesheet" href="styles.css">
	</head>
	<body bgcolor="#9FB6CD">
		<div id="conteneur">
		<table class='page' border='0' cellspacing='0' cellpadding='0' width="800">
			<tr align='center'style='background-image: url(fondbannbisajoutermangas.png)' height='256' width='800'>
				<td valign="top"> <BR><p class='soustitre'>Ajouter un manga</p></td>
			</tr>
			<tr align='center' style='background-image: url(fondid.png)' height='507'>
				<td>
					<?php
						$champ_array=array_keys($champs_form);
						$champs=implode(",",$champ_array);
						$valeurs=implode('","',$champs_form);
						$query="INSERT INTO mangas($champs) VALUES(\"$valeurs\")";
						$result=mysql_query($query,$cxn) or die ('Erreur : '.mysql_error());
						$mangasId=mysql_insert_id($cxn);
						$query="SELECT*FROM mangas WHERE mangasId='$mangasId'";
						$result=mysql_query($query,$cxn) or die ('Erreur : '.mysql_error());
						$row=mysqli_fetch_assoc($result);
						extract($row);
						$categorie=$mangasEditeur;
						echo"Le manga suivant a été ajouté au catalogue:<br>
							<ul>
								<li> Editeur: $categorie
								<li> Nom: $mangasTitre
								<li>Date Parution:$mangasDate
								<li>Auteur: $mangasAuteur
								<li>Fichier image: $mangasImage
								<li>Description: $mangasDescription\n";
						echo"</ul>
				</td>
			</tr>";
			echo"<tr align='center'style='background-image: url(fondrestebisajout.png)' height='217'>
				<td>";
						echo "<a href='selection.php'class='type2'>Ajouter un autre manga</a> <br>
								<a href='choix.html'class='type2'>Revenir à l'interface d'administration</a>\n";
					?>
				</td>
			</tr>
		</table>
		</div>
	</body>
</html>


Maintenant j'ai une autre erreur
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, resource given in /mnt/web9/31/99/52403599/htdocs/ajouterMangas.php on line 61

Warning: extract() [function.extract]: First argument should be an array in /mnt/web9/31/99/52403599/htdocs/ajouterMangas.php on line 62
Le manga suivant a été ajouté au catalogue:

* Editeur:
* Nom:
* Date Parution:
* Auteur:
* Fichier image:
* Description:
0
ChrisCompote Messages postés 73 Date d'inscription mardi 8 juin 2010 Statut Membre Dernière intervention 19 juin 2010 8
9 juin 2010 à 11:29
$row=mysqli_fetch_assoc($result);

remplace par $row=mysql_fetch_assoc($result);
0
J'avais oublié de supprimer le i
Merci beaucoup
Bon maintenant, c'est bien plus de message d'erreurs.
C'est pas pour autant que ça marche.
voici ce qu'on m'indique:

Le manga suivant a été ajouté au catalogue:

* Editeur:
* Nom:
* Date Parution:0000-00-00
* Auteur:
* Fichier image:
* Description:

En fait, ça ne fait qu'auto incrémenter la BDD.
Vais voir ou j'ai commis une erreur
0