8797 sujets

Développement web côté serveur, CMS

Pages :
Bonsoir,

<?php echo $mon-répertoire; ?>image.jpg

En gros j'ai une variable qui renseigne le chemin des mes images.
Si je change mon répertoire d'image, je n'aurais qu'a modifié la variable.
Ainsi pour générer la page la commande echo remplace la variable par le chemin et ma page est OK

Maintenant cette même instruction, j'aimerais la mettre dans une base Mysql. Mais la problème, la commande n'est pas éxécuté et reste tel quelle donc dans ma page web, j'ai toujours le code Php.

Connaissez vous un moyen de stocker ou de lire et d'affiche ce type d'info.

En espérant avoir été clair Smiley biggol

JP
Modifié par tibrus (01 Sep 2005 - 19:32)
Ben ceci est de la réponse constructive.
Mais bon tu as comme cela un post de plus. C'est bien.

Smiley sweatdrop

JP
Modérateur
jcm, évites ce genre de remarque. Ce n'est pas constructif, comme l'a mentionné tibrus. Faudrait-il toujours donner ce genre de réponse aux membres qui posent des questions ? Si c'était le cas, le forum ne servirait à rien.

La question de tibrus mérite une réponse comme toutes autres questions. Merci d'agir plus poliment la prochaine fois. Si tu n'as rien à dire pouvant réellement aider un membre pour son problème précis, inutile de perdre ton temps à répondre et risquer de choquer la personne.
tibrus a écrit :

<?php echo $mon-répertoire; ?>image.jpg

. . . . . .

Maintenant cette même instruction, j'aimerais la mettre dans une base Mysql. . . . . . .


Désolé, mais ce que tu as écrit est incompréhensible (pour moi en tous cas) : est-ce l'instruction ci dessus que tu veux mettre en BDD ?

C'est bien ce que dit ton texte et cela n'a aucun sens;

Est-ce que tu veux faire réellement ?

Alors de 2 choses l'une : soit tu as très mal exposé ton problème (tente d'être plus clair la prochaine fois !) soit tu n'as rien compris à php / mysql et ce que tu peux faire avec, et dans ce cas documentes-toi et apprends !
Salut,

je ne connais pas PHP , mais ASP et j'utilise aussi MySQL donc on va juste raisonner.

Que stock tu dans ton champs ? une chaine qui est la valeur de la variable ou le code php en lui même ?

j'imagine qu'il s'agit de la valeur de la variable, un truc du genre : "/rep-image/sous-rep-image/"
La valeur de ta variable est t'elle différente pour chaque image dont le nom est stocké dans MySQL ?

EX :

'nomimage1.jpg','/rep-image/sous-rep-image/'
'nomimage2.jpg','/rep-image/sous-rep-image/news/'


Si oui il te suffit en lisant le retour de la requete qui te permet d'afficher l'image de remplacer son chemin par le contenu de ton champs


Maintenant je me demande si tu n'es pas plutot face à un problème de compréhension se ce qu'est une variable. (ne te barque pas si je me trompe Smiley smile )

la variable $nom-répertoire doit à un moment être créé en intégran dedans une valeur:


<?php $nom-repertoire = "/rep-image/sous-rep-image/" ?>


mais le text "$nom-repertoire" n'a aucune signification si tu le met dans la base, c'est juste du texte.

pour ne pas te prendre la tête je te conseil un petit test

1) tu crée une page PHP avec ce code (avec le vrai chemin de tes images)

<?php $nom-repertoire = "/rep-image/sous-rep-image/"; ?>


puis une autre avec celui la dans le <body> </body> de la page

<img src="<?php echo $nom-repertoire;?>nomdelimage" alt="" />


tu va ensuite inclure la page 1 dans la deux....
çà doit être un truc genre :


<?php include 'vars.php'; ?>


donc code de la page 2:

<html>
<head>
<?php include 'page1.php'; ?>
</head>
<body>
<img src="<?php echo $nom-repertoire;?>nomdelimage" alt="" />
</body>
</html>


et si çà marche normalement le code php demandant d'écrire(echo) le contenu de la variable $nom-repertoire va remplacer ce code par la valeur de $nom-repertoire c'est à dire par : /rep-image/sous-rep-image/

donc générer une page avec cette ligne dedans.

<img src="/rep-image/sous-rep-image/nomdelimage" alt="" />


Si en fait tu cherche à définir la configuration d'un site, fais toi un fichier dans lequel tu définis les variables propres à ton application, tu l'inclut dans ton gabarit html de publication et les valeurs seront disponibles sur toutes les pages.

en ASP il est possible de créer des variable d'un type spécifique dit "d'application" ele seront par ce fait une fois initialisées disponibles pour tous le monde et toute les pages.

je crois qu'en Php elles se noment GLOBAL...


Merckel > tu vois je suis, hein ?
En ColdFusion tu place les variables de types application dans un fichier très intéligent appelé à juste titre "Application.cfm" qui est inclut dans toutes les pages quoi qu'il arrive, sauf si un autre fichier "Application.cfm" et plus pret du fichier exécuté dans l'arboréscence sur projet Smiley cligne

