Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Podstrony na podstawie zmiennych $_GET
annalisa
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.05.2009

Ostrzeżenie: (0%)
-----


mam problem z predefiniowanymi tablicami GET i POST
nie wiem jak do jednej strony php podłączyc inne tak żeby po kliknięciu na link tamte się otwierały, na zajęciach tworzyliśmy takie coś
Kod
<?
if (!array_key_exists('zalogowany',$_GET) || $_GET["menu"]==="info") {
echo "<b>Informacje </b
else {
echo "<a href=\"strona.php?menu=info\">Informacje </a>";
}
echo "
";
if (!array_key_exists('menu',$_GET) || $_GET["menu"]==="opis") {
echo "<b>Opis</b>";
} else {
echo "<a href=\"strona.php?menu=opis\">Opis kursu</a>";}
echo "
"; if (array_key_exists('menu',$_GET) && $_GET["menu"]==="zaliczenie") {
echo "<b>Warunki zaliczenia</b>";
} else {
echo "<a href=\"strona.php?menu=zaliczenie\">zaliczenia</a>";
}
echo "
";
if (array_key_exists('menu',$_GET) && $_GET["menu"]==="prot{
echo "<b> prot</b>";
} else {
echo "<a href=\"strona.php?menu=prot\"> projekty</a>";
}
echo '';
if (array_key_exists('zalogowany',$_SESSION) && $_SESSION["zalogowany"]===1) {
echo "<a href=\"strona.php?menu=logowanie&zalogowany=0\">Wyloguj</a>";
} else {
if (array_key_exists('menu',$_GET) && $_GET["menu"]==="logowanie") {
echo '<b>Logowanie</b>';
} else {
echo "<a href=\"strona.php?menu=logowanie\">Logowanie</a>";

}
?>

tyle że to nie działa a ja wolałaby żeby ja głównej stronie były po prostu zwykłe odnośniki do podstron *.php
albo żeby coś w tym stylu działało tylko nie wiem jak to zrobić...
a co do Posta to potrzbuje go jakkolwiek użyć tylko że zawsze pojawia mi się coś nie zdefiniowanego i nie wiem jak sobie z tym poradzić

Ten post edytował batman 8.05.2009, 06:57:42
Powód edycji: poprawiłem tytuł ~batman
Go to the top of the page
+Quote Post
osl
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 41
Dołączył: 6.04.2009
Skąd: Gdańsk/okolice

Ostrzeżenie: (0%)
-----


po pierwsze, witam na forum (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
po drugie, bbcode.
po trzecie - Twój opis jest nieco chaotyczny.
Co konkretnie nie działa?
Podstrony *.php - czyli każda podstrona w osobnym pliku php? Póki co widać, że wszystko jest na jednej stronie i taki kod rzeczywiście może być trudny do utrzymania...

Ale więcej dokładnego opisu prosze (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
annalisa
post
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.05.2009

Ostrzeżenie: (0%)
-----


przepraszam za to ale po prostu php mnie trochę przytłacza.
chodzi mi o to że mam zrobione wszystkie podstrony bo musiałam zacząć od html. i chciałabym teraz to połączyć.
tylko że nie do końca wiem jak to zrobić. czy musze to zrobić wklejajać wszystko na jedną stronę czy też da się to zrobić za po mocą kodów?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
osl
post
Post #4





Grupa: Zarejestrowani
Postów: 260
Pomógł: 41
Dołączył: 6.04.2009
Skąd: Gdańsk/okolice

Ostrzeżenie: (0%)
-----


na początek tak może bardziej łopatologicznie - nie powinno się tak robić dla stron 'live', ale tu podejrzewam że jest potrzebne jakieś zaliczenie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Skoro masz strony w HTMLu, znajdź w nich takie fragmenty które się powtarzają (np. sekcja head, układ strony).
Możesz to wywalić do osobnych plików, np. head.php.
potem w 'głównej' stronie wrzucasz w odpowiednie miejsca coś w guście:
  1. <?php
  2. include "head.php";
  3. ?>


w ten sposób masz wspólną część stron w jednym pliku.
Dalej, zawartość dla poszczególnych podstron ("główna zawartość") wrzucasz do innych plików php (w sumie HTML też się nada), a w stronie głównej doklejasz odpowiedni fragment kodu.

Nie rozpisuje się dalej, bo nie jestem pewny czy o to chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Poza tym dalej nie wiem co nie działa (pierwszy post) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
annalisa
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.05.2009

Ostrzeżenie: (0%)
-----


zaczynam coś tam rozumieć tylko mam problem z kodem jak dać wyświetl to jeśli naciśnie ten przycisk:
Kod
if (!array_key_exists('menu',$_GET) || $_GET["menu"]==="opis") {
echo "<b>Opis</b>";
} else {
echo "<a href=\"strona.php?menu=opis\">Opis </a>";}

i wcześniej mi się pojawiało że nie mam zdefiniowanego menu i ajk je mam zdefiniować oraz czy zamiast
Kod
else {
echo "<a href=\"strona.php?menu=opis\">Opis </a>";}

mam dodać to co mi napisałeś (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował annalisa 6.05.2009, 16:12:23
Go to the top of the page
+Quote Post
wizard144
post
Post #6





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 4.05.2009

Ostrzeżenie: (0%)
-----


Hmmm ja mam u siebie zrobione w ten sposób (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ->

plik index.php

CODE

<?php
include("gora.php"); //head, info o stronie i takie tam, cały "górny" html

include("srodek.php"); // instrukcja switch pobiera dane z tablicy GET itd (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

include("dol.php"); // Stopka , ob_end_flush() itd...
?>



plik gora.php

CODE

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Windows-1250">
<link rel="STYLESHEET" type="text/css" href="style.css">
<META NAME="description" CONTENT="">
<META NAME="Copyright" CONTENT="">
<META NAME="Author" CONTENT="">
<TITLE>Tytuł Strony Internetowej</TITLE>
</HEAD>
<body>
<center>
<table class="tabelaGlowna" cellspacing="0" cellspanding="0">
<tr>
<td colspan="2"><img src="grafika/.gif"></td>
</tr>
<tr>
<td class="tdMenu">
MENU
<hr />
<a href="?id=start">Start</a><hr>
<a href="?id=rejestruj">Rejestracja</a><hr>

...

</td>



srodek.php

CODE


<td class="tdSrodek">
<table class="tabelaSrodek">
<?php

switch($_GET['id']) // pobiera id z adresu
{
case index:include("start.php");break; // jeśli id= index
case rejestruj:include("rej.php");break; // jeśli id=rejestruj
default :include("start.php");break; //
}

?>
</table>
</td>



Pliku trzeciego nie podaje bo jest nie potrzebny, zamyka tylko tabele itd...

Jeśli dobrze zrozumiałem to o coś takiego Ci chodziło ? myślę że ze zmienną z tablicy POST nie ma sensu sie bawić...

Pozdrawiam!

EDIT:

Co do zmiennej z Postem zrób może formularz kontaktowy na stronie czy coś

P.s

Mam nadzieję że dobrze zrozumiałem Twój problem....

Ten post edytował wizard144 6.05.2009, 16:55:00
Go to the top of the page
+Quote Post
annalisa
post
Post #7





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.05.2009

Ostrzeżenie: (0%)
-----


no mniej więcej o to tylko czy zamiast tego id moge użyć czegoś innego czy też będe musiała to definiować?
Go to the top of the page
+Quote Post
wizard144
post
Post #8





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 4.05.2009

Ostrzeżenie: (0%)
-----


Słuchaj ogólnie link to przykładowo

CODE

<a href="index.php?page=opis">

//nazwa zmiennej to może być coś dowolnego np 'page', 'strona', 'id', tak samo jak wartosc tyle tylko że...

switch($_GET['page'])
{
case opis :include("opis.php");break;

default :include("start.php");break;

}



teraz tak...

tą instrukcję ze switchem wstawiasz w miejscu w którym chcesz żeby zmieniała się treść (czyli no zależnie od układu strony, powiedzmy po środku)

Po kliknięciu w link adres przeglądarki będzie posiadał zmienną $_GET['page'] o wartości (w w/w przypadku) "opis"

Switch zobaczy że jest zdefiniowana taka zmienna i przyporządkuje do niej odpowiedni plik - zaincluduje go (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

jedyne co trzeba tu definiować to

A: Linki -zmienne itd
B: Instrukcję switchowania (czyli co ma wczytywać kiedy, przy jakiej zmiennej etc)

Jak by być upartym to można ew i zmienne linkowe i zmienne switchowe wrzucić do bazy danych i wybierać, oszczędność w pisaniu kodu przy dużych projektach itd (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

A co do tego POST-a

Użyć w jakikolwiek sposób hmmm...

To ma być na jakieś zaliczenie więc może wystarczy zwykły formularz z wysłaniem wyników np na maila (jakaś ankieta typu "czy podoba Ci sie mój projekt?") Przyciski Radio, albo lista Select (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) no i to ja to tak widzę jak coś to mogę coś takiego napisać jeśli chcesz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) , choć wskazane jest dawanie wskazówek a nie gotowców (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował wizard144 6.05.2009, 17:49:46
Go to the top of the page
+Quote Post
annalisa
post
Post #9





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.05.2009

Ostrzeżenie: (0%)
-----


już prawie wszystko działa tylko pojawia się komunikat: że mam nie zdefiniowaną stałą opis?
jak mam ją zdefiniować?
Go to the top of the page
+Quote Post
wizard144
post
Post #10





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 4.05.2009

Ostrzeżenie: (0%)
-----


Yyyy... Wiesz co, miałem kiedyś podobny błąd, ale tkwił on nie w tym switchu całym czy w tej stałej tylko w zupełnie innym miejscu skryptu.

poza tym to nie jest stała tylko wartosc zmiennej page (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
annalisa
post
Post #11





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.05.2009

Ostrzeżenie: (0%)
-----


no bo wiesz pojawia mi się taki komunikat:
Cytat
"Use of undefined constant ciekawostki - assumed 'ciekawostki'"

i tak do każdego
wydaje mi się że ja hyba zrobiłam jakiś błąd bo zależy co nacisne.
jeśli jest pierwsze to tylkojeden taki błąd a jeśli kolejne to więcej podobnych...
Go to the top of the page
+Quote Post
wizard144
post
Post #12





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 4.05.2009

Ostrzeżenie: (0%)
-----


robi więcej bo przechodzi przez wszystkie case'y. Sprawdza po kolei warunki i wyrzuca błędy. Błąd musi być gdzieś w zapisie głównego skryptu który to wszystko wyświetla i wczytuje. I pewnie to jest jakiś drobny błąd znając życie a robi tyle zamieszania że szok. Pamiętam że też coś takiego mi wyskoczyło jak robiłem jakieś zmiany w grze, includowałem plik i coś nie tak było. Ale nie pamiętam dokładnie. Musisz przeanalizować cały kod (wcześniejszy, ten główny) to napewno dojdziesz do tego co jest grane i co jest źle (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Więcej zrobić nie mogę.

w ostateczności, żeby nie wyrzucało błędów to można dodać "@"

np:

@case 1: include("blabla.php");break;

powinno pomóc z wyrzucaniem błędu ale to żadne rozwiązanie...

dlatego lepiej przeanalizować jeszcze kod głównego skryptu
Go to the top of the page
+Quote Post
annalisa
post
Post #13





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 6.05.2009

Ostrzeżenie: (0%)
-----


ok dziękuje (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif)
znalazłam bład brakowało mi cudzysłowu po każdy case tak miało być
case 'opis'
Go to the top of the page
+Quote Post
wizard144
post
Post #14





Grupa: Zarejestrowani
Postów: 138
Pomógł: 3
Dołączył: 4.05.2009

Ostrzeżenie: (0%)
-----


Swoją drogą ciekawe (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Bo ja tych "ciapków" nie mam i mi działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) może inna wersja php na serwerze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

W każdym bądź razie polecam się na przyszłość (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.12.2025 - 19:42