Skocz do zawartości

Prosta strona w php i problemy z kodowaniem


Flanker

Rekomendowane odpowiedzi

Witam!

To moje pierwsze kroki w php, chciałbym zrobić podstrony oparte na php, a konkretniej czymś takim:

if($_GET['id']=="podstrona"){
include("dane/podstrona.html");
}

Znalazłem tutorial na ten temat, ale już nie pierwszy raz mam problemy z kodowaniem tych plików. W intex.php ustawiam w meta charset=utf-8 i polski tekst wyświetlany przez ten plik działa.

Niestety tekst znajdujący się w plikach podstrona.html itp nie wyświetla polskich znaków.

Dowiedziałem się, że kodowanie można ustawiać programem dla konkretnego pliku, ja korzystam z Dreamweavera i niestety nie mogę doszukać się tej opcji. Mam jedynie ustawione kodowanie UTF-8 jako domyślne.

Proszę o pomoc jak sobie z tym poradzić.

Dziękuję.

katalog sklepów - darmowy katalog PR4 porady, artykuły, produkty.

Atrakcje turystyczne - wyjade.pl

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 32
  • Dodano
  • Ostatniej odpowiedzi

Jeżeli plik index.php poprawnie wyświetla polskie znaki i są one zapisane w UTF-8 to oznacza, że includowany plik "dane/podstrona.html" ma PL-znaki zakodowane w innym standardzie (pewnie win-1250 albo iso-8859-2). Wygoogluj program gżegżółka i przekonwertuj problemowe pliki na UTF-8.

Sprawdź liderów systemów wymiany linków:

linkme.pl (stały), gotlink.pl (rotacyjny)

alexain.jpgalexaol.jpgalexaat.jpg

Odnośnik do komentarza
Udostępnij na innych stronach

To może jeszcze jedno pytanko. Wiem, że jest to prosty skrypcik, ale chciałbym mieć pewność, że jest to dobrze rozwiązane i że będzie poprawnie działać:

	<?php 

if($_GET['id']=="1"){
	include("1.html");
} else

if($_GET['id']=="2"){
	include("2.html");

} else header("Location: ../szablony.php");	
?>

Zastanawiam się, czy strona będzie się dobrze wyświetlać dla googla, jesli dobrze rozumiem, to jeśli ktoś poda zły url lub wpisze samo index.php to zostanie cofnięty do strony nadrzędnej (szablony.php)?

Czy nie wynikną z tego w przyszłości jakieś nieprzewidziane błędy?

A może istnieje dużo lepsze rozwiązanie?

Przepraszam za tak głupie pytania, ale to dopiero moje pierwsze kroki :D

katalog sklepów - darmowy katalog PR4 porady, artykuły, produkty.

Atrakcje turystyczne - wyjade.pl

Odnośnik do komentarza
Udostępnij na innych stronach

Rozwiązań możesz mieć kilka np. takie jak zaproponowałeś albo przez mod_rewrite (jeśli serwer obsługuje).

