Strona 1 z 4

Zmiana tylko śrdkowej ramki strony?? POMOCY :(

: 11 lis 2005, 15:19:16
autor: sebas_99ii
Witam :) Mam pytanko...
Mam stworzony szablon HTML i teraz chcial bym aby przy klinknieciu na hiperłącze np zmieniał się tylko srodek strony, czyli żeby reszta strony sięnie zmieniała z wyjątkiem środkowej ramki :] bo przeciez nie będe robił do kazdego hiperłacza całej podsrtony bo to sie chyba mija z celem! Proszę o pomoc! jak cos takiego zrobic? zaznaczam tylko ze szablon już mam stworzony;)

POZDRAWIAM 8)

: 11 lis 2005, 15:28:13
autor: fuma
do ramki środkowej dodajesz :

Kod: Zaznacz cały

name="ramka" 
a do hiperłączy

Kod: Zaznacz cały

target="ramka" 
Gotowe :wink:

Ale jakoś nie działa ten sposób :/

: 14 lis 2005, 20:37:22
autor: sebas_99ii
... nie wiem dlaczego ale nie dziala :|:| moze istnieje coś innego... ??

: 14 lis 2005, 20:56:29
autor: linksworld
Jeśli nie zna się podstaw HTML-a, to jak Ty się chcesz zabawiać ramkami :?:

: 14 lis 2005, 21:09:05
autor: gacek
jak masz:
<frame src="start.html" name="ramka">

i jak chcesz, żeby po kliknięciu w link, strona ładowała się do tej ramki to wpisz:
<a href="link.html" target="ramka">

rozumiesz :?:

: 14 lis 2005, 21:15:09
autor: fuma

: 15 lis 2005, 08:14:43
autor: HitcH
a da się takie coś z divami zrobić?

: 15 lis 2005, 16:06:09
autor: gacek
da się. Za pomocą javascript:

<div id="start"><h1>strona główna</h1></div>
<div id="strona_1"><h1>druga strona</h1></div>
<div id="inna_strona"><h1>trzecia strona</h1></div>
<!-- i tak dalej... -->

<script language="javascript">
<!--
function url(x) {
document.getElementById('start').style.display='none';
document.getElementById('strona_1').style.display='none';
document.getElementById('inna_strona').style.display='none';
//i tak dalej... a potem:
document.getElementById(x).style.display='block';
}

//uruchomienie strony głównej:
url('start');
//-->
</script>

no i potem odnośniki wyglądają tak:
<a href="javascript:url('start')">główna</a>
<a href="javascript:url('strona_1')">druga</a>
<a href="javascript:url('inna_strona')">trzecia</a>

może to być o tyle efektywne, że podstrony będą się dużo szybciej ładować no i będą bez dodatkowych reklam google. Ale to jest raczej bez sensu, lepiej zrób to w PHP.

: 15 lis 2005, 19:44:43
autor: HitcH
gacek pisze:Ale to jest raczej bez sensu, lepiej zrób to w PHP.
\Hmm jak bym znal choc troche php...tzn znam jeden skrypt echo :D

: 15 lis 2005, 20:03:36
autor: Mati
Czy ja wiem zrobienie tego w php nie jest wcale takie trudne.
Robisz plik index.php

Kod: Zaznacz cały

<?php
$view = $_GET['view'];
$allowed_values = array&#40;
   "page1" => "page1.inc",
   "page2" => "page2.inc",
   "page3" => "page3.inc"
&#41;;
if&#40;$allowed_values[$view]!=''&#41;&#123;
  include&#40;"gora.inc"&#41;;
  include&#40;
    "$allowed_values[$view]"&#41;;
  include&#40;"dol.inc"&#41;;
&#125;
else&#123;
  include&#40;"gora.inc"&#41;;
  include&#40;"opis.inc"&#41;;
  include&#40;"dol.inc"&#41;;
&#125;
?>
Potem swoją stronę (jej kod HTML) dzielisz np:w notatniku na 3 części:
gora-to to co jest nad opisem który będzie się zmieniał

opis-to to co się zmienia

dol-to to co jest pod opisem

Zapisujesz je jako:
gora.inc
opisy to kolejno
- page1.inc
- page2.inc
- page3.inc
- i tak dalej ale jak chcesz więcej to przy

Kod: Zaznacz cały

$allowed_values = array&#40;
   "page1" => "page1.inc",
   "page2" => "page2.inc",
   "page3" => "page3.inc"
&#41;; 
dodajesz kolejne ,,pagex=>pagex.inc,"
przy ostatnim nie ma przecinka

