Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP] Problem z ustawieniem _GET ;|, Wszystko działa jak należy dziękuje za pomoc :)
FliSs_tCv
post 12.08.2008, 13:39:47
Post #1





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

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


Witam serdecznie na początku mojego skryptu dodaje:

  1. <?php
  2. $dzial = $_GET["action"];
  3.  
  4. if (!isset($dzial))
  5. {
  6. $dzial = "index.php?action=start";
  7. }
  8. require('module/wyloguj.php');
  9. ?>


No i szczerze powiem że jestem strasznie zdezorientowany dlaczego dzieje się w tej sposób że raz sprawdza _GET['action'] jeśli jest pusta to nadaje jej wartość a raz tego wg nie robi i nie mam zielonego pojęcia dlaczego może mam coś źle napisane ?

P.S Krótkie naprostowanie do czego to potrzebuje chodzi mi o menu gdzie zostaje wyróżniony buton dla danej podstrony poprzez ustawienie $GET['action'] no i jak wchodzę na stronę to wiadomo nie wpisuję index.php?... chciałbym automatycznie wyróżnić 1-szy button start winksmiley.jpg


Ten post edytował FliSs_tCv 21.08.2008, 04:44:44


--------------------
Go to the top of the page
+Quote Post
webdice
post 12.08.2008, 13:41:49
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




isset" title="Zobacz w manualu PHP" target="_manual sprawdza czy zmienna istnieje, a nie czy ma jakąś wartość, tak więc warunek zostanie zpełniony dla np.

Kod
index.php?dzial
index.php?dzial=
index.php?dzial=cos
Go to the top of the page
+Quote Post
rybik
post 12.08.2008, 13:52:17
Post #3





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 29.07.2006

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


Cytat(FliSs_tCv @ 12.08.2008, 14:39:47 ) *
raz sprawdza _GET['action'] jeśli jest pusta to nadaje jej wartość


niby gdzie ?

przeciez nie przekazujesz $_GET['action'] przez referencje, więc zmiany na $dzial sa zmianami tylko na tej zmiennej, ktora poczatkowo posiada kopie wartosci z $_GET['dzial']


poprawnie:
  1. <?php
  2. if (!isset($_GET['action']) || $_GET['action']=='') {
  3. // gdy pusta lub brak - ustaw na start
  4. $_GET['action'] = 'start';
  5. } else {
  6. // gdy istnieje i niepusta - usun zbedne-szkodliwe znaki (walidacja danych od użytkownika)
  7. $_GET['action'] = htmlspecialchars(stripslashes($_GET['action']));
  8. }
  9.  
  10. // w dalszej części można wzglednie bezpiecznie używać $_GET['action']
  11. ?>
Go to the top of the page
+Quote Post
FliSs_tCv
post 12.08.2008, 13:58:18
Post #4





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

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


