Effectivement, il vaut mieux utiliser <?php pour éviter des problèmes de compatibilité avec les serveurs et les versions de php. Concernant le session_start() le fait de le mettre au début permet effectivement de ne pas l'oublier, mais ça n'a rien d'une règle. Ce pourrait être l'avant dernière ligne du script, du moment que rien n'est envoyé au navigateur et que l'on a pas besoin des sessions avant, ça n'y changerait rien
Sinon en vrac :
Concernant ce code, le commentaire n'est pas bon :
//detruit filtre si on change de categorie
unset($_SESSION['filtre']);
Ce code "detruit le filtre" que tu as en session, point. Du coup quand un peu plus loin tu veux récupérer la valeur en session comme valeur par défaut :
if (isset($_SESSION['filtre']))
$secuTaille=$_SESSION['filtre'];
ton test retournera toujours FAUX
Ceci peut également être simplifié :
// variable pour trouvez la page du catalogue
if($_GET["debut"] == ""){
$Debut = 0;
}else{
$Debut = intval($_GET["debut"]);
}
// si on post un filtre on reinit le debut a la page1
if($_POST["taille"] != ""){
$Debut = 0;
}else{
$Debut = intval($_GET["debut"]);
}
en
// variable pour trouvez la page du catalogue OU si on post un filtre on reinit le debut a la page1
if($_GET["debut"] == "" || $_POST["taille"] != ""){
$Debut = 0;
}else{
$Debut = intval($_GET["debut"]);
}
Enfin, quelques petites remarques complémentaires pour alléger ton code et le rendre plus lisible :
- concatener une chaine vide à une autre chaine ne sert pas à grand chose :
$resultProduitsTmp .= " ORDER BY Ordre LIMIT " . $Debut . "";
Tu obtiendras le même résultat avec ceci et ton code n'en sera que plus lisible
$resultProduitsTmp .= " ORDER BY Ordre LIMIT " . $Debut;
- demander à php de parcourir une chaine pour vérifier si celle-ci contient une variable et retourner la valeur de cette variable me semble moins optimiser que de récupérer directement la valeur de la variable :
$resultProduitsTmp = "$requete";
Ceci marchera tout aussi bien, et même si cela se compte en pouillemes, cela consommera également moins de ressources
$resultProduitsTmp = $requete;
Effectivement, il vaut mieux utiliser <?php pour éviter des problèmes de compatibilité avec les serveurs et les versions de php. Concernant le session_start() le fait de le mettre au début permet effectivement de ne pas l'oublier, mais ça n'a rien d'une règle. Ce pourrait être l'avant dernière ligne du script, du moment que rien n'est envoyé au navigateur et que l'on a pas besoin des sessions avant, ça n'y changerait rien :)
Sinon en vrac :
Concernant ce code, le commentaire n'est pas bon :
[php]//detruit filtre si on change de categorie
unset($_SESSION['filtre']);[/php]Ce code "detruit le filtre" que tu as en session, point. Du coup quand un peu plus loin tu veux récupérer la valeur en session comme valeur par défaut :
[php]if (isset($_SESSION['filtre']))
$secuTaille=$_SESSION['filtre']; [/php]ton test retournera toujours FAUX
Ceci peut également être simplifié :
[php]// variable pour trouvez la page du catalogue
if($_GET["debut"] == ""){
$Debut = 0;
}else{
$Debut = intval($_GET["debut"]);
}
// si on post un filtre on reinit le debut a la page1
if($_POST["taille"] != ""){
$Debut = 0;
}else{
$Debut = intval($_GET["debut"]);
}[/php]en[php]// variable pour trouvez la page du catalogue OU si on post un filtre on reinit le debut a la page1
if($_GET["debut"] == "" || $_POST["taille"] != ""){
$Debut = 0;
}else{
$Debut = intval($_GET["debut"]);
}[/php]
Enfin, quelques petites remarques complémentaires pour alléger ton code et le rendre plus lisible :
- concatener une chaine vide à une autre chaine ne sert pas à grand chose :
[php]$resultProduitsTmp .= " ORDER BY Ordre LIMIT " . $Debut . "";[/php]
Tu obtiendras le même résultat avec ceci et ton code n'en sera que plus lisible :)
[php]$resultProduitsTmp .= " ORDER BY Ordre LIMIT " . $Debut;[/php]
- demander à php de parcourir une chaine pour vérifier si celle-ci contient une variable et retourner la valeur de cette variable me semble moins optimiser que de récupérer directement la valeur de la variable :
[php]$resultProduitsTmp = "$requete";[/php]
Ceci marchera tout aussi bien, et même si cela se compte en pouillemes, cela consommera également moins de ressources
[php]$resultProduitsTmp = $requete;[/php]