Récuperation de données

Récuperation de données - PHP - Programmation

Marsh Posté le 16-02-2005 à 16:25:19    

J'ai un problème de récupération de données sur le code présent:
 
-------------------------------------------
PAGE 1
-------------------------------------------
 
<html>
<head></head>
<body>
<form action="admin_evenements2.php" method="get" name="fichier">
   <p>Date :<br>
    <input type="text" name="date">
   <p>Ev&ecirc;nement :<BR>
    <textarea name="evenement"></textarea>    
   </p>
    <input type="submit" name="Submit" value="Envoyer">
</form>
</body>
</html>
 
-------------------------------------------
PAGE 2
-------------------------------------------
 
Done
<?
include("config_db.php" );
$date = $_GET["date"];
$evenement = $_GET["evenement"];
mysql_query("INSERT INTO evenement(date,message) VALUES('$date','$evenement')" );
?>
 
-------------------------------------------
 
 
l'inscription dans la bdd se fait mais avec les champs vides.
Le probleme doit etre bénin...
 
Merci à vous,
 
frlp

Reply

Marsh Posté le 16-02-2005 à 16:25:19   

Reply

Marsh Posté le 16-02-2005 à 17:10:56    

frlp a écrit :

J'ai un problème de récupération de données sur le code présent:
 
-------------------------------------------
PAGE 1
-------------------------------------------
 
<html>
<head></head>
<body>
<form action="admin_evenements2.php" method="get" name="fichier">
   <p>Date :<br>
    <input type="text" name="date">
   <p>Ev&ecirc;nement :<BR>
    <textarea name="evenement"></textarea>    
   </p>
    <input type="submit" name="Submit" value="Envoyer">
</form>
</body>
</html>
 
-------------------------------------------
PAGE 2
-------------------------------------------
 
Done
<?
include("config_db.php" );
$date = $_GET["date"];
$evenement = $_GET["evenement"];
mysql_query("INSERT INTO evenement(date,message) VALUES('$date','$evenement')" );
?>
 
-------------------------------------------
 
 
l'inscription dans la bdd se fait mais avec les champs vides.
Le probleme doit etre bénin...
 
Merci à vous,
 
frlp


 
Salut déjà il y a une grosse faille de sécurité dans ton code tu devrais hacher les données avec htmlentities avant de les insérer. Concernant ta requéte regarde déjà le contenu de ton tableau $_GET en faisant print_r($_GET).
tu sauras si ça vient de ta requéte ou de ton formulaire. A mon avis il y a rien dans tes variables cpour ça que ça déconne
 
:-)


Message édité par sky_striker le 16-02-2005 à 17:11:55
Reply

Marsh Posté le 16-02-2005 à 17:14:20    

sky_striker a écrit :

tu devrais hacher les données avec htmlentities avant de les insérer


un addslashes est plus approprié, et attention à la config de magic_quotes_gpc
 

Reply

Marsh Posté le 16-02-2005 à 17:16:06    

soju a écrit :

un addslashes est plus approprié, et attention à la config de magic_quotes_gpc


 
Plus approprié pourquoi ?
 
J'ai lu que la addslashes ne suffisait pas pour avoir un bon niveau de sécurité ...
 
Pk j'en sais rien mais c'est ce que j'ai lu
 
 

Reply

Marsh Posté le 16-02-2005 à 17:19:58    

sky_striker a écrit :

Plus approprié pourquoi ?


tout simplement parce que htmlentities modifie les données entrées par l'utilisateur

Reply

Marsh Posté le 16-02-2005 à 17:21:37    

soju a écrit :

tout simplement parce que htmlentities modifie les données entrées par l'utilisateur


 
 
C'est un peu le but il me semble ... En plus htmlentities est trés facilement reversible ...
 
 

Reply

Marsh Posté le 16-02-2005 à 17:24:04    

sky_striker a écrit :

