probleme de form

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 juin 2005, 15:27

[RESOLU] :?:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 419 Messages

24 juin 2005, 15:33

résolu merci maintenant je me lance sur modifier

Eléphant du PHP | 419 Messages

27 juin 2005, 09:40

bonjour euh j'arrive pas à trouver l'erreur sur la page modif


la page modifier qui marche apparement
<? require('conf.php') ?>
<?
mysql_select_db("$base", mysql_connect("$hote", "$log", "$pass"));
mysql_query("OPTIMIZE TABLE news");
mysql_query("CHECK TABLE news");
$Requete = mysql_query("SELECT * FROM news WHERE id=".$_GET['code'].";");
$Resultat = mysql_num_rows($Requete);
$Nombre = 0;
WHILE ($Resultat!=$Nombre)
{
$id = mysql_result($Requete,$Nombre,"id");
$bloc1 = mysql_result($Requete,$Nombre,"bloc1");
$bloc2 = mysql_result($Requete,$Nombre,"bloc2");
$Nombre++;
}
echo "
<html>
<head>
<title>Administration de la news $id</title>
</head>

<body>
<form name=\"form1\" method=\"get\" action=\"modif2n.php?id=$id\">
  <table width=\"80%\" border=\"1\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
    <tr> 
      <td>Bloc1</td>
      <td><input name=\"bloc1\" type=\"text\" value=\"$bloc1\"></td>
    </tr>
    <tr> 
      <td>Bloc2</td>
      <td><textarea name=\"bloc2\" cols=\"50\" rows=\"10\">$bloc2</textarea></td>
    </tr>
  </table>
  <div align=\"center\">
    <input type=\"submit\" name=\"Submit\" value=\"Modifier\">
  </div>
</form>
</body>
</html>
";
?>
et sa page de validation qui me renvoie trois messages d'erreur
<? require('conf.php') ?><strong><font size="1.8" face="Verdana, Arial, Helvetica, sans-serif">Bien modifier</font></strong><?
mysql_select_db("$base", mysql_connect("$hote", "$log", "$pass")) or die ("fe chier"); 
mysql_query("UPDATE news SET bloc1=".$_GET['bloc1'].", bloc2=".$_GET['bloc2']." WHERE id=".$_GET['code'].";") or die ("fe chier");
?>
mozilla me ramène ça
Bien modifier
Notice: Undefined index: bloc1 in c:\program files\easyphp1-8\www\modif2n.php on line 3

Notice: Undefined index: bloc2 in c:\program files\easyphp1-8\www\modif2n.php on line 3

Notice: Undefined index: code in c:\program files\easyphp1-8\www\modif2n.php on line 3
fe chier
donc apparement ça vient des variables mais là je vois plus j'ais fait comme les pages précédentes mais j'ais dû zapper un truc
Modifié en dernier par sausee2005 le 27 juin 2005, 10:37, modifié 1 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2005, 09:48

Ecoute sausee2005, je veux bien faire preuve de patience, mais j'attend que tu prennes en compte mes remarques en retour :evil:

Si tu remonte le post, on s'est rendu compte que ces erreurs apparraissaient parce que les variables GET n'existaient pas

Je ne me rappelle plus exactement quels sont les noms, mais je sais qu'on a résolu cette erreur sur la page de suppression en remplacant les noms des variables GET

Epluche un peu ton code et suis ces quelques conseils :
- a quoi correspondent bloc1 et bloc2
- ou est-ce que tu les utilises
- retrouve les noms que TU as donné
- remplace les dans la page de vérification
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 419 Messages

27 juin 2005, 10:07

justement j'ai modifié les variables comme sur la page suppression
mais là je vois pas pourquoi il l'est prend pas

