Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [php] include dwa razy na stronie
pijanyadmin
post 21.01.2008, 19:08:14
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 24.10.2007

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


ogolneplik index.php

  1. <?php
  2.  
  3. if($_GET["id1"] == "start") include("start.php");
  4. else if($_GET["id1"] == "cos") include("cos.php");
  5. else if($_GET["id1"] == "ustawienia") include("ustawienia.php");
  6.  
  7. else if(!isset($_GET["id1"])) include("start.php");
  8. else include("404.php");
  9. ?>


i jest ok, wszystko działa jak trzeba, natomiast jeśli np. w pliku ustawienia.php mam:

  1. <?php
  2.  
  3. if($_GET["ust"] == "ogolne") include("ogolne.php");
  4. else if($_GET["ust"] == "test") include("test.php");
  5.  
  6. else if(!isset($_GET["ust"])) include("ogolne.php");
  7. else include("404.php");
  8. ?>


to już nic poza wczytaniem pliku "startowego" ogolne.php się nie wczytuje[test.php] w pliku ustawienia.php

dodam tylko iż strony includowane w index.php są w taki sposób (tutaj wczytuje ustawienia.php):

  1. <a href='panel.php?id1=ustawienia&amp;<?php echo IDUS; ?>'>Ustawienia</a>



czyli co robie źle że to includowanie nie działa w pliku zincludowanym? biggrin.gif
Go to the top of the page
+Quote Post
grzesiek_g
post 21.01.2008, 19:26:30
Post #2





Grupa: Zarejestrowani
Postów: 249
Pomógł: 30
Dołączył: 18.07.2007

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


Cytat(adameq @ 21.01.2008, 18:29:56 ) *
  1. <a href='panel.php?id1=ustawienia&amp;<?php echo IDUS; ?>'>Ustawienia</a>

Nie wiem co masz dokładnie w stałej IDUS, ale może nie powinno być tak:
  1. <a href='panel.php?id1=ustawienia&amp;ust=<?php echo IDUS; ?>'>Ustawienia</a>


Ten post edytował grzesiek_g 21.01.2008, 19:27:11


--------------------
Warsztat: Ubuntu 12.10, PHPStorm
http://vertoo.pl
Go to the top of the page
+Quote Post
nevt
post 21.01.2008, 22:05:11
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


cytat z MANUALA
Cytat
Ponieważ include() i require() są specialnymi konstrukcjami językowymi, muszą być umieszczone w instrukcji grupującej, aby mogły działać w instrukcji warunkowej.

czyli nie
  1. <?php
  2. if($costam==$cosinnego) include('costam.inc');
  3. ?>

tylko
  1. <?php
  2. if($costam==$cosinnego) { include('costam.inc') }
  3. ?>


Ten post edytował nevt 21.01.2008, 22:06:03


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
nospor
post 21.01.2008, 22:23:11
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Ponieważ include() i require() są specialnymi konstrukcjami językowymi, muszą być umieszczone w instrukcji grupującej, aby mogły działać w instrukcji warunkowej.
Jakieś kolejne bzdurne tlumaczenie manuala na polski.
Chyba ze nevt masz jakies praktyczne doswiadczenia potwierdzające ten tekst?

ps: zajrzyj do oryginalnej strony nie tlumaczonej


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
nevt
post 22.01.2008, 08:46:07
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


Cytat
Jakieś kolejne bzdurne tlumaczenie manuala na polski.

niestety nie jakieś tam, tylko wprost ze stronki http://pl2.php.net/manual

masz rację nospor - nie trzeba klamerek - w oryginale nie ma na ten temat ani słowa... dodatkowo sprawdziłem - z klamerkami czy bez - działa tak samo - jednak człowiek uczy się przez całe życie smile.gif pozdrawiam.


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
nospor
post 22.01.2008, 08:48:04
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
niestety nie jakieś tam, tylko wprost ze stronki http://pl2.php.net/manual
To ja wiem, dlatego dopisalem bys sprawdzil w oryginale. A pisze "jakieś tam", gdyż niestety poziom polskiego tłumaczenia momentami odbiega od jakiegokolwiek poziomu. Tak jakby bylo tlumaczone po ostro zakrapianej imprezie. Teksty normalnie z kosmosu. To nie pierwsza taka wpadka.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
pijanyadmin
post 22.01.2008, 12:29:04
Post #7





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 24.10.2007

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


IDUS:
  1. <?php
  2. $_SESSION['idu'] = md5(rand() + rand());
  3. ?>


Niestety po zmianach jakie polecaliście nadal nie działa...

przykładowo adres w przeglądarce:

Kod
panel.php?id1=ustawienia&idu=62b28182b83633063dce8f64ab170426


za jego wczytanie odpowiadają:

Kod
<a href='panel.php?id1=ustawienia&amp;<?php echo IDUS; ?>'>Ustawienia</a>


  1. <?php
  2. else if($_GET["id1"] == "ustawienia") { include("ustawienia.php");}
  3. ?>


i wszystko jest ok w innych przypadkach, jednak nie moge includować nic w pliku ustawienia.php

