[PHP] Multiview in .htacces en php include werkt niet samen

Pagina: 1
Acties:
  • 349 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben een niet al te professionle website-bouwer maar toch heb ik een website voor mijn werk gemaakt (www.pws.nl). met daarin keurig een aantal includes voor de menu's e.d. Werkt allemaal goed. Nu probeer ik een 2e taal toe te voegen, engels naast nederlands door in een .htaccess de volgende code te plaatsen:

Options +MultiViews
AddLanguage nl nl
AddLanguage en en
LanguagePriority en nl

Alle php bestanden heb ik hernoemd eindigend op nl en en, ook de grafische bestanden zover nodig. Dit werkt allemaal goed. Er wordt nederlands of engels gekozen wanneer nodig.

Wat NIET werkt zijn de bestanden die ik include.

<?php include("includes/pws_header_extended.php"); ?>

Bovenstaand wil ik dus includen echter zoekt het script naar pws_header_extended.php in plaats van pws_header_extended.php.nl of pws_header_extended.php.en. Ik krijg dus de melding dat het bestand niet kan worden gevonden. Hoe is dit op te lossen?

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Niet zozeer het antwoord op je vraag maar denk je er aan dat iemand die .php.en bestanden gewoon kan downloaden en zo je bron bekijken als je .en en .nl bestanden niet laat parsen door php zelf?

Zelf handel ik taalkeuze altijd af in het script zelf en haal ik vertalingen uit een database of haal ik template bestanden uit een andere map. Fysiek heb ik dan maar 1 (in jouw geval) pws_header_extended.php nodig... iets om over na te denken misschien?

Acties:
  • 0 Henk 'm!

  • Zerotorescue
  • Registratie: November 2006
  • Laatst online: 09-09 11:01
Door in de .nl scripts <?php include("includes/pws_header_extended.php.nl"); ?> te gebruiken en in de .en scripts <?php include("includes/pws_header_extended.php.en"); ?>. Je kan natuurlijk ook dit gebruiken:

PHP:
1
2
3
4
5
6
<?php
if(subtr($_SERVER['PHP_SELF'], -2, 2) == 'nl')
 include("includes/pws_header_extended.php.nl");
else
 include("includes/pws_header_extended.php.en");
?>


edit:
Code was fout.

[ Voor 7% gewijzigd door Zerotorescue op 08-12-2007 21:27 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Cartman! schreef op zaterdag 08 december 2007 @ 21:18:
Niet zozeer het antwoord op je vraag maar denk je er aan dat iemand die .php.en bestanden gewoon kan downloaden en zo je bron bekijken als je .en en .nl bestanden niet laat parsen door php zelf?
Bedankt voor je tip, echter zal dit geen probleem zijn aangezien er geen wachtwoorden in staan van bv een database.
Cartman! schreef op zaterdag 08 december 2007 @ 21:18:
Zelf handel ik taalkeuze altijd af in het script zelf en haal ik vertalingen uit een database of haal ik template bestanden uit een andere map. Fysiek heb ik dan maar 1 (in jouw geval) pws_header_extended.php nodig... iets om over na te denken misschien?
Dit was in eerste instantie ook mijn plan echter kon ik nergens een tutorial vinden waarin dit staat uitgelegd.
ZeRoDeaD schreef op zaterdag 08 december 2007 @ 21:24:
PHP:
1
2
3
4
5
6
<?php
if(subtr($_SERVER['PHP_SELF'], -2, 2) == 'nl')
 include("includes/pws_header_extended.php.nl");
else
 include("includes/pws_header_extended.php.en");
?>
Bedankt voor de code, ik krijg echter een foutmelding maar ik ga er verder mee spelen.

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Vervang subtr eens door substr en het zou weleens kunnen gaan werken ;)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Spider.007 schreef op zondag 09 december 2007 @ 14:44:
Vervang subtr eens door substr en het zou weleens kunnen gaan werken ;)
Dat is inderdaad de truc!

Echter blijft hij alleen de pagina weergeven die na de 'else' staat en wordt er niet gekozen welke er nodig is.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ik bedoel dus meer zoiets als dit in jouw geval (even ervanuitgaande dat je de taal in een string hebt zitten):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$lang = 'nl'; // dit kun je dus uit je url halen maar ik zet het er even hard in als voorbeeld

switch($lang)
{
case 'en':
{
$includedir = 'en';
break;
}
default:
{
$includedir = 'nl';
break;
}

include('includes/' . $includedir . '/pws_header_extended.php');


default is je taal nederlands in dit geval en verder kun je talen toevoegen die je zelf wilt :)

[ Voor 10% gewijzigd door Cartman! op 09-12-2007 17:56 ]

Pagina: 1