Problème de $_POST

Signaler
Messages postés
44
Date d'inscription
dimanche 9 novembre 2003
Statut
Membre
Dernière intervention
9 décembre 2008
-
Messages postés
44
Date d'inscription
dimanche 9 novembre 2003
Statut
Membre
Dernière intervention
9 décembre 2008
-
Bonjours, j'ai un problème avec ce code, en effet lorsque qu'on clique sur le input de validation ()  rien ne se passe, j'ai page blanche, si je met un echo par exemple après "if(!empty($ok) AND !empty($titre))" il ne s'affiche pas, et j'ai remarqué qu'en enlevant le while "while ($cat = mysql_fetch_array($reqc))" à la fin, le code fonctionne, et j'ai bien une validation. Je me demande ce qui ne va pas avec ce while, je ne comprends pas. Peut etre avez vous une idée? Merci

<?

$ok = $_POST['ok'];
$desc = $_POST['desc'];
$titre = $_POST['frm'];
$fnb = $_POST['frmnb'];
$cat = $_POST['cat'];
$catant = $_POST['catant'];

if(!empty($id))
{

if(!empty($ok) AND !empty($titre))
{

$reqcn = $mysql->query("SELECT * FROM ".$mysql->pref."_forums WHERE cat_id='$cat'");
if($cat != $catant)
{
$cn = mysql_num_rows($reqcn)+1;
}
else
{
$cn = mysql_num_rows($reqcn);
}

$reqfs = $mysql->query("SELECT * FROM ".$mysql->pref."_forums WHERE forum_nb>'$fnb' AND cat_id='$catant'");

if(mysql_num_rows($reqfs)>0)
{
  while($f = mysql_fetch_array($reqfs))
  {
   $fnnb = $f[forum_nb] - 1;
     $mysql->query("UPDATE ".$mysql->pref."_forums SET forum_nb='$fnnb' WHERE id='".$f[id]."'");
  }
}

$mysql->query("UPDATE ".$mysql->pref."_forums SET titre='$titre', description='$desc', cat_id='$cat', forum_nb='$cn' WHERE id='$id'");

echo '<script type="text/javascript">document.location="?cat=99&act=9&id='.$cat.'";</script>';

}

$req = $mysql->query("SELECT * FROM ".$mysql->pref."_forums WHERE id='$id'");

echo ' Modifier un forum :

       <form id="modif_frm" action="" method="post">
       <label for="frm">Titre :
       </label>

             
                        
       <label for="desc">Description* :
       </label>';

echo '

Catégorie : <select name="cat">';

$reqc = $mysql->query("SELECT * FROM ".$mysql->pref."_categories ORDER BY cat_nb ASC");

while ($cat = mysql_fetch_array($reqc))
{
  echo' <option value="'.$cat['cat_nb'].'" ';
 
  if($cat['cat_nb'] == mysql_result($req,0,"cat_id"))
    {
        echo 'selected="selected"';
    }
  echo '>'.$cat['titre'].'</option>';
}

echo '       </select>


       </form>
* facultatif (maxi 255 caractères)
     ';

}
?>

6 réponses

Messages postés
289
Date d'inscription
jeudi 5 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2010
3
tu as essayer de mettre if($_POST) {
//et la tu met le code que tu dois executer lorsque l'on valide le formulaire
}
j'espere tavoir aider


Personne ne peut se permettre de juger l'autre....
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
Salut,
d'ou ton ID arrive ?

je vois bien
if(!empty($id))
{

mais null part ou une valeur est attribué a $id.

Il y a aussi
  echo' <option value="'.$cat['cat_nb'].'" ';

faut un espace entre le echo et la quote .
-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
Messages postés
44
Date d'inscription
dimanche 9 novembre 2003
Statut
Membre
Dernière intervention
9 décembre 2008

Rien de vos propositions ne semble faire effet, d'ailleur j'ai meme simplifié le code pour que ca soit encore plus compréhensible:
Le problème reste le meme, quand on clique la validation, j'ai pas le echo 'ok'; qui s'affiche, mais une page blanche.

if($_POST)
{echo 'ok';
}else{

$req = $mysql->query("SELECT * FROM ".$mysql->pref."_forums WHERE id='$id'");

echo '
<form id="add_message" method="post" action="">

<select name="cat">
';

$reqc = $mysql->query("SELECT * FROM ".$mysql->pref."_categories ORDER BY cat_nb ASC");

while ($cat = mysql_fetch_array($reqc))
{
  echo '<option value="'.$cat['cat_nb'].'" ';
 
  if($cat['cat_nb'] == mysql_result($req,0,"cat_id"))
    {
        echo 'selected="selected"';
    }
  echo '>'.$cat['titre'].'</option>';
}
echo '</select>';

       
echo'

</form>';

}
Messages postés
44
Date d'inscription
dimanche 9 novembre 2003
Statut
Membre
Dernière intervention
9 décembre 2008

J'ai encore simplifié et toujours le meme soucis:

if($_POST)
{echo 'ok';
}else{

echo '
<form id="add_message" method="post" action="">

<select name="cat">
<option value="1" >FORUMS DES JOUEUR</option><option value="3" >FORUMS DES DEVELOPPEURS</option></select>';

       
echo'

</form>';

}
Messages postés
44
Date d'inscription
dimanche 9 novembre 2003
Statut
Membre
Dernière intervention
9 décembre 2008

Il faut enlever name="cat" du select pour que ca fonctionne, mais pourquoi?
Messages postés
44
Date d'inscription
dimanche 9 novembre 2003
Statut
Membre
Dernière intervention
9 décembre 2008

Ca doit venir de chez free, parceque chez d'autre hébergeur ca fonctionne, donc chez free, faut changer de nom, catt au lieu de cat par exemple, fallait se creuser le crane pour ce genre de connerie! Merci à vous.