Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre régulier
    ne pas tenir compte des variables non utilisées pour éviter les bugs
    Bonjour à tous!

    J'ai plusieurs variables :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $eleve = $_GET['eleve'];
    $matiere = $_GET['matiere'];
    $filtre = $_GET['filtre'];
    $premierAffichage = $_GET['premier'];


    Je m'en sers ensuite mais séparément. De ce fait quand je réalise une première fonction, je ne me sers que de la première variable et les autres ne sont pas lues. Du coup sur ma page j'ai par exemple un bug comme cela :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Notice: Undefined index: eleve in C:\Documents and Settings\...\Afficher.php on line 19


    J'ai pourtant besoin de déclarer toutes ces variables dans une même page php... comment faire pour lui dire de ne pas tenir compte des variables non utilisées ?

    Merci à tous pour vos réponses,
    Aud- [débutante!]

  2. #2
    Membre habitué
    Bonsoir,
    Tu as essayé de faire un isset sur $_GET['eleve'] ?

    Car il se pourrait que ta variable ne soit pas initialisée.

  3. #3
    Modérateur

    Si tu cherches a "eviter les bugs" il faut tester ta variable avec isset()
    Si tu cherches à "ne pas afficher les erreurs" il faut masquer les erreurs de type NOTICE dans ton php.ini
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre régulier
    oula ça m'interesse tout ça

    en effet je n'initialise jamais mes variables... il faut le faire tout le temps? et commet ça s'écrit sur un _GET ?

    et pour le fichier php.ini, qu'est-ce donc? c'est lu par qui, quand, ça sert à quoi?

  5. #5
    Membre habitué
    Considérons ceci :
    Si tu cherches a "eviter les bugs" il faut tester ta variable avec isset()
    Tout d'abord l'adresse affichée dans la barre d'adresse doit être de la forme :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    C:\Documents and Settings\...\Afficher.php?eleve=...&matiere=...&filtre=...&premier=...


    Si, par exemple, tu n'as pas "eleve" dans l'adresse, ta variable $_GET['eleve'] n'existera pas. Donc une erreur apparaîtra.

    Pour ça :
    Si tu cherches à "ne pas afficher les erreurs" il faut masquer les erreurs de type NOTICE dans ton php.ini
    Je ne connais pas, donc je ne peux t'aider.

  6. #6
    Membre régulier
    ok alors j'ai fait des tests avec le isset

    J'écris donc par exemple :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    $galerie = isset($_GET['Galerie']);


    Ok ça me permet d'éviter certains bugs mais ça m'en créé d'autres
    Je m'explique : la variable $galerie me renvoi dans mon cas la valeur d'un des 3 boutons radio que j'ai dans une feuille. Et maintenant avec le isset sur $galerie et bien toutes les valeurs sont vraies et mes "if" qui testaient ces valeurs sont court-circuités...

    Je n'ai donc plus la ligne :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Notice: Undefined index: galerie in C:\Documents and Settings\...\Afficher.php on line 19

    Mais mes boutons radio ne servent plus à rien

    Comment faire dans ce cas?

  7. #7
    Membre du Club
    Salut


    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    Notice: Undefined index: galerie in C:\Documents and Settings\...\Afficher.php on line 19


    ben essaies ce code
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (isset($_GET['Galerie']))
    			{
    		$Galerie = $_GET['Galerie'];
    }

  8. #8
    Membre habitué
    Tu as quoi comme code (dans un fichier html ou php) avant d'arriver à la page Afficher.php ?

  9. #9
    Membre régulier
    bonjour,

    le code
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_GET['Galerie']))
    			{
    		$Galerie = $_GET['Galerie'];
    }

    ne marche pas mieux.

    Et en fait, j'ai changé de tactique, j'ai mit le code php dans la meme page, pour éviter d'avoir un bouton de commande qui m'emène vers une nouvelle page.

    Le code est donc :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    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
     
    <table border="1" align="center" width="800">
    <tr>
    	<td width="450">
    		<table border="1" align="center" width="360">
    		<tr>
    			<td width="310"><input name="galerie" type="radio" value="0">
    			<b>Galerie 1 : Passion Musique</b></td>			
    		</tr>
    		<tr>
    			<td><input name="galerie" type="radio" value="1">
    			<b>Galerie 2 : Passion Modélisme</b></td>
    			</td>
    		</tr>
    		<tr>
    			<td><input name="galerie" type="radio" value="2">
    			<b>Galerie 3 : Passion Photo</b></td>
    			</td>
    		</tr>
    		</table>
    	</td>
    	<td>
    		<div id="slide">
    		<?php  
    		$galerie = $_GET['Galerie'];
     
    			if($galerie==0){
    			echo " <object type=application/x-shockwave-flash height=300 width=400 data=dewslider/Musique/dewsliderMusique.swf?xml=dewslider/Musique/dewsliderMusique.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			<param name=src value=dewslider/Musique/dewsliderMusique.swf?xml=dewslider/Musique/dewsliderMusique.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			</object> "; }
     
    			if($galerie==1){
    			echo " <object type=application/x-shockwave-flash height=300 width=400 data=dewslider/Modelisme/dewsliderModelisme.swf?xml=dewslider/Modelisme/dewsliderModelisme.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			<param name=src value=dewslider/Modelisme/dewsliderModelisme.swf?xml=dewslider/Modelisme/dewsliderModelisme.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			</object> "; }
     
    			if($galerie==2){
    			echo " <object type=application/x-shockwave-flash height=300 width=400 data=dewslider/Photos/dewsliderPhoto.swf?xml=dewslider/Photos/dewsliderPhoto.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			<param name=src value=dewslider/Photos/dewsliderPhoto.swf?xml=dewslider/Photos/dewsliderPhoto.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			</object> "; }
     
    		?>
    		</div>
    	</td>
    </tr>
     
    </table>


    Que faire pour que ma variable galerie fonctionne sans me faire un NOTICE?

  10. #10
    Membre actif
    bonjour

    Je pense que tu n'as pas saisit l'intérêt de la fonction isset().

    Je te conseil de lire les infos à ce lien :
    http://de3.php.net/manual/fr/function.isset.php

    L'intérêt du isset() est de vérifier la présence ou non d'une variable.

    Dans ton cas avant tout traitement utilisant une de tes variables $_GET[] tu dois vérifier si elle existe ou non :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?php  
     
    if (isset($_GET['Galerie']))
    {
                           $galerie = $_GET['Galerie'];
     
    			if($galerie==0){
    			echo " <object type=application/x-shockwave-flash height=300 width=400 data=dewslider/Musique/dewsliderMusique.swf?xml=dewslider/Musique/dewsliderMusique.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			<param name=src value=dewslider/Musique/dewsliderMusique.swf?xml=dewslider/Musique/dewsliderMusique.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			</object> "; }
     
    			if($galerie==1){
    			echo " <object type=application/x-shockwave-flash height=300 width=400 data=dewslider/Modelisme/dewsliderModelisme.swf?xml=dewslider/Modelisme/dewsliderModelisme.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			<param name=src value=dewslider/Modelisme/dewsliderModelisme.swf?xml=dewslider/Modelisme/dewsliderModelisme.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			</object> "; }
     
    			if($galerie==2){
    			echo " <object type=application/x-shockwave-flash height=300 width=400 data=dewslider/Photos/dewsliderPhoto.swf?xml=dewslider/Photos/dewsliderPhoto.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			<param name=src value=dewslider/Photos/dewsliderPhoto.swf?xml=dewslider/Photos/dewsliderPhoto.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			</object> "; }
    }
    ?>


    ++

  11. #11
    Membre régulier
    alors je viens d'essayer avec ton code et en plus j'ai mit un "mouchard" pour voir ce que me renvoit la variable $galerie :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php  
    		if (isset($_GET['galerie'])){
    		$galerie = $_GET['galerie'];
    		echo "$galerie";
     
    			if($galerie==0){
    			echo " <object type=application/x-shockwave-flash height=300 width=400 data=dewslider/Musique/dewsliderMusique.swf?xml=dewslider/Musique/dewsliderMusique.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			<param name=src value=dewslider/Musique/dewsliderMusique.swf?xml=dewslider/Musique/dewsliderMusique.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			</object> "; }
     
    			if($galerie==1){
    			echo " <object type=application/x-shockwave-flash height=300 width=400 data=dewslider/Modelisme/dewsliderModelisme.swf?xml=dewslider/Modelisme/dewsliderModelisme.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			<param name=src value=dewslider/Modelisme/dewsliderModelisme.swf?xml=dewslider/Modelisme/dewsliderModelisme.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			</object> "; }
     
    			if($galerie==2){
    			echo " <object type=application/x-shockwave-flash height=300 width=400 data=dewslider/Photos/dewsliderPhoto.swf?xml=dewslider/Photos/dewsliderPhoto.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			<param name=src value=dewslider/Photos/dewsliderPhoto.swf?xml=dewslider/Photos/dewsliderPhoto.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			</object> "; }
    		}	
    		?>


    Bilan des courses : il ne se passe absolument rien (aucun diaporama ne s'affiche et les bouton radio ne servent à rien) et le mouchard ne me renvoit aucune valeur
    Que faire ?

  12. #12
    Membre habitué
    je sais pas mais dans ton code tu envois comment les données ?

    parceque soit il te maque un form avec des champs hidden pour passer les données reçuent précédement soit tu doit les envoyer manuellement non ?
    (je travail qu'en post ou session donc je sur pas sûr)

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    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
    48
    <table border="1" align="center" width="800">
    <tr>
    	<td width="450">
    <form name="toto" method="get">
    		<table border="1" align="center" width="360">
    		<tr>
    			<td width="310"><input name="galerie" type="radio" value="0">
    			<b>Galerie 1 : Passion Musique</b></td>			
    		</tr>
    		<tr>
    			<td><input name="galerie" type="radio" value="1">
    			<b>Galerie 2 : Passion Modélisme</b></td>
    			</td>
    		</tr>
    		<tr>
    			<td><input name="galerie" type="radio" value="2">
    			<b>Galerie 3 : Passion Photo</b></td>
    			</td>
    		</tr>
    		</table>
    </form>
    	</td>
    	<td>
    		<div id="slide">
    		<?php  
    		$galerie = $_GET['Galerie'];
     
    			if($galerie==0){
    			echo " <object type=application/x-shockwave-flash height=300 width=400 data=dewslider/Musique/dewsliderMusique.swf?xml=dewslider/Musique/dewsliderMusique.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			<param name=src value=dewslider/Musique/dewsliderMusique.swf?xml=dewslider/Musique/dewsliderMusique.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			</object> "; }
     
    			if($galerie==1){
    			echo " <object type=application/x-shockwave-flash height=300 width=400 data=dewslider/Modelisme/dewsliderModelisme.swf?xml=dewslider/Modelisme/dewsliderModelisme.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			<param name=src value=dewslider/Modelisme/dewsliderModelisme.swf?xml=dewslider/Modelisme/dewsliderModelisme.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			</object> "; }
     
    			if($galerie==2){
    			echo " <object type=application/x-shockwave-flash height=300 width=400 data=dewslider/Photos/dewsliderPhoto.swf?xml=dewslider/Photos/dewsliderPhoto.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			<param name=src value=dewslider/Photos/dewsliderPhoto.swf?xml=dewslider/Photos/dewsliderPhoto.xml&amp;randomstart=1&amp;timer=5&amp;showbuttons=1&amp;showtitles=0>
    			</object> "; }
     
    		?>
    		</div>
    	</td>
    </tr>
     
    </table>
    Le langage de programmation le plus vieux, le plus optimiser et le plus efficace est l'ADN quelqu'un d'extrêmement intelligent l'a obligatoirement inventé.

  13. #13
    Membre régulier
    en gros, tu me dis que si je choisi un autre bouton radio alors les modifications ne seront pas prisent en compte car tout le code (HTML pour les boutons radio et php pour afficher les diaporama suivant le bouton choisi) est dans la même page?

    On ne peut pas faire du tout en 1 ? lol

  14. #14
    Membre habitué
    c'est juste que si tu veux afficher la galerie il faut que tu prévois un moyen de traiter les données et si tu as besoin des données précédentes tu dois les concerver quelque part.

    mais si tu veux passer à toutes tes pages des données je te conseil les sessions tu enregistre une fois les données et tu peux les récupérer à chaque pages les mettres à jours etc...

    sinon tu dois te trimbaler les données d'une manière un d'une autre (ex:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    <input type="hidden" name="matiere" value="<?php echo($matiere); ?>" />
    )
    Le langage de programmation le plus vieux, le plus optimiser et le plus efficace est l'ADN quelqu'un d'extrêmement intelligent l'a obligatoirement inventé.

  15. #15
    Membre actif
    bonjour,

    Je pensais pas que le problème venais du passage de variable $_GET[''] .

    Tu arrives sur ta page gérant les variables $_GET[''] comment canary?

    Que t'affiche :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    echo'<br /><pre>'.print_r($_GET,true).'</pre><br />'
    ?

    ++

  16. #16
    Membre régulier
    ta ligne de code m'affiche ceci :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Array
    (
    )


    Ma page slide.php est une page html où se trouve donc les boutons radio + le code php pour savoir quel bouton radio est choisi. Je ne sais pas si j'ai répondu clairement à ta question narutobaka

  17. #17
    Membre actif
    Bonjour,

    comme te l'indique hiul dragonfel il te manque un élément pour faire les modifications en fonction du bouton que tu choisis.

    Vu que tu n'a pas de formulaire dans ton exemple, tenter de travailler avec $_GET[''], ne te servira rien.

    Pour gérer les événements coté client il va te falloir utiliser du javascript et InnerHTML pour charger en fonction du bouton radio choisit via la method onclick le bon diaporama.

    ++

  18. #18
    Membre actif
    plop plop

    je met le lien vers ton autre post :

    http://www.developpez.net/forums/d71...t-onclick-php/

    ++

###raw>template_hook.ano_emploi###