Configuration EasyPhp pour les Notices

Ish
Eléphant du PHP | 200 Messages

10 mai 2006, 09:55

Pardon du retard ...

Voici le code ... je l'ai un peu racourci mais l'esprit est là :
if (($this->pageActuelle!=NULL)||(isset($_GET["code_adpc"])) ) {
        $page = $this->pageActuelle.'?filtre='.$_GET["filtre"]."&tri=$key" ;
        $page.= '&code_adpc='. $_GET["code_adpc"] .'&alloue_prevu='. $_REQUEST["alloue_prevu"] .'&date_accord_cari='. $_GET["date_accord_cari"] .'&date_demarrage='. $_GET["date_demarrage"] .'&probabilite='. $_GET["probabilite"];
}
Apres il faut que je fasse la même chose pour les autres variables "alloue_prevu", etc ...
Mais ça bloque déjà avec un ... et avec toute c'est pareil ...

Bref pour se remettre dans le bain. J'ai des "Notices" qui s'affichent dans mon code car je n'ai pas défini des variables. Cela m'affiche quand meme mon programme, mais avec les "Notices" c'est pas très jolie. J'ai un tableau avec des entêtes. Lorsque je clique sur le titre de ces entêtes cela m'affiche le tableau en ordre croissant ou décroissant.
Sans les "isset()" ca marche impecable (malgré les "Notices"), dès que je fais la condition
 if (isset($_GET["variable"])) ... 
Cela ne marche plus, mais les "Notices" s'en vont ...

eh eh ehe ..... voila .... c'est bizarrrrre çà
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Mammouth du PHP | 1353 Messages

10 mai 2006, 09:58

tu es sur que ce n'est pas plutot un ET que tu veux dans tes conditions ?
if (($this->pageActuelle!=NULL)&&(isset($_GET["code_adpc"])) ) 
parce que d'après ton code tu as besoin des deux variables par la suite...

Parce que si tu laisses un OU tu peux rentrer dans ta boucle seulement si l'une des deux variable est définie, d'où les notices si ça n'est pas le cas...

Ish
Eléphant du PHP | 200 Messages

10 mai 2006, 10:01

SI si si .... ce sont des ET (&&) mais j'avais mis des OU(||) juste pour tester ...

nan mais même avec les " && " .... ca ne marche pas ?
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Mammouth du PHP | 1353 Messages

10 mai 2006, 10:11

j'avoue que je suis un peu a court d'idée... Essaye tout de meme comme cela :
if(!isset($_GET["filtre"]) || !isset($_GET["code_adpc"]) || //etc pr tes autres variables)
{
//affiche une erreur ou autre
}
else if ($this->pageActuelle!=NULL)
{
//code normal
}
else
{
//erreur
}
Le fait d'être dans un else va peut être le calmer.... :?
Modifié en dernier par guilt92 le 10 mai 2006, 10:13, modifié 1 fois.

Ish
Eléphant du PHP | 200 Messages

10 mai 2006, 10:13

Ok ok ok ... je comprend ... je vais essayer de contourner le probleme ...!!!
Je teste la techtoche
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Ish
Eléphant du PHP | 200 Messages

10 mai 2006, 11:18

nan ca ne marche pas !!!

C'est le meme probleme
if (isset($data[0])) {
    foreach($data[0] as $key => $value){

        if ($this->pageActuelle!=NULL && !isset($_GET["code_adpc"])) {
             $page = $this->pageActuelle.'?filtre='.$_GET["filtre"]."&tri=$key" ;
             $page.= '&code_adpc='.$_GET["code_adpc"]
                         .'&alloue_prevu ='.$_REQUEST["alloue_prevu"] 
                         .'&date_accord_cari='.$_GET["date_accord_cari"] 
                         .'&date_demarrage='.$_GET["date_demarrage"]
                         .'&probabilite='.$_GET["probabilite"]; // c'est juste pour la mise en forme
         }
        if (isset($this->tabLibelle[$i]) && $this->tabLibelle[$i] != NULL)
            echo "<th><a  href=\"$page\">".$this->tabLibelle[$i]."</a></th>\n";
         else echo "<th><a  href=\"$page\">$key</a></th>\n";
                $i++;
    }
}
J'ai mis le texte en forme pour qu'il soit plus lisible, sinon il est bien écrit.

Voila ... ma partie de fonction ...

Lorsque je passe avec ma souris sur le lien (entête de tableau pour l'afficheren ordre croissant), sans les isset(), je vois bien que le tri se fait sur l'entete demandé et toute les variables GET sont là, car c'est affiché dans la barre d'état juste au dessus de la "Toolbars" ...
Alors que quand je met la condition avec les "isset()", sur cette même barre d'état, je ne vois plus rien, du moin je vois qu'il m'envoie vers ma page principale (normale) mais sans les tris et les variables GET
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Mammouth du PHP | 1353 Messages

10 mai 2006, 11:29

La c'est normal que ça ne marche pas tu appelles la condition !isset cela veut dire que si ta variable est définie il rentre pas dans la boucle.

Sinon mon idée pour tenter de résoudre le problème était de faire un if {} else {} pour tout ton affichage, même par exemple :
if(!isset($_GET["filtre"])||!isset($_GET[...])||$this->pageActuelle==NULL)
{
}
else {
 $page = $this->pageActuelle.'?filtre='.$_GET["filtre"]."&tri=$key" ; 
             $page.= '&code_adpc='.$_GET["code_adpc"] 
                         .'&alloue_prevu ='.$_REQUEST["alloue_prevu"] 
                         .'&date_accord_cari='.$_GET["date_accord_cari"] 
                         .'&date_demarrage='.$_GET["date_demarrage"] 
                         .'&probabilite='.$_GET["probabilite"]; // c'est juste pour la mise en forme 
        if (isset($this->tabLibelle[$i]) && $this->tabLibelle[$i] != NULL) 
            echo "<th><a  href=\"$page\">".$this->tabLibelle[$i]."</a></th>\n"; 
         else echo "<th><a  href=\"$page\">$key</a></th>\n"; 
                $i++; 
    }
}
Comme ca si les variables ne sont pas définies (!isset) tu rentres dans le if, par contre si elles sont définies tu entres dans le else et la tu devrais ne pas avoir de probleme de notice mais bon faut tester...

Ish
Eléphant du PHP | 200 Messages

10 mai 2006, 12:02

Ok ok ok .....
on commence enfin à avancer et plus reculer

j'ai mis dans ma premiere boucle (le " IF ") un :
[phph]echo "toto";[/php]
et dans le "else", j'ai mis le code normale ...
eh bien cela m'affiche toto le nombre de fois que j'ai d'entête ....

Donc il ne rentre pas dans le " IF " ...... cela ne vient pas du
$this->pageActuelle==NULL
car si je mets juste cette condition, cela passe normale mais il y a les " Notices "
Donc quand je fais les
isset($_GET["variable"])
c'est donc faux ....

aaahhh lalala ..... qué passa seignor ?
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Mammouth du PHP | 1353 Messages

10 mai 2006, 12:06

tu n'aurais pas oublié le '!' par hasard :wink:
Le but de ce if est d'inverser les conditions d'ou le ==null et non pas le !=null, donc il faut bien un
!isset($_GET["variable"]) et non pas un isset...

Ish
Eléphant du PHP | 200 Messages

10 mai 2006, 13:13

nan nan .... j'ai bien
if ($this->pageActuelle==NULL && !isset($_GET["code_adpc"]) && !isset($_REQUEST["allou-prevu"]) 
Nan nan .... mais c'est parceque j'avais mis des OU(||) au lien des ET(&&).
Bref n'empeche que cela ne m'enleve pas les "Notices" ... et qu'il me dit que le code adpc n'est pas défini ...
Donc je reviens à la case départ.
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Mammouth du PHP | 1353 Messages

10 mai 2006, 13:29

Il faut que cela soit des OU mais bon c'est pas le problème... Bah écoute désolé je suis un peu à court d'idées là par contre...

Chez moi je fais une page dans laquelle je met ca :
if (!isset($_GET["code_adpc"]) || !isset($_REQUEST["allou-prevu"])) 
{
echo "pas cool";
} 
else echo "cool";
?>
Je n'ai aucun problème de notice et si je met les mapage.php?code_adpc=1&allou-prevu=1 après l'adresse j'ai le message "cool" sinon j'ai le message "pas cool"...

Ish
Eléphant du PHP | 200 Messages

12 mai 2006, 11:38

J'ai fait comme tu as fait, mais ca ne marche toujours pas !!!

J'ai l'impression qu'il n'arrive pas à voir qu'il y aun GET ou alors que la variable GET["variable"] existe bien !!!
car il ne rentre pas dans le "cool" .... ou dans la suite logique de ma programation !!!
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Mammouth du PHP | 1353 Messages

12 mai 2006, 11:42

fais voir l'url de la page dans le navigateur ainsi que la totalité des conditions du if stp

Ish
Eléphant du PHP | 200 Messages

12 mai 2006, 12:02

Ok ok ok ok ..... voila voila la chose
 
//Affichage de l'entête du tableau 
if (isset($data[0])) { 
foreach($data[0] as $key => $value){ 
//Liens 
if ($this->pageActuelle==NULL || !isset($_GET["code_adpc"])|| !isset($_REQUEST["allou-prevu"]) ){ 
echo "toto"; 
} else { 
$page = $this->pageActuelle.'?filtre='.$_GET["filtre"] 
."&tri=$key" ; 
$page.= '&code_adpc='.$_GET["code_adpc"] 
.'&alloue_prevu='.$_REQUEST["alloue_prevu"] 
.'&date_accord_cari='.$_GET["date_accord_cari"] 
.'&date_demarrage='.$_GET["date_demarrage"] 
.'&probabilite='.$_GET["probabilite"]; 
$page.= '&nom='.$_GET["nom"] 
.'&code_commission'.$_GET["code_commission"] 
.'&code_sous_commission='.$_GET["code_sous_commission"] 
.'&mode_financement='.$_GET["mode_financement"] 
.'&code_plateforme='.$_GET["code_plateforme"]; 
$page.= '&code_affaire='.$_GET["code_affaire"] 
.'&code_sites_note='.$_GET["code_sites_note"] 
.'&code_metier='.$_GET["code_metier"] 
.'&type_projet='.$_GET["type_projet"] 
.'&type_note='.$_GET["type_note"]; 
} 

if (isset($this->tabLibelle[$i]) && $this->tabLibelle[$i] != NULL) 
echo "<th><a href=\"$page\">" 
.$this->tabLibelle[$i]."</a></th>\n"; 
else echo "<th><a href=\"$page\">$key</a></th>\n"; 
$i++; 
} 
} 


J'ai mis un petit peu de forme à tous cela pour que ce soir plus lisible (normal)

mon url devrait etre cela, si je decidais de trier le tableau par "code_adpc"
d'ou le " tri=code_adpc "
Code:
ICI


voilà
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!

Ish
Eléphant du PHP | 200 Messages

12 mai 2006, 12:06

Donc quand je fais ca .... cela m'affiche " toto ", autant de fois que j'ai d'entete.

Il ne passe jamais dans le "ELSE" .... cela ne vient pas du :
 $this->pageActuelle==NULL 
car si je ne met que cette condition .... ou alors si je fais un
 $this->pageActuelle!=NULL
et que j'envoie le code juste apres .... (dans le IF et non dans le ELSE) ... cela marche parfaitement .....
Seulement si il est tout seul ....

Comme si les isset() faisaient tout foiré ...
La vie est faite d'imprevu, et l'imprevu fait la vie
Gardez la peche !!