No i potem masz takie adresy
www.strona.cba.pl - automatycznie otworzy się strona ,,sklejona" z gora.inc, page1.inc, dol.inc
A inne to po prostu www.strona.cba.pl/index.php?view=page2
www.strona.cba.pl/index.php?view=page3
www.strona.cba.pl/index.php?view=pagex
I możesz się do nich odwoływać w zwykłych linkach HTML

Nie wiem czy to coś rozjaśniło ale się starałem :roll:

: 15 lis 2005, 20:13:38
autor: HitcH
Hmm zrozumialem tyle:
ten kod mam wkleic na czysty dokument
i dalej tyle co nic..:)

Nawet nie wiem co sie zmienia. Mógłbś podać jakiś przykład strony opartej na tym?:D

: 16 lis 2005, 14:33:05
autor: gacek
może ja dam lepszy przykład 8) :
piszesz normalną stronę (normalnie w HTMLu) index.php w której zawierasz ramy całej strony, a tam gdzie ma się zmieniać treść wpisujesz odpowiedni kod PHP. Przykładowa strona index.php :

Kod: Zaznacz cały

<html>
<table>
<tr>
<td valign="top">
<h3>menu</h3>
<a href="?link=start">strona główna</a><br>
<a href="?link=strona1">strona1</a><br>
<a href="?link=strona2">strona2</a><br>
</td>
<td valign="top">
<?php
if&#40;$_GET['link']!=''&#41; &#123; include&#40;'http://twojastrona.cba.pl/folder/'.$_GET['link'].'.php'&#41;; &#125; else
&#123; include&#40;'folder/start.php'&#41;; &#125;
?>
</td>
</tr>
</table>
</html>
no i teraz to co jest pomiędzy <?php i ?> będzie zastępowane przez treść kolejnych podstron. Każda podstrona jest w folderze "folder" wraz ze stroną start.php która jest stroną startową. Podstrony piszesz już bez tego "wstępu" czyli już bez znaczników <html> i tych innych co się pisze na początku. Piszesz je w HTMLu tak jak byś chciał dopisać treść strony w miejsce kodu PHP w pliku index.php.
W tym przypadku powinieneś do folderu "folder" wrzucić pliki start.php, strona1.php i strona2.php :wink:

: 16 lis 2005, 15:40:53
autor: HitcH
tzn tak: strona1 i2 .php to bada odnosninki które otwieraja sie w miejscu tekstu ze strony glownej?

: 16 lis 2005, 16:17:25
autor: Mati
gacek NIE POWINNO SIÊ DAWAÆ TAKICH SKRYPTÓW!

A co jeżli podam taki adres?
http://twojastrona.cba.pl/folder/index. ... /wazne.xxx

Jeżeli autor strony daje taki skrypt to ktoś może wpisać do ?link= dowolną ścieżkę, co spowoduje wyświetlenie pliku którego nie przewidywał autor skryptu.

Nawet plików serwera co może ułatwić późniejsze włamanie. Szczególnie na serwerach windowsowskich.

Dlatego ja podałem przykład z tablicą...

: 16 lis 2005, 21:15:45
autor: gacek
no fakt, sory :oops:
No ale po pierwsze skąd ktoś ma wiedzieć w ilu folderach znajdują się podstrony. Po drugie, jaka jest nazwa tego tajnego pliku i czy ma on rozszerzenie .php. Po trzecie tajne pliki nie powinne być przechowywane w folderze w którym są inne pliki. A po czwarte ten skrypt można łatwo zmodyfikować żeby temu zapobiec. Na przykład zamiast:

Kod: Zaznacz cały

<?php
if&#40;$_GET['link']!=''&#41; &#123; include&#40;'http://twojastrona.cba.pl/folder/'.$_GET['link'].'.php'&#41;; &#125; else
&#123; include&#40;'folder/start.php'&#41; &#125;
?>
można zrobić tak:

Kod: Zaznacz cały

<?php
$x=$_GET['link'];
$x=strtr&#40;$x,"/%","ab"&#41;;
if&#40;$x!=''&#41; &#123; include&#40;'http://twojastrona.cba.pl/folder/'.$x.'.php'&#41;; &#125; else
&#123; include&#40;'folder/start.php'&#41;; &#125;
?>
i już po krzyku. Wszystkie ewentualne niebezpieczne znaki takie jak / % są zamieniane na jakieś literki (a,b). No i haker ma problem :wink:
HitcH pisze:tzn tak: strona1 i2 .php to bada odnosninki które otwieraja sie w miejscu tekstu ze strony glownej?
a możesz się wyrazić jaśniej bo niewiem o co ci chodzi :?: i używaj polskich liter :)
ale jeżeli cię dobrze zrozumiałem, to odpowiedź brzmi TAK