Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z include
brekmar
post 16.05.2007, 19:37:45
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 19.01.2005

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


Witam, mam takie 2 skrypty:
  1. <?php
  2. $a='1';
  3. if ($kod=='1') {
  4. include ("spr1.php?b=$a");
  5. }
  6. else {
  7. echo'Nie wlasciwy kod';
  8. }
  9.  
  10. ?>


  1. <?php
  2.  
  3. print("$b");
  4.  
  5. ?>


I wyskakuje taki blad:
Cytat
Warning: main(spr1.php?b=1): failed to open stream: No such file or directory in /home/www/pfi.awardspace.com/spr.php on line 12

Warning: main(): Failed opening 'spr1.php?b=1' for inclusion (include_path='.:/usr/local/php4/share/pear') in /home/www/pfi.awardspace.com/spr.php on line 12

Co jest nie tak, czy to wina serwera, prosze o pomoc?
Go to the top of the page
+Quote Post
webdice
post 16.05.2007, 19:55:42
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




A nie przyszło Ci do głowy że probujesz includować plik o nazwie spr1 i rozszerzeniu php?b=$a?
Go to the top of the page
+Quote Post
kubarek
post 16.05.2007, 20:01:57
Post #3





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 19.02.2007

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


oczywiście, że nie, bo zainkluduje się plik o nazwie spr1.php?b=1, który nie istnieje ( jak wynika z komunikatu )


--------------------
// ...
Co nieco o mnie ;)
Go to the top of the page
+Quote Post
brekmar
post 16.05.2007, 20:32:38
Post #4





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 19.01.2005

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


to w jaki sposob to zrobic, czy jest to niemozliwe zeby przeslac metoda get?
Go to the top of the page
+Quote Post
JaRoPHP
post 16.05.2007, 20:49:26
Post #5





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


Czy masz plik spr1.php?b=1 (o takiej nazwie) w katalogu? Pewnie nie...
@brekmar w ogóle nie napisałeś, co chcesz zrobić (domyślam się, że dołączyć plik; ale jak chcesz podac jego nazwę?? Opisz problem (komunikaty błędów już znamy smile.gif )).


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
kubarek
post 16.05.2007, 20:58:45
Post #6





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 19.02.2007

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


Cytat
to w jaki sposob to zrobic
po prostu includuj plik spr1.php
  1. <?php
  2. include 'spr1.php';
  3. ?>
, a w samym pliku spr1.php normalnie pobieraj dane z $_GET i $_POST, np.:
  1. <?php
  2. echo $_GET['jakas_nazwa'];
  3. ?>


--------------------
// ...
Co nieco o mnie ;)
Go to the top of the page
+Quote Post
brekmar
post 16.05.2007, 21:05:31
Post #7





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 19.01.2005

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


Co mam pobierac, przeciez w pierwszym skrypcie spr.php sa zmienne ktore chce przeslac, musi mi sie otworzyc strona spr1.php?b=1, inaczej te skrypty sensu nie maja
Go to the top of the page
+Quote Post
Kicok
post 17.05.2007, 12:32:49
Post #8





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Jeśli chcesz przekierować użytkownika na inny adres, to użyj funkcji header" title="Zobacz w manualu PHP" target="_manual
  1. <?php
  2.  
  3. header( 'Location: <a href="http://domena.pl/spr.php?b=1'" target="_blank">http://domena.pl/spr.php?b=1'</a> );
  4. exit();
  5.  
  6. ?>



Ale najlepiej będzie, jak opiszesz nam tu słownie co chcesz osiągnąć, bo coś mi mówi, że masz pewien pomysł, ale trochę źle kombinujesz z jego rozwiązaniem.


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
jaskooo
post 17.05.2007, 17:15:58
Post #9





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 24.04.2004
Skąd: Warszawa

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


A co to jest ten drugi kod?

  1. <?php print("$b"); ?>


gdzie zaimplementowales zmienna &b?
Ja jej nigdzie nie widze, a poza tym to po co to?

Rozumiem, ze chcesz sprawdzic co jest w zmiennej $a?

to sprobuj:

  1. <?php echo $a;?>


--------------------
to tylko ja jaskooo :)
Go to the top of the page
+Quote Post
Darti
post 17.05.2007, 19:10:45
Post #10





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


