Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] odczytywanie zmiennych z łańcucha
php_boj
post 9.05.2008, 09:53:43
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.05.2008

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


Witam, mam pytanie, chcę zapamiętywać pewne zmienne, w pewnych sytuacjach więc ładuję je do bazy mysql i teraz gdy robie select na bazie otrzymuję zmienną np:

Kod
$zmienna = $a_row['url'];// (odczyt z bazy)
//zalozmy ze w zmiennej jest

$zmienna = '

$zm1 = 1;
$zm2 = 3;
$zm3 = "a";
$zm4 = "b";
$zm5 = "5"

';


Co zrobić, aby w pliku php powyższe zmienne zaczęły poprawnie funkcjonować?
Jak wpiszę

Kod
echo '<? '.$zmienna.'?>'; to niestety nie działa.


PS. pytanie z innej beczki, czy istnieje taka zmienna systemowa (SERVER ?) w której mógłbym modyfikować pasek adresu strony www w przegladarce?

Czyli np. wchodzę przez formularz na stronę:

Kod
www.jakasstrona.pl?id=1&id2=2&id3=6

odczytuję zmienne GET i POST
modyfikuję w oknie przegladarki pasek url powiedzmy na
Kod
www.jakasstrona.pl?cos=5


Pozdrawiam i dziękuję.

Ten post edytował php_boj 9.05.2008, 10:16:30
Go to the top of the page
+Quote Post
zzeus
post 9.05.2008, 10:01:00
Post #2





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Jeśli chodzi Ci o zmianę samej zawartości paska adresu to .htaccess i mod-rewrite, a jeśli chcesz przekierować użytkownika na stronę o innym adresie to header("Location: adres")

Ten post edytował zzeus 9.05.2008, 10:10:20


--------------------
Go to the top of the page
+Quote Post
batman
post 9.05.2008, 10:13:18
Post #3





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




@php_boj
Proszę dodać bbcode do postu, inaczej zostanie zamknięty.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
php_boj
post 9.05.2008, 10:19:15
Post #4





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.05.2008

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


@zzeus - tak do tej pory stosuję przekierowanie 301, ale myślałem, że może zbedne będzie przeładowanie strony.

@batman - Panie Admine czy juz lepiej?
Go to the top of the page
+Quote Post
cbagov
post 9.05.2008, 10:30:13
Post #5





Grupa: Zarejestrowani
Postów: 181
Pomógł: 18
Dołączył: 19.04.2008

Ostrzeżenie: (10%)
X----


musisz wykonac
eval($zmienna);

ale zeby dzialalo to kod php musi konczyc sie ;
a u ciebie jest

$zm5 = "5" bez ;
Go to the top of the page
+Quote Post
batman
post 9.05.2008, 10:39:58
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(php_boj @ 9.05.2008, 11:19:15 ) *
@batman - Panie Admine czy juz lepiej?

Ale po co od razu się złościć winksmiley.jpg
A co do Twojego problemu:
  1. <?php
  2. $zmienna = '$zm1=1;$zm2=3;$zm3="a";$zm4="b";$zm5="5"';
  3. $zmienna = str_replace('$', '', $zmienna);
  4. $zmienna = str_replace(';', '&', $zmienna);
  5. parse_str($zmienna, $out);
  6. extract($out);
  7. echo $zm1;
  8. ?>

Nie sprawdzałem, czy zadziała, ale nie powinno być większych problemów.

A drugiego pytania nie do końca rozumiem. Co chcesz osiągnąć?


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
php_boj
post 9.05.2008, 11:54:38
Post #7





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.05.2008

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


Oba przykłady działają tak jak chcę smile.gif
dzięki wielkie @cbagov oraz @batman.


Cytat(batman @ 9.05.2008, 11:39:58 ) *
Ale po co od razu się złościć winksmiley.jpg


A kto powiedział, że się złoszczę? źle mnie odbierasz, po prostu wyraziłem skruchę smile.gif
jestem nowy na tym forum, i fakt lepiej się czyta z bbcode.

