Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak wysłać zmienną $_POST lub $_GET bez użycia formularza?
Forum PHP.pl > Forum > Przedszkole
koodlaty
Chcę wysłać zmienną typu POST, lub GET ale nie używać do tego formularza.

Zmienne mają trafić do tego samego skryptu. Udało mi się przy użyciu header() wysłać zmienną GET na inna stronę - jednak nie można zrobić przekierowania na "samego siebie".

Jest jakiś sposób?
kszychu
A ja dodam, że zmienne $_GET prfzesyła się w urlu, więc składnia wygląda mniej więcej tak: http://localhost/skrypt.php?zmienna1=warto...ienna2=wartosc2
skowron-line
@kszychu zapomnial dodac ze zmienne w adresie łaczy sie apersandem (&) czyli
blablabla.php?zmienna=wartosc&zmienna1=wartosc1
kszychu
Cytat(skowron-line @ 14.09.2006, 09:38:45 ) *
@kszychu zapomnial dodac ze zmienne w adresie łaczy sie apersandem (&) czyli
blablabla.php?zmienna=wartosc&zmienna1=wartosc1

kszychu nie zapomina o takich rzeczach. Najedź na link, który podałem i przyjrzyj się uważnie, a następnie w ramach przeprosin wyślij mi kratę piwa, adres dostaniesz na PW.
nospor
Cytat
kszychu nie zapomina o takich rzeczach

Za to kszychu zapomina o upominaniu uzytkownikow, jak np.
proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole:
Temat: Tematyka i zasady panujace na forum Przedszkole


W ramach przeprosin kszychu przesle mi pol kraty piwa (nie bede pazerny), ktorą otrzyma od skowron-line.
biggrin.gif
(mój adres kszychu zna... nie raz mi krate przesylal.... winksmiley.jpg)

@koodlaty ale co chcesz osiągnac dokladnie? W jakim celu chcesz przekierowywac na samego siebie z danymi? Moze cos innego ci podpowiemy smile.gif
koodlaty
Cytat(nospor @ 14.09.2006, 09:56:47 ) *
@koodlaty ale co chcesz osiągnac dokladnie? W jakim celu chcesz przekierowywac na samego siebie z danymi? Moze cos innego ci podpowiemy smile.gif


Już mówie choć problem jest nieco złożony...

Chcę sprawdzić czy coś zostało zapisane w sesji zanim wywołana zostaje session_start() i smile.gif proszę tu nie ironizować i nie podważać zasadności mojego postępowania smile.gif ! Wyglądać ma to mniej więcej tak:

  1. <?php
  2. if(cos bylo wcześniej zapisane w sesji)
  3. {
  4.  zrob to;
  5. }else
  6. {
  7.  $_SESSION['zmienna'] = 'wartosc';
  8.  zrób tamto;
  9. }
  10. ?>


Odpada użycie session_id() ponieważ interesuje mnie nie fakt otwarcia sesji ale zapisu do niej konkretnych danych.

Najchętniej zrobiłbym to w ten sposób:

  1. <?php
  2. if(isset($_SESSION['zmienna']))
  3. {
  4.  zrob to;
  5. }else
  6. {
  7.  $_SESSION['zmienna'] = 'wartosc';
  8.  zrób tamto;
  9. }
  10. ?>


rozwiązanie to oczywiście odpada – odwołanie do tablicy zmiennych sesyjnych przed wywołaniem session_start() sprawia, że co prawda sesja zostaje otwarta lecz jest bezużyteczna ponieważ zmienne w tablicy $_SESSION stają się nieczytelne.

Wykombinowałem więc, że o fakcie zapisu do sesji mogę się poinformować poprzez POST lub GET – ale jak?

Próbowałem przekierowywać się poprzez header():

  1. <?php
  2. header('Location: http://' . $_SERVER['SERVER_ADDR'] . $_SERVER['SCRIPT_NAME'] . '?byl_zapis_do_sesji=tak');
  3. ?>


fajnie działa tylko pod warunkiem, że nagłówek wysyłany jest na inny adres niż ten, z którego został wywołany.

Pozostają jeszcze zmienne globalne ale dla zasady nie chcę ich używać.

