Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: ruyuku le le 11-03-2013 a 00:00:44

Titre: [RESOLU] Problème PHP
Posté par: ruyuku le le 11-03-2013 a 00:00:44

Salut à tous,

J'ai crée un site de A à Z, ainsi sur ce site pour éviter des "injections sql" j'ai mis des conditions en php, en local cela fonctionne mais lorsque le site est en ligne ca ne fonctionne plus. Les conditions sont par concerne par exemple les arrondissements, je lui dis si par exemple l'arrondissement dans la barre d'adresse n'est pas compris entre 1 et 20 ( j'ai aussi pris les cas négatifs) tu renvois sur la page 404.
Donc comme je le disais en local ca fonctionne mais une fois le site en ligne cela ne fait plus le travail et donc on peut aller dans l'arrondissement par exemple 3000 et ainsi ajouter des avis.
Quelqu'un a t il une solution Please.

Pr l'instant j'ai retiré le site du web en attendant de réglé cela .

Merci

Titre: Re:Problème PHP
Posté par: WebD le le 11-03-2013 a 00:14:58

Salut,

C'est quoi que tu appels l'arrondissement?
Tu peux nous montrer le test qui ne passe pas?

Olivier.

Titre: Re:Problème PHP
Posté par: ruyuku le le 11-03-2013 a 00:21:43

Je ne sais pas ce que tu appel test? Arrondissement c est que sur paris il y a que 20 arrondissement. Donc ce que j ai fais c est créer une condition en php qui recuperer ce quil y a ds la barre d adresse et si cela ne correspond pas a un arrondissement compris entre 1 & 20 alors ca renvoi sur une page 404. Le truc bizzar c est que ca fonctionne en local mais pas en ligne nn?

Titre: Re:Problème PHP
Posté par: WebD le le 11-03-2013 a 00:23:06

Montre moi ton test, c'est à dire ton if en php

Titre: Re:Problème PHP
Posté par: ruyuku le le 11-03-2013 a 00:34:12

Ok dsl.

If {($_Get['arron' ]>20 || $_GET['arron']<1)
Header('Location: http://www.monsite.fr')
}


Voila ce que j ai ecris

Titre: Re:Problème PHP
Posté par: WebD le le 11-03-2013 a 00:36:39

C'est comme ça:


Code:

If ( ($_GET['arron' ] > 20) || ($_GET['arron'] < 1) )
{
Header('Location: http://www.monsite.fr');
}


Titre: Re:Problème PHP
Posté par: ruyuku le le 11-03-2013 a 00:40:29

Ouai c est comme ca que je l ai ecris, dsl je suis sur mon telephone.

Donc si toi aussi tu l ecris comme ca ca devrai fonctionner non?


Merci pour ton aide

Titre: Re:Problème PHP
Posté par: WebD le le 11-03-2013 a 00:41:50

Ouai

Titre: Re:Problème PHP
Posté par: ruyuku le le 11-03-2013 a 00:46:44

Ba ca veut pas fonctionné, le truc c est que je pense pas que ce soit au niveau de l ecriture puisque comme je l ai dis en local ca fonctionne et c est pas un pb de navigateur par ce que lorsque j ai testé avec le site en ligne que ce soit sur chrome ou sur mozilla ca passer pas.

Merci et si klk1 d autre a une idee je suis preneur

Titre: Re:Problème PHP
Posté par: pppplus le le 11-03-2013 a 14:39:05

un vieux PHP qui utiliserait les super globales ?

essayez de tester : $arron

Et sinon, qq petits tests du genre
print_r($_GET); pour voir ce que vous avez dedans

Titre: Re:Problème PHP
Posté par: gagnedescodes le le 11-03-2013 a 21:15:57

Salut je pense que ta solution serai de type :


Code:

if(
   ((int)$_GET['arron'] >= 1) AND
   ((int)$_GET['arron'] <= 20)   
){
// tu fait ton traitement de ta page
}
else{
   // tu renvoie sur ton 404
}

Titre: Re:Problème PHP
Posté par: AlainPost le le 12-03-2013 a 18:03:53

Ca dépend, si tu es dans le XVIème arrondissement pas de problème de sécurité par contre XVIIIème là, ferme ton site !

Titre: Re:Problème PHP
Posté par: ruyuku le le 12-03-2013 a 20:35:34

Merci pour toutes vos réponses, j'ai trouvé la solution.

Il fallait déjà que je mette mon if... avec le header location, tout en haut de ma page, je n'ai pas bien compris pourquoi mais ca marche donc c'est le principal.
et il fallait que je mette un exit après le header(location)

Ca donne ca ;

if (($_GET['arron'] <1) || ($_GET['arron']>20))
{
header("Location:http://www.monsite.com");
exit;
}

et tout ceci avant la balise doctype.

Donc encore merci a ceux qui ont pris le temps de m'aider.

Titre: Re:[RESOLU] Problème PHP
Posté par: pppplus le le 12-03-2013 a 20:53:53

en fait c'est tout simple header(); doit être mis avant tout sortie

Si vous aviez activé les erreurs PHP, vous auriez eu le message clair.

Hors, comme vous n'aviez rien, nous pensions que c'était la condition qui n'était pas remplie, et qui donc ne déclenchait rien du tout.

Activer les erreurs PHP lorsqu'on a un problème est vraiment indispensable, ça donne bien souvent le problème exact, et donc presque la réponse.

Titre: Re:[RESOLU] Problème PHP
Posté par: ruyuku le le 12-03-2013 a 20:59:06

le truc c'est en local ca fonctionné mais une fois le site en ligne ca déconné. Je me disais que c'était un problème d'hébergeur ou un truc dans le genre.
Mais merci pour le tips ;)

Titre: Re:[RESOLU] Problème PHP
Posté par: gagnedescodes le le 14-03-2013 a 09:54:35

Juste pour information votre condition n’empêche en aucun cas les "injections" possibles comme vous l'avez si bien dis.

Tout dépend de votre traitement que vous faites pas la suite.


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.