login  Naam:   Wachtwoord: 
Registreer je!
 Forum

define()

Offline gothmog - 16/10/2006 20:47 (laatste wijziging 16/10/2006 20:50)
Avatar van gothmogLid Hallo,

Heb een probleempje en jullie moeten mij helpen.

Ik heb op moment dit:
  1. <?php
  2. define("_".$var1."_".$var2."", $var3);


$var1,2 en 3 haalt hij uit de database. Maar stel nu dat ik in $var1 een variabele zet en tekst. Voorbeeld:
Je zocht naar: <b>$zoekveld</b>.

Hoe krijg ik het dan voor elkaar dat hij die variabele gebruikt die in het script ergens zit? Kan dit wel? Heb al een heleboel combinaties geprobeerd namelijk (kwa quotes, dubbele quotes, quotes en punt etc. etc.)

THNX,
Sven

6 antwoorden

Gesponsorde links
Offline Stijn - 16/10/2006 21:21
Avatar van Stijn PHP expert een variable kan je toch niet defineren want da's een constante waarde. gebruik sessies e.d.
Offline Abbas - 17/10/2006 00:18
Avatar van Abbas Gouden medaille

Crew .NET
@ stijn: je spreekt jezelf tegen:
--> een variabele kan je WEL definieren: string $var = "waarde";
--> en een variabele is niet altijd constant, het woord variabel
zegt het zelf...

@gothmog: kan je anders ja vraag duidelijker formuleren?
misschien meer code en een duidelijker voorbeeld...
Offline Thomas - 17/10/2006 11:07
Avatar van Thomas Moderator Zoals met alle namen van variabelen (en constanten) mogen er geen spaties voorkomen in de naam... Je zult dus alle spaties in de naam van de constante moeten vervangen door iets anders.

Verder is het nogal enorm suf dat je iets dat varieert (zowel de naam als de waarde) in een constante wilt proppen... Ik zou van deze 'aanpak' afstappen.
Offline gothmog - 17/10/2006 13:08 (laatste wijziging 17/10/2006 13:33)
Avatar van gothmog Lid Laat ik het anders zeggen,
ik wil voor het gemak teksten in de database zetten. En omdat ik het tweetalig heb, moet er eerst gekozen worden tussen NL en EN.

Om het makkelijk te maken gebruik ik define();.
Meestal gebruik je het zo:
define("tekst", "vervanging");

Hier wordt dus de "tekst" vervangen door "vervanging".
Nu heb ik "tekst" vervangen door iets unieks, wat ik dus niet zomaar in de tekst gebruik. Bijv. "_paginanaam_naam" en bij "vervanging" zet ik een $waarde die ik uit de database haal.

Nu heb ik pagina X
Waar alle define's op komen

EN ik heb pagina Y
Op pagina Y include ik pagina X. En zet op pagina Y: echo _paginanaam_naam;
Nu zet ik in de database (wat dus als vervaning moet dienen) bijv:
Welkom $user.

Maar nu wordt user gewoon als tekst afgebeeld ($user).

Hoe kan ik ervoor zorgen at hij de variabele $user gebruikt? Die op pagina Y staat?

Dankt en MVG,
Sven

Edit:
Heb even gezocht naar define en ben te weten gekomen dat, eenmaal gedefinïeerd, ze niet meer te veranderen zijn. Dus denk ik dat ik een alfternatief moet zoeken.
Offline Thomas - 17/10/2006 14:11
Avatar van Thomas Moderator
Citaat:
Meestal gebruik je het zo:
define("tekst", "vervanging");
Ik denk dat dat een misconceptie is.

Het is eerder:
define("naam_constante", "waarde_constante");

Wat ik zou doen als ik jou was, is gebruik gaan maken van een template-engine, en per pagina een template maken per taal.

Een constante die je dan zou kunnen hebben is de taal die ingesteld is (hetzij als default, hetzij door de gebruiker).

Per taal leg je een template-folder aan, bijvoorbeeld:
templates/en/welkom.tpl
templates/nl/welkom.tpl

Je gebruikt dan één taal-onafhankelijk script (bijvoorbeeld code/welkom.php) om de template van de gekozen taal te vullen. Het maakt niet uit welke taal je gebruikt, want de template vul je in beide gevallen op dezelfde manier.

Ik denk dat dit makkelijker werkt dan de constructie die jij gebruikt.
Offline gothmog - 17/10/2006 14:29
Avatar van gothmog Lid Ik zal het eens onder de loep nemen FangorN, nog bedankt allemaal voor jullie hulp 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.183s