Page 1 sur 2

question bête cherche réponse intelligente

Posté : 27 juil. 2009, 11:44
par Invité
Bonjour,

Est-il possible d'attribuer à une variable la valeur d'une adresse de page.php ?

Quelque chose comme $mavariable = mapage.php

Ne me fusillez pas, svp :?

Merci par avance

Posté : 27 juil. 2009, 11:46
par Cobaye
tu entend quoi pas valeur d'un adresse ?

$tavaraible = "tapage.php";

ou

$tavaraible = file_get_content('tapage.php') //tu récupérera que le html fournir par le fichier php

Posté : 27 juil. 2009, 11:53
par Invité
Bonjour Cobaye

Eh bien, je ne sais exactement, ou disons plutôt que si tes deux modes sont possibles, je teste et je vois lequel me permet d'obtenir ce que je veux...

A tout à l'heure, donc.

Et merci !

Posté : 27 juil. 2009, 12:30
par Invité
Bonjour Cobaye

Eh bien, je ne sais exactement, ou disons plutôt que si tes deux modes sont possibles, je teste et je vois lequel me permet d'obtenir ce que je veux...

A tout à l'heure, donc.

Et merci !
Bien, évidemment mes testes produisent des erreurs, donc j'explique ce que je souhaite obtenir :

dans index.php j'affiche ma page entete_index.php via un include...
et je voudrais que cette page entete_index.php (qui contient du html et un petit code php) soit traitée via une variable sur une autre page.php, laquelle variable sera utilisée sur index.php grâce à echo

Voili, voilà
Merci à nouveau

Posté : 27 juil. 2009, 13:35
par niuxe
Hello,

Je te propose dans un premier temps d'aller sur php débutant et lire les tuts :
* 0 (pas obligatoire, mais préférable)
* 1
* 2
* 3
* 4
* 6

Ces tutorials se trouvent dans la partie droite de l'écran (Débutez). Je pense que ça va répondre à tes questions.

Bonne journée à toi

Posté : 27 juil. 2009, 14:02
par Invité
Nolem,

c'est gentil, mais je ne cesse de m'y reporter dans ma pénible progression en php.

et je ne trouve pas de réponse à cette question très précise évoquée plus haut, car les valeurs de variables sont toujours des chaines de caractères ou des calculs ou d'autres variables...

probablement qu'il faut faut interpréter et adapter, mais là je ne trouve pas la bonne syntaxe pour que ma variable contienne l'adresse d'une page.php

et il ne s'agit pas d'un tableau, ou d'une condition, ou toute autre construction élaborée

non, juste ça : $mavariable = adresse de lapage.php !!

Posté : 27 juil. 2009, 14:05
par agité
Genre :
$url = $_SERVER["REQUEST_URI"];
?

Posté : 27 juil. 2009, 14:17
par Invité
Euh,

je ne sais pas, cher agité...

$_SERVER est une superglobale, n'est-ce pas ?

Et je met l'adresse de ma page ainsi ?
$url = $_SERVER["REQUEST_URI"(mapage.php)];
Je pose la question, mais je vais aussi me documenter à partir de ta réponse...

Posté : 27 juil. 2009, 14:21
par agité
Euh,

je ne sais pas, cher agité...

$_SERVER est une superglobale, n'est-ce pas ?

Et je met l'adresse de ma page ainsi ?
$url = $_SERVER["REQUEST_URI"(mapage.php)];
Je pose la question, mais je vais aussi me documenter à partir de ta réponse...
Non, mais je comprends pas du tout ce que tu veux faire, alors j'essaie. Mais si tu ne nous dit pas exactement ce que tu veux faire et ce que tu as déjà mis en place, par exemple en nous montrant un peu de code, on aura beaucoup de mal à comprendre et t'aider.

Pour que la variable $url contienne la page du script courant il te faut faire :
$url = $_SERVER['REQUEST_URI']

Posté : 27 juil. 2009, 15:21
par Invité
Ok,
je ne voulais pas encombrer avec du code, croyant ma question simple, mais d'accord :
j'ai donc par exemple ma page accueil ainsi construite
<?php
$titre = 'Accueil Racontetapis';
$contenu = <<<SYNTAXE_HEREDOC