I tu mi się koncepcje skończyły – stąd pytanie...
kszychu
A dlaczego coś takiego odpada?
  1. <?php
  2. if(isset($_SESSION['zmienna']))
  3. {
  4.  zrob to;
  5. }else
  6. {
  7.  $_SESSION['zmienna'] = 'wartosc';
  8.  zrób tamto;
  9. }
  10. ?>
nospor
Cytat
Chcę sprawdzić czy coś zostało zapisane w sesji zanim wywołana zostaje session_start() i proszę tu nie ironizować i nie podważać zasadności mojego postępowania ! Wyglądać ma to mniej więcej tak:

A ja jednak podwaze....
No przeciez ci wczoraj tlumaczylem co i jak. Napisales ze kumasz, a teraz wykeżdzasz z czyms takim.
Czemu sie opierasz, by dac te session_start() przed dobieraniem sie do $_SESSION? Wytlumacz mi to prosze jeszcze raz jak dla glupiego. Wydawalo mi sie ze wczoraj to wyjasnilismy

Temat: otwarcie sesji w konstruktorze
koodlaty
Cytat(kszychu @ 14.09.2006, 11:50:43 ) *
A dlaczego coś takiego odpada?
  1. <?php
  2. if(isset($_SESSION['zmienna']))
  3. {
  4.  zrob to;
  5. }else
  6. {
  7.  $_SESSION['zmienna'] = 'wartosc';
  8.  zrób tamto;
  9. }
  10. ?>

Coś takiego nie odpada.

Ale coś takiego już tak:

  1. <?php
  2. if(isset($_SESSION['zmienna']))
  3. {
  4.  zrob to;
  5. }else
  6. {
  7.  $_SESSION['zmienna'] = 'wartosc';
  8.  zrób tamto;
  9. }
  10. ?>
nospor
Cytat
Ale coś takiego już tak:
No bo ci juz tlumaczylem przeciez:
session_start() ma byc prze dobieraniem sie do sesji a nie po, wiec dlatgo u Ciebie odpada... zrob tak jak podal kszychu a nie kombinujesz jak kon pod gorke

edit po poscie nizej:
ja sie poddaje...
koodlaty
Cytat(nospor @ 14.09.2006, 11:52:24 ) *
No przeciez ci wczoraj tlumaczylem co i jak. Napisales ze kumasz, a teraz wykeżdzasz z czyms takim.
Czemu sie opierasz, by dac te session_start() przed dobieraniem sie do $_SESSION? Wytlumacz mi to prosze jeszcze raz jak dla glupiego. Wydawalo mi sie ze wczoraj to wyjasnilismy

Tak wyjaśniłeś mi, że nie mogę odwołać się do zmiennej w tablicy $_SESSION przed wywołaniem session_start() - tylko tyle. Ustaliliśmy też razem, że session_start() nie musi być na początku skryptu. Musi być przed odwołaniem do tablicy zmiennych sesyjnych i przed wysłaniem nagłówka.
kszychu
Nie ma session_start() - nie możesz odwoływać się do $_SESSION rozumiesz? Najpierw session_start() a później operacje (dodawanie, usuwanie, porównywanie, etc) na tablicy $_SESSION.
Nie ma cin-cin bez cin-cin!
koodlaty
Cytat(nospor @ 14.09.2006, 11:57:56 ) *
No bo ci juz tlumaczylem przeciez:
session_start() ma byc prze dobieraniem sie do sesji a nie po, wiec dlatgo u Ciebie odpada... zrob tak jak podal kszychu a nie kombinujesz jak kon pod gorke


Lubię kombinować a tak jak mówi kszychu to wszyscy robią a mi się już znudziło... smile.gif
Wiem, że cała operacja wydaje się dość dziwna, ma dla mnie jednak konkretne zastosowanie. Nie będę się rozpisywał jakie - jak skończę pokaże. Jak nie da rady obejdę sprawę z drugiej strony.
kszychu
Ja p.....rzepraszam! Człowieku, jak chcesz na nowo koło wynajdować to miłej zabawy.
nospor
Cytat
Lubię kombinować a tak jak mówi kszychu to wszyscy robią a mi się już znudziło...

To jak lubisz kombinowac to pisz w assemblerze....
zamykam te farse.
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.