Systeme Formulaire et categorie

Dextouxe
Invité n'ayant pas de compte PHPfrance

16 juil. 2012, 22:27

Voila, je developpe un site avec un ajout de videos qui a 4 categories en tout.

voici le code:
<?PHP include('../inc/header.php'); ?>
<?PHP include('../inc/menuLeft.php'); ?>
						<div id="texte"><div id="overflow">
							<div class="cadre"><div class="titre">Videos:</div><div class="marge_interne">

<style type="text/css">
form
{
text-align:center;
}
</style>

<body>

<?php
if (isset($_POST['pseudo']) AND isset($_POST['lien']) AND isset($_POST['categorie']))
{
if ($_POST['pseudo'] != NULL AND $_POST['lien'] != NULL AND $_POST['categorie'] != NULL)
{
// Connexion à MySQL
mysql_connect("localhost", "root", "");
mysql_select_db("site");

// Sécurité injections HTML
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$lien = mysql_real_escape_string(htmlspecialchars($_POST['lien']));
$categorie= mysql_real_escape_string(htmlspecialchars($_POST['categorie']));

// Enregistrement du message
mysql_query("INSERT INTO videos VALUES('$pseudo', '$lien', '$categorie', '$id')") or die(mysql_error());

// Déconnection de MySQL
mysql_close();

}
}

?>



<form action="videos.php" method="post">

<p>

Pseudo : <input type="text" name="pseudo" /><br />
Lien : <input type="text" name="lien" /><br />
Categorie :
<label>
	  <select name="categorie">
	    <option value="1">1</option>
	    <option value="2">2</option>
	    <option value="3">3</option>
	    <option value="4">4</option>
		</label>
</p>
<br>

<input type="submit" value="Envoyer" />
</p>

</form>

<?PHP include('../inc/footer.php'); ?>

Il y a tout pour categorie, et les sql sont comme ceci:
/*
Navicat MySQL Data Transfer

Source Server         : site
Source Server Version : 50524
Source Host           : localhost:3306
Source Database       : site

Target Server Type    : MYSQL
Target Server Version : 50524
File Encoding         : 65001

Date: 2012-07-16 22:09:39
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `videos`
-- ----------------------------
DROP TABLE IF EXISTS `videos`;
CREATE TABLE `videos` (
  `pseudo` text NOT NULL,
  `lien` text,
  `categorie` varchar(20) DEFAULT NULL,
  `id` int(5) NOT NULL AUTO_INCREMENT,
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=27 DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of videos
-- ----------------------------


Met une fois tout les champs remplie rien n'est ajouté a la BDD.


Cordialement Dextouxe

Nicolai
Invité n'ayant pas de compte PHPfrance

16 juil. 2012, 22:43

je suis dans le meme cas que toi, pour un systeme de categorie.

ViPHP
xTG
ViPHP | 7331 Messages

17 juil. 2012, 08:43

Actives les erreurs PHP, ou au moins va regarder le fichier de logs. ;)
$id dans la requête sort de nulle part par exemple.
Ensuite remplaces les "AND" par "&&".
Car "AND" n'est pas vraiment l'opérateur recherché ici, il est équivalent à "&".

Dextouxe
Invité n'ayant pas de compte PHPfrance

17 juil. 2012, 13:19

ne marche pas, si j'enleve la catégorie ça marche mais je veux que les videos soit dans des categorie differente du genre Loisire, TV etc

ViPHP
xTG
ViPHP | 7331 Messages

17 juil. 2012, 13:34

Si aucune insertion tu as forcement une erreur SQL générée. Regardes donc les logs ou bien dans le code HTML généré au cas où il se cache.

Dextouxe
Invité n'ayant pas de compte PHPfrance

17 juil. 2012, 13:49

voila ne nouveau code PHP:
<?PHP include('../inc/header.php'); ?>
<?PHP include('../inc/menuLeft.php'); ?>
<?PHP include('../config.php'); ?>
						<div id="texte"><div id="overflow">
							<div class="cadre"><div class="titre">Videos:</div><div class="marge_interne">

<style type="text/css">
form
{
text-align:center;
}
</style>

<body>

<?php
if (isset($_POST['pseudo']) && isset($_POST['lien']) && isset($_POST['categorie']) && isset($_POST['id']))
{
if ($_POST['pseudo'] != NULL && $_POST['lien'] != NULL && $_POST['categorie'] != NULL && $_POST['id'] != NULL)
{
// Connexion à MySQL
mysql_connect("$serveurs", "$serveurlogin", "$serveurpass");
mysql_select_db("$dbother");

// Sécurité injections HTML
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$lien = mysql_real_escape_string(htmlspecialchars($_POST['lien']));
$categorie= mysql_real_escape_string(htmlspecialchars($_POST['categorie']));
$categorie= mysql_real_escape_string(htmlspecialchars($_POST['id']));

// Enregistrement du message
mysql_query("INSERT INTO videos VALUES('', '$pseudo', '$lien', '$categorie', '$id')") or die(mysql_error());

// Déconnection de MySQL
mysql_close();

}
}

?>



<form action="videos.php" method="post">

<p>

Pseudo : <input type="text" name="pseudo" /><br />
Lien : <input type="text" name="lien" /><br />
Categorie :
<label>
	  <select name="categorie">
	    <option value="Terrain">Terrain</option>
	    <option value="Equipement">Equipement</option>
	    <option value="Parties">Parties</option>
	    <option value="Autres">Aures</option>
		</label>
</p>
<br>

<input type="submit" value="Envoyer" />
</p>

</form>

<?PHP include('../inc/footer.php'); ?>

et le sql j'ai essayé autre choses
/*
Navicat MySQL Data Transfer

Source Server         : site
Source Server Version : 50524
Source Host           : localhost:3306
Source Database       : site

Target Server Type    : MYSQL
Target Server Version : 50524
File Encoding         : 65001

Date: 2012-07-16 22:51:56
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `videos`
-- ----------------------------
DROP TABLE IF EXISTS `videos`;
CREATE TABLE `videos` (
  `pseudo` text NOT NULL,
  `lien` text,
  `categorie` text NOT NULL,
  `id` int(5) NOT NULL AUTO_INCREMENT,
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=28 DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of videos
-- ----------------------------

dextouxe
Invité n'ayant pas de compte PHPfrance

17 juil. 2012, 13:51

j'ai fait une erreur dans le code que j'ai remit, voici le bon code php:
<?PHP include('../inc/header.php'); ?>
<?PHP include('../inc/menuLeft.php'); ?>
<?PHP include('../config.php'); ?>
						<div id="texte"><div id="overflow">
							<div class="cadre"><div class="titre">Videos:</div><div class="marge_interne">

<style type="text/css">
form
{
text-align:center;
}
</style>

<body>

<?php
if (isset($_POST['pseudo']) && isset($_POST['lien']) && isset($_POST['categorie']) && isset($_POST['id']))
{
if ($_POST['pseudo'] != NULL && $_POST['lien'] != NULL && $_POST['categorie'] != NULL && $_POST['id'] != NULL)
{
// Connexion à MySQL
mysql_connect("$serveurs", "$serveurlogin", "$serveurpass");
mysql_select_db("$dbother");

// Sécurité injections HTML
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$lien = mysql_real_escape_string(htmlspecialchars($_POST['lien']));
$categorie = mysql_real_escape_string(htmlspecialchars($_POST['categorie']));
$id = mysql_real_escape_string(htmlspecialchars($_POST['id']));

// Enregistrement du message
mysql_query("INSERT INTO videos VALUES('$pseudo', '$lien', '$categorie', '$id')") or die(mysql_error());

// Déconnection de MySQL
mysql_close();

}
}

?>



<form action="videos.php" method="post">

<p>

Pseudo : <input type="text" name="pseudo" /><br />
Lien : <input type="text" name="lien" /><br />
Categorie :
<label>
	  <select name="categorie">
	    <option value="Terrain">Terrain</option>
	    <option value="Equipement">Equipement</option>
	    <option value="Parties">Parties</option>
	    <option value="Autres">Aures</option>
		</label>
</p>
<br>

<input type="submit" value="Envoyer" />
</p>

</form>

<?PHP include('../inc/footer.php'); ?>