cherche la dessus...

heu si je suis à la ruen merci de me le dire.....
A+
Modifié par ernstein (01 Sep 2005 - 21:57)
Oui, j'ai rédigé un autre message pour tenter d'expliquer la raison de cette réaction.

Il me semble que Tribus n'a pas expliqué son problème de façon claire, probablement parce-qu'il ne voit pas la nature exacte de ce problème.

Que veut-il donc faire exactement ?

Stocker les liens des images en bdd ?

N'y aurait-il pas aussi un minimum d'effort à consentir pour se faire comprendre ?

Bon, désolé, je ne dois pas être en forme ce soir...
Alors je reprends avec des exemples
Soit ce code :

<p class="centrer"><img src="<?php echo $cr_repgif; ?>photo1.gif" alt="photo1" title="photo1" /></p>
<hr />
<h1 class="centrer">Essai</h1>
<hr />
<p class="centrer"><img  src="<?php echo $cr_repgif; ?>photo2" alt="photo2" title="photo2" /></p>


Si je mets ce code dans une page web classique (.php) j'ai un affichage de ce que je désire.

Je stocke ensuite ce code dans un champ d'une table. Ce champ s'appelant par exemple : content

Ensuite dans une page générique, j'insère les instructions pour requeter la base et j'obtiens ceci : donnee['content'].
Ceci je l'affiche grace à un echo : <?php echo donnee['content'] ?>

Le code du haut est inséré dans la page générique mais les instructions php pour afficher les images ne sont pas converti en code html

C'est plus clair pour vous Smiley biggol

JP

Edit : Ok pardonné jcm Smiley cligne Mais c'est vrai que ce n'est pas évident de se faire comprendre en écrivant ce que l'on a en tête
Modifié par tibrus (01 Sep 2005 - 22:04)
C'est normal, puisque ce n'est pas le code php qu'il faut mettre dans la base dans ce cas je parle du text $nom-repertoire, mais la valeur de cette variable.

je reprends ton exemple :


<p class="centrer"><img src="<?php echo $cr_repgif; ?>photo1.gif" alt="photo1" title="photo1" /></p>
<hr />
<h1 class="centrer">Essai</h1>
<hr />
<p class="centrer"><img src="<?php echo $cr_repgif; ?>photo2" alt="photo2" title="photo2" /></p>


Si tu affiche ce code, il faut que quelque part dans la page il y est çà:


<?php $cr_repgif = "/images/"; ?>


pour que $cr_repgif est une valeur, sinon çà n'a aucune valeur
Modifié par ernstein (01 Sep 2005 - 22:07)
Modérateur
De ce que j'ai compris, c'est qu'il veut mettre du code php dans la base de données, et lorsqu'il fait sa requête pour sortir les données, il voudrait pouvoir interpréter le code.

Je vais donner un exemple de ce que j'ai fais. Cela me semble similaire à ce qu'il veut faire. Il s'agit d'un module de mailing list. J'ai créé certaines variables moi-même. L'envoyeur, dans son champ de rédaction, peut insérer des variables du type : $$$NomDuContact$$$, $$$CourrielDuContact$$$. L'envoyeur peut les insérer n'importe où dans le texte. Ils sont stockés tel quel dans la base de données. Comme l'envoi du message du mailing s'envoi dans une boucle, je devais pouvoir laisser la liberté au client d'utiliser ce genre de variables. Je vous épargne les détails. Eh bien pour interpréter ces variables lors de l'envoi du message, j'utilise simplement une fonction de Trouver/Remplacer pour remplacer mes variables persos avec les vraies variables qui sont accessibles lorsque la boucle effectue son travail. Vous voyez un peu ce que je veux dire ? J'ai l'impression que c'est ce qu'il veut réaliser.

Pour ce qui est de Coldfusion, je doute que ca l'intéresse tibrus de savoir ca. Smiley biggrin Mais effectivement, le fichier Application.cfm fonctionne de cette façon. Pour ma part, je n'utilises presque jamais ce fichier. Je préfère déclarer mon application dans chaque page, via un include. Je n'aime pas l'idée que Coldfusion interprète ce fichier à chaque appel d'une page du dossier.
> Merckel c'était pour le fun et détendre un peu ce topique.

Tibrus, ce qui serait cool c'est de nous expliquer pour quelle raison tu souhaite faire çà ainsi, quelle est le but recherché.

Si comme tu le dis sur le premier post c'est simplement pour ne pas à avoir à réécrire les pages si le chemin change, pour moi je pense qu'un variable GLOBAL contenant le chemin du dossier image est vraiment adapté. tu la renseigne une fois et elle se propage dans toute l'application, si par contre ce que tu souhaite faire est plus proche de ce qu'explique Merckel, je ne te serais pas d'une grande utilité.

:)
Modifié par ernstein (01 Sep 2005 - 22:18)
Je suis dégouté de la première réponse de jcm.
Il avait presque raison, je suis entrain de tester la fonction Eval sur php.net

Je crois qu'elle correspond a ce que je veux faire