C'est un peu le but il me semble ... En plus htmlentities est trés facilement reversible ...

même si htmlentities est facilement reversible je pense qu'il est plus logique de mettre dans la base les vrai données, enfin c'est mon avis.
@frlp : desolé pour le hors sujet ;)

Reply

Marsh Posté le 16-02-2005 à 17:27:11    

soju a écrit :

même si htmlentities est facilement reversible je pense qu'il est plus logique de mettre dans la base les vrai données, enfin c'est mon avis.
@frlp : desolé pour le hors sujet ;)


 
 
Je suis d'accord avec toi mais dans ce cas il faut me montrer par A+B que addslashes suffit à assurer un niveau de sécurité suffisant sachant que les navigateurs (IE notament) sont trés permissif sur la syntaxe ...
 
Pour le reste et ne voyant pas le pK je fais confiance aux pros de la sécurité ...
 
:-)
 
Désolé pour le hors sujet

Reply

Marsh Posté le 16-02-2005 à 17:33:43    

pour faire une sql injection il faut réussir à sortir des quote, donc si tu les échappes ya pas de problèmes (et peu importe le navigateur)

Reply

Marsh Posté le 16-02-2005 à 17:41:25    

héhé pas de problemes :)
 
Pour le code, c'est la base là, je l'enchérirai aprés mais pour le moment je veux juste que cela marche pour aprés rajouté les sécus et tout le reste.
 
print_r($_GET)     donne          Array ( )
 

Reply

Marsh Posté le 16-02-2005 à 17:41:25   

Reply

Marsh Posté le 16-02-2005 à 18:00:42    

Bon c'est cool, mon code n'est pas pourri :)
 
C'est mon serveur qui est capricieux... Donc quelqu'un peut il me traduire mon code php avec les thermes universels svp ? ou m aguiller.
 
merci

Reply

Marsh Posté le 16-02-2005 à 18:02:01    

soju a écrit :

pour faire une sql injection il faut réussir à sortir des quote, donc si tu les échappes ya pas de problèmes (et peu importe le navigateur)


 
Il n'y a malheureusement pas que des SQL injections ...

Reply

Marsh Posté le 16-02-2005 à 18:04:49    

frlp a écrit :

Bon c'est cool, mon code n'est pas pourri :)
 
C'est mon serveur qui est capricieux... Donc quelqu'un peut il me traduire mon code php avec les thermes universels svp ? ou m aguiller.
 
merci


 
A mon avis le probléme ne vient pas de ton serveur ... Essais d'appeller le script de traitement du formulaire sur la même page (en changeant l'adresse dans le action) et tiens nous au courant du résultat...

Reply

Marsh Posté le 16-02-2005 à 18:05:02    

sky_striker a écrit :

Il n'y a malheureusement pas que des SQL injections ...


tu penses a quoi en particulier ?

Reply

Marsh Posté le 16-02-2005 à 18:08:54    

je viens de tester sur free, le meme code, et les variables se récup nikel.
 
Donc je pense au serveur.
 

Reply

Marsh Posté le 16-02-2005 à 18:09:15    

soju a écrit :

tu penses a quoi en particulier ?


 
Sur le principe franchement je suis d'accord avec toi pk faire compliqué qd on peut faire plus simple. Mais d'un autre coté je me dit qu'au pire le HTML est de toute façon plus neutre que du texte. Donc dans ce cadre là je jouons la carte de la prudence.
 
Sinon il y a les injections de script coté client genre tu met un truc qui fait un reload infinie sur une page jusqu'a effondrement du serveur (flood). Enfin il y a la foule de chose que toi et moi et les autres ne savons pas mais il y a un truc que je sais c qu'un programme c du texte pas du html ...
 
Réponse à suivre
 
 

Reply

Marsh Posté le 16-02-2005 à 18:11:03    

frlp a écrit :

je viens de tester sur free, le meme code, et les variables se récup nikel.
 
