Orde de tri qui ne marche pas

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 : Orde de tri qui ne marche pas

par mere-teresa » 07 mars 2007, 13:40

Modération :
Tee_shot, les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est (au choix) :
- que ta question est mal formulée : reformule-la différemment ;
- que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
- que la réponse demandée exige un travail important que personne ne va faire à ta place ;
- que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Merci de prendre le temps de lire les règlements.

par Tee shot » 07 mars 2007, 08:51

up.

Merci

par Tee shot » 06 mars 2007, 09:21

Voila j'ai remplacé tout les $HTTP_POST_VARS par $_GET, je ne vois pas de différence. Je vais voir comment les ignorer en utilisant la méthode post et je remplacerai les $_GET par $_POST, une fois que j'aurais compris.

Par contre j'ai pas réussi à mettre le code que tu me conseilles, j'ai juste remplacer la ligne $query2 par ton code mais ça ne marche pas.

qu'est ce que je fais de :
<?$tri == $_GET['tri'];
$sens == $_GET['sens'];
......
$result2 = mysql_query($query2);
$nb_log = mysql_num_rows($result2);
Merci

par Tee shot » 06 mars 2007, 08:48

Bonjour

Merci de vos réponses.

ghalaad tu me fais peur, qu'entends tu par code dangereux ? je suis débutant et je n'ai vraiment pas envis de me faire hacker.

Si je comprend bien ce code est mort et j'ai intérêt à trouver autre chose, vu que HTTP_GET_VARS est obsolete et que le script est entièrement ecrit avec des HTTP_GET_VARS partout, je vais essayer de voir la différence entre HTTP_GET_VARS et $GET.

S'il y a risque de hack et facilement merci de me le dire, je retire la logithèque de suite.

[edit ] j'ai un problème pour lire vos réponses les cadres php n'apparraise pas, il m'est très difficile de lire le code dans les réponses, pour le voir je dois faire répondre et la je le vois correctement, c'est normal ?

Sinon quelqu'un connait'il un script pour la gestion d'une logithèque ?

Merci à bientôt

par ghalaad » 06 mars 2007, 06:47

oh le beau code dangereux ...
Et si je mets dans la barre d'adresse :

Code : Tout sélectionner

&ss_cat=%27 UNION SELECT user,password as TELEPHONE FROM MYSQL.USER
(en supposant que j'ai pris "TELEPHONE" comme critère de tri)


*hem*
Du coup :
HTTP_GET_VARS est obsolète. Utilise $_GET à la place voire ignore le et fais tes forms en method=post. (utilisation de $_POST dans ce cas)

sinon, oui, ta syntaxe est ... fausse.
Au lieu de :
$query2 = "SELECT * FROM $table_logiciels WHERE id_ss_cat = '$HTTP_GET_VARS[ss_cat]' ORDER BY '$tri' $sens LIMIT $debut,$nb"; 
avec :
$link = mysql_connect(...)
mets :
$ss_cat = mysql_real_escape_string($_GET['ss_cat'],$link);
$table_logiciels = mysql_real_escape_string($table_logiciels,$link);
$tri = mysql_real_escape_string($tri,$link);
$debut = (double)mysql_real_escape_string($debut,$link);
$nb = (double)mysql_real_escape_string($nb,$link);
$sens = (strtoupper($sens)=="ASC"?"ASC":(strtoupper($sens)=="DESC"?"DESC":"")); // ASC ou DESC sinon rien.
$req = "SELECT * FROM ".$table_logiciels." WHERE id_ss_cat='".$ss_cat."' ORDER BY ".$tri." ".$sens." LIMIT ".$debut.",".$nb;

par guilt92 » 06 mars 2007, 03:10

Bonjour,

je ne suis pas sur que le problème vienne de là mais après l'attribut ORDER BY tu ne dois pas mettre de ' ' autour de la valeur.
$query2 = "SELECT * FROM $table_logiciels WHERE id_ss_cat = '$HTTP_GET_VARS[ss_cat]' ORDER BY ".$tri." ".$sens." LIMIT $debut,$nb";
Sinon as tu vérifié les valeurs $tri et $sens en les affichant ?

par Tee shot » 06 mars 2007, 01:46

Juste pour dire que j'ai reçu le mail.

Bonne nuit et à demain.

Orde de tri qui ne marche pas

par Tee_shot » 06 mars 2007, 01:19

Bonjour
(je post en invité, je reçois pas le mail de confirmation :oops: )

Je suis débutant et j'ai un problème sur des tri. Je me sers de session phpbb et d'un script phpMalogithèque. Je n'arrive pas à faire fonctionner le tri lorsque je rajoute le code de session pour php, sans le code session phpbb le tri marche avec ça ne marche pas. Comment faire un lien cliquable pour que le tri de la page n cours s'effectue selon le nom ou la date ?

je vous mets le code pour le tri :
<?php

$tri == $HTTP_GET_VARS['tri'];
$sens == $HTTP_GET_VARS['sens'];

$query2 = "SELECT * FROM $table_logiciels WHERE id_ss_cat = '$HTTP_GET_VARS[ss_cat]' ORDER BY '$tri' $sens LIMIT $debut,$nb";
$result2 = mysql_query($query2);
$nb_log = mysql_num_rows($result2);


TR><TD align=\"center\"><span class=\"tegris\">Trier par nom (<a href=\"" . $PHP_SELF . "?ss_cat=$HTTP_GET_VARS[ss_cat]&tri=nom&sens=ASC&page=$page&nb=$nb&total=$total\" class=\"tegris\" onMouseOver=\"details_lien('&nbsp;Trier par ordre croissant&nbsp;');\" onMouseOut=\"efface();\">+</a>) (<a href=\"" . $PHP_SELF . "?ss_cat=$HTTP_GET_VARS[ss_cat]&tri=nom&sens=DESC&page=$page&nb=$nb&total=$total\" class=\"tegris\" onMouseOver=\"details_lien('&nbsp;Trier par ordre d&eacute;croissant&nbsp;');\" onMouseOut=\"efface();\">-</a>)</span></TD>\n");
	echo("<TD align=\"center\"><span class=\"tegris\">Trier par date (<a href=\"" . $PHP_SELF . "?ss_cat=$HTTP_GET_VARS[ss_cat]&tri=date_ajout&sens=ASC&page=$page&nb=$nb&total=$total\" class=\"tegris\" onMouseOver=\"details_lien('&nbsp;Trier par ordre croissant&nbsp;');\" onMouseOut=\"efface();\">+</a>) (<a href=\"" . $PHP_SELF . "?ss_cat=$HTTP_GET_VARS[ss_cat]&tri=date_ajout&sens=DESC&page=$page&nb=$nb&total=$total\" class=\"tegris\" onMouseOver=\"details_lien('&nbsp;Trier par ordre d&eacute;croissant&nbsp;');\" onMouseOut=\"efface();\">-</a>)</span></TD></TR>\n");
J'ai enlevé une partie du code pour que vous ayez jsute le nécessaire, enfin j'espere. J'avoue être complètment perdu, je sais modifier un peu le code, mais c'est tout.

Merci de votre aide