Hmm nadal mi nie ustawia w pasku adresu index.php?action=start czyli nie przekierowuje jakby na dany adres:(


--------------------
Go to the top of the page
+Quote Post
golaod
post 12.08.2008, 14:12:44
Post #5





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


Sprecyzuj o co Ci chodzi bo to co piszesz jest jakąś dziwną abstrakcją którą tylko ty rozumiesz. Napisz co chcesz osiągnąć a odpowiedź będziesz miał w minutę.
Go to the top of the page
+Quote Post
rybik
post 12.08.2008, 14:20:25
Post #6





Grupa: Zarejestrowani
Postów: 99
Pomógł: 15
Dołączył: 29.07.2006

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


ustawienie $_GET nie determinuje adresu, pytasz o ustawienie GET a nie o przekierowanie, jeżeli cały ambaras tylko po to żeby podświetlać przycisk to może łatwiej w podświetlaniu przycisku dodać drugi warunek i podświeltac go również gdy brak $_GET['action']
Go to the top of the page
+Quote Post
FliSs_tCv
post 12.08.2008, 22:38:36
Post #7





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

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


być może będzie to lepszym zastosowaniem o którym piszesz rybik lecz nie mam pojecia jak to wykonać w takim bądź razie:( mam skrypt który zadziała dopiero w tym momencie gdy GET będzie miał ustawione pewne dane wtedy skrypt powiąże to z daną w array i podświetli dany button winksmiley.jpg

  1. <?php
  2.  
  3. $menu[start]=array("img/menu/menu_1_1.png", "img/menu/menu_1.png" );
  4. $menu[oferta]=array("img/menu/menu_2_2.png", "img/menu/menu_2.png" );
  5. $menu[produkty]=array("img/menu/menu_3_3.png", "img/menu/menu_3.png" );
  6. $menu[portfolio]=array("img/menu/menu_4_4.png", "img/menu/menu_4.png" );
  7. $menu[szablony]=array("img/menu/menu_5_5.png", "img/menu/menu_5.png" );
  8. $menu[kontakt]=array("img/menu/menu_6_6.png", "img/menu/menu_6.png" );
  9.  
  10.  echo '<script type="text/javascript"><!-- <![CDATA[';
  11.  
  12. foreach($menu as $klucz=>$wartosc) {
  13. if ($klucz==$dzial) {
  14. echo 'new Image().src="'.$menu[$klucz][0].'";'."\n";
  15. $menu[$klucz]="<img id=\"menu_img\" src=\"{$menu[$klucz][1]}\" border=\"0\"
  16. alt=\"{$menu[$klucz][2]}\" />";
  17. } else {
  18. echo 'new Image().src="'.$menu[$klucz][1].'";'."\n";
  19. $menu[$klucz]="<img id=\"menu_img\" src=\"{$menu[$klucz][0]}\" border=\"0\"
  20. alt=\"{$menu[$klucz][2]}\" onmouseover=\"this.src='{$menu[$klucz][1]}'\"
  21. onmouseout=\"this.src='{$menu[$klucz][0]}'\" />";
  22. }
  23. }
  24.  
  25. echo '// ]]> --></script>';
  26. ?>
  27.  
  28. <a href="index.php?action=start"><?=$menu[start]?></a>
  29. <a href="index.php?action=oferta"><?=$menu[oferta]?></a>
  30. <a href="index.php?action=produkty"><?=$menu[produkty]?></a>
  31. <a href="index.php?action=portfolio"><?=$menu[portfolio]?></a>
  32. <a href="index.php?action=szablony"><?=$menu[szablony]?></a>
  33. <a href="index.php?action=kontakt"><?=$menu[kontakt]?></a>


Oto skrypt tego menu będe wdzięczny za pomoc smile.gif

Ten post edytował FliSs_tCv 12.08.2008, 22:39:40


--------------------
Go to the top of the page
+Quote Post
czajnikkoko
post 12.08.2008, 22:57:41
Post #8





Grupa: Zarejestrowani
Postów: 6
Pomógł: 1
Dołączył: 9.08.2008

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


nie wiem czy dobrze rozuymiem o co ci chodzi,ale Twoj warunek nigdy nie bedzie spełniony poniewaz ta zmienna zawsze istnieje bo ją tworzysz:

  1. <?php
  2. $dzial = $_GET["action"];
  3. ?>




lepiej w warunku sprawdzaj czy jest pusta, czyli zmien warunek na taki

  1. <?php
  2. if (empty($dzial))
  3.    {
  4.    $dzial = "index.php?action=start";
  5.    }
  6. ?>
Go to the top of the page
+Quote Post
FliSs_tCv
post 12.08.2008, 23:24:51
Post #9





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

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


niestety ale nie nadaje takiego adresu nie wiem czemu sad.gif


--------------------
Go to the top of the page
+Quote Post
golaod
post 13.08.2008, 07:59:28
Post #10





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


Mogę się spytać po co jakieś takie dziwne ceregiele? Rozumiem, że chodzi Ci o efekt taki:
Masz 5 przycisków które kierują do index.php/action=start/1/2/3/4 w zależności od tego co ktoś wybrał to ten przycisk jest wyłączony i zmienił kolor tak ? Jeśli tak to:
  1. <?php
  2. $dzial = (isset($_GET['action'])?'start':$_GET['action'];
  3. #przyciski
  4. echo ($dzial=='start')?'<img src="sciezka/do/buttona/podswietlonego.jpg" />':'<a target="_self" href="index.php?action=1"><img src="przycisk/do/buttona/niepodswietlonego.jpg" /></a>';
  5. #i teraz ctrl+c ctrl+v i robisz tak z innymi przyciskami
  6. ?>


Ten post edytował golaod 13.08.2008, 08:01:07
Go to the top of the page
+Quote Post
FliSs_tCv
post 13.08.2008, 11:30:25
Post #11





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

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


Powiem szczerze że nie rozumiem Twojego przykładu golaod smile.gif wczytałem sobie te kod do swojego pliku i wywala błędy z 1 sobie poradziłem chodziło o niespodziewany ';' a drugi to 'Parse error: syntax error, unexpected T_ECHO in (ścieżka) on line 3' i nie wiem co to tam może być źle pierwszy raz takie coś widzę ;P nie chodzi o błąd lecz o kod czyli jak został on napisany he ;]


--------------------
Go to the top of the page
+Quote Post
golaod
post 13.08.2008, 11:36:05
Post #12





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


No bo jak już poprawiasz błędy po mnie to sprawdzaj dokładnie.
Przypatrz się jak jest napisany warunek dla zmiennej $dzial;
(isset($_GET['action']) --przypatrz się czy wszystko na pewno jest. A średnik ma być gdzie był !
Ech ja nie wiem...kiedy się ludzie nauczą patrzeć na kod znak po znaku.

Ten post edytował golaod 13.08.2008, 11:36:44
Go to the top of the page
+Quote Post
FliSs_tCv
post 13.08.2008, 11:44:06
Post #13





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

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


Przepraszam ale nie każdy jest ideałem ;P ja na przykład cały czas się uczę w wolnych chwilach tego php i wg;) jest to dla mnie czarna magia na co dzień zajmuje się grafiką dlatego może moje trudności z php winksmiley.jpg na prawdę nie wiem co mam tu zauważyć lepiej było by się uczyć na pewnym przykładzie wtedy mógłbym przestudiować ten kod i dowiedziałbym się co on robi smile.gif tak z ciemnego w ciemniejsze się pcham ;P mam nadzieje że rozumiesz winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
golaod
post 13.08.2008, 11:48:17
Post #14





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


przykład warunek:
  1. <?php
  2. if(cos>cos2)
  3. {
  4.  kod
  5. }
  6. else
  7. {
  8. kod2
  9. }
  10. ?>

wersja skrócona:
  1. <?php
  2. (cos>cos2)?kod:kod2;
  3. ?>

Teraz jak wiadomo używamy funkcji isset by sprawdzić czy zmienna $_GET['action'] istnieje w ogóle.
Funkcja wygląda tak:
  1. <?php
  2. isset($zmienna)
  3. ?>

Teraz proszę Cię o trochę samodzielności, podstaw do siebie wszystko lecąc od dołu (poza normalnym ifem) i znajdź sam błąd smile.gif
Go to the top of the page
+Quote Post
FliSs_tCv
post 13.08.2008, 13:11:50
Post #15





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

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


wybacz ale naprawdę nie rozumiem jest to dla mnie za czarna magia no nic ale i ta dziękuje za pomoc smile.gif może mi się uda to jakoś zrobić sad.gif pozdrawiam winksmiley.jpg


EDIT ----------------------->

Kolega mi pomógł teraz nie ma błędów wyświetla obrazek ale nie pokazuje po najechaniu zmiany obrazka:( co tam jest nie tak ?

Ten post edytował FliSs_tCv 13.08.2008, 13:25:05


--------------------
Go to the top of the page
+Quote Post
golaod
post 13.08.2008, 13:25:41
Post #16





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


Ech...brakowało ZAMKNIĘCIA NAWIASU. Grałeś ty kiedyś w gry przygodowe co snitch.gif ? Przyznaj się ;]
Poprawnie: (isset($_GET['action']))

@EDIT
A nic nie było mowy, żebym Ci w skrypcie jeszcze jakiś hover dopisywał. Ja z tego co zrozumiałem to miało być tak, że jak jest się na podstronie do której prowadził przycisk to ten przycisk nie działa i wygląda inaczej. Rozumiem, że chodziło Ci o coś innego ?

Ten post edytował golaod 13.08.2008, 13:27:16
Go to the top of the page
+Quote Post
FliSs_tCv
post 13.08.2008, 18:58:58
Post #17





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

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


Witam jednak mi to nie działa pokazuje wszystkie podświetlone przyciski sad.gif chyba że coś źle napisałem o to kod:

  1. <?php
  2. $dzial = (isset($_GET['action'])'start' : $_GET['action']);
  3. echo ($dzial=='start')?'<img src="img/menu/menu_1_1.png" />':'<a target="_self" href="index.php?action=start"><img src="img/menu/menu_1.png" /></a>';
  4.  
  5. $dzial = (isset($_GET['action'])'oferta' : $_GET['action']);
  6. echo ($dzial=='oferta')?'<img src="img/menu/menu_2_2.png" />':'<a target="_self" href="index.php?action=oferta"><img src="img/menu/menu_2.png" /></a>';
  7.  
  8. $dzial = (isset($_GET['action'])'produkty' : $_GET['action']);
  9. echo ($dzial=='produkty')?'<img src="img/menu/menu_3_3.png" />':'<a target="_self" href="index.php?action=produkty"><img src="img/menu/menu_3.png" /></a>';
  10.  
  11. $dzial = (isset($_GET['action'])'portfiolio' : $_GET['action']);
  12. echo ($dzial=='portfolio')?'<img src="img/menu/menu_4_4.png" />':'<a target="_self" href="index.php?action=portfolio"><img src="img/menu/menu_4.png" /></a>';
  13.  
  14. $dzial = (isset($_GET['action'])'szablony' : $_GET['action']);
  15. echo ($dzial=='szablony')?'<img src="img/menu/menu_5_5.png" />':'<a target="_self" href="index.php?action=szablony"><img src="img/menu/menu_5.png" /></a>';
  16.  
  17. $dzial = (isset($_GET['action'])'kontakt' : $_GET['action']);
  18. echo ($dzial=='kontakt')?'<img src="img/menu/menu_6_6.png" />':'<a target="_self" href="index.php?action=kontakt"><img src="img/menu/menu_6.png" /></a>';
  19. ?>


a tu to testuje winksmiley.jpg kliknij tutaj;)


--------------------
Go to the top of the page
+Quote Post
golaod
post 14.08.2008, 12:46:33
Post #18





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


  1. <?php
  2. $dzial = (!isset($_GET['action']))'start' : $_GET['action'];
  3. echo ($dzial=='start')?'<img src="img/menu/menu_1_1.png" />':'<a target="_self" href="index.php?action=start"><img src="img/menu/menu_1.png" /></a>';
  4.  
  5. echo ($dzial=='oferta')?'<img src="img/menu/menu_2_2.png" />':'<a target="_self" href="index.php?action=oferta"><img src="img/menu/menu_2.png" /></a>';
  6.  
  7. echo ($dzial=='produkty')?'<img src="img/menu/menu_3_3.png" />':'<a target="_self" href="index.php?action=produkty"><img src="img/menu/menu_3.png" /></a>';
  8.  
  9. echo ($dzial=='portfolio')?'<img src="img/menu/menu_4_4.png" />':'<a target="_self" href="index.php?action=portfolio"><img src="img/menu/menu_4.png" /></a>';
  10.  
  11. echo ($dzial=='szablony')?'<img src="img/menu/menu_5_5.png" />':'<a target="_self" href="index.php?action=szablony"><img src="img/menu/menu_5.png" /></a>';
  12.  
  13. echo ($dzial=='kontakt')?'<img src="img/menu/menu_6_6.png" />':'<a target="_self" href="index.php?action=kontakt"><img src="img/menu/menu_6.png" /></a>';
  14. ?>


Ten post edytował golaod 14.08.2008, 12:47:17
Go to the top of the page
+Quote Post
FliSs_tCv
post 18.08.2008, 02:40:45
Post #19





Grupa: Zarejestrowani
Postów: 198
Pomógł: 3
Dołączył: 27.02.2007
Skąd: Tczew

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


Witam mam pewien problem w czasie tworzenia dalszego skryptu gdzie GET-em było przesyłane tylko coś takiego

  1. index.php?action=6


teraz mam troszkę inaczej ponieważ w linku przekazuje jeszcze to p.s. patrz na to &idk=1

  1. index.php?action=6&idk=1


i jak mam zrobione

  1. <?php
  2. echo ($dzial=='6&idk=1')?'<img src="img/menu/menu_19_19.png" />':'<a target="_self" href="index.php?action=6"><img src="img/menu/menu_19.png" /></a>';
  3. ?>


to mi nie wyróżnia danej podstrony i podkreśla mi wszystkie.
W podstronie 6 wczytuje dane z bazy próbowałem jeszcze tak:

  1. <?php
  2. echo ($dzial=='6' + '&idk=' + '1')?'<img src="img/menu/menu_19_19.png" />':'<a href="index.php?action=6&idk=1"><img src="img/menu/menu_19.png" /></a>';
  3. ?>


niestety nie bardzo mi to działa tongue.gif nie wiem co mam zrobić kombinuje i kombinuje ale wysiadam więc napisałem tutaj może mi pomożecie.

Pozdrawiam


--------------------
Go to the top of the page
+Quote Post
golaod
post 18.08.2008, 08:02:51
Post #20





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


A niby dlaczego ma Ci dzialac skoro &idk to jest kolejna zmienna czyli $_GET['idk'] która nie zawiera się w zmiennej $dzial.
Poczytaj może trochę o GET i POST ?
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 19.07.2025 - 12:54