Donc je pense au serveur.


 
Tu le test sur quoi ???  
 
Je pense au serveur ou à la version de PHP installer pour peu que se soit une vieille version et ton $_GET deviendrait HTTP_GET_VARS un truc comme ça ...
 
Mais bon là dessus je m'aventure pas trop  :jap:


Message édité par sky_striker le 16-02-2005 à 18:11:25
Reply

Marsh Posté le 16-02-2005 à 18:15:16    

bon revenons à nos moutons ^^
 

sky_striker a écrit :

$_GET deviendrait HTTP_GET_VARS un truc comme ça ...

bien vu
 
au fait, fan de gladiator ?  ;) strength & honor !

Reply

Marsh Posté le 16-02-2005 à 18:22:13    

marche pas ! :/  
 
Je vois directement avec le support du serveur...
 
Merchi :D

Reply

Marsh Posté le 16-02-2005 à 19:04:16    

Faut echapper tout ce qui peut servir de commentaire sous sql


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 16-02-2005 à 20:01:04    

soju a écrit :

bon revenons à nos moutons ^^
 
bien vu
 
au fait, fan de gladiator ?  ;) strength & honor !


 
Oui j'adore ce film ...

Reply

Marsh Posté le 17-02-2005 à 09:36:39    

La réponse au dilemme.
 
la valeur du register_globals est sur off par défaut, il faut donc la mettre sur On dans le php.ini (mais cela active aussi une faille de sécurité).
 
Voila voila,  
 
rien de grave quoi :)
 
 
 
 

Reply

Marsh Posté le 17-02-2005 à 09:41:57    

frlp a écrit :

La réponse au dilemme.
 
la valeur du register_globals est sur off par défaut, il faut donc la mettre sur On dans le php.ini (mais cela active aussi une faille de sécurité).
 
Voila voila,  
 
rien de grave quoi :)


 
Salut
 
Il y a un truc que je capte pas le register global c'est ce qui justement te permet d'accéder à tes variable via $_GET["evenement"]eu lieu de simplement $evenement. Donc ça devrait marché même si il est à off ...
 
Tu peux juste nous redonner le script qui va bien du coup. Il y a un truc que j'ai pas bien capté ou quoi ...
 

Reply

Marsh Posté le 17-02-2005 à 09:53:28    

tout à fait d'accord avec la derniere remarque, dans la mesure ou tu utilise $_POST['ta_variable'], le register_global peux (et meme doit, de préférence) etre à OFF.


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 17-02-2005 à 09:57:57    

C'est bizard mine de rien ... Il a pourtant fait ca proprement on dirait ... Si t'essaie des les recuperer avec POST (et donc mettre la method="POST" ) ca plante toujours?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 17-02-2005 à 09:59:45    

ouais mine de rien mine de crayon c bizard

Reply

Marsh Posté le 17-02-2005 à 10:00:55    

Au fait .. j'ai essayé de me retenir mais j'y arrive pas ... la balise <input> est une balise orpheline => <input />
 
idem pr <br> => <br />


Message édité par esox_ch le 17-02-2005 à 10:01:32

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 17-02-2005 à 10:02:58    

esox_ch a écrit :

Au fait .. j'ai essayé de me retenir mais j'y arrive pas ... la balise <input> est une balise orpheline => <input />
 
idem pr <br> => <br />


 
Je comprend pas où tu veux en venir ... Oui la balise input est orpheline et les siennes le son nan ???
 
Tu veux dire que c à cause de sa notation des balises que ça marche pas. Enfin moi je note comme lui et ça marche donc ...


Message édité par sky_striker le 17-02-2005 à 10:06:43
Reply

Marsh Posté le 17-02-2005 à 10:07:48    

qu'est-ce que ça peut faire que ces balises soit orpheline ??? le pb vient certainement pas de là, et surtout on a pas son doctype, s'il fait du HTML 4.01 trasitionnal, son code est valide comme ça...
 
