Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z plikami tpl
Forum PHP.pl > Forum > Serwery WWW
dvdx95
siema potrzebuje otworzyc plik tpl na serwerze . glowny plik index napisany jest w php i wywala mi takie coś 404 Not Found .
serwer jest na ubuntu 16.04 Apache/2.4.18 ktoś coś wie dlaczego tak się dzieje?

  1. <?php
  2. if (!isset($_GET['page'])) {
  3. header('Location: template/main.tpl');
  4. exit();
  5. }
  6.  
  7. ini_set('display_errors','Off');
  8. try {
  9. $db = new PDO('mysql:host=localhost;dbname=123', 'root', 'Tome', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
  10. } catch (PDOException $e) {
  11. exit($e->getMessage());
  12. }
  13.  
  14. if (isset($_COOKIE['hash'])) {
  15. $sql = $db->query("SELECT * FROM `users` WHERE `hash` = " . $db->quote($_COOKIE['hash']));
  16. if ($sql->rowCount() != 0) {
  17. $row = $sql->fetch();
  18. $user = $row;
  19. }
  20. }
  21.  
  22.  
  23. switch ($_GET['page']) {
  24. case 'main':
  25. $page = getTemplate('main.tpl', array('user'=>$user));
  26. echo $page;
  27. break;
  28. }
  29. function getTemplate($name, $in = null) {
  30. extract($in);
  31. include "template/" . $name;
  32. $text = ob_get_clean();
  33. return $text;
  34. }
  35.  
  36. function curl($url) {
  37. $ch = curl_init();
  38.  
  39. curl_setopt($ch, CURLOPT_HEADER, 0);
  40. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  41. curl_setopt($ch, CURLOPT_URL, $url);
  42. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  43. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  44. curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
  45. curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
  46. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  47.  
  48. $data = curl_exec($ch);
  49. curl_close($ch);
  50.  
  51. return $data;
  52. }
  53. >?


  1. Not Found
  2.  
  3. The requested URL /main was not found on this server.

a tu po wejsciu na serwer strony
Tomplus
bo plików .tpl nie otwiera się tak jak .php

rozszerzenia tj. .tpl, .inc używasz się do załączania plików przez funkcję require() lub include()

więc muisz użyć coś innego niż to

header('Location: template/main.tpl');

np. header('Location: index.php?page='.$_GET['page']);
dvdx95
ok tylko powiedzmy ze ja mam wiecej tych plikow tpl
niz tylko main.tpl
i co w takim wypadki bo np dodam do kodu

  1. switch ($_GET['page']) {
  2. case 'main':
  3. $page = getTemplate('main.tpl', array('user'=>$user));
  4. echo $page;
  5. break;
  6.  
  7. case 'support':
  8. $page = getTemplate('deposit.tpl', array('user'=>$user));
  9. echo $page;
  10. break;
  11.  
  12. case 'tos':
  13. $page = getTemplate('tos.tpl', array('user'=>$user));
  14. echo $page;
  15. break;
  16. }


i jak wtedy to bedzie wyglądać

sprawdzalem tak i nie działa


  1. if (!isset($_GET['page'])) {
  2. header('Location: /main');
  3. exit();
  4. }
Tomplus
Ja widzę sam odpowiedziałeś sobie na pytanie.

Wystarczyło wpisać domyślną stronę.
dvdx95
no wlasnie tylko po wpisaniu tego wyswietla mi ten blad ze nie znaleziono strony
  1. Not Found
  2.  
  3. The requested URL /main was not found on this server.
Tomplus
po tym wpisie 'Location: /main' myślałem że to twoja ścieżka w URL.

a jaką ścieżkę masz domyślnie?

może /main/
a może /index.php?page=main
[.htaccess prawdę ci powie]
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.