Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z $_GET, gdzies mi gubi zmienna...
Belze
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.09.2003
Skąd: warszawa

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


witam!

rozwiazanie mojego problemu pewnie prozaiczne, aczkolwiek glowie sie nad tym juz poltorej godziny i nic ...

a wiec mam sobie stronke:

(panel.php?action=stopka)
Kod
<link rel="stylesheet" type="text/css" href="adminstyle.css"/>
<script type="text/javascript">
<!--
function zmienAction(f){
  f.action= f.opcja.value;
}
//-->
</script>
<? $baza = "panel.php?action=stopka&jezyk="; ?>
<table width="100%">
<tr>
<td align="left" height="50">
&nbsp;Edytujesz właśnie: <strong>Strona Główna</strong><br />
&nbsp;Wybrany edytowany język: <strong><?  if ($_GET['jezyk']== "") { print("polski"); } else { print($_GET['jezyk']); } ?> </strong><br /><br />
<form name="zmien" action="panel.php?action=stopka&jezyk=polski" method="post" onsubmit="zmienAction(this)">
&nbsp;Wybierz język edycji: &nbsp;<select name="opcja">
    <option <? if ($_GET['jezyk'] == "polski") { print("selected");}?>  value="<? print($baza); ?>polski">Polski</option>
    <option <? if ($_GET['jezyk'] == "angielski") { print("selected");}?> value="<? print($baza); ?>angielski">Angielski</option>
    <option <? if ($_GET['jezyk'] == "portugalski") { print("selected");}?> value="<? print($baza); ?>portugalski">Portugalski</option>
  </select>&nbsp;
    <input type="submit" value="Zmień" name="send">
</form>
</td>
</tr>
<tr>
<td align="center"> dol</td>
</tr>
</table>
</div>


niektore rozwiazania prymitywnie zrobione, ale nie o to chodzi...

po kliknieciu submit faktycznie zmienia mi url na wlasciwy (w zaleznosci ktory wybiore wariant jezykowy).. lecz pod $_GET['jezyk'] nie ma nic.. w sensie przy probie odczytu nic nie wychodzi...

moze to przez ta godzine przestalem myslec, ale nie widze problemu ;/

prosze o pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

ps. z gory mowie: szukalem i nie znalazlem problemu..
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Kod
method="post"
Go to the top of the page
+Quote Post
Belze
post
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.09.2003
Skąd: warszawa

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


w przypadku method="get" tymbardziej nie dziala. adres jest zupelnie nieprawidlowy..

zreszta.. czy post/get, to nie o to chodzi w przypadku method="post" adres jest prawidlowy. strona sie wyswietla..

lecz z adresu: panel.php?action=stopka&jezyk=polski

nie moge wyciagnac metoda $_GET['jezyk'] niczego!

Ten post edytował Belze 30.10.2006, 12:05:53
Go to the top of the page
+Quote Post
Amorph
post
Post #4





Grupa: Zarejestrowani
Postów: 309
Pomógł: 0
Dołączył: 6.06.2006
Skąd: include('root/europe/ poland/szczecin.php');

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


Masz formularz, w nim opcje, wysyłasz z formularza metodą post.
Teraz przesłane dane powinieneś odbierać metodą $_POST.
Go to the top of the page
+Quote Post
Belze
post
Post #5





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.09.2003
Skąd: warszawa

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


tak ale jak, jak w poszczegolnym "value" selecta mam adres strony..
tylko w taki sposob rozwiazalem problem wyboru jezyka poprzez select. ma ktos inny pomysl?

zreszta co za roznica, jesli adres wyswietla sie poprawnie? nawet nie musze uzywac form - i tak powinien dac sie odczytac za pomoca $_GET, czyz nie?
Go to the top of the page
+Quote Post
myth
post
Post #6





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 25.09.2006

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


Przeciez wszystko dziala..?
  1. <?php
  2. echo '$_GET["jezyk"] = '. $_GET['jezyk'].'<br />';
  3. echo '<pre>';
  4. print_r($_GET);
  5. echo '</pre>';
  6. ?>

Pokazuje prawidlowa wartosc.

Ten post edytował myth 30.10.2006, 12:52:07
Go to the top of the page
+Quote Post
Belze
post
Post #7





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.09.2003
Skąd: warszawa

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


faktycznie mowie glupoty. moglbym przerobic ten formularz na odbieranie $_POST, ale zalezy mi na $_GET ...

@myth...
a mi sie wyswietla
Kod
Array
(
)
Go to the top of the page
+Quote Post
Amorph
post
Post #8





Grupa: Zarejestrowani
Postów: 309
Pomógł: 0
Dołączył: 6.06.2006
Skąd: include('root/europe/ poland/szczecin.php');

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


Zmieniasz adres strony na wybrany a potem submitujesz na taki adres:

action="panel.php?action=stopka&jezyk=polski"

Wiec jak ma działać poprawnie?
Moim skromnym zdaniem to tu sporo namieszałeś...

Ja bym widział to tak:

action="panel.php?action=stopka"
w value zostawil tylko polski, angielski, portugalski...a na poczatki skryptu:
$zmienna=$_POST['jezyk'];

