Skocz do zawartości

Przyjazne url'e + dynamiczne meta tagi


vanat

Rekomendowane odpowiedzi

Witam. Postaram się w najprostszy sposób opisać mój problem. Otóż moja strona www.xxx.pl posiada przyjazne url'e w postaci www.xxx/k-$zmienna.html, przy pomocy mod'u rewrite w .htaccess'ie. Poniżej zamieszczam kod z index.php odpowiedzialny za includowanie kategorii:

IF($show=="") $show=$_GET['show'];

if(!isset($show)) {

include"strony/main.php"; }

else if ($show=='costam') {

include"strony/costam.php"; }

else if($show=='newsy') {

include"strony/newsy.php"; }

else {

echo("Nie ma takiej strony"); } ?>

Wszystko jest poprzepisywane i ładnie śmigają linki. Ale jednocześnie przestały mi działać dynamicznie stworzone meta tagi, gdyż wcześniej, zanim miałem przyjazne urle, kod includowania wyglądał tak, i wtedy meta się zmienialo:

IF($show=="") $show=$_GET['show'];

if(!isset($show)) {

include"strony/main.php"; }

else if ($show=='1') {

include"strony/costam.php"; }

else if($show=='2') {

include"strony/newsy.php"; }

else {

echo("Nie ma takiej strony"); } ?>

Funkcje odpowiedzialne za dynamiczne meta tagi pobieram z pliku function.php, a kod wygląda w skrócie tak:

<?php

if(!$add_site) exit;

function Title($show) {

$array_title = array(

0=>'jakiś tam opis dla strony głównej',

1=>'opis przyporządkowany dla strony z 1 komórki tablicy',

2=>'opis przyporządkowany dla strony z 2 komórki tablicy',

foreach($array_title as $$key => $value)

if($show == $$key) return $value;

}

?>

Teraz moje pytanie brzmi, jak zrobić, żeby zamiast 0,1,2 itp, analogicznie byly jakieś nazwy, czyli main, costam, newsy itp.. Działają jedynie meta tagi z '0'. Niestety podstawy php mam słabe i nie potrafię tego zrobić. Myślę, że nie zaspamowałem forum, gdyż podałem czarno na biało jak stworzyć dynamiczny meta tag :) Pozdrawiam i proszę o jakąś pomoc, wskazówki :)

Odnośnik do komentarza
Udostępnij na innych stronach

Gość George UK

Trochę bez sensu to robisz, gdyż adresy nie są przyjazne, ale skoro się upierasz proponuje coś takiego:

if (isset($_GET['show'])) { switch($_GET['show']) 
	{
	case '1':
	show($_GET['show']);
	break;

	case '2':
	show($_GET['show']);
	break;

	default:
	header("HTTP/1.x 404 Not Found");
	echo("Nie ma takiej strony");
	die; break;
	}
}
else { show(0); }	

function show($nr) { 
$array_data = array(
0=>Array('title'=>'jakiś tam opis dla strony głównej','file'=>'home.php'),
1=>Array('title'=>'opis przyporządkowany dla strony z 1 komórki tablicy','file'=>'newsy.php'),
2=>Array('title'=>'opis przyporządkowany dla strony z 2 komórki tablicy','file'=>'costam.php')
);
include($array_data[$nr]['file']);
$title = $array_data[$nr]['title'];
//... tu Twój kod wstawiania title ...
die;
}

Daj znać czy działa i czy o to Ci chodziło.

Pozdrawiam, George UK

Odnośnik do komentarza
Udostępnij na innych stronach

Trochę bez sensu to robisz, gdyż adresy nie są przyjazne, ale skoro się upierasz proponuje coś takiego:

Dziękuję bardzo za tak szybką odpowiedź!!:)) Hmm, nie rozumiem czemu uważasz, że nie są przyjazne. Pod zmiennymi które są includowane do url'a, będą się kryć słowa kluczowe, a to chyba bardziej sprzyja pod optymalizacje. www.xxx/k-1.html jest mniej przydatne niż np www.xxx/k-pomarancze.html. No chyba, że chodziło Ci o to żeby zamiast "-" dać np "/", jak dla mnie jedno i to samo. W sumie to wywaliłbym całkiem to "k-", ale wtedy jak same zmienne będą dołączane to nie wiem jak sie zachowa same index. Coś pokombinuje.. Jeszcze raz pozdrawiam i dziękuję za pomoc.. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Powiem szczerze, że Twój przykład sprawił mi trudności w interpretacji ( bo jak wiadomo powielić po prostu nigdy się nie da), ale przyjaciel mi podpowiedział i zrobiłem to tak:

IF($show=="") $show=$_GET['show'];

if(!isset($show)) {

$meta_title = 'jakiś przykładowy title;

$meta_desc = 'jakiś description';

$meta_keyw = 'keyyy, wordyyy, przykładowe';

}

itd... dla każdej z kategorii

Tę część dałem oczywiście nad sekcją <head>, natomiast już w samym <body> dałem samo:

<?php IF($show=="") $show=$_GET['show'];

if(!isset($show)) {

include"strony/main.php";

}

else if ($show=='newsy') {

include"strony/newsy.php";

}

else if($show=='druga_kat')

{

itd...

i wszystko działa jak ta lala :soczek:

Jest trochę tego kodu jeśli ma się większą liczbę kategorii, ale najlepsza metoda to ta najprostsza, tym bardziej gdy się jeszcze raczkuje :crazy: pozdrawiam yo

Odnośnik do komentarza
Udostępnij na innych stronach

Gość George UK

Możesz zostać przy swoim kodzie, lub wprowadzić ten poniżej ( mysle że teraz dasz radę )

if (isset($_GET['show'])) { switch($_GET['show']) 
	{
	case 'newsy': show($_GET['show']); break;
	case 'podstrona2': show($_GET['show']); break;		
	case 'podstrona3': show($_GET['show']); break;		
	case 'podstrona4': show($_GET['show']); break;

	default: header("HTTP/1.x 404 Not Found"); echo("Nie ma takiej strony"); break;
	}
}
else { show('home'); }
die;	

function show($nazwa) { 
$array_data = array(
'home'=>Array(
	'title'=>'tytul strony głównej',
	'desc'=>'opis strony glównej',
	'key'=>'slowa kluczowe str. głównej',
	'file'=>'strony/main.php'),
'newsy'=>Array(
	'title'=>'tytul dla newsów',
	'desc'=>'opis strony newsów',
	'key'=>'slowa kluczowe newsów',
	'file'=>'strony/newsy.php'),
'podstrona2'=>Array(
	'title'=>'tytul strony 2',
	'desc'=>'opis strony 2',
	'key'=>'slowa kluczowe 2',
	'file'=>'plik_strony_2.php'),
'podstrona3'=>Array(
	'title'=>'tytul strony 3',
	'desc'=>'opis strony 3',
	'key'=>'slowa kluczowe 3',
	'file'=>'plik_strony_3.php'),
'podstrona4'=>Array(
	'title'=>'tytul strony 4',
	'desc'=>'opis strony 4',
	'key'=>'slowa kluczowe 4',
	'file'=>'plik_strony_4.php')
);

include($array_data[$nazwa]['file']);
$title = $array_data[$nazwa]['title'];
$desc = $array_data[$nazwa]['desc'];
$key = $array_data[$nazwa]['key'];

//... tu Twój kod wstawiania title,desc,key oraz wyświetlenia strony ...
return;
}

Dodając nową podstronę - dodajesz jednego "case" oraz jedną podtablicę. Nie zapomnij iż po ostatnim elemencie tablicy nie dajesz przecinka, bo łatwo się na to złapać.

Odnośnik do komentarza
Udostępnij na innych stronach

Trochę lepszy kod:

$url_strony_glownej='https://www.mojastronka.pl';

$array_data = array(
'home'=>Array(
	'title'=>'tytul strony głównej',
	'desc'=>'opis strony glównej',
	'key'=>'slowa kluczowe str. głównej',
	'file'=>'strony/main.php'),
'newsy'=>Array(
	'title'=>'tytul dla newsów',
	'desc'=>'opis strony newsów',
	'key'=>'slowa kluczowe newsów',
	'file'=>'strony/newsy.php'),
'podstrona2'=>Array(
	'title'=>'tytul strony 2',
	'desc'=>'opis strony 2',
	'key'=>'slowa kluczowe 2',
	'file'=>'plik_strony_2.php'),
'podstrona3'=>Array(
	'title'=>'tytul strony 3',
	'desc'=>'opis strony 3',
	'key'=>'slowa kluczowe 3',
	'file'=>'plik_strony_3.php'),
'podstrona4'=>Array(
	'title'=>'tytul strony 4',
	'desc'=>'opis strony 4',
	'key'=>'slowa kluczowe 4',
	'file'=>'plik_strony_4.php')
);


if   (!isset($_GET['show'])  $show='home'; 
else   $show=$_GET['show']

if   (in_array($array_data,$show))

{
	$title = $array_data[$show]['title'];
$desc = $array_data[$show]['desc'];
$key = $array_data[$show]['key'];	
if (file_exists($array_data[$show]['file'])) include($array_data[$show]['file']);
	else 
	echo '<h1>Brak pliku: '.$array_data[$show]['file'].'</h1>';
}

else	
{
  header("Location: ".$url_strony_glownej); 
  die();
}

Pozdrawiam

THANT

linki ze stopki...

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