Page 1 sur 1

Une grosse Erreur que je n'arrive pas à résoudre: $var = '.'

Posté : 13 mai 2007, 00:16
par chrislabricole
Voiçi mon problème:

il y a une grosse erreur/horreur :lol: ci-dessous
$switch = "if (isset($_GET['id'])) {
   switch ($_GET['id']){
             case (02) :
             echo 'maison';
             break;
             case (02) :
             echo 'appartement';
             break;
             default:
             echo 'Retourner à l\'accueil !';
             break;
    }
   }";
J'ai essayé de chercher des indices sur internet, mais j'ai rien trouvé pour ce genre de cas....

avec les points entre le code, j'ai tout essayé, après, quand c'est bon, il me dit que c'est "T_IF" qui a un blèm... Je compremd plus rien
Je suis trop débutant ! :cry: :cry: :lol:

Merci d'avance !

Posté : 13 mai 2007, 00:53
par sylvaing26
moi a mon avis je ne pense pas que l'on puisse definir la variable dans ce sens mais plus comme cela
if (isset($_GET['id'])) { 
   switch ($_GET['id']){ 
             case (02) : 
             echo 'maison'; 
             break; 
             case (02) : 
             echo 'appartement'; 
             break; 
             default: 
             echo 'Retourner à l\'accueil !'; 
             break; 
    } 
de plus je ne pense pas que tu ai besoin de defini $switch

pour info une varibla se definit ainsi
if (quelquechose) {
$vaeiable = ...
}
mais en aucun l'inverse
$variable = if (truc {}

Posté : 13 mai 2007, 01:00
par chrislabricole
Donc comment je fais ??

si on supprime les guillemets, c'est pareil.. :oops: :oops:

Posté : 13 mai 2007, 01:29
par Ryle
Ma première question serait : et c'est sensé faire quoi ?

Parce que concrètement, le code que tout nous donne, n'est rien de plus que l'affectation d'une chaine dans une variable et il n'y a pas d'erreur en cela.

Si ensuite tu utilises eval() pour executer ta chaine comme du code php ou si tu l'utilises directement sans le $switch = "..." alors y a effectivement des choses qui ne vont pas :) Du genre si la valeur de $_GET['id'] est 2, est-il sensé afficher "maison" ou "appartement" ?

Bref, donne nous peut être un peu plus de code ou explique nous où tu veux en venir parce que là, on peut difficilement deviner :)

Posté : 13 mai 2007, 01:33
par chrislabricole
bé en faite, c'est un système de quota, avec la barre et tout...
plus en bas il y a :
$rep = "C:/chemin/absolu/".$switch."/";
et en faite se que je veut faire c'est que dans chemin/absolu/LE_USER

et que LE_USER , on le choisisse avec le code qui a dans switch

Voilà...

Eum... eu... Ryle, je suis débutant... :oops: je comprend pas trop e que tu dit.... :roll: :o

Posté : 13 mai 2007, 08:01
par jed
Non, tu ne peux pas mettre de traitements dans une variable, mais je ne vois vraiment pas où tu veux en venir. Le traitement va trés bien fonctionner de cette manière:
if (isset($_GET['id'])) { 
   switch ($_GET['id']){ 
             case (02) : 
             echo 'maison'; 
             break; 
             case (02) : 
             echo 'appartement'; 
             break; 
             default: 
             echo 'Retourner à l\'accueil !'; 
             break; 
    }
ou encore de cette manière:
if (isset($_GET['id'])) { 
   switch ($_GET['id']){ 
             case (02) : 
             $switch= 'maison'; 
             break; 
             case (02) : 
             $switch='appartement'; 
             break; 
             default: 
             $switch= 'Retourner à l\'accueil !'; 
             break; 
    }
echo $switch;
Mais j'ai peur de pas bien saisir ce que tu veux faire réellement.

Posté : 13 mai 2007, 11:00
par chrislabricole
A !!!! attendez, je me suis tromper, c'est :
if (isset($_GET['id'])) { 
   switch ($_GET['id']){ 
             case (01) : 
             echo 'maison'; 
             break; 
             case (02) : 
             echo 'appartement'; 
             break; 
             default: 
             echo 'Retourner à l\'accueil !'; 
             break; 
    } 
qui faux mettre dans " $switch="ICI"; "

Comme sa, quand on écrit "id=01" (derrière l'URL), sa va mettre le répertoire maison, et si j'écrit "id=02" , sa va mettre le répertoire appartement

Autant pour moi ! :oops: :oops: Pardon :roll:

Posté : 13 mai 2007, 11:33
par Ryle
Ok, je crois que je comprends mieux... Mais ca ne nous pas entièrement ce que tu veux obtenir. Voilà ce que je comprend :
if (isset($_GET['id'])) {  // tu récupères un id dans l'url
   switch ($_GET['id']){  
       case 1 :  // si la valeur de l'id est 1
           $dossier = 'maison';  // affecte la chaine 'maison' à la variable $dossier
           break;  
       case 2 :  // si la valeur de l'id est 2  
           $dossier = 'appartement'; // affecte la chaine 'maison' à la variable $dossier
           break;  
       default :  // pour toute autre valeur, ne sachant pas ce que tu veux faire
           echo 'Retourner à l\'accueil !';  // affiche un message d'erreur
           break;  
    } 
}

if (isSet($dossier)) // si la valeur $dossier a été renseignée avec un id 1 ou 2
    $rep = "C:/chemin/absolu/".$dossier."/"; // on construit la chaine avec cette valeur

Posté : 13 mai 2007, 11:48
par chrislabricole
Yeah ! sa marche du tonnère !

Merci !

Pardon pour l'erreur des 1er messages, sa aurait du se résoudre plus vite ! :lol: :wink: :wink: :wink:

Merci !

Et encore un sujet résolu !

J'en profite pour dire :
I love PHPFrance !

Posté : 14 mai 2007, 09:10
par lem
En revanche, tu ne loves pas trop http://leconjugueur.com apparemment..