Page 1 sur 3

valeur nulle, remplacer par une autre???

Posté : 08 janv. 2008, 19:23
par stéphanie61
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

Posté : 08 janv. 2008, 19:40
par Berzemus
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>

Posté : 08 janv. 2008, 19:57
par stephanie61
Rebonjour et merci
J'ai mis le code, mais j'ai une erreur
syntax error, unexpected '}'
à la 6éme ligne
stéf

Posté : 08 janv. 2008, 20:06
par Hywan
Oui il manque un point virgule après la variable $mon_id.
Pas bien Berzemus ;-).

Posté : 08 janv. 2008, 20:11
par Invité
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

Posté : 08 janv. 2008, 20:12
par stephanie61
désolé pas identifiée :)
la phrase exacte est "je le met ou"
hihihi pas en forme ce soir
stéf

Posté : 08 janv. 2008, 20:20
par Hywan
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é).

Posté : 08 janv. 2008, 20:40
par AB
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

Posté : 08 janv. 2008, 20:47
par zeus
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

Posté : 08 janv. 2008, 20:49
par Hywan
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 ;-).

Posté : 08 janv. 2008, 21:12
par Invité
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

Posté : 08 janv. 2008, 21:13
par stephanie61
il met les liens avec 0 comme id:

Code : Tout sélectionner

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

Posté : 08 janv. 2008, 21:17
par stephanie61
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

Posté : 08 janv. 2008, 21:30
par Berzemus
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.

Posté : 08 janv. 2008, 21:41
par Invité
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