plik pierwszy:
  1. <?php
  2. $a='1';
  3. if ($kod=='1') {
  4. include ("spr1.php");
  5. }
  6. else {
  7. echo'Nie wlasciwy kod';
  8. }
  9. ?>

Plik drugi(spr1.php):
  1. <?php
  2. $b = $a;
  3. print("$b");
  4. ?>


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
brekmar
post 17.05.2007, 20:25:31
Post #11





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 19.01.2005

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


Zrobilem to juz Javascriptem,
  1. <?php
  2. $a='1';
  3. if ($kod=='1') {
  4. print('<script language="JavaScript1.2">
  5. <!--
  6. window.location.href="spr1.php?b=1";
  7. //-->
  8. </script>');
  9. }
  10. else {
  11. echo'Nie wlasciwy kod';
  12. }
  13.  
  14. ?>

i teraz drugi plik do ktorego przysalam zmienna czyli spr1.php (pisaliscie ze nie rozumiecie co to jest ?b=1 i dlaczego echo'$b', troszke mnie to dziwi, przeciez to jest najprostrze w swiecie przekazywanie informacji metoda GET, to co znajduje sie po ? czyli b=1 to w 2 pliku otrzymuje jako $b='1', na tym cala filozofia, moze ja to zle wytlumaczylem, bo nie wierze ze tego sposobu przesylania danych nie znacie).
  1. <?php
  2.  
  3. print("$b");
  4.  
  5. ?>


A chodzilo mi o to zeby przeslac te zmienne przy pomocy include, jednak sami slusznie zauwazyliscie ze on nie otworzy mi pliku spr1.php ze zmiennymi tylko szuka pliku o rozszerzeniu php?b=1, juz to zrobilem javascriptem i dziala tak jak chce, include nie potrzebne. Zeby dokladnie wyjasnic na czym to polegac ma i juz rozwiac wszystkie watpliwosci podaje adres tutaj, a jest mi to potrzebne do logowania gdyz caly skrypt logujacy wraz ze tak powiem kontem uzytkownika zajmuje ho ho kilobajtow z czego polowa to sprawdzanioe poprawnosci, wyswietlanie formularzy do ponownej proby itd itp, takie odeslanie eliminuje problem wielkosci ;]
Go to the top of the page
+Quote Post
Kicok
post 18.05.2007, 11:44:55
Post #12





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Po pierwsze, jeśli używasz register_globals = On, to się nie dziw, że nie wiemy co to jest $a, $b i $kod i skąd się te zmienne wzięły ;]


Po drugie zmienne z tablicy $_GET są dostępne w całym skrypcie, także w tych includowanych plikach, więc możesz po prostu zrobić tak:

plik1.php
  1. <?php
  2.  
  3. echo( 'Plik: <b>plik1.php</b><br />$_GET['b']: ' . $_GET['b'] . '<br />' );
  4.  
  5. include( 'plik2.php' );
  6.  
  7. ?>

plik2.php
  1. <?php
  2.  
  3. echo( 'Plik: <b>plik2.php</b><br />$_GET['b']: ' . $_GET['b'] . '<br />' );
  4.  
  5. ?>


Kliknięcie na link http://serv.com/plik1.php?b=cokolwiek spowoduje wyświetlenie:
Cytat
Plik: plik1.php
$_GET['b']: cokolwiek
Plik: plik2.php
$_GET['b']: cokolwiek


Jeśli jesteś przyzwyczajony do register_globals, to wszystkie $_GET['b'] zamień na $b


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post

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: 29.06.2025 - 07:01