pseudo cadre

Petit nouveau ! | 4 Messages

19 juin 2005, 19:17

Bonjours,

J'essaye de refaire mon site avec php et j'essaye de faire des pseudo cadres sauf que ca marche pas et je trouve pas ce qui coince, même si je n'ai pas de retour d'erreurs ça ne fait pas ce que je veux!!! Voici donc le code de ma page index.php...

Code : Tout sélectionner

<html> <title>DFX PHP TEST</title> <head> <LINK href="davidfx.css" rel="stylesheet" type="text/css"> <?php if( ! isset( $n ) ) $n = 0; $page = 'page'.$n.'.php'; if (!file_exists($page)){$page = '404.php';} ?> </head> <body> <table width="75%" border="1" cellpadding="1"> <tr> <td colspan="2" class="TITRE1"><div align="center">DAVID-FX, le deuxieme effet david.</div></td> </tr> <tr> <td width="150"> <a class="TEXT" href="index.php?n=1"><b>page1</b></a><br><br> <a class="TEXT" href="index.php?n=2"><b>page2</b></a><br><br> <a class="TEXT" href="index.php?n=3"><b>page3</b></a></td> <td><?php include($page); echo ($n)?></td> </tr> </table> </body> </html>
Mon probleme est que la variable n garde toujours la valeur 0!?!
Quelqu'un peut me dire pourquoi et comment y remédier?

------
pleko

Eléphanteau du PHP | 28 Messages

19 juin 2005, 19:21

Il faut pas mettre $n, il faut mettre $_GET['n']
t'as qu'à mettre $n = $_GET['n']; en haut

Petit nouveau ! | 4 Messages

19 juin 2005, 19:24

Ca Marche, MERCI

Eléphanteau du PHP | 28 Messages

19 juin 2005, 19:29

Pour récupérer ce qu'il y a après le ? tu dois utiliser la superglobales $_GET

exemple :
page.php?n=1
<?php
echo $n;                // n'écrit rien
echo $_GET['n'];    // écrit 1
?>
Si ca ne marche pas ca... il y a un problème.

Eléphanteau du PHP | 28 Messages

19 juin 2005, 19:30

ok ;)

Petit nouveau ! | 4 Messages

19 juin 2005, 20:09

En fait ça marche mais... lorsque je tape l'url /index.php
il me retourne ceci :
Notice: Undefined index: n in c:\www\dfx 3.alpha\index.php on line 3
Je comprend qu'il ne trouve pas n dans l'url et que c'est pour cela qu'il geule;
alors comment faire pour qu'il prenne une page par défaut au lieu de sortir une erreur??
$n = $_GET['n'];
if( ! isset( $n ) ) $n = 1;
$page = 'page'.$n.'.php';
if (!file_exists($page)){$page = '404.php';}

Mammouth du PHP | 19672 Messages

19 juin 2005, 20:15

Remplace les deux premières lignes par une seule :
<?php
$n = isset($_GET['n']) ? $_GET['n'] : 1;
$page = 'page'.$n.'.php';
if (!file_exists($page)){$page = '404.php';}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 4 Messages

19 juin 2005, 20:19

Merci à tous cette fois ca marche vraiment.