Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: W jaki sposób mogę przesłać między stronami dane typu resource (zasób)
Forum PHP.pl > Forum > PHP
fudddi
Witam, jestem początkującym programistą, mam następujące pytanie do osób bardziej zaawansowanych ode mnie:

W jaki sposób mogę przekazać z jednej strony do kolejnej dane typu resource, dla podpowiedzi powiem że takie dane generuje mi komenda: ssh2_connect.

Miałem zamiar napisać skrypt łączący sie do shella podtrzymujący sesje a nie taki który wysyłając kolejną komendę do serwera łączy się do niego ponownie dla zilustrowania tego o czym mówię dołączam mój skrypt.

  1. <?php
  2. if (isset($_POST['komenda'])){
  3. $connect = ssh2_connect("193.218.153.116", 22) or die('Blad: nie mozna ustanowic polaczenia\n');
  4. ssh2_auth_password($connect, "login", "haslo") or die('Blad: nie mozna sie zalogowac\n');
  5. $shell = ssh2_shell($connect, 'vt102', null, 80, 70, SSH2_TERM_UNIT_CHARS) or die('Blad: stabilnosci shella\n');
  6. stream_set_blocking($shell, true);
  7. fwrite($shell,$_POST['komenda']."\n");
  8.    $data = '';
  9.    sleep(1);
  10.    $buf = fread($shell,4096);
  11.    $data .= $buf;
  12. fclose($shell) or die('Blad: nie mozna zamknac polaczenia\n'); //zamyka strumień
  13. $x=strpos($data, 'skrypt');
  14. $data=substr($data, $x);
  15. $_POST['dane'] .= $data;
  16. }else{
  17. $_POST['dane'] = 'oczekiwanie na zapytanie ...';
  18. }
  19. ?>
  20. <center>
  21. <table border=40><tr><td>
  22. <textarea rows="20" cols="100" readonly="readonly">
  23. <?php echo $_POST['dane'] ?>
  24. </textarea></tr></td>
  25. <tr><td><form action="" method="POST">
  26. <BR>Wpisz zapytanie:
  27. <input name="komenda" size="78" type="text">
  28. <input name="dane" type="hidden" value="<?echo $_POST['dane']."\n";?>">
  29. <input type="submit" value="Wyslij">
  30. </form></td></tr>
  31. </table>
  32. </center>


P.S.
Nie interesują mnie skrypty napisane w JAVA i JAVA Script ponieważ już mam takowe, jeśli chcesz mi napisać: "Skoro już masz takie to po co Ci skrypt w innym języku programowania??" - to proszę nie udzielaj sie w tym temacie smile.gif

Zmienną którą chce przekazać na inna stronę nazywa się: $connect, próbowałem już wszystkiego ale moje próby zakończyły się fiaskiem ponieważ mogłem przekazywać tylko i wyłącznie dane typu string sad.gif
deirathe
Wiesz, bo dane typu resource nie można przesłać. Bynajmniej ja czegoś takiego nie widziałem. Powiedz co chcesz uzyskać, to pomyślimy.
fudddi
1. Chcę tak przebudować ten skrypt aby na jednej sesji przesyłał komendy jakie ja mu podaje.
2. Chce na bieżąco widzieć co wypisuje mi konsola hlds (gry), odpalona w aplikacji screen (Linuxowy programik).
Dziękuję za szybkie zainteresowanie się moim postem smile.gif
Zyx
Zasoby są automatycznie zamykane przez PHP wraz ze zniknięciem ostatniej wskazującej na nie zmiennej. Jedyny wyjątek to trwałe połączenia z bazą danych, a i one nie służą wcale do "podtrzymywania" sesji, tylko zwiększenia wydajności.
fudddi
Czyli jesteś pewien że nie ma takiej możliwości??
Czy po prostu nigdy się z takim czymś nie spotkałeś .. bo to dwie różne rzeczy?!

Jeśli odpowiesz że nie ma takiej możliwości to dam sobie spokój smile.gif
Ale jeśli nie jesteś pewien to napisz mi o tym biggrin.gif
Zyx
Nie kurde, przyśniło mi się w nocy. Tłumacz to sobie, jak chcesz, ale nikomu tutaj nie płacą za udzielanie pomocy. Nie wiem, jak inni, ja osobiście nie mam w zwyczaju pisać tylko po to, żeby coś napisać. A jak nie wierzysz, to polecam zajrzenie do dokumentacji, choćby po to, żeby weryfikować odpowiedzi...

http://docs.php.net/manual/en/language.types.resource.php
Vengeance
Zrób skrypt w ciągłej pętli, while(true) czy inne cudo i komunikuj się z nim za pomocą socketów. Ale ogólnie nie używaj PHP, bo to chyba bez sensu.
bim2
Wrzuć to w screen i przesyłaj co odświezenie stronki screen id winksmiley.jpg Wtedy podejrzysz.

PS. Nie mój, pomysł. Kilka tematów obok coś gdzieś ktoś pisał ;]
fudddi
Dzięki za wszystkie odpowiedzi:
1. Zyx - nie obrażaj się chciałem tylko się upewnić?!
2. Vengeance - z tą pętlą może być problem ale zobaczymy.
3. bim2 - pomysł dobry, jednak zastrzegłem sobie że nie chce logować się co odświeżenie strony sad.gif

No nic dzięki za pomoc, jeśli skończę skrypt to oczywiście opublikuje go gotowego w ostatnim poscie.
szagi3891
zdaje się że dzięki modułowi "shm" można przechowywać zmienne w pamięci współdzielonej.

http://pl.php.net/shm_get_var

Nie wiem czy przypadkiem za pomocą tego nie można by przechowywać zasobu w pamięci tak aby potem następny skrypt mógł z takiego gotowego zasobu skorzystać. Spróbuję obczaić jak to działa, jeśli mi się uda coś znaleźć to napiszę w tym temacie, jeśli nie to napiszę że mi się nie udało biggrin.gif
Jednym słowem zabieram się za eksperymentowanie smile.gif
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.