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

Mammouth du PHP | 959 Messages

13 mai 2007, 00:16

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 !

Mammouth du PHP | 686 Messages

13 mai 2007, 00:53

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 {}

Mammouth du PHP | 959 Messages

13 mai 2007, 01:00

Donc comment je fais ??

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 mai 2007, 01:29

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 :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 959 Messages

13 mai 2007, 01:33

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

jed
Eléphant du PHP | 218 Messages

13 mai 2007, 08:01

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.

Mammouth du PHP | 959 Messages

13 mai 2007, 11:00

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:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 mai 2007, 11:33

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
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 959 Messages

13 mai 2007, 11:48

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 !

lem
Eléphant du PHP | 108 Messages

14 mai 2007, 09:10

En revanche, tu ne loves pas trop http://leconjugueur.com apparemment..
Lem.