Chyba ze:
select name='opcja', a moze przypadkiem zmien na 'jezyk' (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
bastek8989
post
Post #9





Grupa: Zarejestrowani
Postów: 205
Pomógł: 1
Dołączył: 11.09.2006

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


dlazcego masz method="post" a odbierasz $_GET['jezyk'] ?
daj $_POST['jezyk']
Go to the top of the page
+Quote Post
Belze
post
Post #10





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.09.2003
Skąd: warszawa

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


@Amorph .. ano namieszalem.

1. niewazne co wpisze w bazowe "action"... wpisalem "dupamaryna" .. i tak dla niego wazne jest to co jest w "value" ... usunalem "$baza" i zostawilem tylko polski.. angielski.. portugalski .... po wyslaniu probuje wejsc odpowiednio do pliku "polski", "portugalski" etc...

to nie tutaj lezy problem. wszystko teoretycznie jest dobrze. wybieram, wysylam, zmienia mi adres (na wlasciwy).. ale próbując wtedy wyciągnąć $_GET['jezyk'] nic mi nie zwraca, mimo ze w adresie jest np. ?action=stopka&jezyk=polski

@bastek8989 - $_POST['jezyk'] nie zwrociloby mi nic, bo nic nie jest tym nazwane.

echh... tak proste a tyle z tym problemow.

jesli ktos mialby pomysl, to prosze o pomoc.. potrzebuje jedynie - metody $_GET i wyboru jezyka poprzez select...

hmm dziwne..
zrobilem test

Kod
<? if ($_GET["action"] == "stopka") { print("test"); } else { print("blad"); }?>


i wyswietla mi blad...

zaczalem podejrzewac, ze to przez cos innego..

w panel.php sa linki. jeden link to wlasnie "stopka" ... klikajac na ten link uruchamia panel.php z parametrem stopka - i wtedy po prawej stronie od menu uruchamia sie strona stopka.php ... i w niej jakos nie chce uzyc niewazne na jakim parametrze metody $_GET .... moze to ma zwiazek?
Go to the top of the page
+Quote Post
Amorph
post
Post #11





Grupa: Zarejestrowani
Postów: 309
Pomógł: 0
Dołączył: 6.06.2006
Skąd: include('root/europe/ poland/szczecin.php');

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


Nie wiem w sumie po co ci taki bałagan ale zerknij na to:
  1. <?php
  2. if($_GET['action']='stopka'){
  3. $jezyk=$_POST['jezyk'];
  4. echo "$jezyk";
  5. }
  6. ?>
  7. <form name="zmien" action="panel.php?action=stopka" method="post" >
  8. <select name="jezyk">
  9. <option value="polski">Polski</option>
  10. <option value="angielski">Angielski</option>
  11. <option value="portugalski">Portugalski</option>
  12. <input type="submit" value="Zmień" name="send"></form>

P.
Go to the top of the page
+Quote Post
Belze
post
Post #12





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.09.2003
Skąd: warszawa

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


1. chcialbym to zrobic z metoda $_GET a nie $_POST ale w sumie niewazne bo:
2. dopisalem w poprzednim poscie wiadomosc. zrobilem test. niewazne co zrobie, nawet bez "<form>"... nie wyswietla mi NIC gdy sprobuje wywolac "$_GET['stopka']" ..
Go to the top of the page
+Quote Post
Amorph
post
Post #13





Grupa: Zarejestrowani
Postów: 309
Pomógł: 0
Dołączył: 6.06.2006
Skąd: include('root/europe/ poland/szczecin.php');

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


Ty chcesz nad morze jechać przez Zakopane.
Po kiego czorta komplikujesz sobie?
Aby "profesjonalnie" strona wyglądała z zapisanym adresikiem www.strona.com/plik.php?id=3uy7y3y2b5yb2c3uy52nc&plik=832498723&jezyk=hebrajsko-chinski.
Naprawdę czasami najłatwiejsze rozwiązania są najlepsze. To jeden z tych przypadków.
Go to the top of the page
+Quote Post
Belze
post
Post #14





Grupa: Zarejestrowani
Postów: 50
Pomógł: 4
Dołączył: 15.09.2003
Skąd: warszawa

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


nie o to mi chodzi, zeby to "profesjonalnie" wygladalo.. to panel admina, z ktorego oprocz mnie bedzie korzystala garstka osob... zalezy mi na $_GET dla wygody zeby latwo dostac sie do kazdej wybranej lokacji..

w kazym badz razie dzieki za pomoc Amorph...

ok... kombinowalem jak sie da i dziwacznym sposobem udalo mi sie cos uzykac, ale jest jednem malutki problem:

Kod
<form action="" method="get">
  <select name="action=stopka&jezyk">    
  <option value="polski">Polski</option>
  <option value=">angielski">Angielski</option>
  <option value=">portugalski">Portugalski</option>
<input type="submit" value="Zmień"></form>

wszystko dziala bardzo fajnie. ale w adresie "=" i "&" nie sa wyswietlane..
np. ?action%3Dstopka%26jezyk=polski

jak temu zaradzic?

problem rozwiazany w dosc dziwny sposob...

mianowicie w panel.php w miejscu gdzie wyswietlaja sie strony dokonalem pewnej zmiany:

zamienilem:
Kod
else  if( ($_GET['action'] == "stopka") ) {
include("stopka.php");
}


na
Kod
else  if( ($_GET['action'] == "stopka") ) {
if( ($_GET['jezyk'] == "polski") or ($_GET['jezyk'] == "portugalski") or ($_GET['jezyk'] == "angielski")) {
include($patchqa."stopka.php?action=".$_GET['action']."&jezyk=".$_GET['jezyk']); } else {include($patchqa."stopka.php");}}


czyli w tym byl problem...

o dziwo mimo "stopka.php?action=...." w adresie wyswietla "panel.php?action=..."

czyli NIC sie nie zmienilo tylko to, ze w koncu widzi to $_GET

w kazdym badz razie dzieki za pomoc!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 18:39