c'est pas moi qui est fait les pages ça vient peut être de la page modif
mais quand je change les variables il me met une erreur
$Requete = mysql_query("SELECT * FROM news WHERE id=".$_GET['code'].";");
$Resultat = mysql_num_rows($Requete);
$Nombre = 0;
WHILE ($Resultat!=$Nombre)
{
$id = mysql_result($Requete,$Nombre,"id");
$bloc1 = mysql_result($Requete,$Nombre,"bloc1");
$bloc2 = mysql_result($Requete,$Nombre,"bloc2");
$Nombre++; 

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2005, 10:15

<form name=\"form1\" method=\"post\" action=\"modif2n.php?id=$id\">
mysql_query("UPDATE news SET bloc1=".$_GET['bloc1'].", bloc2=".$_GET['bloc2']." WHERE id=".$_GET['code'].";") or die ("fe chier");
Je viens de trouver une erreur :
Dans le form du formulaire, la méthode est POST alors que tu cherche à récupérer tes variables par GET

Soit change le formulaire en GET, soit changer tes $_GET par des $_POST
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 419 Messages

27 juin 2005, 10:28

merci maintenant il reconnaît les variables à part code (celui qui apparaît dans l'url)

il me dit
Bien modifier
Notice: Undefined index: code in c:\program files\easyphp1-8\www\modif2n.php on line 3
fe chier
ça doit venir de là mais quand j'y touche il me marque des messages d'erreur
action=\"modif2n.php?id=$id\"

Eléphant du PHP | 91 Messages

27 juin 2005, 10:29

ton id, passe le plutot dans un champs "hidden" plutot que de le passer dans l"action du formulaire

et
$Requete = mysql_query("SELECT * FROM news WHERE id=".$_GET['code'].";"); 
si ton formulaire utilise la methode "POST" il faut que tu mettte :
$Requete = mysql_query("SELECT * FROM news WHERE id=".$_POST['code'].";"); 
sinon c'est normal qu'il ne reconnaisse pas ta variable "code"
YaTTa :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2005, 10:32

Drop à raison, enlève ce id de l'action et met le dans un input type=hidden

Il me semble qu'on a déjà levé ce problème
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 419 Messages

27 juin 2005, 10:37

euh je remplace action par hidden comme ça
hidden=\"modif2n.php?id=$id\"
ça change quoi?
il reconnaît pas il me renvoie à ma page par défaut? :shock:
et pour le post je l'ais remplacé par get
j'avais pas édité

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2005, 10:48

Pas "remplace action par hidden" mais "enleve id de action pour hidden"
<form name="form1\" method=\"post\" action=\"modif2n.php\">
  <input type='hidden' name='id' value='".$id."'>
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 91 Messages

27 juin 2005, 10:48

non non faut pas faire comme ca :)


mais comme ca :)
<form name="formulaire" action="modif2n.php" method="post">
<input type="hidden name="id" value="<? echo $id; ?>">
YaTTa :D

Eléphant du PHP | 419 Messages

27 juin 2005, 10:57

ça marche mais c'est pour faire quoi?
moi j'ai mis get à la place faudrait que je mette post partout pour que ça marche mieux ou get c'est bien aussi?
et il y a toujours le problème après à la page de confirmation
au sujet de code
Notice: Undefined index: code in c:\program files\easyphp1-8\www\modif2n.php on line 3

Eléphant du PHP | 91 Messages

27 juin 2005, 11:03

différence entre GET et POST :

GET => variables passées dans l'url (du type index.php?v=1&p=2&...
Limité à 255 caractères

POST => Les variables sont cachées, pas de limite de caractères

pour ton erreur essaye :
echo $_POST['code'];
YaTTa :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2005, 11:06

En fait, ton formulaire est déclaré en POST, ce qui veut dire que les informations vont passer avec les entêtes HTTP, c'est à dire de manière camouflée pour l'utilsateur

C'est une méthode que je préfère car l'utilisateur ne peut pas agir sur les variables

Ensuite, vu que ton formulaire est en method POST, il vaut mieux que tu ne passe pas de valeur par l'url

Enfin, DANS LES PAGES DE MODIFICATIONS il faut que tu remplace les $_GET par des $_POST
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer