Bonsoir
Excusez moi pour le coté débutant de la question d'avance.
Voilà mon léger souci. Lors de mes dévs en local sous windows / easyPhp 1.7
je peux voir des erreurs car certaines de mes variables ne sont pas
définies. ok je sais ce que cela veut dire mais dès fois vous ne devez pas
avoir le choix.
En l'occurence ma variable non définie est qqch comme
$p_Rech = strval($_POST['Rech'])
Mais selon d'où est appelé le script il n'y a rien sur ce pointeur d'où
l'erreur.
Vous faites comment pour faire disparaître ce warning??
J'ai essayé
!isset($_POST['Rech']) ? $p_Rech = strval($_POST['Rech']) :
$p_Rech="";
mais cela ne me donne pas de résultat le warning est toujours présent.
Merci pour vos lumières car même si cela ne géne pas en production je
voudrais que cela soit clean dans le code.
Cdl
--
Vous pouvez me joindre
ou sur Msn
joindreWilliam at hotmail.com en instantanée
Voilà mon léger souci. Lors de mes dévs en local sous windows / easyPhp 1.7 je peux voir des erreurs car certaines de mes variables ne sont pas définies. ok je sais ce que cela veut dire mais dès fois vous ne devez pas avoir le choix.
Tu fais bien de vouloir éliminer les erreurs, toutes les erreurs.
En l'occurence ma variable non définie est qqch comme $p_Rech = strval($_POST['Rech'])
[...]
J'ai essayé !isset($_POST['Rech']) ? $p_Rech = strval($_POST['Rech']) : $p_Rech=""; mais cela ne me donne pas de résultat le warning est toujours présent.
C'est normal, tu as fait le test à l'envers : tu ne fais l'affectation que dans le cas où la valeur n'est *pas* définie.
Par ailleurs, si tu tiens absolument à la syntaxe « ? : », il vaut mieux en sortir l'affectation : $p_Rech = isset($_POST['Rech']) ? strval($_POST['Rech']) : "";
Personnellement j'aime bien cette écriture, mais d'autres préfèrent un simple « if else » : if (isset($_POST['Rech'])) { $p_Rech = strval($_POST['Rech']); } else { $p_Rech = ""; }
Voilà mon léger souci. Lors de mes dévs en local sous windows / easyPhp 1.7
je peux voir des erreurs car certaines de mes variables ne sont pas
définies. ok je sais ce que cela veut dire mais dès fois vous ne devez pas
avoir le choix.
Tu fais bien de vouloir éliminer les erreurs, toutes les erreurs.
En l'occurence ma variable non définie est qqch comme
$p_Rech = strval($_POST['Rech'])
[...]
J'ai essayé
!isset($_POST['Rech']) ? $p_Rech = strval($_POST['Rech']) : $p_Rech="";
mais cela ne me donne pas de résultat le warning est toujours présent.
C'est normal, tu as fait le test à l'envers : tu ne fais l'affectation
que dans le cas où la valeur n'est *pas* définie.
Par ailleurs, si tu tiens absolument à la syntaxe « ? : », il vaut mieux
en sortir l'affectation :
$p_Rech = isset($_POST['Rech']) ? strval($_POST['Rech']) : "";
Personnellement j'aime bien cette écriture, mais d'autres préfèrent un
simple « if else » :
if (isset($_POST['Rech'])) {
$p_Rech = strval($_POST['Rech']);
} else {
$p_Rech = "";
}
Voilà mon léger souci. Lors de mes dévs en local sous windows / easyPhp 1.7 je peux voir des erreurs car certaines de mes variables ne sont pas définies. ok je sais ce que cela veut dire mais dès fois vous ne devez pas avoir le choix.
Tu fais bien de vouloir éliminer les erreurs, toutes les erreurs.
En l'occurence ma variable non définie est qqch comme $p_Rech = strval($_POST['Rech'])
[...]
J'ai essayé !isset($_POST['Rech']) ? $p_Rech = strval($_POST['Rech']) : $p_Rech=""; mais cela ne me donne pas de résultat le warning est toujours présent.
C'est normal, tu as fait le test à l'envers : tu ne fais l'affectation que dans le cas où la valeur n'est *pas* définie.
Par ailleurs, si tu tiens absolument à la syntaxe « ? : », il vaut mieux en sortir l'affectation : $p_Rech = isset($_POST['Rech']) ? strval($_POST['Rech']) : "";
Personnellement j'aime bien cette écriture, mais d'autres préfèrent un simple « if else » : if (isset($_POST['Rech'])) { $p_Rech = strval($_POST['Rech']); } else { $p_Rech = ""; }
au passage, le strval est inutile amha (le tableau $_POST ne contient que des chaînes de caractères).
Jawad
Bonjour, tu peux tenter de mettre: $p_Rech = @strval($_POST['Rech']);
Mais il est vrai qu'un !isset aurait dû suffir. Peut-être la syntaxe avec le ? déconne-t-elle (je n'ai pas tellement l'habitude de l'utiliser), as-tu essayé de la remplacer par un if classique ? Cordialement, Jawad;
Bonjour,
tu peux tenter de mettre: $p_Rech = @strval($_POST['Rech']);
Mais il est vrai qu'un !isset aurait dû suffir. Peut-être la syntaxe
avec le ? déconne-t-elle (je n'ai pas tellement l'habitude de
l'utiliser), as-tu essayé de la remplacer par un if classique ?
Cordialement,
Jawad;
Bonjour, tu peux tenter de mettre: $p_Rech = @strval($_POST['Rech']);
Mais il est vrai qu'un !isset aurait dû suffir. Peut-être la syntaxe avec le ? déconne-t-elle (je n'ai pas tellement l'habitude de l'utiliser), as-tu essayé de la remplacer par un if classique ? Cordialement, Jawad;
Laurent Seguin
William , le 13 nov. 2004 20:11:30, écrivait ceci:
En l'occurence ma variable non définie est qqch comme $p_Rech = strval($_POST['Rech'])
Mais selon d'où est appelé le script il n'y a rien sur ce pointeur d'où l'erreur.
Vous faites comment pour faire disparaître ce warning??
Comma ça : if(!empty($_POST['Rech'])) $p_Rech = strval($_POST['Rech']);
Si tu n'attends qu'une chaine de caractère AMHA il devrait être plus intéréssant de faire quelque chose du genre :
Bonjour, tu peux tenter de mettre: $p_Rech = @strval($_POST['Rech']);
Peut-être que ta proposition fonctionne, mais dans tous les cas je crois que cela serait mieux : $p_Rech = strval(@$variable);
La question est de savoir ce vaudra la variable si $variable n'est pas définie. Je pense que c'est la chaîne vide (puisque que strval est sensé retourner une chaîne). Si cela est vérifié, ce codage serait au moins plus pratique que les propositions utilisant la condition.
Avec : "$p_Rech = @$variable", je crois que le retour sera NULL si la $variable n'est pas définie.
Pour l'information de William, le @ devant une variable, une fonction ou une méthode sert à ignorer les erreurs : http://www.php.net/manual/fr/language.operators.errorcontrol.php
Jawad wrote:
Bonjour,
tu peux tenter de mettre: $p_Rech = @strval($_POST['Rech']);
Peut-être que ta proposition fonctionne, mais dans tous les cas je crois
que cela serait mieux :
$p_Rech = strval(@$variable);
La question est de savoir ce vaudra la variable si $variable n'est pas
définie. Je pense que c'est la chaîne vide (puisque que strval est sensé
retourner une chaîne). Si cela est vérifié, ce codage serait au moins
plus pratique que les propositions utilisant la condition.
Avec : "$p_Rech = @$variable", je crois que le retour sera NULL si la
$variable n'est pas définie.
Pour l'information de William, le @ devant une variable, une fonction ou
une méthode sert à ignorer les erreurs :
http://www.php.net/manual/fr/language.operators.errorcontrol.php
Bonjour, tu peux tenter de mettre: $p_Rech = @strval($_POST['Rech']);
Peut-être que ta proposition fonctionne, mais dans tous les cas je crois que cela serait mieux : $p_Rech = strval(@$variable);
La question est de savoir ce vaudra la variable si $variable n'est pas définie. Je pense que c'est la chaîne vide (puisque que strval est sensé retourner une chaîne). Si cela est vérifié, ce codage serait au moins plus pratique que les propositions utilisant la condition.
Avec : "$p_Rech = @$variable", je crois que le retour sera NULL si la $variable n'est pas définie.
Pour l'information de William, le @ devant une variable, une fonction ou une méthode sert à ignorer les erreurs : http://www.php.net/manual/fr/language.operators.errorcontrol.php
Cleo
"William" a écrit dans le message de news: 4196671b$0$10716$
Bonsoir Merci à tout le monde. I'll be back :-)
Bonne soirée
William
Si tu simplifies ton besoin, tu obtiens: $p_Rech = $_POST['Rech'];
Donc autant utiliser directement $_POST['Rech'] à la place de $p_Rech, car dans le fond ça ne sert à rester de définir 30.000 variables pour ne rien faire ...
Amicalement. -- Cléo.
"William" <non@et_non.com> a écrit dans le message de news:
4196671b$0$10716$626a14ce@news.free.fr...
Bonsoir
Merci à tout le monde. I'll be back :-)
Bonne soirée
William
Si tu simplifies ton besoin, tu obtiens:
$p_Rech = $_POST['Rech'];
Donc autant utiliser directement $_POST['Rech'] à la place de $p_Rech, car
dans le fond ça ne sert à rester de définir 30.000 variables pour ne rien
faire ...
"William" a écrit dans le message de news: 4196671b$0$10716$
Bonsoir Merci à tout le monde. I'll be back :-)
Bonne soirée
William
Si tu simplifies ton besoin, tu obtiens: $p_Rech = $_POST['Rech'];
Donc autant utiliser directement $_POST['Rech'] à la place de $p_Rech, car dans le fond ça ne sert à rester de définir 30.000 variables pour ne rien faire ...
Amicalement. -- Cléo.
William
Bonjour
"Cleo" a écrit dans le message de news:41967671$0$10721$
Si tu simplifies ton besoin, tu obtiens: $p_Rech = $_POST['Rech'];
Donc autant utiliser directement $_POST['Rech'] à la place de $p_Rech, car dans le fond ça ne sert à rester de définir 30.000 variables pour ne rien faire ...
Je ne peux pas ou alors je suis partie de travers. A vous de me dire Dans $_post['Rech'] j'ai le résultat de radio et donc plus loin dans le script j'ai un switch car la valeur $p_Rech sert pour la constitution de la requête.
Le souci, mon erreur est peut être là, est de vouloir rester sur le même scritp pour gérer le premier affichage ET de gérer l'affichage après recherche sur ce qu'il vient d'être afficher.
Pour être plus clair. j'ai un glossaire et sur la première page on liste les X premiers élément aisni qu'un outil de recherche pour filtrer le résultat. Lors de l'action sur ces filtres nous sommes toujours sur le meme script. Elle est là mon erreur?? devrais-je plustôt rediriger vers un autre script qui afficherais ce résultat et lui seul???
Extrait du code (qui va tout changer face à votre remarque très justifiée)
switch ($p_RechSur){ case "Src": $RechSur=' and definition_source'; break;
case "Cib": $RechSur=' and definition_cible'; break; } switch ($p_RechType){ case "Com": $RechType=" like "".$p_Rech."%""; break;
case "Con": $RechType=" like "%".$p_Rech."%""; break;
case "Fini": $RechType=" like "%".$p_Rech."""; break; } $SqlGlossAff =" select id_glossaire, definition_source, definition_cible, definition_rec from " .$xoopsDB->prefix('glossaire'). // Fonction interne au portail récupère simplement le préfixe rien de plus ' where lang_source='.$P_LgSrc.' and lang_cible='.$P_LgCib.$RechSur.$RechType. ' order BY definition_source asc'. ' limit '.intval($P_Limit).','.$DefPage; // $DefPage => Retour classe pour gérer le nombres de pages à afficher
Cdl William
-- Vous pouvez me joindre ou sur Msn joindreWilliam at hotmail.com en instantanée
Amicalement. -- Cléo.
Bonjour
"Cleo" <cleo@no-spam.fr> a écrit dans le message de
news:41967671$0$10721$626a14ce@news.free.fr...
Si tu simplifies ton besoin, tu obtiens:
$p_Rech = $_POST['Rech'];
Donc autant utiliser directement $_POST['Rech'] à la place de $p_Rech, car
dans le fond ça ne sert à rester de définir 30.000 variables pour ne rien
faire ...
Je ne peux pas ou alors je suis partie de travers. A vous de me dire
Dans $_post['Rech'] j'ai le résultat de radio et donc plus loin dans le
script j'ai un switch car la valeur $p_Rech sert pour la constitution de la
requête.
Le souci, mon erreur est peut être là, est de vouloir rester sur le même
scritp pour gérer le premier affichage ET de gérer l'affichage après
recherche sur ce qu'il vient d'être afficher.
Pour être plus clair.
j'ai un glossaire et sur la première page on liste les X premiers élément
aisni qu'un outil de recherche pour filtrer le résultat. Lors de l'action
sur ces filtres nous sommes toujours sur le meme script. Elle est là mon
erreur?? devrais-je plustôt rediriger vers un autre script qui afficherais
ce résultat et lui seul???
Extrait du code (qui va tout changer face à votre remarque très justifiée)
switch ($p_RechSur){
case "Src":
$RechSur=' and definition_source';
break;
case "Cib":
$RechSur=' and definition_cible';
break;
}
switch ($p_RechType){
case "Com":
$RechType=" like "".$p_Rech."%"";
break;
case "Con":
$RechType=" like "%".$p_Rech."%"";
break;
case "Fini":
$RechType=" like "%".$p_Rech.""";
break;
}
$SqlGlossAff ="
select
id_glossaire, definition_source, definition_cible, definition_rec
from "
.$xoopsDB->prefix('glossaire'). // Fonction interne au portail récupère
simplement le préfixe rien de plus
' where lang_source='.$P_LgSrc.' and
lang_cible='.$P_LgCib.$RechSur.$RechType.
' order BY definition_source asc'.
' limit '.intval($P_Limit).','.$DefPage; // $DefPage => Retour classe pour
gérer le nombres de pages à afficher
Cdl
William
--
Vous pouvez me joindre
ou sur Msn
joindreWilliam at hotmail.com en instantanée
"Cleo" a écrit dans le message de news:41967671$0$10721$
Si tu simplifies ton besoin, tu obtiens: $p_Rech = $_POST['Rech'];
Donc autant utiliser directement $_POST['Rech'] à la place de $p_Rech, car dans le fond ça ne sert à rester de définir 30.000 variables pour ne rien faire ...
Je ne peux pas ou alors je suis partie de travers. A vous de me dire Dans $_post['Rech'] j'ai le résultat de radio et donc plus loin dans le script j'ai un switch car la valeur $p_Rech sert pour la constitution de la requête.
Le souci, mon erreur est peut être là, est de vouloir rester sur le même scritp pour gérer le premier affichage ET de gérer l'affichage après recherche sur ce qu'il vient d'être afficher.
Pour être plus clair. j'ai un glossaire et sur la première page on liste les X premiers élément aisni qu'un outil de recherche pour filtrer le résultat. Lors de l'action sur ces filtres nous sommes toujours sur le meme script. Elle est là mon erreur?? devrais-je plustôt rediriger vers un autre script qui afficherais ce résultat et lui seul???
Extrait du code (qui va tout changer face à votre remarque très justifiée)
switch ($p_RechSur){ case "Src": $RechSur=' and definition_source'; break;
case "Cib": $RechSur=' and definition_cible'; break; } switch ($p_RechType){ case "Com": $RechType=" like "".$p_Rech."%""; break;
case "Con": $RechType=" like "%".$p_Rech."%""; break;
case "Fini": $RechType=" like "%".$p_Rech."""; break; } $SqlGlossAff =" select id_glossaire, definition_source, definition_cible, definition_rec from " .$xoopsDB->prefix('glossaire'). // Fonction interne au portail récupère simplement le préfixe rien de plus ' where lang_source='.$P_LgSrc.' and lang_cible='.$P_LgCib.$RechSur.$RechType. ' order BY definition_source asc'. ' limit '.intval($P_Limit).','.$DefPage; // $DefPage => Retour classe pour gérer le nombres de pages à afficher
Cdl William
-- Vous pouvez me joindre ou sur Msn joindreWilliam at hotmail.com en instantanée
Amicalement. -- Cléo.
Laurent Seguin
William , le 14 nov. 2004 13:10:52, écrivait ceci:
Le souci, mon erreur est peut être là,
Non ton erreur c'est que tu ne testes pas l'existance ni le contenu de $_post['Rech'].
est de vouloir rester sur le même scritp pour gérer le premier affichage ET de gérer l'affichage après recherche sur ce qu'il vient d'être afficher.
Si $_post['Rech'] existe et/ou n'est pas vide => Recherche Sinon => Affichage
William <non@et_non.com>, le 14 nov. 2004 13:10:52, écrivait ceci:
Le souci, mon erreur est peut être là,
Non ton erreur c'est que tu ne testes pas l'existance ni le contenu de
$_post['Rech'].
est de vouloir rester sur le
même scritp pour gérer le premier affichage ET de gérer l'affichage
après recherche sur ce qu'il vient d'être afficher.
Si $_post['Rech'] existe et/ou n'est pas vide => Recherche
Sinon => Affichage
William , le 14 nov. 2004 13:10:52, écrivait ceci:
Le souci, mon erreur est peut être là,
Non ton erreur c'est que tu ne testes pas l'existance ni le contenu de $_post['Rech'].
est de vouloir rester sur le même scritp pour gérer le premier affichage ET de gérer l'affichage après recherche sur ce qu'il vient d'être afficher.
Si $_post['Rech'] existe et/ou n'est pas vide => Recherche Sinon => Affichage
William
Bonjour
"Cleo" a écrit dans le message de news:41967671$0$10721$
Donc autant utiliser directement $_POST['Rech'] à la place de $p_Rech, car dans le fond ça ne sert à rester de définir 30.000 variables pour ne rien faire ...
Perso j'utilise une correspondance car mon éditeur me permet d'autocompléter mes variables ce qui est tout de même plus simple. l'autre raison c'est de pourvoir contrôler ce qui est passé par l'utilisateur, un aspect "Sécurité" et de pouvoir contrôler ce qui est récupéré, j'ai tort??
Cdl
William -- Vous pouvez me joindre ou sur Msn joindreWilliam at hotmail.com en instantanée
Amicalement. -- Cléo.
Bonjour
"Cleo" <cleo@no-spam.fr> a écrit dans le message de
news:41967671$0$10721$626a14ce@news.free.fr...
Donc autant utiliser directement $_POST['Rech'] à la place de $p_Rech, car
dans le fond ça ne sert à rester de définir 30.000 variables pour ne rien
faire ...
Perso j'utilise une correspondance car mon éditeur me permet d'autocompléter
mes variables ce qui est tout de même plus simple.
l'autre raison c'est de pourvoir contrôler ce qui est passé par
l'utilisateur, un aspect "Sécurité" et de pouvoir contrôler ce qui est
récupéré, j'ai tort??
Cdl
William
--
Vous pouvez me joindre
ou sur Msn
joindreWilliam at hotmail.com en instantanée
"Cleo" a écrit dans le message de news:41967671$0$10721$
Donc autant utiliser directement $_POST['Rech'] à la place de $p_Rech, car dans le fond ça ne sert à rester de définir 30.000 variables pour ne rien faire ...
Perso j'utilise une correspondance car mon éditeur me permet d'autocompléter mes variables ce qui est tout de même plus simple. l'autre raison c'est de pourvoir contrôler ce qui est passé par l'utilisateur, un aspect "Sécurité" et de pouvoir contrôler ce qui est récupéré, j'ai tort??
Cdl
William -- Vous pouvez me joindre ou sur Msn joindreWilliam at hotmail.com en instantanée