<div id="corps">
	<h3>Vous êtes sur la page d'accueil !</h3>
	<p>Ici nous sommes sur la page d'accueil</p>
</div>

SYNTAXE_HEREDOC;
?>
dans index.php j'ai ceci
<!-- appel du tableau identifiant la page demandée via un lien des menus -->
<?php include("fonction_pages.php"); ?>

<!-- appel de la page affichant la partie doctype/meta/title/css -->
<?php include("entete_index.php"); ?>

<!-- appel du menu -->
<?php include("menu.php"); ?>

<!-- affichage de la page demandée (partie contenu) -->
<?php echo $contenu; ?>

<!-- affichage du bas de page -->
<?php include ('bas_index.php'); ?>
j'aimerais avoir deux fichiers pour la partie doctype/meta/title/css : entete_index1.php et entete_index2.php afin de mettre celui qui m'est nécessaire dans l'une ou l'autre de mes pages par ajout d'une variable
<?php
$ref_entete = soit "entete_index1.php" soit "entete_index2.php"
$titre = 'Accueil Racontetapis';
$contenu = <<<SYNTAXE_HEREDOC

<div id="corps">
	<h3>Vous êtes sur la page d'accueil !</h3>
	<p>Ici nous sommes sur la page d'accueil</p>
</div>

SYNTAXE_HEREDOC;
?>
entete qui sera affiché ainsi dans index.php
<?php include("fonction_pages.php"); ?>

<!-- appel de la partie doctype/meta/title/css -->
<?php echo $ref_entete; ?>

<?php include("menu.php"); ?>

<?php echo $contenu; ?>

<?php include ('bas_index.php'); ?>
J'espère avoir été clair...

Merci par avance

Posté : 27 juil. 2009, 17:26
par FuZZyLine
Salut,
[...]
non, juste ça : $mavariable = adresse de lapage.php !!
Si je comprends bien ce que tu veux:
/**
 * @Definition
 * Pose une limite de rapatriement
 */
 define ("MAX_READ", 1024);

/**
 * @var hFile
 * Handle du fichier
 */
 $hFile = fopen("./toto.htm", "r");

 if (!$hFile) exit(-1);

/**
 * @var bfWork
 * Flag binaire de réussite
 */
 $bfWork = true;

/**
 * @var strTxt
 * Texte de la page
 */
 $strTxt = "";

/**
 * Boucle tant que le flag est vrai
 */
 while($bfWork)
 {
     $txt = fgets($hf, MAX_READ);
     if ($txt !== false)
     {
        $strTxt .= $txt;
     }
     else $bfWork = false;
 }

 echo $strTxt;

Ca marche à toi de jouer mais souviens toi: y a toujours plusieur façon de faire.
Et la, à ta question, j'en vois au moins 3 lol
j'aimerais avoir deux fichiers pour la partie doctype/meta/title/css : entete_index1.php et entete_index2.php afin de mettre celui qui m'est nécessaire dans l'une ou l'autre de mes pages par ajout d'une variable
Tu peux faire un test unaire:
/**
 * Test, J'ai utilisé $userName pour plus de clareté ;)
 */
 $userName == "MOI" ? $filePage = "./moi.htm" : $filePage="toi.htm";
J'espère avoir été clair...
Bein, sans vouloir de vexer... Entre ton 1er Post et celui-ci ca change pas mal donc je ne sais si
mes réponses sont celles que tu attends lol, désolé si c'est pas le cas. D'autre part tu as l'air
de vouloir séparer le code du script... Essaie de te renseigner sur le MVC si c'est vraiment ce que tu
veux faire. Vois aussi du côté des templates.

En même temps j'ai peut-être tout faux... à toi de dire @+ bon code ;)

EDIT: Je viens de relire et... Désolé ca doit pas être ce que tu cherches comme info.

Posté : 27 juil. 2009, 18:42
par Invité
FuZZyLine,