plik "startowy" wczytuje się bez problemu:

  1. <?php
  2. else if(!isset($_GET["ust"])) { include("ogolne.php");}
  3. ?>


jednak jeśli chciałbym coś wczytać innego to już nie daje rady:

  1. <?php
  2. else if($_GET["ust"] == "oe") { include("oe.php");}
  3. ?>


link w ustawieniach.php do wczytywania wygląda tak:

Kod
<a href='panel.php?ust=oe&amp;<?php echo IDUS; ?>'>ogólne</a>


albo tak i też jest źle

Kod
<a href='panel.php?ust=oe&amp;<?php echo IDUS; ?>'>ogólne</a>


Ten post edytował pijanyadmin 22.01.2008, 12:30:44
Go to the top of the page
+Quote Post
kszychu
post 22.01.2008, 12:42:59
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Wszystko masz w jednej lokalizacji, czy porozrzucane w różnych katalogach?


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
pijanyadmin
post 22.01.2008, 13:05:09
Post #9





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 24.10.2007

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


panel.php i ustawienia.php są w tym samym katalogu, reszta tzn. pliki które mają być wczytywane przez ustawienia.php są w osobnym katalogu
Go to the top of the page
+Quote Post
potreb
post 22.01.2008, 13:12:21
Post #10





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


  1. <?php
  2. $_SESSION['idu'] = md5(rand() + rand());
  3. ?>


A skąd pobierasz zmienną idus? O ile to zmienna bo skoro masz echo idus to co ci wyświetla?
<a href='panel.php?id1=ustawienia&amp;<?php echo IDUS; ?>'>Ustawienia</a>

A nie można tak?
<a href='panel.php?id1=ustawienia&amp;<?php echo $_SESSION['idu']; ?>'>Ustawienia</a>

Możesz spróbować zrobić to przez switcha, wg mnie będzie to bardziej czytelne.

Ten post edytował potreb 22.01.2008, 13:14:12


--------------------

