Suis-je seul au monde avec MAMP et Mysql ?

Merci d'utiliser mes bidules ! :)

Sinon pour tes scripts ce que tu décris n'est pas normal, comment récupèrement tu les variables "d'une page à l'autre" comme tu dis ?
Tu utilises bien un des tableaux $_GET ou $_POST ? Si oui il ne devrait pas avoir de problème avec register_globals = Off, sinon tu devrais changer ton code et les utiliser eux !

Oula non, c'est plus simple que ça ...
bon je vais expliquer dans le détail ma façon de faire, puis non, je met le code ... c'est encore plus simple :

Bloc de code:
Etape 1 : La catégorie de votre véhicule<br>
<form name="form_ChoixForme" method="POST" >
<select name="ChoixForme" onChange="this.form.submit();">
<? 
$qryformes = mysql_query("SELECT * FROM sg_Formes ORDER BY Nom_Forme ASC");
$NbFormes=mysql_num_rows($qryformes);

if ($ChoixForme == '') {echo "<option value=''>Choisissez</option>";}
$i=0;
while($i < $NbFormes)
{
$idForme=mysql_result($sqlformes ,$i,"id_Forme");
$NomForme=mysql_result($sqlformes ,$i,"Nom_Forme");
                echo "<option value='$idForme'";
                if($ChoixForme == $idForme){ 
                 echo"selected='selected'";
                 }
                echo">$NomForme&nbsp;&nbsp;</option>";
$i++;
}
?>
  </select>
</form>
<? 
//if ($ChoixForme != '') {echo 'Etape 1 OK - ' . $ChoixForme ;}
?>
Etape 2 : La marque de votre véhicule<br>
<form name="form_ChoixMarque" method="post" >
<select name="ChoixMarque" onChange="this.form.submit();">
<? 
if ($ChoixMarque == '') {echo "<option value=''>Choisissez</option>";}
$sqlmarques = mysql_query("SELECT * FROM sg_Marques_Voitures ORDER BY Nom_Marque ASC");
$NbreMarques=mysql_num_rows($sqlmarques);
$i=0;
while($i < $NbreMarques)
{
$idMarque=mysql_result($sqlmarques ,$i,"id_Marque");
$NomMarque=mysql_result($sqlmarques ,$i,"Nom_Marque");
                echo "<option value='$idMarque'";
                if($ChoixMarque== $idMarque){ 
                 echo"selected='selected'";
                 }
                echo">$NomMarque&nbsp;&nbsp;</option>";
$i++;
}
?>
  </select>
<input name="ChoixForme" type="hidden" value="<? echo $ChoixForme;?>">
</form>
<? 
//if ($ChoixMarque != '') {echo 'Etape 2 OK - ' . $ChoixMarque ;}
?>
Etape 3 : Le modèle de votre véhicule<br>
<form name="form_ChoixModele" method="post" >
<select name="ChoixModele" onChange="this.form.submit();">
<? 
if ($ChoixModele == '') {echo "<option value=''>Choisissez</option>";}
$sqlmodeles = mysql_query("SELECT * FROM sg_Modeles_Voitures WHERE  id_Forme = $ChoixForme AND id_Mark = $ChoixMarque  ORDER BY Nom_Modele");
$NbreModeles=mysql_num_rows($sqlmodeles);
$i=0;
while($i < $NbreModeles)
{
$idModele=mysql_result($sqlmodeles ,$i,"id_Modele");
$NomModele=mysql_result($sqlmodeles ,$i,"Nom_Modele");
$AnModele=mysql_result($sqlmodeles ,$i,"An_Modele");
                echo "<option value='$idModele'";
                if($ChoixModele == $idModele){ 
                 echo"selected='selected'";
                 }
                echo">$NomModele&nbsp;$AnModele&nbsp;</option>";
$i++;
}
?>
  </select>
<input name="ChoixForme" type="hidden" value="<? echo $ChoixForme;?>">
<input name="ChoixMarque" type="hidden" value="<? echo $ChoixMarque;?>">
</form>

En fait, c'est 3 formulaire avec une simple liste <select> qui se charge via une bdd.
le 1er donne le type de véhicule,
le 2ème la marque
et le 3ème, en fonction des variables 1 et 2 détermine le modèle de voiture ...
Le tout rechargeant la même page à chaque fois ...

