Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Wysyłanie tablicy metodą GET.
Ashariel
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 11.12.2007

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


Witam.
Czy jest możliwość wysyłania tablica poprzez motedę GET ?

Po wpisaniu następującego kodu :
index.php
Kod
if ($tablica1[2] == "rosliny")
     {
         header("Location: index2.php?tablica1=$tablica1");
     }


index2.php

Kod
$tablica = $_GET["tablica1"];
echo " var_dump('$tablica')";


var_dump pokazuje "Array" zamiast wyświetlić całą zawartość tablicy dry.gif

Da się coś z tym zrobić; czy wysyłanie tablic przez metodę GET jest nie możliwe ?

Ten post edytował Ashariel 12.12.2007, 21:59:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
strife
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Tak jest możliwe,

np. ?tablica[a]=wartosc&tablica[b]=wartosc2

da nam:

Kod
array (
  'tablica' =>
  array (
    'a' => 'wartosc',
    'b' => 'wartosc2',
  ),
)


Więc jeśli masz sobie jakąś tablicę to musisz ja wpisać w $_GET w sposób, który wyżej Ci zaprezentowałem.

PS. Prosze zmień nazwę tematu na bardziej opisującą Twój problem smile.gif


--------------------
Go to the top of the page
+Quote Post
Ashariel
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 11.12.2007

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


Ok dzięki za odpowiedź.
Niestety problem jest gdy w tablicy jest dużo elementów.
Jak na to zaradzić ?
Go to the top of the page
+Quote Post
strife
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(Ashariel @ 12.12.2007, 22:03:28 ) *
Ok dzięki za odpowiedź.
Niestety problem jest gdy w tablicy jest dużo elementów.
Jak na to zaradzić ?


A co dokładnie chcesz uzyskać? Zawsze dane możesz przesyłać POST'em, bądź w sesjach czy ciastkach. Nie mniej jednak najlepiej by było jakbyś opisał dokładniej problem, może uda nam się to rozwiązać inaczej niż Ty wymyśliłeś.

PS. Jeśli mimo wszystko chcesz wysłać tablicę GET'em to podaj przykład takiej tablicy, może coś poradzimy.

Pozdrawiam serdecznie.


--------------------
Go to the top of the page
+Quote Post
Ashariel
post
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 11.12.2007

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


Może zapytam inaczej:
Mam tablicę z dużą ilością elementów w pliku index.php i chciałbym jej zawartość wysłać do wielu plików, a jeśli to nie możliwe to tylko do pliku index2.php.

Czego najlepiej użyć ?
$_GET a może sesji ?
Widzę że napisałeś że można to wysłać metodą POST.
Jestem początkujący jeśli chodzi o programowanie i myślałem że metody POST używa się tylko przy formularzach ?

Proszę o opisanie jakiejś możliwości.

Ten post edytował Ashariel 12.12.2007, 22:17:08
Go to the top of the page
+Quote Post
strife
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Nie napisałeś czy dotyczy to formularzy czy też nie, metody GET i POST można używać przy formularzach, jest dowolność, jednak różnica polega na ilości wysyłanych danych i metodzie (GET pasek przeglądarki) [więcej google wikipedia], Zbierzmy to do kupy, masz sobie w pliku index.php jakąś tablicę:

  1. <?php
  2. $array = array('jeden' => 'bla bla', 'dwa' => 'sia lala'); // itp.
  3. ?>


I teraz zawartość tej tablicy chcesz wysłać do pliku index2.php. Żeby tego dokonać musisz stwierdzić czy, dane w tablicy są stałe czy będą często zmieniane, jeśli są to jakieś stałe dane to możesz stworzyć kolejny plik, który będziesz include" title="Zobacz w manualu PHP" target="_manual'ował do plików, do których będziesz chciał, aby została przekazana.

Natomiast, w przypadku gdy tablica jest dynamiczna (np. dane pobierane z bazy, id użytkownika, itp), możesz je trzymać w sesji, wtedy w każdym pliku będziesz widział te dane (poczytaj o sesjach w manualu i na forum). Pytałem Cię o dokładne opisanie problemu, po to aby stwierdzić, do czego Ci to jest potrzebne, nie wiem rejestracja/logowanie, koszyk itp. Jeśli będziemy to wiedzieć, to łatwiej Cię nakierujemy.

Pozdrawiam.


