Probleme d'INSERT

Répondre
nonoche
le 02/05/2009 à 13:44
nonoche
Bonjour, j'ai un probleme d'insert qui dure depuis 2 jours et je n'arrive pas à trouver d'où provient mon erreur.

La requete fonctionne tout le temps sur Firefox et quelque fois sur IE, je n'arrive pas à déterminer pourquoi des fois elle foire...
Quand elle foire le echo $_POST['ajouter'] n'affiche rien...

Voici mon code:

<?php
include ('./verif.php');

if (autorisationPage($_SESSION['session_droits'],$tableau_droits['creation_liste']))
{
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Creer une liste de diffusion</title>
<link rel="stylesheet" type="text/css" href="default.css" media="all" />
</head>
<body>
<?php
include ('./header.php');
?>

<div id="content">
<?php
//Initialisation
$id_temp = 0;
$bypass = 1;
$nomNew = "";
echo "blop";
echo $_POST['ajouter'];
//On crée la liste
if ((isset($_POST['ajouter'])) && ($_POST['ajouter'] == 'Ajouter'))
{
echo "blop";
//On recupere les valeurs de nos variables
$nomNew = ucfirst(strtolower($_POST['nom']));

//On verifie qu'elles ne sont pas vide
if ($nomNew != "")
{
echo "test";
//On verifie qu'une liste ayant le meme nom n'existe pas deja
$sql= 'SELECT count(nom_newsletter_liste_diffusion) FROM newsletter_liste_diffusion WHERE nom_newsletter_liste_diffusion=\''.$nomNew.'\'';
$req = mysql_query($sql) or dir('Erreur sql!'.$sql.'<br>'.mysql_error());
$compteur = mysql_fetch_row($req);
mysql_free_result($req);

//Si il n'existe pas de doublon, on l'insere dans la BDD
if ($compteur[0] == 0)
{
$sql= "INSERT INTO newsletter_liste_diffusion VALUES ('','$nomNew',0,0)";
$req = mysql_query($sql) or dir('Erreur sql!'.$sql.'<br>'.mysql_error());
$bypass = 0;

//Redirection vers la page des contacts
echo '<meta http-equiv="refresh" content="0;URL=gestion_listes.php">';
}
//Sinon on affiche un message d'erreur
else
{
echo "<div class=\"cadreRed\" align=\"center\"><br />Une liste du meme nom existe déjà dans la base de données. <br /><br /></div>";
$bypass = 1;
}
}
//Sinon on affiche un message d'erreur
else
{
echo "<div class=\"cadreRed\" align=\"center\"><br />Tous les champs obligatoires n'ont pas été renseignés. <br /><br /></div>";
$bypass = 1;
}
}
if ($bypass == 1)
{
//On affiche le formulaire a remplir pour ajouter la liste
echo "
<br /><br />
<form method=\"post\" name=\"newListe\" action=\"gestion_listes_ajouter.php\">
<table border=\"0\" cellspacing=\"0\" width=\"25%\">
<tr>
<td colspan=\"2\" class=\"txtBold\">
Créer une liste de diffusion
<hr />
</td>
</tr>
<tr>
<td class=\"labels\" align=\"right\">Nom de la liste: &nbsp;&nbsp;&nbsp;</td>
<td><input class=\"input\" id=\"nom\" name=\"nom\" type=\"text\" value=\"".decoder($nomNew)."\" maxlength=\"30\" /></td>
</tr>
<tr>
<td colspan=\"4\" align=\"right\">
<input type=\"button\" value=\"Retour\" onclick=\"window.location.href='gestion_listes.php'\" />
<label>&nbsp;&nbsp;&nbsp;&nbsp;</label>
<input type=\"submit\" name=\"ajouter\" value=\"Ajouter\" />
</td>
</tr>
</table>
<br /><br />
</form>
";
}
?>
</div>
</body>
</html>
<?php
}
else
{
//Si l'employe n'a pas le droit d'afficher la page, on le redirige vers l'accueil
echo '<meta http-equiv="refresh" content="0;URL=accueil.php">';
}
?>


Merci d'avance :)
boro64
le 02/05/2009 à 14:18
boro64
Salut
Heu....pas certain mais, ton chemin:
<?php include ('./verif.php'); ?>

tu en es certain...? Ce serait pas
<?php include ('../verif.php'); ?>
boro64
le 02/05/2009 à 14:44
boro64
Heu....si ils se trouvent dans le même fichier, ne devrais tu pas alors écrire:
<?php include ('verif.php');?>
LupusMic
le 02/05/2009 à 16:04
LupusMic
(boro64) Très franchement, ce n'est pas le problème ici. Préciser que le fichier doit être pris dans le répertoire courant a parfois un comportement différent de celui qu'on obtient lorsqu'on précise uniquement le nom du fichier. Fait joujou avec l'include_path, ça donne parfois des résultats amusants ;)

(nonoche) Je n'ai pas regardé ton code, mais à mon avis ce n'est pas lui le problème. Si tu fais un var_dump de _POST et que tu n'a pas les données attendues qui le peuple, c'est qu'il y a un problème au niveau de HTTP. Soit le navigateur, soit le serveur, ou encore un intermédiaire (proxy ?) sont peut-être à l'origine de la farce.

Peut-être même un patch de sécurité qui empêche la transmission de certaines données jugées dangereuses.

Il faut que tu fasses des scripts de tests pour voir ce qui se passe. Pour mieux observer les échanges, utilises un sniffer tel que Wireshark qui te permettra de voir les données réellement transmises.

Bon courage !
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
nonoche
le 02/05/2009 à 16:21
nonoche
Ca m'a l'air bien complique tout ca!! Je fini les dev et puis je vais regarder ce petit joujoue et voir ce que je peux en tirer :)

A noter que la je test sous free et que je vais bientot passer sous OVH, cela me resoudra petu etre le probleme !!

Merci poru ces infos :)
nonoche
le 03/05/2009 à 16:17
nonoche
Je pense que c'est un probleme avec IE, j'ai teste avec firefox, safari et chrome et ça marche nikel.

J'ai meme simplifie au maximum mon formulaire, toujours le meme soucis sous IE. Le pire c'est que desfois ca fonctionne...
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours