probleme de form

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme de form

par sausee2005 » 27 juin 2005, 14:38

](*,) j'ai trouve j'avais oubliés les ' devant bloc1 et bloc2 (type texte) :shock: :tir2:
merci a tous je devrais plus rencontrer de probleme normalement

par sausee2005 » 27 juin 2005, 14:24

nan c'est pas ça j'ai essayé sans conviction et ça marche pas
ps : il y avait un guillemet en trop

par DroP » 27 juin 2005, 14:21

oué petite erreur avec les points virgules
<? 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=".$_POST['bloc1'].", bloc2=".$_POST['bloc2']." WHERE id=".$_GET['code']."") or die ("fe chier");
?>

par sausee2005 » 27 juin 2005, 14:18

ça marche presque(il ya plus de message d'erreur)
maintenant le problème doit venir de la requête vu qu'il va au 2 ème die
<? 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=".$_POST['bloc1'].", bloc2=".$_POST['bloc2']." WHERE id=".$_GET['code'].";") or die ("fe chier");
?>

par sausee2005 » 27 juin 2005, 13:17

en modifiant le code pour obtenir le résultat (c'est pas moi qui l'ai rédigé et j'y ais pas touché de peur d'y faire une connerie vu que je comprends pas trop ce qu'il fait)
j'obtiens ça sur mozilla
Notice: Undefined variable: requete in c:\program files\easyphp1-8\www\modifn.php on line 9

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\modifn.php on line 9
l'url pour accéder à la page de validation est
et pour aller à la page de modif c'est
apparement il prend pas code en compte parce qu'il n'est pas dans l'url

par DroP » 27 juin 2005, 12:00

est ce que tu peux copier coller l'url qui te permet d'arriver à ta page de validation ?

par sausee2005 » 27 juin 2005, 11:58

dans la page de validation?
parce que dans les autres ça y est déjà
j'ais fait ça ma dit ça
Notice: Undefined index: code in c:\program files\easyphp1-8\www\modif2n.php on line 3
c'est la même chose qu'avant il doit manquer autre chose

par DroP » 27 juin 2005, 11:57

je ne comprend pas trop ta maniere de récupéré les resultats

logiquement, vu que tu design un code dans ta requete (j'imagine que ce code est unique) donc il ne doit ressortir que 1 enregistrement donc :

remplace :
WHILE ($Resultat!=$Nombre)
{
$id = mysql_result($Requete,$Nombre,"id");
$bloc1 = mysql_result($Requete,$Nombre,"bloc1");
$bloc2 = mysql_result($Requete,$Nombre,"bloc2");
$Nombre++;
} 
par :
 $r = mysql_fetch_array($requete);
$id = $r["id"];
$bloc1 = $r["bloc1"];
$bloc2 = $r["bloc2"];

par DroP » 27 juin 2005, 11:55

dans ta page alors, il faut bien que tu mette : $_GET['code'] car tu passe la variable code par l'url (tu n'à pas le choix vu que tu fais un lien)

par sausee2005 » 27 juin 2005, 11:50

code vient de la page précédente qui est passé dans l'url
<table align="center" border="1">
                <tr>
                    <td valign="top">
                        <p align="center"><font face="Comic Sans ms">News
                        :</font></p>
                    </td>
                </tr>
                <tr>
                    <td>
                        <p><font face="Comic Sans ms">
						<BR>
<center><font size="4"><b>L'espace News !</b></font></center><br><br><br>
<table align=center border="1">
  <tr> 
    <td  valign=top>
<?php
require('conf.php');//Inclure les paramètres conf
$c1 = @mysql_connect("$hote","$log","$pass") or die("IMP TO CONNECT");//Connexion à SQL
@mysql_select_db("$base",$c1) or die("selection impossible");
$sql1 = "select * from news order by id desc";
//"select * from promotion order by id desc limit 15";
//Afichage des promotion, vous pouvez changé limit 5 par limit 10 ou autre.<br>
//Limit 2 limite à 2promotion par pages, 5, à 5news par page.
if($p1 = @mysql_unbuffered_query($sql1,$c1)){
while($data1 = @mysql_fetch_array($p1)){
?>
      <table border="1">
              <tr> 
                <td>
                  <font size="2">
                 <? echo $data1['bloc1']; ?></font>
				 <form name="form1" method="post" action="index.php?page=modifn&code=<? echo $data1['id']; ?>">
          <div align="center"> 
            <input type="submit" name="Submit" value="Modifier">
          </div>
        </form>
      <form name="form1" method="post" action="index.php?page=suprimern&code=<? echo $data1['id']; ?>">
          <div align="center"> 
            <input type="submit" name="Submit2" value="Suprimer">
          </div>
        </form>
				 </td>
				 
              </tr>
                          </table>
            <?
}
}
 //Fermeture SQL 2 ?>           </td>
  </tr>
</table>
						<BR><BR><BR>
						</font></span></p>
                    </td>
					</tr><tr><td>
					  <p><strong><font color="#000000" size="1.8" face="Verdana, Arial, Helvetica, sans-serif">[ <a href="index.php?page=ajoutn">Ajouter des new</a> ]</font></strong></p>
               </td> </tr>
            </table>

par DroP » 27 juin 2005, 11:47

le tout est de savoir d'ou vient ta variable "code"

par sausee2005 » 27 juin 2005, 11:45

euh oui je me suis aperçu que t'avais raison j'avais tout changé et finalement j'ai dû en remettre pas mal
ps: j'avais plus rien du tout sur le site

il y a toujours le problème est-ce que ça viendrait pas du fait que
$Requete = mysql_query("SELECT * FROM news WHERE id=".$_GET['code'].";");
soit en get je l'ais passé en post mais ça a tout fait foiré
<? require('conf.php') ?>
<?
mysql_select_db("$base", mysql_connect("$hote", "$log", "$pass"));
mysql_query("OPTIMIZE TABLE news");
mysql_query("CHECK TABLE news");
[u]$Requete = mysql_query("SELECT * FROM news WHERE id=".$_GET['code'].";");[/u]
$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=\"post\" action=\"modif2n.php\">
  <input type='hidden' name='id' value=".$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>
";
?>

par DroP » 27 juin 2005, 11:37

ca depend des cas ^^, en absolue il n'y a pas de meilleur ou moins bon, sinon y en aurait pas 2 mais que 1 methode :p

par sausee2005 » 27 juin 2005, 11:15

ok donc vaux mieux utiliser le post alors

par zeus » 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