Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] odczytywanie zmiennych z łańcucha
Forum PHP.pl > Forum > Przedszkole
php_boj
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ę.
zzeus
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")
batman
@php_boj
Proszę dodać bbcode do postu, inaczej zostanie zamknięty.
php_boj
@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?
cbagov
musisz wykonac
eval($zmienna);

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

$zm5 = "5" bez ;
batman
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ąć?
php_boj
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
mike
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.
php_boj
@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.
batman
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.
php_boj
@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.
mike
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?
cbagov
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
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.