Go to the top of the page
+Quote Post
pijanyadmin
post 22.01.2008, 13:21:44
Post #11





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 24.10.2007

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


  1. <?php
  2.  
  3. require_once("connect.php");
  4.  
  5.  
  6.  
  7. function logon() {
  8.  
  9.  if(isset($_POST['user']) && isset($_POST['pass'])) {
  10. $login = htmlspecialchars($_POST['user']);
  11. $haslo = md5(htmlspecialchars($_POST['pass']));
  12. $q = mysql_query("SELECT * FROM userdata WHERE haslo = '$haslo' AND login = '$login' LIMIT 1");
  13.  
  14.  if(!mysql_num_rows($q)) {
  15.  
  16. echo 'Niepoprawne Login lub Hasło'; exit;
  17.  
  18. return 0;
  19. }
  20.  
  21. $_SESSION['logon'] = 1;
  22. $_SESSION['login'] = $_POST['user'];
  23. $_SESSION['password'] = $_POST['pass'];
  24. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  25. $_SESSION['idu'] = md5(rand() + rand());
  26.  
  27. return 1;
  28. }
  29.  
  30.  
  31.  
  32.  if(!isset($_SESSION['logon']) || !isset($_SESSION['login']) || !isset($_SESSION['password']) || !isset($_SESSION['ip']) || !isset($_SESSION['idu'])) {
  33. // echo "3";
  34. return 0;
  35. }
  36.  
  37. $login = $_SESSION['login'];
  38. $password = $_SESSION['password'];
  39. $idu = $_SESSION['idu'];
  40. $ip = $_SESSION['ip'];
  41.  
  42. if($_SERVER['REMOTE_ADDR'] != $ip) {
  43. // echo "4";
  44. return 0;
  45. }
  46.  
  47.  
  48.  
  49.  if($_GET['idu'] != $_SESSION['idu']) {
  50.  
  51. return 0;
  52. } 
  53. else {
  54. return 1;
  55. }
  56.  
  57. }
  58.  
  59.  
  60.  
  61. function movetosite($strona) {
  62. echo "
  63. <script LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\"
  64. window.location.replace(\"$strona\"); 
  65. </SCRIPT>";
  66. }
  67.  
  68. function resetsession() {
  69. $_SESSION['login'] = '';
  70. $_SESSION['password'] = '';
  71. $_SESSION['logon'] = '';
  72.  unset($_SESSION['login']);
  73.  unset($_SESSION['password']);
  74.  unset($_SESSION['logon']);
  75.  unset($_SESSION);
  76. }
  77.  
  78. ?>


każda inna forma linku powoduje wylogowanie [zgubienie sesji]
Go to the top of the page
+Quote Post
potreb
post 22.01.2008, 13:38:12
Post #12





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


A session_start(); masz dodane na początku pliku index.php

Czytałeś mojego ostatniego posta, skoro używasz IDUS to gdzie masz?

define("IDUS", "".$_SESSION['idu']."");

Ten post edytował potreb 22.01.2008, 13:40:32


--------------------

Go to the top of the page
+Quote Post
pijanyadmin
post 22.01.2008, 13:42:47
Post #13





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 24.10.2007

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


tak mam w index.php

Kod
session_start();
define("IDUS", "idu=".$_SESSION['idu']);
Go to the top of the page
+Quote Post
potreb
post 22.01.2008, 13:58:28
Post #14





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Sesje zapamiętuje, ale ciężko coś zrozumieć z tego kodu i co chcesz osiągnąć przez to?


--------------------

Go to the top of the page
+Quote Post
pijanyadmin
post 22.01.2008, 14:00:31
Post #15





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 24.10.2007

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


napisałem już to wcześniej, chciałbym po zincludowaniu pliku ustawienia.php który jest wczytywany w index.php zrobić tak aby w ustawienia.php było można includować inne pliki tak jak ma to miejsce w index.php

Ten post edytował pijanyadmin 22.01.2008, 14:00:58
Go to the top of the page
+Quote Post
potreb
post 22.01.2008, 14:24:00
Post #16





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Sprawdź czy poprawnie przekazujesz zmienne. Np ręcznie wpisując do adresu &ust=ogolne lub inaczej. Możesz też zastosować switch w pliku ustawienia.


--------------------

Go to the top of the page
+Quote Post
pijanyadmin
post 22.01.2008, 14:31:27
Post #17





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 24.10.2007

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


tylko że zabardzo nie wiem jak to mam zrobić:

  1. <?php
  2. switch($_GET['ust']) //id1 czy ust? biorac pod uwage ze switch bedziew ustawienia.php
  3. {
  4. case 'dodaj': //
  5. echo 'Dodawanie danych';
  6. break;
  7. case 'edytuj':
  8. echo 'Edycja danych';
  9. break;
  10. default:
  11. echo 'Wyświetlenie danych';  
  12. }
  13. ?>
Go to the top of the page
+Quote Post
potreb
post 22.01.2008, 14:49:07
Post #18





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Teraz to sobie wywołasz adres tak:
<a href='index.php?ust=dodaj&amp;<?php echo IDUS; ?>'>Dodaj jakiś rekord</a>


--------------------

Go to the top of the page
+Quote Post
pijanyadmin
post 22.01.2008, 15:32:44
Post #19





Grupa: Zarejestrowani
Postów: 128
Pomógł: 1
Dołączył: 24.10.2007

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


heh bajer polega na tym iż nic się nie zmienilo... jest tak samo jak w przypadku if...

ok, zrobiłem wszystko w osobnym pliku bez sesji i działa bez problemu, ale takie rozwiązanie nie jest mi potrzebne:

index.php:

  1. <a href='index.php?id1=ustawienia'>Ustawienia</a>
  2. <div id="content">
  3. <?php
  4.  
  5. if($_GET["id1"] == "start") { include("start.php");}
  6. else if($_GET["id1"] == "ustawienia") { include("ustawienia.php");}
  7. else if(!isset($_GET["id1"])) { include("start.php");}
  8. else { include("404.php");}
  9. ?>
  10. </div>


ustawienia.php

  1. <div class="xzxc"><a href='index.php?ust=dodaj'>Dodaj jakiś rekord</a> <a href='index.php?ust=edytuj'>edytuj</a>| gry | ulubione strony</div>
  2.  
  3. <div class="costamdiv">
  4. <?php
  5.  
  6. switch($_GET['ust']) //id1 czy ust? biorac pod uwage ze switch bedziew ustawienia.php
  7. {
  8. case 'dodaj':
  9. echo 'Dodawanie danych';
  10. break;
  11. case 'edytuj':
  12. echo 'Edycja danych';
  13. break;
  14. default:
  15. echo 'Wyświetlenie danych';  
  16. }
  17. ?>
  18.  
  19.  
  20. </div>


i tutaj działa wszytko bez problemu tak jak bym chciał... ale jeśli upchne te pliki w sesji to... :x problem jest prawdopodobnbie z linkiem:

Kod
<a href='panel.php?ust=dodaj&amp;<?php echo IDUS; ?>'>Dodaj jakiś rekord</a>


wtedy zamiast wgrać się w pliku ustawienia.php "dodaj", strona zostaje przekierowana do panel.php i wczytana tamtejsza "startowa" ;/

Ten post edytował pijanyadmin 22.01.2008, 15:35:28
Go to the top of the page
+Quote Post
kresh
post 22.01.2008, 16:03:47
Post #20





Grupa: Zarejestrowani
Postów: 99
Pomógł: 2
Dołączył: 8.11.2005
Skąd: Kraków

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


Sprawdź sobie wartości zmiennych przed tymi wszystkimi warunkami:
  1. <?php
  2. echo "<pre>";
  3. print_r( $_GET );
  4. echo "</pre>";
  5. ?>


najszybszy sposób żeby zlokalizować gdzie coś jest nie tak.

BTW: a co masz w panel.php?

Ten post edytował kresh 22.01.2008, 16:05:12


--------------------
Programuj pod kątem interfejsu, nie implementacji
Gang of Four

michalbarys.pl
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 12:39