[PHP] Przekazywanie zmiennych |
Autor |
Wiadomość |
They2
Pomógł: 82 razy Posty: 1297
|
Wysłany: 28-03-2008, 23:06 [PHP] Przekazywanie zmiennych
|
|
|
Kod: | if ($sid!="halo") {
echo $tresc;
} else {
if ($id="1") { include('plik.php'); }; |
to wyglada tak: www.wlasna_strona.pl/index.php?sid=halo
i pojawia plik.php na stronie
a jak to zrobic, zeby byly 2 sidy
np. .../index.php?sid=halo&a=jest_ktos
wtedy pojawia podstrona. |
Ostatnio zmieniony przez They2 28-03-2008, 23:20, w całości zmieniany 1 raz |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
gaku
Pomógł: 109 razy Posty: 1095
|
Wysłany: 28-03-2008, 23:11
|
|
|
po pierwsze, to się nie nazywa sid, bo sid to jest identyfikator sesji, to jest po prostu przekazywanie zmiennych za pomocą GET'a. Twój kod jest niepoprawny, poczytaj o zmiennych GET i POST |
_________________ Pisanie do mnie na gg w sprawie forum mocno nie wskazane
<Cvbge> A szkolisz sie na jakiego informatyka?
http://webmastera.republika.pl/
<QSi> na zajebistego |
|
|
|
|
They2
Pomógł: 82 razy Posty: 1297
|
Wysłany: 28-03-2008, 23:18
|
|
|
no to niech bedzie "przekazywanie zmiennych", sorry ze nie zrozumialem tych nazw w php.
gaku, pokaze ci moja strone http://design.alldeaf.pl/portal.php?mode=0
i widzisz ze dziala ? wiec jest poprawny, tam nie ma get i post, tylko te kody wyzej mam, a chce zeby dodalo jeszcze jeden lub 2 przekazywania zm... |
_________________ Support | Pomoc | Modyfikacja | Zlecenie płatne - zapraszam na PW oraz pod moim adresem.
Nie udzielam w GG. |
|
|
|
|
gaku
Pomógł: 109 razy Posty: 1095
|
Wysłany: 29-03-2008, 01:28
|
|
|
jest poprawny tak długo jak jest register_globals jest ustawione na on. To nie jest bezpieczne, a zasada jest banalna, plik.php?zmienna1=wartosc&zmienna2=wartosc2, a w kodzie jak chcesz wartości zmiennych to już tylko $_GET['zmienna1'] i &_GET['zmienna2'] |
_________________ Pisanie do mnie na gg w sprawie forum mocno nie wskazane
<Cvbge> A szkolisz sie na jakiego informatyka?
http://webmastera.republika.pl/
<QSi> na zajebistego |
|
|
|
|
They2
Pomógł: 82 razy Posty: 1297
|
Wysłany: 29-03-2008, 02:50
|
|
|
moglbys napisac przyklady w kodzie a nie zamiast pokombinowac dlugo, szkoda czasu. |
_________________ Support | Pomoc | Modyfikacja | Zlecenie płatne - zapraszam na PW oraz pod moim adresem.
Nie udzielam w GG. |
|
|
|
|
gaku
Pomógł: 109 razy Posty: 1095
|
Wysłany: 29-03-2008, 09:50
|
|
|
ehh adres: Kod: | index.php?mode=0&topic=3 |
a kod mniej więcej taki:
Kod: | <?php
if (empty($_GET['mode']))
{
echo("nie wybrano opcji");
}
else
{
echo($_GET['mode']);
if(empty($_GET['topic']))
{
echo("nie wybrano tematu");
}
else
{
echo($_GET['topic']);
}
}
?> |
Jeżeli się nie pomyliłem w kodzie- http://szablony.freeware.info.pl/meta-tag.html (kwestia techniczna) to skryp powinien zwrócić wartość 03. Gdy nie jest ustawiona wartość mode to wartość topic nie jest brana pod uwagę nawet jeżeli jest ustawiona |
Ostatnio zmieniony przez gaku 25-07-2014, 11:34, w całości zmieniany 1 raz |
|
|
|
|
koziolek
Pomógł: 675 razy Posty: 1925
|
Wysłany: 29-03-2008, 09:57
|
|
|
Kod: | <?php
if($_GET['action'] == 'halo')
{
echo $_GET['tresc'];
}
else if($_GET['action'] == 'file')
{
include('plik.php');
}
?> | wywołujesz: Kod: | index.php?action=halo&tresc=Witaj They | i wyświetli Ci napis
jeżeli wywołasz: Kod: | index.php?action=file | zaincluduje Ci plik plik.php
oczywiście trzeba do tego kodu dopisać jeszcze filtrowanie zmiennych żeby ktoś się nie włamał
They2 napisał/a: | wiec jest poprawny, tam nie ma get i post | masz tam gdzieś logowanie do panelu admina? jeżeli tak to można się włamać
przykład: http://www.webinside.pl/php/artykuly/197 |
_________________ #4 /xg.xrybvmbx.jjj//:cggu |
|
|
|
|
They2
Pomógł: 82 razy Posty: 1297
|
Wysłany: 29-03-2008, 19:43
|
|
|
koziolek, a teraz jak zrobic zeby byly np. index.php?one=1&two=2 oraz index.php?one=1&two=2&three=3
zrobilem tak:
Kod: | if($_GET['one'] == 'halo')
{
echo $_GET['tresc'];
}
else if($_GET['one'] == '1')
{
if($_GET['two'] == '2')
{
include('2.php');
}
else if($_GET['two'] == '2')
{
if($_GET['three'] == '3')
{
include('3.php');
}
}
} |
ten &two=2 dziala
ale trzeci &three=3 wyswietla raczej drugą |
_________________ Support | Pomoc | Modyfikacja | Zlecenie płatne - zapraszam na PW oraz pod moim adresem.
Nie udzielam w GG. |
|
|
|
|
koziolek
Pomógł: 675 razy Posty: 1925
|
Wysłany: 29-03-2008, 20:18
|
|
|
bo to działa tak:
Kod: | if(...warunek 1...)
{
...jeżeli warunek 1 jest spełniony to wykonaj ten fragment...
}
else if(...warunek 2...)
{
...jeżeli warunek 1 NIE jest spełniony ORAZ warunek 2 jest spełniony to wykonaj ten fragment...
} | tak będzie działać: Kod: | if($_GET['one'] == 'halo')
{
echo $_GET['tresc'];
}
else if($_GET['one'] == '1')
{
if($_GET['two'] == '2')
{
if($_GET['three'] == '3')
{
include('3.php');
}
else
{
include('2.php');
}
}
} |
to trzeba troche się zastanowic i pomyśleć |
_________________ #4 /xg.xrybvmbx.jjj//:cggu |
|
|
|
|
They2
Pomógł: 82 razy Posty: 1297
|
Wysłany: 03-04-2008, 12:03
|
|
|
zrobilem to co podałes i działa, rzeczywiście trzeba dodać } else { .
No i jeszcze zrobiłem jedna funkcje tak zeby kody byly skrocone
dzieki
koziolek napisał/a: | They2 napisał/a: | wiec jest poprawny, tam nie ma get i post |
masz tam gdzieś logowanie do panelu admina? jeżeli tak to można się włamać
przykład: http://www.webinside.pl/php/artykuly/197 | te logowania ani nawet do panelu adm. na stronie nie mam, wiec to zaden problem ?
Pytanie, jesli zamienilem ze zwyklego na $_GET i $_POST i wyłączyłem (na 0) w .httaccess:
Kod: | php_flag register_globals 0 | będzie bezpieczny ?
I te logowanie pochodzi z phpBB by Przemo na własnej stronie jest bezpieczny jeśli register_globals jest wyłączony ? |
|
|
|
|
koziolek
Pomógł: 675 razy Posty: 1925
|
Wysłany: 03-04-2008, 17:56
|
|
|
They2 napisał/a: | Pytanie, jesli zamienilem ze zwyklego na $_GET i $_POST | wiesz że teraz ni będzie Ci to działać, bo zmienne $_POST pochodzą z formularza a nie z paska adresu
They2 napisał/a: | I te logowanie pochodzi z phpBB by Przemo na własnej stronie jest bezpieczny jeśli register_globals jest wyłączony ? | raczej na pewno jest jakieś wbudowane zabezpieczenie |
_________________ #4 /xg.xrybvmbx.jjj//:cggu |
|
|
|
|
Radek
Pomógł: 955 razy Posty: 4614
|
Wysłany: 03-04-2008, 22:11
|
|
|
Jeżeli register globals jest włączone, to po wpisaniu w plik.php kodu:
i wywołaniu adresu plik.php?zmienna=test, wyskoczy napis test. Jeżeli strona będzie 'podpięta' pod phpBB albo sam napiszesz kod który usuwa zmienne to nic się nie stanie. phpBB automatycznie usuwa przy wlaczonym register globals te 'zmienne' z adresu - mozna sie do nich dostać tylko GET'em. |
|
|
|
|
They2
Pomógł: 82 razy Posty: 1297
|
Wysłany: 05-04-2008, 13:37
|
|
|
koziolek napisał/a: | wiesz że teraz ni będzie Ci to działać, bo zmienne $_POST pochodzą z formularza a nie z paska adresu | a tak rzeczywiscie to do formularza.
RuseK, rozumiem i dzieki.
Pozostaje tylko mam problem z pobraniem pliku na stronie.
np. http://design.alldeaf.pl/...Polchat_1.8.zip
sprobowalem zamienic w $_GET i tak wyszlo bledy:
Cytat: | Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING |
az tyle
te kody: fopen, file_exists, flock, fgets, fwrite, fclose - nie moga dzialac ? |
_________________ Support | Pomoc | Modyfikacja | Zlecenie płatne - zapraszam na PW oraz pod moim adresem.
Nie udzielam w GG. |
|
|
|
|
Radek
Pomógł: 955 razy Posty: 4614
|
Wysłany: 05-04-2008, 17:44
|
|
|
A możesz pokazać kod tego pliku pobierz.php? |
|
|
|
|
Gadatliwa Kasia
|
|
|
|
They2
Pomógł: 82 razy Posty: 1297
|
Wysłany: 05-04-2008, 18:53
|
|
|
Kod: | <?php
$download = '$dn';
if($_GET['dn'])
{
file_exists("/katalog/$_GET['dn'].'.n"))
//początek licznika
$file=fopen("/katalog/$_GET['dn'].'.n", "r");
flock($file, 1);
$cyfra=fgets($file, 100);
flock($file, 3);
fclose($file);
$cyfra++;
$file=fopen("/katalog/$_GET['dn'].'.n", "w");
flock($file, 2);
fwrite($file, $cyfra);
flock($file, 3);
fclose($file);
// koniec licznika
header("Location: /katalog/$_GET['download']");
}
else
{
$file=fopen("/katalog/$_GET['dn'].'.n", "w");
flock($file, 2);
fwrite($file, "1");
flock($file, 3);
fclose($file);
header("Location: /katalog/$_GET['download']");
}
?>
|
blad pojawia sie od poczatku file_exist... |
|
|
|
|
|