Par exemple :
Type de voiture : 4x4
Marque : Bmw
--> modèle : X5 et X3 mais pas les autres modèles de bmw (genre berlines ou autre) ...
:rose:
Mm pas très clair tout ça, non ?
 
Il me semble que lorsque j'avais installé mamp la première fois, j'avais du changer des trucs dans le PHP.INI, y compris l'activation des messages d'erreurs.
 
Il me semble que lorsque j'avais installé mamp la première fois, j'avais du changer des trucs dans le PHP.INI, y compris l'activation des messages d'erreurs.
Mm... :rose:
pourtant non, j'ai rien touché promis ...
Quelle est la solution ? réinstaller MAMP ?
Si c'est le cas, y'a t'il une chose particulière à faire pour le desinstallation ?
Et sur à l'installation ?
 
Alors pour les messages d'erreurs, met le à E_ALL ^ E_NOTICE dans le php.ini, c'est le mieux en local pour les tests (j'enlève les notices parce que y en a des reulous et bidons...).



Et dans ton script tu va virer les $ChoixModele et $ChoixMarque et les remplacer par $_POST['ChoixModele'] et $_POST['ChoixMarque']. Comme ça tu met register_globals à Off.

Avec ta méthode, il peut y avoir des problèmes de sécurité. J'en dis aps plus tout ça était déjà expliqué dan sun des liens que j'ai donné à la page précédente du tradada : http://fr.php.net/register_globals :)
 
Alors pour les messages d'erreurs, met le à E_ALL ^ E_NOTICE dans le php.ini, c'est le mieux en local pour les tests (j'enlève les notices parce que y en a des reulous et bidons...).

Euh ? ... :rose: Là je suis tout perdu ...
J'ai bien trouvé dans php.ini une ligne
Bloc de code:
;error_reporting = E_ALL & ~E_NOTICE
Mais je vois pas quoi en faire ...

Sinon pour
Et dans ton script tu va virer les $ChoixModele et $ChoixMarque et les remplacer par $_POST['ChoixModele'] et $_POST['ChoixMarque']. Comme ça tu met register_globals à Off.
Quelle est la meilleure solution, tenter cette "bidouille" ou utiliser une autre solution (mais laquelle ?)

Désolé, j'ai l'impression de devenir "lourd" mais je suis super paumé. :siffle:
Je "bricole" depuis pas mal de temps et j'ai eu vraiment du bol parce que ça à toujours marché sans batailler comme ça.
Mais j'aimerai bien me mettre "Carré" et sortir de la bricole pour quelque chose de plus pro. :up:
En tout cas, merci de prendre le temps de me répondre. :zen:
 
Quelle est la meilleure solution, tenter cette "bidouille" ou utiliser une autre solution (mais laquelle ?)

p4bl0 ne te propose pas une bidouille mais la manière correcte de programmer. Maintenant si tu t'obstines à utiliser ton register machin…

Pour le php.ini la ligne est commentée, il faut enlever le point-virgule en début de ligne pour qu'elle soit fonctionnelle.
 
p4bl0 ne te propose pas une bidouille mais la manière correcte de programmer. Maintenant si tu t'obstines à utiliser ton register machin&#8230;

Pour le php.ini la ligne est commentée, il faut enlever le point-virgule en début de ligne pour qu'elle soit fonctionnelle.
Non, Loin de là l'idée de m'obstiner ou de dénigré ce que me dis P4bl0, je demandais juste ...:up:
Je lui ai assez rendu grâce dans les discussions plus haut pour que ça soit perçu comme autre chose que des questions de base ...:rose:

Donc si je comprends bien, pour toutes les variables qui passent par un POST, l'idéal c'est une déclaration de la forme : $_POST['MaVariable']
Et en plus ça permet de mettre les registar à OFF et surtout ça permet une meilleure sécurité, c'est ça ?

Pour le php.ini, je vais de ce pas "décommentairiser" cette ligne.

Gracias ...

 
Ça assure une meilleur sécurité dans la mesure où ça te permet d'être certain de la provenance d'une variable. Si tu ne fais pas ça un utilisateur peut facilement utiliser un paramètre GET pour initialiser une variable qui ne serait pas initialisée dans ton code par exemple. Ou encore passer en GET une variable qui devrait être envoyée en POST. Le risque est quand même limité, surtout avec du code bien écrit. Mais ça rend aussi le code plus clair, et la plupart des hébergeurs sont configurés par défaut pour ne pas accepter l'ancienne méthode. Donc cest mieux de prendre cette habitude.