Je suis dac pour insister sur un code propre est valide, mais comme on ne sait pas quel niveau de validation il a choisit... son code peut très bien etre correct...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 17-02-2005 à 10:12:09    

Non non c'est pas ça qui fait que ça marche pas, c'est juste qu'en lisant le script ça m'a fait flash la balise input non fermée ... Et maintenant que tu le dis c'est vrai que le doctype manque aussi ... en fin bon c'etait juste pour que ca se présente mieux ... Mais honnetement j'ai aucune idée de pourquoi ca plante .. tu peux mettre les pages en ligne pour qu'on teste ? Des fois que l'erreur soit autre part


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 17-02-2005 à 10:14:08    

Moi je dirais surtout que filer le contenu d'une textarea en GET c'est pas supair :( Quand on envoi des informations qui ont des effets de bord (ici insertion dans une BDD), faut toujours mettre en POST, donc déjà on peut chercher de ce côté là

Reply

Marsh Posté le 17-02-2005 à 10:22:10    

FlorentG a écrit :

Moi je dirais surtout que filer le contenu d'une textarea en GET c'est pas supair :( Quand on envoi des informations qui ont des effets de bord (ici insertion dans une BDD), faut toujours mettre en POST, donc déjà on peut chercher de ce côté là


 
En plus si il y a beaucoup de texte à transmettre ça risque de ne pas passer car il me semble que l'on est limité en taille avec cette méthode ...
 
Si connerie corriger SVP  :D  

Reply

Marsh Posté le 17-02-2005 à 10:22:54    

Possible oui, et sans parler des caractère invalides dans une URL :/

Reply

Marsh Posté le 17-02-2005 à 10:23:56    

Effectivement l'url est limitée, je crois justement que c'etait sur ce forum que qqn nous avait demandé de tester son site et que qqn lui avait envoyé toute les specification xhtml par url pour lui saturer la base de donnée


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 17-02-2005 à 10:24:51    

arf :D

Reply

Marsh Posté le 17-02-2005 à 10:28:21    

clair que t'a une limite par le GET, mais en fait t'en a une aussi en POST (bcp moins stricte il est vrai)...
 
En fait "théoriquement", un textarea n'a pas de limite, mais "pratiquement" les navigateurs sont prévu pour bloqué au-delà d'un certain tampon, qui si ma mémoire est bonne, est en général de 64KO, ce qui laisse quand meme de quoi écrire une sacré prose :D
 
Ceci provient de recherche sur le net d'il ya au moins un an (date à laquel je me suis penché sur le webmastering) et de ce qu'il en reste dans ma mémoire  
--> faut prendre avec une certaine ralitivité, merci d'avance de votre indulgence  :ange:


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 17-02-2005 à 10:30:46    

Xav_ a écrit :

clair que t'a une limite par le GET, mais en fait t'en a une aussi en POST (bcp moins stricte il est vrai)...
 
En fait "théoriquement", un textarea n'a pas de limite, mais "pratiquement" les navigateurs sont prévu pour bloqué au-delà d'un certain tampon, qui si ma mémoire est bonne, est en général de 64KO, ce qui laisse quand meme de quoi écrire une sacré prose :D
 
Ceci provient de recherche sur le net d'il ya au moins un an (date à laquel je me suis penché sur le webmastering) et de ce qu'il en reste dans ma mémoire  
--> faut prendre avec une certaine ralitivité, merci d'avance de votre indulgence  :ange:


 
Mais supposes supposes donc à volonté un forum est un lieu d'échange et en ce moment c'est ce que nous faisons ...
 
Parfois il arrive que l'on échange des conneries c vrai mais on apprend plus qd on dit une connerie que qd on a raison ...
 
 :hello:
 
PS: dans ton cas je sais pas si c une connerie ou pas ... :kaola:


Message édité par sky_striker le 17-02-2005 à 10:31:21
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed