Envoie de données vers mysql

Eléphant du PHP | 299 Messages

15 févr. 2005, 17:16

Voici mes scripts qui me permettent (normalement) de poster des blague ou des news. Ils marchent tres bien en local, mais une fois sur deux en ligne... Ce qui a le dont de m'énerver...

Help me please, ou sont les erreurs???


Pour les blagues:
<?
$nom = stripslashes(ucfirst($_REQUEST['nom']));
$blague = wordwrap(stripslashes(nl2br(ucfirst($_REQUEST['blague']))),20," ",1);

if(isset($nom) or isset($blague)){
header("Location: ../index.php");

	}
include("../config.php"); 
//connexion au serveur MySQL

$connexion = mysql_connect($dbhost,$dbuser,$dbpasswd);
if (!$connexion) {
echo "Impossible d'effectuer la connexion";
exit;
}

//sélection de la BDD

$db = mysql_select_db("$usebdd", $connexion);
if (!$db) {
echo "Impossible de sélectionner cette base données";
exit;
}

// insertion des données

$resultat_sql = mysql_query("insert into blague values ('0','$nom','$blague')",$connexion);

header("Location: ../index.php");

?>
Pour les News:
<?
$nom = stripslashes(ucfirst($_REQUEST['Nom']));
$news = nl2br(stripslashes(ucfirst($_REQUEST['Texte'])));
$titre = stripslashes(ucfirst($_REQUEST['Titre']));
$date = date("Y-m-d H:i");
if(!isset($nom) or !isset($news) or !isset($titre)){
			header("Location: ../index.php?page=p1");
			die();
	}else{
     include("../config.php"); 
     //connexion au serveur MySQL
     
     $connexion = mysql_connect($dbhost,$dbuser,$dbpasswd);
     	if (!$connexion) {
     		echo "Impossible d'effectuer la connexion";
     		exit;
     	}
     
     //sélection de la BDD
     
     $db = mysql_select_db("$usebdd", $connexion);
     	if (!$db) {
     		echo "Impossible de sélectionner cette base données";
     		exit;
     	}
     	
     // insertion des données   
     $resultat_sql = mysql_query("insert into news values ('0','$nom','$titre','$news','$date')",$connexion);          
			header("Location: ../index.php?page=p1");
			die();
       }
?>
Merci beaucoup de m'aider

Mammouth du PHP | 19672 Messages

16 févr. 2005, 14:43

Salut,
le problème est peut-être bien dans ta requête :

Code : Tout sélectionner

insert into blague values ('0','$nom','$blague')
Si je regarde ça, j'en déduis que tu as trois champs dans ta table et le premier aura toujours la valeur 0 (zéro)... En outre, ce chiffre est entre apostrophes, ce qui signifie qu'il sera traité comme une chaine de caractères, si le champ est du type Int, il va te jeter. Quelque chose me dit que ce champ est ta clé primaire et qu'elle est en auto_incrément. Ce qui signifie que tu ne peux rien enregistrer dans ta table. Si j'ai raison jusqu'ici, il faudrait modifier la requête de la manière suivante :

Code : Tout sélectionner

INSERT INTO `blague` (`nom`, `blague`) VALUES ('".$nom."','". $blague ."');
De cette manière, on désigne expréssement le nom des champs qu'on remplit et on laisse au soin de MySQL le soin de numéroter automatiquement la clé primaire.
J'espère que ça répond à ton problème.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 299 Messages

16 févr. 2005, 17:10

C'est fort possible, je vais essayer ca :) merci