W drugim pytaniu chodziło mi o skrócenie urla który jest wysyłany metodą GET, a w którym zawarte jest multum zmiennych $_GET, nie wiem, jakoś to zakodować, skompresować a później po przesłaniu rozkodować, zdekompresować i na podstawie tej zawartości wyświetlić.

Lub jak już terzeba to wysłać te wszystkie zmienne z formularza metodą GET, ale, bezpośrednio po przesłaniu w oknie przeglądarki podmienić adres na krótszy. I teraz jeśli jakś user lub bot wszedłby na ten krótszy adres, zostałby on rozkodowany w locie przerobiony na zwykły i wygenerowana zawartość na jego podstawie.

Do tej pory robię to zapisując każdy wygenerowany przez formularz url w bazie mysql, nadaje mu identyfikator, gdy się taki powtórzy to mam już krótki adres z bazy oparty o identyfikator. Problemem może być tylko bardzo wiele rekordów przy tym rozwiązaniu.

Masło maślane... straciłem ochotę na tłumaczenie smile.gif,

może przykład, wchodząc w szukajkę na np. otomoto.pl, mamy do wyboru mnóstwo opcji, które są wysyłane metodą GET (chyba) a po kliknięciu na szukaj mamy króciutki adres..., jak oni to zrobili?

Pozdrawiam

Ten post edytował php_boj 9.05.2008, 12:12:54
Powód edycji: poprawiłem błedy ortograficzne
Go to the top of the page
+Quote Post
mike
post 9.05.2008, 12:00:18
Post #8





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Pamiętaj że poza GET jest jeszcze POST. Jeśli wyślesz wszystko formularzu to dane znajdą się w $_POST a adres URL, który zawiera dane GET (znajdujące się później w $_GET) będzie krótki.
Go to the top of the page
+Quote Post
php_boj
post 9.05.2008, 12:08:27
Post #9





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.05.2008

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


@mike - tak pamietam, tylko jezeli wysyłasz parametry wyszukiwania i chciałbyś je np. posłać komuś przez GG, albo wkleić gdzieś na forum to przy metodzie POST tego nie wykonasz, bo adres zawsze jest taki sam.

Pozdrawiam.
Go to the top of the page
+Quote Post
batman
post 9.05.2008, 12:16:38
Post #10





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Na otomoto wszystko jest przekazane w adresie i nie jest on wcale taki krótki jak podajesz. Poza tym nie ma sensu skracanie na siłę adresu tylko po to, by ładnie wyglądał w przeglądarce. Jako przykład mogę podać mobile.de. Na tej stronie jest jeszcze dłuższy adres.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
php_boj
post 9.05.2008, 12:20:07
Post #11





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 9.05.2008

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


@batman - na otomoto popatrz ile wysyłasz danych z formularza a ile jest widocznych w url-u. zaledwie kilka niezbędnych.

Pozatym, nie mam nic przciwko adresom długim, ale bez przesady, kiedyś za coś takiego leciało się do suplemental index, nie wiem jak teraz.
Go to the top of the page
+Quote Post
mike
post 9.05.2008, 12:23:54
Post #12





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Zawsze możesz cacheować parametry wyszukiwania.
Ktoś szuka czegoż z dużą ilością parametrów, Ty zapisujesz te parametry gdzieś i oznaczasz na przykład h3Hdug97B, później jak ktoś wywoła adres.pl/search?searchId=h3Hdug97B to odczytujesz cache i wiesz o co chodzi.
Tylko ... czy jest sens?
Go to the top of the page
+Quote Post
cbagov
post 9.05.2008, 17:15:27
Post #13





Grupa: Zarejestrowani
Postów: 181
Pomógł: 18
Dołączył: 19.04.2008

Ostrzeżenie: (10%)
X----


Jak sie uprzesz to mozesz zakodowac na bitach, wtedy na 1 znaku - bajcie masz np 8 switchy ON/OFF, nie spominajac o kombinacjach, nie wspominajac o linku gdzie np parametr masz ?a=ABCD04 - czyli dla wygody szesnastkowo, takze skrocic to nie problem.
Kwestia czy nie przesadzisz z mechanizmem code/decode winksmiley.jpg
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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 14:31