Przekierowanie samo w sobie, czy to przez mod_rewrite, czy przez header nie będzie dla G złe ale zauważ, że ta sama strona (w Twoim

wypadku 'szablony.php' będzie istniała pod wieloma adresami i tu może być lekki zgrzyt jeśli to jest cenna strona (jeśli wszystko

będzie się odbywać na jednej domenie to może będzie OK).

Ja bym jednak zrobił chyba klasycznie i dał informacje o błędzie w adresie i ew. przekierował na index.

Odnośnik do komentarza
Udostępnij na innych stronach

Zamiast tyle instrukcji if wykorzystaj https://pl.wikibooks.org/wiki/PHP/Instrukcja_switch

Co do obsługi błedu będzie to po prostu bład 404 i dobrze, jeśli będzie obsługiwane. Powinien wyświetlać się komunikat, że podana strona nie istnieje.

Sztuczna inteligencja (AI, artificial intelligence) to szeroka klasyfikacja przetwarzania danych. Machine Learning to technika przetwarzania danych, która umożliwia wykorzystanie przez komputery istniejących danych w celu przewidywania przyszłych zachowań, rezultatów i trendów. Drugie podejście to uczenie maszynowe (machine learning), czyli technika nauki o danych.

Odnośnik do komentarza
Udostępnij na innych stronach

ale zauważ, że ta sama strona (w Twoim

wypadku 'szablony.php' będzie istniała pod wieloma adresami i tu może być lekki zgrzyt jeśli to jest cenna strona (jeśli wszystko

będzie się odbywać na jednej domenie to może będzie OK).

Nie mogę się zgodzić, że będzie widniała pod wieloma adresami. Jeśli np. ktos wpisze adres index.php?id=3 lub samo index.php to zostanie przekierowany na stronę ../szablony.php. Nie będzie to duplikat strony a jedynie przekierowanie.

Byłby to dublikat, gdybym zamiast

else header("Location: ../szablony.php");

wpisał

include("../szablony.php");

Tak przynajmniej ja to rozumiem.

GEGE rzeczywiście zapomniałem, że istnieje coś takiego jak instrukcja switch. Dzękuję Ci.

Z php zetknąłem się po raz pierwszy, jednak mam małe podstawy Pascala i C++, więc nie jest mi zupełnie zielono ;)

katalog sklepów - darmowy katalog PR4 porady, artykuły, produkty.

Atrakcje turystyczne - wyjade.pl

Odnośnik do komentarza
Udostępnij na innych stronach

Sztuczna inteligencja (AI, artificial intelligence) to szeroka klasyfikacja przetwarzania danych. Machine Learning to technika przetwarzania danych, która umożliwia wykorzystanie przez komputery istniejących danych w celu przewidywania przyszłych zachowań, rezultatów i trendów. Drugie podejście to uczenie maszynowe (machine learning), czyli technika nauki o danych.

Odnośnik do komentarza
Udostępnij na innych stronach

GEGE i wszystko jasne...

Możesz napisać co oznacza twój ostatni post? Podejrzewam, że chciałeś pokazać stronę błędów, jaka mogła by być ustawiona zamiast ../szablony.php.

Jednak sprawa wygląda tak, że jeśli ktoś poda adres url inny niż index.php?(???????????) dostanie błąd 404. W innym przypadku przekieruje na ../szablony.php

(?)*dowolne znaki.

katalog sklepów - darmowy katalog PR4 porady, artykuły, produkty.

Atrakcje turystyczne - wyjade.pl

Odnośnik do komentarza
Udostępnij na innych stronach

GEGE i wszystko jasne...

Możesz napisać co oznacza twój ostatni post?

ale zauważ, że ta sama strona (w Twoim wypadku 'szablony.php' będzie istniała pod wieloma adresami i tu może być lekki zgrzyt

Taka obsługa błedu 404 jest standardowa. Lepsze to niż https://www.termookna.pl/fff

Sztuczna inteligencja (AI, artificial intelligence) to szeroka klasyfikacja przetwarzania danych. Machine Learning to technika przetwarzania danych, która umożliwia wykorzystanie przez komputery istniejących danych w celu przewidywania przyszłych zachowań, rezultatów i trendów. Drugie podejście to uczenie maszynowe (machine learning), czyli technika nauki o danych.

Odnośnik do komentarza
Udostępnij na innych stronach

$inc=include './dane/'.$_GET['id'].'.html';

Łatwo tu o HTML injection, jeśli

$_GET['id'] = 'https://stronahakera.com/podstrona_hakera.html#';

"bytka abo ne bytka to je zapytka" - W. Shakespeare ;)

Niekończąca się impreza ;) ... wątroba zaleczona :D

Odnośnik do komentarza
Udostępnij na innych stronach

I co się wtedy stanie?

Podstawowym elementem przy włamywaniu się na serwisy jest sprawdzenie jak dany system reaguje na błędy, pozwala to na rozpoznanie wielu czynników (nie zawsze trzeba robić injection), a przypadku Twojego "kontrolera" dostaję częściowo strukturę katalogów wraz z komunikatami systemowymi. Podstawa zabezpieczenia aplikacji to brak komunikatów. Nie trzeba ułatwiać pracy włamywaczowi, a dodatkowo w przypadku błędu użytkownika dostanie on default-ową stronę, a nie komunikat zrozumiały tylko dla programisty. Rób jak chcesz, ale posłuchaj starszych kolegów. :rolleyes:

BTW. Podaj mi adresy swoich serwisów :)

"Dopiero gdy wolna wola znowu zaskoczyła, przerwali bieg po torze przeszkód ich własnej konstrukcji."

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności