Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekazywanie zmiennych?!?
Forum PHP.pl > Forum > Przedszkole
Bartech
Witam, proszę o pomoc, w jaki sposób przekazywać zmienne w inny sposób niż poprzez pasek adresowy (index.php?link=modules/news/news.php), chciałbym aby można było przekazywać zmienne za pomocą kliknięcia na link:

  1. <?php
  2. <a href=&#092;"index.php?liczba=1&nazwa=test&link=modules/news/news.php&id=1234\">link</a>
  3.  
  4. ?>

Ale zależy mi aby po kliknięciu na link na pasku adresu nie były widoczne zminne i ich wartości które przekazałem za pomocą tego adresu.

Reasumując:
Chcę klikając na link:
<a href="index.php">link</a>

mieć w nastepnym dokumencie dostęp do zmiennych:
$liczka = 1;
$nazwa = test;
$link = modules/news/news.php
$id=1234

jak zdefiniować te zmienne aby nie trzebabyło ich przenosić poprzez link tylko np sesje?
hwao
$_COOKIE
$_SESSION
$_POST ;-)

  1. <?php ob_start(); // jak sie nie przemysli aplikacji to potrzebne
  2. $_SESSION['zmiena'] = 'lalal';
  3. $_SESSION['xul'] = 'xml';
  4.  
  5. set_cookie( 'klucz', 'value', time()+60 ); // bedzie 60 sekunda po zamknieciu przegladarki aktywne
  6.  
  7. //odbieranie cookiego
  8. $_COOKIE['klucz']; // wartosc: value
  9.  
  10. ?>


Mozna tez postem ale to sie nie oblaca ;-) (w tym przypadku)
Bartech
A co w przypadku gdy użytkownik ma wyłączone Cookie's wówczas nie uda się przekazać zmiennej. Pozatym jeżeli na ztronie mam nałużmy 50 linków i każdy z nich ma prowadzić do tej samej podstrony ale przelazywać inny np. $id który jest potrzebny do bazy MySQL to jak generować takie pary linków i zmiennych.

A jak z tym POSTEM?
pc5
Cytat(Bartech @ 2005-03-11 15:44:53)
A co w przypadku gdy użytkownik ma wyłączone Cookie's wówczas nie uda się przekazać zmiennej. Pozatym jeżeli na ztronie mam nałużmy 50 linków i każdy z nich ma prowadzić do  tej samej podstrony ale przelazywać inny np. $id który jest potrzebny do bazy MySQL to jak generować takie pary linków i zmiennych.

Do każdego linka wystarczy dodać zmienne które chces zprzekazać. Jak się to robi? Ano tak że piszesz sobie np.

  1. <?php
  2. echo&#092;" <a href=strona_docelowa.php?zmienna_nr1=wartosc&zmienna_nr2=wartosc>To jest odnosnik</a>\";
  3. ?>



strona_docelowa.php


  1. <?php
  2. print(&#092;"Zmienne z poprzedniej strony : \".$_GET['zmienna_nr1'].\",\". $_GET['zmienna_nr2']);
  3. ?>


Taka metoda działa dobrze z zmiennymi, które są liczbami całkowitymi. Proponuję się zapoznać z funkcją urlencode() i podobnymi.
orson
witam ...

@pc5: Bartech'owi wlasnie nie o to chodzilo ... chce je przekazywac inaczej niz przez get ...

@Bartech: jest rozwiazanie ... zabawa z js ... robisz forma na stronie i ukryte pola, np: id, action itp ... kazdy link zmieniasz na <a href="#" onclick="ustaw(wartosc)";>link</a> i funkcjia w js ktora ustawia w formie wartosc i go submituje ... potem na 2 stronie masz wszystko ladnie w POST ...

pozdrawiam
pc5
Cytat(orson @ 2005-03-12 20:37:17)
witam ...

@pc5: Bartech'owi wlasnie nie o to chodzilo ... chce je przekazywac inaczej niz przez get ...


Tak to jest jak się siedzi którąś noc przy kompie....
BTW ciekawa metoda z ukrytymi polami. Ktoś ma jakieś inne pomysły? Sam jestem ciekaw jak można inaczej.
Bartech
Miła konwersacja ale widzę że odpowiedzi brak. roziązanie z ukrytymi polami jest wykonalne w php również ale troszkę uciążliwe. Trzebaby tworzyć formularz dla każdego linka.

Wymyślilem w między czasie coś takiego:

Link wygląda tak:
  1. <?
  2. echo '<a href=index.php?run=2>Link>';
  3. ?>


Wówczas w pliku index.php są switche:
  1. <?php
  2.  
  3. switch($run)
  4. {
  5. case '1':
  6. $zminnna = 'test';
  7. $inna = 'test 2';
  8. break;
  9.  
  10. case '2':
  11. include(&#092;"modules/news/news.php\");
  12. break;
  13. }
  14.  
  15. ?>


Rozwiązanie to ma jednak zastosowani jedynie w jednym pliku i tylko poprzez includowanie. Ale dzięki temu nie mam ryzyka pokazywanie linka do incudeowanego pliku na linijce adresowej. Narazie spełnia to moje oczekiwania. a przy tym taki rozwiązanie wymusza na programiści maksymalną enkapsulację kodu, np poprzez tworzenie funkcji. W prszyszłości zapraszam na moją stronę www.bartech.com.pl bo jak skończę tego typu zadanie to napiszę pare słów w formie artykułu..
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.