valeur nulle, remplacer par une autre???

stéphanie61
Invité n'ayant pas de compte PHPfrance

08 janv. 2008, 19:23

Bonjour,
Voici mon probléme:
Mes partenaire ont un id, qu'il rajoute à la fin de l'adresse de mon site, du style:
http://monsite.net/index.php?affl_id=VOTREID
Ensuite je rappel leurs id (dans le reste des pages de mon site) avec la fonction

Code : Tout sélectionner

<a href="http://www.unlien.net?affl_id=<? if(isset($affl_id)) { echo($affl_id); }?>">le lien</a>
Mais j'aimerai savoir comment faire si il n'y as pas d'id, c'est à dire si l'adresse du site devient
http://monsite.net/index.php?affl_id=
Ou encore mieux http://monsite.net
J'aimerai alors que l'id devienne automatiquement un id à moi
http://monsite.net/index.php?affl_id=UNIDAMOI
et qu'il se repette dans toutes les pages de mon site
J'espére que vous avez tous compris ;)
Stéphanie

ViPHP
ViPHP | 4039 Messages

08 janv. 2008, 19:40

Salut,

Il n'y a qu'a dire alors (dans ton script) que si l'id n'est pas défini, vide ou invalide, il est remplacé par une valeur par défaut (de ton choix).

Un peu comme ceci, dans ton index.php
<?php
if (isset($_GET["id"]) && $_GET["id"]!="" ) {
 $id = htmlentities($_GET["id"]);
} else {
 $id = $mon_id
}
?>
<a href="http://www.unlien.net?affl_id=<?php echo $id;?>">le lien</a>
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

stephanie61
Invité n'ayant pas de compte PHPfrance

08 janv. 2008, 19:57

Rebonjour et merci
J'ai mis le code, mais j'ai une erreur
syntax error, unexpected '}'
à la 6éme ligne
stéf

ViPHP
ViPHP | 4674 Messages

08 janv. 2008, 20:06

Oui il manque un point virgule après la variable $mon_id.
Pas bien Berzemus ;-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Invité
Invité n'ayant pas de compte PHPfrance

08 janv. 2008, 20:11

Bijour,
Je le met dans le code l'id de mon choix comme 8500 par exemple

Code : Tout sélectionner

<?php if (isset($_GET["id"]) && $_GET["id"]!="" ) { $id = htmlentities($_GET["id"]); } else { $id = $mon_id ; } ?>
merci
stéf

stephanie61
Invité n'ayant pas de compte PHPfrance

08 janv. 2008, 20:12

désolé pas identifiée :)
la phrase exacte est "je le met ou"
hihihi pas en forme ce soir
stéf

ViPHP
ViPHP | 4674 Messages

08 janv. 2008, 20:20

On avait compris ;-).
Tu peux le mettre n'importe où, mais de préférence en tête de fichier. C'est à dire avant de commencer à écrire de l'HTML par exemple. Le mieux serait de te faire une constante (un peu mieux qu'une variable ...).

De cette façon par exemple :
if(!defined('MON_ID'))
    define('MON_ID', 8500, true);

// du code

$id = !empty($_GET['id']) ? (int) $_GET['id'] : MON_ID;
J'ai juste simplifié le « isset » et le « différent de vide » par « n'est pas vide », ce qui revient au même. J'ai également utilisé la condition ternaire, ce qui allège ton code (et tu gagnes en clarté).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
AB
ViPHP | 5818 Messages

08 janv. 2008, 20:40

Houlà vas-y doucement HyWaN

Des constantes, des opérations ternaires... c'est bien de vouloir faire avancer le topo mais si stephanie61 n'avait pas pu corriger le petit oubli ; du code de Berzemus, je me demande si tu ne vas pas un peu vite :wink:

Et puis le commentaire "Pas bien Berzemus" est assez superflu, d'autant qu'il avait fait l'essentiel. Alors elles sont déjà oubliées ces "bonnes résolutions" :P

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

08 janv. 2008, 20:47

J'ai également utilisé la condition ternaire, ce qui allège ton code (et tu gagnes en clarté).
Petite pub pour mon tuto :arrow: opérateur ternaire
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 4674 Messages

08 janv. 2008, 20:49

C'était une plaisanterie pour Berzemus :).

Et je lui ai mis les liens nécessaires pour qu'elle puisse tout comprendre. Ne pas savoir c'est une chose, mais ça ne veut pas dire qu'on ne veut pas apprendre ;-). Ma solution l'aide à voir autre chose. Mais elle peut toujours reprendre celle de Berzemus qui reste très correct hein :). D'autant que j'ai répondu à sa question, et j'ai ensuite poussé un peu les choses. Tout un apprentissage ;-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Invité
Invité n'ayant pas de compte PHPfrance

08 janv. 2008, 21:12

Rebisoir,
Alors ça a bien marché pendant quelques temps, puis plus rien, l'id suit bien les pages, mais il ne suit plus les liens dans les pages????
J'ai mis

Code : Tout sélectionner

<?php if(!defined('MON_ID')) define('MON_ID', 8500, true); // du code $affl_id = !empty($_GET['affl_id']) ? (int) $_GET['id'] : MON_ID; ?>
Aprés body
et les liens sont comme ça:

Code : Tout sélectionner

<a href="http://www.unlien.net?affl_id=<?php echo $affl_id;?>">le lien</a>
Stéf

stephanie61
Invité n'ayant pas de compte PHPfrance

08 janv. 2008, 21:13

il met les liens avec 0 comme id:

Code : Tout sélectionner

http://www.unlien.net?affl_id=0
stéf

stephanie61
Invité n'ayant pas de compte PHPfrance

08 janv. 2008, 21:17

Et maintenant c'est pire, si on arrive par un lien du style
http://monsite.net/index.php?affl_id=9874
eh bien l'id ne suis plus du tout, il y a 0 partout, dans le nom de page et les liens!
stéf

ViPHP
ViPHP | 4039 Messages

08 janv. 2008, 21:30

ouhla, stop, gare à la surchauffe !!

Peux-tu nous montrer ton code ? (en utilisant les boutons "Code" et "PHP" )

J'ai pas très bien suivi ta progression.. enlève déjà voir le "(int)" de ce bout de code, avec un peu de chance ça bougera..

De toute façon, pas besoin de résoudre ça ce soir, demain est une belle journée.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Invité
Invité n'ayant pas de compte PHPfrance

08 janv. 2008, 21:41

Rererecoucou
J'ai enlevé le (int), mais sur la page de l'index:

Code : Tout sélectionner

index.php?affil_id=2800
l'id ne suit pas les liens car j'ai le mien vers le menu:

Code : Tout sélectionner

menu.php?affl_id=8500
au lieu de

Code : Tout sélectionner

menu.php?affl_id=2800
stéf