Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Hiperłącze
Forum PHP.pl > Forum > Przedszkole
dvd
Witam wszystkich, jeżeli zrobiłem coś źle to przepraszam jestem nowym użytkownikiem.

A więc przechodzimy do rzeczy, muszę wykonać stronę internetową składającą się z różnych wersji językowych a że jestem osobą początkującą w php więc to obmyślałem trochu kombinując. Chciałbym zrobić tak że jak kliknę w wersję językowa np. EN to otworzy mi się menu po angielsku, a jak kliknę w odnośnik to otwoży mi się jakaś tam treść

Powiązanie wygląda następująco:

PL, EN, RU ->
-----------
Menu ->
-----------
Treść główna

No i chciałbym to wszystko tak powiązać, kombinowałem na wszystkie sposoby ale nie dało rady moja wiedza w php jest mała po za tym przeglądałem po sieci i też to nic nie dało, używałem następującej komendy:

Kod
<?
$urls=$_GET['id']. ".php"; /*zamiast html musimy podać jakie
rozszerzenia mają pliki, które chcemy wkleić */
if(file_exists("$urls"))
{
$file=fopen($urls,"r"); /* otwiera plik o ścieżce
dostępu równej wartości
zmiennej $id plus rozszerzenie */

while($linia=fgets($file, 99))
{
echo($linia); // wyświetla zawartość pliku $file
}
fclose($file); // zamyka plik
}
/* Tu pojawia się informacja, gdy wystąpi błąd */

?>



Kod
<a href="index.php?id=home">Home</a>


// To dorwałem z tego forum ;p działa i nawet tak jak ja chciałem

Wszystko ładnie gra do momentu gdy: klikam na wersję językową otworzy mi się menu w danym języku, klikam na link w menu otwiera się treść lecz znika menu. No i nie wiem jak to zrobić aby menu zostawało a treść się tylko zmieniała.

Proszę o pomoc i z góry dziekuję


bastard13
Możesz to zrobić w ten sposób:
  1. <div id="menu">
  2. <a href="index.php?id=ang">ANG</a>
  3. <a href="index.php?id=pl">PL</a>
  4. <a href="index.php?id=ru">RU</a>
  5. </div>
  6. <div id="zawartosc">
  7. <?php
  8. switch($_GET['id'])
  9. { case 'ang': include(ang.php); zawartosc(); break;
  10. case 'ru': include(ru.php); zawartosc(); break;
  11. case 'pl':
  12. default: include(pl.php); zawartosc(); break;
  13. }
  14. ?>
  15. </div>

i pliki ru.php, ang.php, pl.php:
  1. function zawartosc() {
  2. //treść strony w wybranym języku
  3. }

i w ten sposób za każdym razem wyświetla ci menu, a jedynie treść ulega zmianie.
dvd
Fajnie to wygląda wiem o co w tym chodzi lecz wyświetla mi się taki błąd:

Kod
Warning: main(angphp): failed to open stream: No such file or directory in c:\usr\krasnal\www\php\index.php on line 9

Warning: main(): Failed opening 'angphp' for inclusion (include_path='.') in c:\usr\krasnal\www\php\index.php on line 9

Fatal error: Call to undefined function: zawartosc() in c:\usr\krasnal\www\php\index.php on line 9


Zrobiłem takie coś o co mi chodzi i widać jaki mam błąd:

http://hotfile.com/dl/25071440/bd65320/php.rar.html

A wygląda to tak:

index.php

  1. <table border="1">
  2. <tr>
  3. <td> Jezyk:
  4. <a href="index.php?id=pl">PL</a>
  5. <a href="index.php?id=en">EN</a>
  6. <a href="index.php?id=ru">RU</a>
  7. </td>
  8. </tr>
  9. <tr>
  10. <td>Menu:
  11. <?
  12. $urls=$_GET['id']. ".php"; /*zamiast html musimy podać jakie rozszerzenia mają pliki, które chcemy wkleić */
  13. if(file_exists("$urls"))
  14. {
  15. $file=fopen($urls,"r"); /* otwiera plik o ścieżce dostępu równej wartości zmiennej $id plus rozszerzenie */
  16.  
  17. while($linia=fgets($file, 99))
  18. {
  19. echo($linia); // wyświetla zawartość pliku $file
  20. }
  21. fclose($file); // zamyka plik
  22. }
  23.  
  24.  
  25. ?>
  26. </td>
  27. </tr>
  28. <tr>
  29. <td> Trewsc:
  30. <?
  31. $urls=$_GET['id1']. ".php"; /*zamiast html musimy podać jakie rozszerzenia mają pliki, które chcemy wkleić */
  32. if(file_exists("$urls"))
  33. {
  34. $file=fopen($urls,"r"); /* otwiera plik o ścieżce dostępu równej wartości zmiennej $id plus rozszerzenie */
  35.  
  36. while($linia=fgets($file, 99))
  37. {
  38. echo($linia); // wyświetla zawartość pliku $file
  39. }
  40. fclose($file); // zamyka plik
  41. }
  42.  
  43.  
  44. ?>
  45. </td>
  46. </tr>
  47. </table>


Wersje językowe z menu: pl.php, en.php, ru.php:

  1. <a href="index.php?id1=link">Link</a>
  2. <a href="index.php?id1=link1">Link 1</a>
  3. <a href="index.php?id1=link2">Link 2</a>


Zawartość tekstu w stronie: link.php, link1.php, link2.php:

  1. zawartosc linku 1
dr_NO
Zrób na sesji winksmiley.jpg
na początku pliku:
session_start();
gdzieś tam w zmianie języka coś ala:
  1. if(isset($_GET['lang']) {
  2. $_SESSION['lang'] = $_GET['lang'];
  3. }

później dołączasz pliki menu do strony, typu:
  1. include('scierzka/do/plikow/'.$_SESSION['lang'].'.php');

i tyle winksmiley.jpg
Oczywiście jest to nie do końca bezpieczne, najpierw zrób weryfikację wy języku i tyle.
W każdym razie, mniej roboty, jak w paru mniejscach będziesz miał użyć zmiennej $_SESSION['lang'];

Cheers winksmiley.jpg
dvd
dobra poddaje się, nie mam zielonego pojęcia co napisałem, tak jak poprzedni przykład zrozumiałem ale teraz nic nie wiem

A nie da się zrobić tak aby się to menu nie wyłączało jak się kliknie na link?

  1. <a href="index.php?id1=link&id=pl">Link</a>
  2. <a href="index.php?id1=link1&id=pl">Link 1</a>
  3. <a href="index.php?id1=link2&id=pl">Link 2</a>


Mam nadzieje że wszyscy wiedzą w czym był błąd. smile.gif DZIĘKUJĘ ZA POMOC exclamation.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.