Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] wstaw plik w zależności od...
Forum PHP.pl > Forum > Przedszkole
jenrzyk
hi!
chcę zrobić coś bardzo prostego, dlatego nie czytam i nie uczę się php...
chodzi o to, że z adresu strony chcę odczytać jakąś zmienną np &lang
i w zależności od języka aby wczytywany był plik

coś w stylu:
if lang=pl {include=footer_pl.ph}
else if lang=uk {include=footer_uk.php}
else {include=footer_de.php}

ewentualnie pewno coś takiego może być:
if ($lang)
$footer=footer_ . $lang . ".php");
{include($footer)}

to drugie, jest leopsze, gdy więcej plików jes, prawda??
tylko, że coś tu chyba nie tka ze składniąquestionmark.gif
poprawicie, prosze!

z góry dzięki
eai
Ja na twoim miejscu jednak przeczytałbym chociaż prosty kurs. Zobacz ten: http://www.leon.w-wa.pl/texts/kurs/
Przynajmniej będziesz wiedział z czym masz doczynienia.

Twój pierwszy pomysł chodź niepoprawny składniowo jest lepszy od tego drugiego.
Przy drugim masz lukę w bezpieczeństwie. Poczytaj: Temat: Bezpieczenstwo skryptow php

Ogólnie zrobiłbym to tak:
  1. <?php
  2.  
  3. # Czytamy zmienną lang z paska adresu
  4. $lang = $_GET['lang'];
  5.  
  6. switch ($lang) 
  7. {
  8.  case "pl";
  9.  include 'footer_pl.php';
  10.  break;
  11.  
  12.  case "uk";
  13.  include 'footer_uk.php';
  14.  break;
  15.  
  16.  //... itd...
  17.  
  18.  default: //domyślny język
  19.  include 'footer_uk.php';
  20.  break;
  21. }
  22. ?>
Ja_Szczur
  1. <?php
  2. if( isSet( $_GET['lang'] ) )
  3.  include( 'footer_' . $_GET['lang'] . '.php' );
  4. else
  5.  include( 'footer_default.php' );
  6. ?>


możesz też dodać sprawdzanie, czy plik istnieje

  1. <?php
  2. if( isSet( $_GET['lang'] ) )
  3.  if( file_exists( 'footer_' . $_GET['lang'] . '.php' ) )
  4.  include( 'footer_' . $_GET['lang'] . '.php' );
  5.  else
  6. include( 'footer_default.php' );
  7. else
  8.  include( 'footer_default.php' );
  9. ?>
jenrzyk
Wziąłem sie za czytanie jednak - zły na siebie, by prostych rzeczy samemu nie spłodzić i zły, że takimi prostactwami łeb zawraqcam Wam... Oto co mi wyszło i działa...
  1. <?php
  2. if ($l) {
  3. $copy .= "footer_" .$l . ".php";
  4. } else {
  5. $copy .= "footer_de.php";
  6. }
  7. if (file_exists($copy))
  8. {include($copy);}
  9. ?>


Prosze napisz, co z tymi lukami w zabezpieczeniach? Myślisz, by tego tak nie zostawiać??

Coś inaczej w podglądzie postu widze - mam tak u siebie w pliku:

<?php
if ($l) {
$copy .= "footer_" .$l . ".php";
} else {
$copy .= "footer_de.php";
}
if (file_exists($copy))
{include($copy);}
?>
eai
Teraz jest o wiele lepiej. Ale..

  1. <?php
  2.  
  3. # $_GET - Zmienne które są wysłane z paska adresu
  4. # empty - Sprawdza czy ta zmienna jest pusta czy nie
  5.  
  6. if (!empty($_GET['l'])) {
  7. $copy = "footer_" .$_GET['l'] . ".php";
  8. } 
  9. else {
  10. $copy = "footer_de.php";
  11. }
  12.  
  13. if (file_exists($copy)) {
  14. include($copy);
  15. }
  16.  
  17. ?>


Poczytaj:
http://pl.php.net/manual/pl/language.varia....predefined.php
http://pl.php.net/manual/pl/function.empty.php
jenrzyk
super dzieki - poczytam sobie do poduszki i jutro poprawaim kod u mnie na stronie smile.gif)
dobranoc wszystkim pomocnikom smile.gif)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.