Merci d'avoir pris la peine de me répondre...
Mais ce n'est effectivement pas ce que je cherche, du moins d'après ce que je comprend de ta réponse.

Bon, réussirais-je à obtenir l'info qui me manque ?
Est-ce que ma question est à ce point incompréhensible ?

J'en appel à votre bon cœur ! Déjà grand par le nombre de personnes qui ont tenté une réponse, mais malheureusement sans que j'y trouve matière à enfin mettre un "résolu" à ce post...

Posté : 27 juil. 2009, 19:06
par Invité
Bon, réussirais-je à obtenir l'info qui me manque ?
Est-ce que ma question est à ce point incompréhensible ?
Je veux dire : il arrive qu'une question d'un débutant plonge les avertis dans un océan de perplexité, tant elle semble venue d"une autre planète.
Si donc ma question est de cette sorte, dites-le moi et j'arrêterai là un post qui ne peut trouver de réponse !

Posté : 27 juil. 2009, 19:29
par FuZZyLine
Re,
FuZZyLine,
Merci d'avoir pris la peine de me répondre...
Mais ce n'est effectivement pas ce que je cherche, du moins d'après ce que je comprend de ta réponse.
Bon, réussirais-je à obtenir l'info qui me manque ?
Est-ce que ma question est à ce point incompréhensible ?
J'en appel à votre bon cœur ! Déjà grand par le nombre de personnes qui ont tenté une réponse, mais malheureusement sans que j'y trouve matière à enfin mettre un "résolu" à ce post...
Yeah... Je crois que j'ai compris (je dis bien: "je crois")
En gros, tu veux inclure une page et évaluer son contenu.

Si c'est ca, cela se rapproche dangereusement des templates dont j'ai parlé tout à l'heure.
En revanche la façon que tu as d'apréhender ce problème n'est pas la bonne. (il me semble)

Pour include des fichiers, dans un cas pareil, ce que je fais:

Tu m'excuseras mais le script suivant n'est pas à la norme w3 mais bon... c'est un exemple et
surtout pas trop le temps ;)

Fichier : meta_01.php:
<?php
 function getData()
 {
    $cde = "<meta name="description" lang="fr" content="Toute l'actualité..." />\n"; 
    return $cde;
 }
?>
Fichier : meta_02.php:
<?php
 function getData()
 {
    $cde = "<meta name="description" lang="uk" content="All actuality..." />\n";  
    return $cde;
 }
?>
Fichier : index.php:
<?php

 // C'est un éxemple un peu con mais assez parlant je trouve

 $boolTst = true; // Si l'agent user est francais
 $boolTst = false; // Si l'agent user est ...pas francais

 $fileName = $boolTst ? "meta_01.php" : "meta_02.php";
 require_once($fileName);
 $meta = getData();

 $cde  = "";
 $cde .= "<html>\n";
 $cde .= "   <head>\n";
 $cde .=        $meta;
 $cde .=     </head>\n";
 $cde .= "   </head>\n";
 $cde .= "   <body>\n";

 // ...

 $cde .= "   </body>\n";
 $cde .= "</html>\n";

 echo $cde;
?>
En revanche c'est une perte de temps. Include des fichiers pour si peu de données retournées
c'est (à mon avis) totalement inutile. D'ou le test binaire dont j'ai parlé plus haut. Test en amont ce dont tu as besoin mais ne charge pas pour ensuite faire un test.

@+ et bon code... En espérant avoir compris cette fois-ci lol

Posté : 27 juil. 2009, 20:33
par Invité
ah oui, je comprend ton exemple...

mais c'est pas exactement ça.

en fait, les deux meta_01.php et meta_02.php ne sont pas à tester dans index.php.
je ne cherche d'ailleurs pas à les tester du tout...
ce que je souhaite c'est les insérer dans mes pages comme valeur d'une variable, le meta_01 pour certaines pages et le meta_02 pour les autres.
ensuite le meta correspondant à la page en cours sera affiché à la bonne place dans index.php grâce à la variable :wink:

C'est faisable ?
à moins que ce que tu proposes soit LA réponse, mais que je ne suis pas capable de comprendre (trop complexe à mon niveau) :?