Page 1 sur 1

liens PHP qui ont cessé de fonctionner tout bonnement...

Posté : 07 sept. 2006, 07:11
par karvboy
Salut.

Récément, les liens de mon site codé avec des bases PHP a cessé de fonctionné. Sinon, il a fonctionné correctement durant plus de 2 ans et le code n'avait pas été ré-édité depuis.

Ici j'ai attaché un exemple de code que j'utilise. J'ai tout condensé:



Est-ce que quelqu'un pourrait tester sur un serveur et m'indiquer pourquoi les liens ne marchent plus correctement?

mais bref, le ficher index ressemble à ceci;

Code : Tout sélectionner

<!------------------------> <!- METAS -> <!------------------------> <html> <head> <meta http-equiv="Content-Language" content="fr-ca"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Testing PHP links</title> </head> <body> <!---------------------------> <!- INITIALIZATION (PHP) ---> <!---------------------------> <?php // language by default $lang = ($lang) ? $lang : "en"; // page by default $page = ($page) ? $page : "news"; ?> <!------------------------> <!- LANGUAGE SELECTION -> <!------------------------> <table border="1" cellpadding="3" cellspacing="4" width="26%" bordercolor="#666666"> <tr> <td width="50%" bgcolor="#666666" align="center"> <?php echo "<a href=\"index.php?lang=".en."\">"; ?> English </a> </td> <td width="50%" bgcolor="#666666" align="center"> <?php echo "<a href=\"index.php?lang=".fr."\">"; ?> French </a> </td> </tr> </table> <!------------------------> <!- MAIN STUFF -> <!------------------------> <br><br> <table border="1" cellpadding="3" cellspacing="4" width="600" bordercolor="#666666"> <tr> <td colspan="3"><? include ("$lang/$page.txt") ?></td> </tr> </table> </body> </html>

Posté : 07 sept. 2006, 07:59
par Cyrano
Au vu du code de ta page index affichée ici, je dirais en première approche que ton site était basé sur une configuration de PHP incluant une directive register_globals à ON qui serait passée à OFF lors d'une mise à jour de l'hébergeur.

Or dans ton code, tu as des variables non définies : "$lang" et "$page" qui doivent correspondre à $_GET['lang'] et $_GET['page']. Il te faut donc commencer par initialiser les variables en leur assignant une valeur :
<?php
/* Récupération des paramètres avec valeur par défaut */
$lang = (isset($_GET['lang'])) ? $_GET['lang'] : "en";
$page = (isset($_GET['page'])) ? $_GET['page'] : "news";
?>

Posté : 07 sept. 2006, 19:12
par karvboy
thanks! is there a page that teach how to deal with variable inside links?

Posté : 07 sept. 2006, 19:24
par Truc
En français ? In English ?
En attendant => siteduzero

Posté : 07 sept. 2006, 21:57
par karvboy
thanks! is there a page that teach how to deal with variable inside links?
Je suis désolé, j'étais dans la lune! Je suis tellement habituer de communiquer sur des forums anglophone!

traduction: Y'a t'il des pages web qui enseigne comment manipuler des variables à l'intérieur d'un lien?

je comprends parfaitement l'anglais aussi, donc ne soyez pas limité dans vos suggestions! :) merci!

Posté : 09 sept. 2006, 06:56
par karvboy
Je voudrais savoir si je suis correct avec ce petit passage. Ça marche quand je test, mais je voudrais être certain que c'est la bonne marche à suivre;

notez que j'ai deux dossiers: /fr et /en possédant chacun texte.txt
<a href="index.php?lang=fr"> Français </a>
<br><br>
<a href="index.php?lang=en"> English </a>

<br><br>
<?php echo $_GET['lang']; ?>

<? $lang2 = $_GET['lang']; ?>

<br><br>

<? include("$lang2/texte.txt");?>
c'est surtout le passage en blue qui me fait hésiter!

Merci!

Posté : 09 sept. 2006, 08:18
par Cyrano
tu devrais procéder en mettant une valeur par défaut : si en effet il n'y a pas de paramètre dans ton url, tu auras une erreur : donc tu pourrais faire comme ceci:
<a href="index.php?lang=fr"> Français </a>
<br><br>
<a href="index.php?lang=en"> English </a>

<br><br>
<?php
$lang2 = isset($_GET['lang']) ? $_GET['lang'] : "fr";
echo $lang2;
?>

<br><br>
<?php
include($lang2 ."/texte.txt");
?>

Posté : 09 sept. 2006, 12:43
par karvboy
$lang2 = isset($_GET['lang']) ? $_GET['lang'] : "fr";
une question. Que signifie le '?' au centre de l'affirmation? et à quoi sert le ':' ?

Posté : 09 sept. 2006, 12:58
par Cyrano
regarde dans le forum FAQ et cherche un titre avec "Opérateur ternaire", tu auras toutes les explications détaillées ;)