Je vous tiendrais au courant

JP
Modérateur
ernstein, c'est Merkel, pas Merckel. Tu veux que je sorte ma pelle ? Smiley fulmine

tibrus, mais avant d'aller plus loin, il serait plus sage de nous expliquer tes motivations plus en profondeur, comme ernstein le suggère. C'est quoi exactement que tu stock dans la base de données, et pourquoi dois-tu stocker du code PHP ? C'est un système de gestion de contenu qui permet au client d'insérer du code PHP aussi ? Pourrais-tu expliquer ton application, ce qu'elle fait et pour qui. De cette façon, nous allons pouvoir trouver la solution la plus adaptée, la plus sécuritaire et la plus performante pour ce que tu veux faire.
Modifié par Merkel (01 Sep 2005 - 22:32)
Merkel a écrit :
ernstein, c'est Merkel, pas Merckel. Tu veux que je sorte ma pelle ? Smiley fulmine



Oops.... heu, j'ma trompé j'suis pas trop pour la pelle Smiley confus
Alors je reprends avec un autre exemple.
Je souhaite sur mon site mettre un menu :
<ul>
	<li><a href="index.php?page=1" >Lien 1</a></li>
             <li><a href="index.php?page=2" >Lien 2</a></li>
         </ul>

Je le transforme pour que la page index.php devienne une variable
$index = index.php;

Et je modifie mon code en conséquence
<ul>
	<li><a href="<?php echo $index; ?>?page=1" >Lien 1</a></li>
             <li><a href="<?php echo $index; ?>?page=2" >Lien 2</a></li>
         </ul>

Ainsi si je change de page index.php par index1.php, je n'ai que ma variable à modifié et le code suit.

Si maintenant chaque ligne de mon menu je la stocke dans une base.
Champ 1 : <?php echo $index; ?>?page=1
Champ 2 : Lien 1

Je réalise un boucle qui parcoure ma base, lis les champs et me génère mon menu. Je peux ainsi plutot que modifié mon code, rajouté un ligne de menu dans ma base et il apparait directement à l'affichage grace à la boucle.
D'ou également l'utilité du <?php echo index; ?> si je veux modifier ma variable

Voila ouf
Modifié par tibrus (01 Sep 2005 - 22:45)
Modérateur
ernstein a écrit :
Oops.... heu, j'ma trompé j'suis pas trop pour la pelle Smiley confus


C'est mon arme de prédilection pour flageller les fautifs. Voir ma pelle ou encore ma pelle.
Modifié par Merkel (01 Sep 2005 - 22:51)
Modérateur
tibrus, avec quel logiciel développe-tu tes sites ? Si jamais tu utilises Dreamweaver MX, quand tu crée un site et que tu changes le nom d'un fichier, le logiciel s'occupe de modifier tous les liens pointants vers ce fichier afin de leur donner le nouveau nom du fichier. Je dis ca comme ca, au lieu d'utiliser l'artillerie lourde juste au cas où peut-être qu'éventuellement avec une probabilité incertaine que tu change le nom du fichier.

Je ne sais pas mais au lieu de tout ca, quand je changerais le nom d'un fichier, j'utiliserais simplement un outils de Trouver/Remplacer pour changer le code. Je trouves que ta solution est comme utiliser un tank de l'armée pour ouvrir un pot de confiture.
Tout a la mimine avec Notepad++

J'ai piloté des chars, c'est facile pourtant il n'y a que deux leviers pour tourner

Edit 1 : Pour les pages, je crois effectivement que cela va être compliqué

Edit 2 : Pour le menu, je peux faire une requete de remplacement tout simplement et le tour est joué

Edit 3 : Voir pour les pages aussi, je peux rempacer le php par la variable grace à un script

Edit 4 : Je pense que je vais fermer le post. Je crois avoir les idées mais je verrais demain matin
Modifié par tibrus (01 Sep 2005 - 22:57)
Modérateur
tibrus a écrit :
Tout a la mimine avec Notepad++

J'ai piloté des chars, c'est facile pourtant il n'y a que deux leviers pour tourner



Smiley lol Et ca l'ouvre bien les pots dis-moi ?

Ah d'accord, moi je fais tout à la mimine avec Dreamweaver MX. Je ne connais pas Notepad++. Je ne pense pas qu'il y est cette feature dedans. C'est à vérifier.

Pour ton problème, je ne suis pas sûr pourquoi tu stock ton menu dans une base de données. Pourquoi pas simplement un fichier que tu peux inclure via include de PHP ? Quand le nom de l'index change, ou que ton menu change, tu le change uniquement dans ce fichier et voilà. Il y a peut-être des éléments que tu n'as pas dis qui pourrait justifier l'utilisation d'une base de données pour ton menu, mais pour le moment, c'est plutôt flou.

Tu serais pas en train de faire un CMS ? Content Management System ?
Modifié par Merkel (01 Sep 2005 - 22:59)
C'est pas un CMS, mais je m'inspire de l'idée oui
Modifié par tibrus (01 Sep 2005 - 23:04)
Pages :