Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z include
Forum PHP.pl > Forum > PHP
brekmar
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?
webdice
A nie przyszło Ci do głowy że probujesz includować plik o nazwie spr1 i rozszerzeniu php?b=$a?
kubarek
oczywiście, że nie, bo zainkluduje się plik o nazwie spr1.php?b=1, który nie istnieje ( jak wynika z komunikatu )
brekmar
to w jaki sposob to zrobic, czy jest to niemozliwe zeby przeslac metoda get?
JaRoPHP
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 )).
kubarek
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. ?>
brekmar
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
Kicok
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.
jaskooo
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;?>
Darti
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. ?>
brekmar
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 ;]
Kicok
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.