--------------------
Go to the top of the page
+Quote Post
Ashariel
post
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 11.12.2007

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


Tablica będzie miała charakter dynamiczny.
Wiele elementów tej tablicy będzie zmiennymi.

Ta tablica ma mi służyć jako logowanie użytkownika.
Muszę jeszcze wiele poczytać o sesjach bo niestety nie mam o nich bladego pojęcia.

PS. A czy to zadziała :
ZAPIS :
Kod
$array = $_POST[array]


To chyba było by zbyt piękne.
Pozdrawiam

Ten post edytował Ashariel 12.12.2007, 22:35:54
Go to the top of the page
+Quote Post
1010
post
Post #8





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


Kod
$array=$_POST[array]

zadziała, pod warunkiem że $_POST[array] to nie tablica winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
pest
post
Post #9





Grupa: Zarejestrowani
Postów: 78
Pomógł: 15
Dołączył: 10.12.2007
Skąd: Lublin

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


Najlepszym rozwiązaniem jest sesja.

Jeśli chodzi o użycie sesji to podstawa jest prosta.
1. Na początku każdego przetwarzanego skryptu piszesz
session_start();

2. W skrypcie w którym chcesz przypisać wartości piszesz
$_SESSION['array'] = $twoja_tablica;

W pozostałych skryptach się możesz odwoływać do tablicy $_SESSION, czyli również do elementu $_SESSION['array'] np.

$twoja_tablica = $_SESSION['array'];


Ale to jest napisane na pierwszej stronie tutoriala do sesji winksmiley.jpg
Go to the top of the page
+Quote Post
Ashariel
post
Post #10





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 11.12.2007

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


Wielkie dzięki rolleyes.gif
Pozdrawiam
Go to the top of the page
+Quote Post
1010
post
Post #11





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

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


Sesje to najprawdopodobniej najlepsze rozwiązanie, kodu mało, czytelny, wszędzie masz dostęp do tych danych, nie musisz się o to martwić przy linkach i wszystko ładnie działa smile.gif
Pozdro


--------------------
Go to the top of the page
+Quote Post
Ashariel
post
Post #12





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 11.12.2007

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


Dzisiaj sprawdziłem.
Całej tablicy w sesji mi nie chce wysłać tylko elementy dry.gif
Sprawdzałem kilka razy i nie mogę się doszukać błędu.
Go to the top of the page
+Quote Post
pest
post
Post #13





Grupa: Zarejestrowani
Postów: 78
Pomógł: 15
Dołączył: 10.12.2007
Skąd: Lublin

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


Wklej tu to pomyślimy.


Pozatym jak mowa o sesji to ona cala nie jest wysylana do przegladarki, tylko jej identyfikator. Wszystkie dane sa przechowywane na serwerze, ale w tym przypadku to chyba i tak nie ma znaczenia.
Go to the top of the page
+Quote Post
Ashariel
post
Post #14





Grupa: Zarejestrowani
Postów: 15
Pomógł: 1
Dołączył: 11.12.2007

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


O przepraszam za wprowadzenie w błąd.
Wszystko działa. Wtedy nie działało, ponieważ była nieprawidłowa nazwa stałej.

Jest już ok.
Pozdrawiam
Go to the top of the page
+Quote Post
-Maciej Sprada-
post
Post #15





Goście







Witam, wlasnie rozwiazalem ten problem.. mam nadzieje ze to sie komus przyda na przyszlosc bo stracilem mase zdrowia przy tym
tam jest takie cos jak stripslashes na niektorych serwerach moze byc to wylaczone wiec poprosu nie uzwyac tej funkcji, ale ogolnie powinno dzialac czarodziej.gif guitar.gif party.gif


CODE

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>






<body>
<? $dataArray=array(0=>array('costam'=>'jest','costam2'=>'jest2'),1=>array('costam'=>'dwa1','costam2'=>'dwa2'));


$costam2=serialize($dataArray);

echo $costam2;

echo '<br>'.$_GET['wynik'];

$wynik3=unserialize(stripslashes($_GET['wynik']));

echo '<br>-->'.$wynik3[0]['costam'];

?>

<br /><br /><br /><br />



<a href='index.php?wynik=<?php echo $costam2 ?>'>dadsdadadsa</a>
</body>
</html>
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 Aktualny czas: 20.08.2025 - 06:34