Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/01/2012, 12h14   #21
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour,
Boites commançant par 3 premières lettres spécifiques :
Code :
$where = "WHERE boite LIKE '" . substr($boite, 0, 3) . "%'";
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/01/2012, 12h17   #22
Invité régulier
 
Inscription : avril 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 78
Points : 8
Points : 8
Citation:
Envoyé par rawsrc Voir le message
Bonjour,
Boites commançant par 3 premières lettres spécifiques :
Code :
$where = "WHERE boite LIKE '" . substr($boite, 0, 3) . "%'";
Merci ! ça passe nickel !
Nesta92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 12h32   #23
Invité régulier
 
Inscription : avril 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 78
Points : 8
Points : 8
Alors, ça marche MAIS ...

Du coup, j'avais pas réfléchis, mais quand on est sur une fiche vo, et même si on a pas fais une recherche par boite, si on clique sur suivant ou précédent, ça n'affiche que les boites du même type que le véhicule.

Il faudrait que j'arrive à faire "suivant avec même type de boite auto ou manuelle quand la personne fait une recherche par type de boite dans le moteur de recherche" et "suivant ou précédent sur même modèle de véhicule mais sans tenir compte de la boite si la personne ne fais pas de tri par boite " ...

Merci
Nesta92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 13h22   #24
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
C'est simple, tu modifies ta clause where dans les fonctions getPrevious() / getNext() afin de tenir compte d'un choix explicite de type de boite de vitesse.
Inspires toi de ma modification de la ligne 428 d'un post précédent.

Une dernière chose : ton code n'est pas du tout sécurisé mais alors pas du tout. Il n'y a aucune protection contre quoi que ce soit. Je n'ai pas vu le reste mais si tu le mets en ligne en l'état, tu vas te faire siphonner l'intégralité de tes données en moins de temps qu'il ne faut pour le dire sans compter toutes les autres joyeusetés qu'il serait possible d'injecter. J'espère que tout ceci n'est qu'un code de test ou d'apprentissage mais pas destiné à être mis en production.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 13h47   #25
Invité régulier
 
Inscription : avril 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 78
Points : 8
Points : 8
Citation:
Envoyé par rawsrc Voir le message
C'est simple, tu modifies ta clause where dans les fonctions getPrevious() / getNext() afin de tenir compte d'un choix explicite de type de boite de vitesse.
Inspires toi de ma modification de la ligne 428 d'un post précédent.

Une dernière chose : ton code n'est pas du tout sécurisé mais alors pas du tout. Il n'y a aucune protection contre quoi que ce soit. Je n'ai pas vu le reste mais si tu le mets en ligne en l'état, tu vas te faire siphonner l'intégralité de tes données en moins de temps qu'il ne faut pour le dire sans compter toutes les autres joyeusetés qu'il serait possible d'injecter. J'espère que tout ceci n'est qu'un code de test ou d'apprentissage mais pas destiné à être mis en production.
Merci, mais je ne vois pas comment adapter le code de la ligne 428 à ces fonctions ...

Quand tu dis que le code n'est pas sécurisé ? C'est-à-dire ?
Nesta92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 14h30   #26
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Voici les deux fonctions corrigées :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
 
function getNext($id_voiture, $marque, $modele, $boite) {
   $groups = array('all' => 'Toutes', 'auto' => 'A', 'man' => 'M');
   $whereBoite = '';
   if (strlen($boite) && ($boite !== 'all')) {
      $whereBoite = (isset($groups[$boite]))
                       ? "AND `boite` LIKE '%{$groups[$boite]}%'"
                       : "AND `boite` = '$boite'";
   }
 
   $sql = "SELECT `id_voiture`,`marque`,`modele`,`version`,`boite` 
           FROM `voitures`
           WHERE `id_voiture` > '$id_voiture' AND `marque` = '$marque' AND `modele` = '$modele' $whereBoite
           ORDER BY `id_voiture` ASC
           LIMIT 0,1";
 
   $exec = requete($sql);
 
   return (mysql_num_rows($exec))
             ? mysql_fetch_assoc($exec)
             : false;
   }
 
function getPrevious($id_voiture, $marque, $modele, $boite) {
   $groups = array('all' => 'Toutes', 'auto' => 'A', 'man' => 'M');
   $whereBoite = '';
   if (strlen($boite) && ($boite !== 'all')) {
      $whereBoite = (isset($groups[$boite]))
                       ? "AND `boite` LIKE '%{$groups[$boite]}%'"
                       : "AND `boite` = '$boite'";
   }
 
   $sql = "SELECT `id_voiture`,`marque`,`modele`,`version`,`boite` 
           FROM `voitures`
           WHERE `id_voiture` < '$id_voiture' AND `marque` = '$marque' AND `modele` = '$modele' $whereBoite
           ORDER BY `id_voiture` DESC
           LIMIT 0,1";
 
   $exec = requete($sql);
 
   return (mysql_num_rows($exec))
             ? mysql_fetch_assoc($exec)
             : false;
}
 
?>
Ce que tu demandes ne relève pas de l'apprentissage mais d'une prestation pure et simple pour un développeur. C'est mon dernier post dans ce fil de discussion.
Pour l'aspect sécurité, c'est simple absolument aucune données n'est sécurisée (du moins je n'ai rien vu de tel), les données utilisateurs passent à la base de données sans aucun filtrage/nettoyage/échappement.
J'ajouterai que le rendu web est lui aussi non sécurisé : aucun échappement de caractères dangereux, aucune précaution de rien du tout. Bref, il te reste encore un gros travail à founir.
Dans tous les cas bon courage.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 14h44   #27
Invité régulier
 
Inscription : avril 2007
Messages : 78
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 78
Points : 8
Points : 8
Citation:
Envoyé par rawsrc Voir le message
Voici les deux fonctions corrigées :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
 
function getNext($id_voiture, $marque, $modele, $boite) {
   $groups = array('all' => 'Toutes', 'auto' => 'A', 'man' => 'M');
   $whereBoite = '';
   if (strlen($boite) && ($boite !== 'all')) {
      $whereBoite = (isset($groups[$boite]))
                       ? "AND `boite` LIKE '%{$groups[$boite]}%'"
                       : "AND `boite` = '$boite'";
   }
 
   $sql = "SELECT `id_voiture`,`marque`,`modele`,`version`,`boite` 
           FROM `voitures`
           WHERE `id_voiture` > '$id_voiture' AND `marque` = '$marque' AND `modele` = '$modele' $whereBoite
           ORDER BY `id_voiture` ASC
           LIMIT 0,1";
 
   $exec = requete($sql);
 
   return (mysql_num_rows($exec))
             ? mysql_fetch_assoc($exec)
             : false;
   }
 
function getPrevious($id_voiture, $marque, $modele, $boite) {
   $groups = array('all' => 'Toutes', 'auto' => 'A', 'man' => 'M');
   $whereBoite = '';
   if (strlen($boite) && ($boite !== 'all')) {
      $whereBoite = (isset($groups[$boite]))
                       ? "AND `boite` LIKE '%{$groups[$boite]}%'"
                       : "AND `boite` = '$boite'";
   }
 
   $sql = "SELECT `id_voiture`,`marque`,`modele`,`version`,`boite` 
           FROM `voitures`
           WHERE `id_voiture` < '$id_voiture' AND `marque` = '$marque' AND `modele` = '$modele' $whereBoite
           ORDER BY `id_voiture` DESC
           LIMIT 0,1";
 
   $exec = requete($sql);
 
   return (mysql_num_rows($exec))
             ? mysql_fetch_assoc($exec)
             : false;
}
 
?>
Ce que tu demandes ne relève pas de l'apprentissage mais d'une prestation pure et simple pour un développeur. C'est mon dernier post dans ce fil de discussion.
Pour l'aspect sécurité, c'est simple absolument aucune données n'est sécurisée (du moins je n'ai rien vu de tel), les données utilisateurs passent à la base de données sans aucun filtrage/nettoyage/échappement.
J'ajouterai que le rendu web est lui aussi non sécurisé : aucun échappement de caractères dangereux, aucune précaution de rien du tout. Bref, il te reste encore un gros travail à founir.
Dans tous les cas bon courage.
J'ai remplacé le code mais cela ne semble pas fonctionner malheureusement ...
Mais vraiment un gros merci d'avoir pris le temps de m'aider, et je comprends très bien que c'est un réel boulot de développement, raison pour laquelle je te suis très reconnaissant ;-)

Merci aussi pour tes conseils ;-)
Nesta92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h04.


 
 
 
 
Partenaires

Hébergement Web