Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Coś z przekazywaniem danych
Forum PHP.pl > Forum > Przedszkole
kaczan-ek
Oto jaki mam kłopot :
  1. <?php
  2.  
  3. if ($akcja==&#092;"\"){
  4. $akcja=&#092;"pokaz\";
  5. }
  6.  
  7. if ($akcja==&#092;"pokaz\"){
  8. .
  9. .
  10. .
  11. .
  12. .
  13. .
  14. }
  15. elseif($akcja==&#092;"loguj\"){
  16. .
  17. .
  18. .
  19. }
  20. ?>

Teraz gdy wpiszę z palca w przeglądarce news.php?akcja=loguj ,gdzie news.php to naazwa tego pliku to i tak pokazuj mi się to samo co przy wartosci $akcja="pokaz" ... a nie to co powinno przy wartosci $akcja="loguj" .
prosze o pomoc
mls
Masz najwidoczniej wyłączone register_globals w php.ini.
Zapisz ten kod tak:
  1. <?php
  2. if ($_GET['akcja'] == &#092;"\") $_GET['akcja'] = \"pokaz\";
  3.  
  4. if ($_GET['akcja'] == &#092;"pokaz\"){
  5. // [...]
  6. } elseif($_GET['akcja'] == &#092;"loguj\") {
  7. // [...]
  8. }
  9. ?>
legorek
Spróboj tego:
  1. <?php
  2. $akcja = $_GET[&#092;"akcja\"];
  3. if ($akcja==&#092;"\"){
  4. $akcja=&#092;"pokaz\";
  5. }
  6.  
  7. if ($akcja==&#092;"pokaz\"){
  8. .
  9. .
  10. .
  11. .
  12. .
  13. .
  14. }
  15. elseif($akcja==&#092;"loguj\"){
  16. .
  17. .
  18. .
  19. }
  20. ?>
kaczan-ek
Hmm dzieki bardzo, dziala, ale tafilem na kolejny klopot.
Jezeli mam cos takiego
<FORM ACTION=\"news.php?akcja=pokaz&admin_login=$podaj1&admin_haslo=$podaj2\"
METHOD=\"GET\">";
Dlaczego otwiera plik news.php z paramterami tylko admin_login i admin_haslo questionmark.gif Dokladnie to llinijka w przegladarce wyglada w ten sposob:
http://localhost/news.php?podaj1=ktos&podaj2=cos
Gdzie zmienne $podaj1="ktos" $podaj2="cos" questionmark.gif a nie ma zmiennej akcja.. dlaczego ?
Guest
Nie wiem czy to cos pomoze ale na poczatku skryptu mam:
$akcja = $_GET["akcja"];
$podaj1 = $_GET["podaj1"];
$podaj2 = $_GET["podaj2"];
moze to cos przez to ?
dzieki za pomoc
Guest
biggrin.gif
cos pokombinowalem i teraz jest juz w ogole dramat :/ oto kod zrodlowy :
  1. <?php
  2. elseif ($akcja==&#092;"loguj\"){
  3. if(($admin_login==$podaj1)||($admin_haslo==$podaj2)){
  4. poczatek();
  5. oknododaj();
  6. koniec();
  7. }
  8. else{
  9. echo &#092;"<p align=\"center\\">Zaloguj sie!</p>\";
  10. poczatek();
  11. oknologuj();
  12. koniec();
  13. }
  14. ?>


gdy wpisze z reki news.php?loguj to wywoluje mi funkcje oknododaj, a przeciez powinien wywolac funkcje oknologuj :/
pomocy !
legorek
Bardzo zawile piszesz. Chyba chodzi ci o to:
  1. <?php
  2. if (!$akcja==&#092;"loguj\")
  3. {
  4.   if(($admin_login==$podaj1)||($admin_haslo==$podaj2))
  5.     {
  6.     poczatek();
  7.     oknododaj();
  8.     koniec();
  9.     }
  10.   }
  11.   else
  12.     {
  13.     echo (&#092;"<p align=\"center\\">Zaloguj sie!</p>\");
  14.     poczatek();
  15.     oknologuj();
  16.     koniec();
  17.     }
  18. ?>
Guest
Nie za bardzo rozumiem co zmieniles w tym co ja napisalem bylo elseif poniewaz byl to kolejny warunek w skrypcie. Dla pewnosci umieszcze caly skrypt zeby bylo jasne.
  1. <?php
  2. $login= &#092;"mucha\";
  3. $haslo= &#092;"serwis\";
  4. $akcja= $_GET[&#092;"akcja\"];
  5.  
  6. function poczatek(){
  7. echo &#092;"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"> n\";
  8. echo &#092;"<HTML><HEAD> n\";
  9. echo &#092;"<META HTTP-EQUIV=\"Content-type\\" CONTENT=\"text/html; charset=iso-8859-2\"> n\";
  10. echo &#092;"<TITLE>\".$z_title.\"</TITLE> n\";
  11. echo &#092;"<STYLE TYPE=\"text/css\\"> n\";
  12. echo &#092;"<!-- n\";
  13. echo &#092;"td { FONT-SIZE: 8pt; COLOR: #000000; FONT-FAMILY: Verdana} n\";
  14. echo &#092;"A:link {font-weight: bold; COLOR: #0000FF; TEXT-DECORATION: none} n\";
  15. echo &#092;"A:visited {font-weight: bold; COLOR: #000000; TEXT-DECORATION: none} n\";
  16. echo &#092;"A:active {font-weight: bold; COLOR: #000000; TEXT-DECORATION: none} n\";
  17. echo &#092;"A:hover {font-weight: bold; COLOR: #000000; TEXT-DECORATION: underline} n\";
  18. echo &#092;"--> n\";
  19. echo &#092;"</STYLE> n\";
  20. echo &#092;"</HEAD><BODY> n\";
  21.  
  22. echo &#092;"<table align=\"center\\" border=\"0\" width=\"100%\"><tr><TD>\";
  23. }
  24.  
  25. function oknododaj(){
  26. echo &#092;"<FORM ACTION=\"news.php?akcja=admin\\" METHOD=\"GET\">\";
  27. echo &#092;"Obrazek:<BR> <INPUT TYPE=\"text\\" NAME=obrazek><BR>\";
  28. echo &#092;"Autor:<BR> <INPUT TYPE=\"text\\" NAME=autor><BR>\";
  29. echo &#092;"Tresc:<BR> <TEXTAREA NAME=tresc ROWS=\"10\\" COLS=\"35\"></textarea><BR>\";
  30.  
  31. }
  32.  
  33.  
  34. function oknologuj(){
  35. echo &#092;"<FORM ACTION=\"news.php?akcja=loguj&admin_login=$podaj1&admin_haslo=$podaj2\\" METHOD=\"GET\">\";
  36. echo &#092;"Login : <input type=\"text\\" name=podaj1 size=\"12\" maxlength=\"25\" style=\"background: #f7f7f7\"><BR>\";
  37. echo &#092;"Haslo : <input type=\"password\\" name=podaj2 size=\"12\" maxlength=\"15\" style=\"background: #f7f7f7\"><BR>\";
  38. echo &#092;"<INPUT TYPE=\"submit\\" VALUE=\"Loguj\">\";
  39. }
  40.  
  41. function koniec() {
  42. echo &#092;"</td></tr></table>\";
  43. echo &#092;"</BODY></HTML> n\";
  44. }
  45.  
  46.  
  47. if ($akcja==&#092;"\"){
  48. $akcja=&#092;"pokaz\";
  49. }
  50.  
  51. if ($akcja==&#092;"pokaz\"){
  52. $pomocniczy=fopen(&#092;"licz_wiad.txt\",\"r\");
  53. $ile_wiad=fgets($pomocniczy);
  54. fclose($pomocniczy);
  55.  
  56. $wiadomosci=fopen(&#092;"wiad.txt\",\"r\");
  57. $dlugosc=filesize(&#092;"wiad.txt\");
  58. $ida=fgets($wiadomosci,$dlugosc);
  59. $pieces = explode (&#092;"|\", $ida);
  60.  
  61. for($a=0;$a<($ile_wiad);$a++) {
  62. echo ($pieces[$a+$b]);
  63. echo (&#092;"<br>\");
  64. echo ($pieces[($a+1+$b)]);
  65. echo (&#092;"<br>\");
  66. echo ($pieces[($a+2+$b)]);
  67. echo (&#092;"<br>\");
  68. echo ($pieces[($a+3+$b)]);
  69. echo (&#092;"<br>\");
  70. $b=$b+3;
  71. }
  72. fclose($wiadomosci);
  73. }
  74.  
  75. elseif ($akcja==&#092;"loguj\"){
  76. if(($admin_login==$podaj1)||($admin_haslo==$podaj2))
  77. { //TO WYKONUJE //
  78. poczatek();
  79. oknododaj();
  80. koniec();
  81. }
  82. else{ 
  83. echo &#092;"<p align=\"center\\">Zaloguj sie!</p>\";
  84. poczatek();
  85. oknologuj();
  86. koniec();
  87. }
  88.  
  89.  
  90. }
  91.  
  92. ?>


Ten skrypt w tej postaci jeszcze nic nie robi, bo jest niepelny. Jak wpisuje w przegladarce news.php?akcja=loguj to wykonuje to co oznaczylem komentarzem "//TO WYKONUJE//" a nie powinien przeciez nie podalem w sciezce ani hasla ani loginu wiec te zmienne powinny byc puste czy nie tak ?
kaczan-ek
sam sobie odpowiem smile.gif smile.gif na gorze jest login i haslo a nie admin_login i admin_haslo :// ale czy moze mi ktos powiedziec czy przekazywanie danych w ten sposob powinno dzialac...
U mnie jest tak ze gdy w formularz wpisze poprawny login i porpawne haslo to sciezka wyglada tak :
http://localhost/news.php?podaj1=mucha&podaj2=serwis
Nie przekaazuje zmiennej AKCJA, dlaczego ?
DeyV
w sytuacji, gdy korzystasz z metody Get w formularzu, a adresu znajdującego się w action usuwane są wszystkie zmienne (to po ?)

Aby uniknąc utracenia tych informacji można skoszystać z 2 sposobów:
a) skorzystać z method="post";

cool.gif wykorzystać pole hidden, i to w nim przekazać ten parametr
Guest
wykorzystalem pole hidden i rzeczywiscie sciezka w IE zmienila sie na :
http://localhost/news.php?podaj1=mucha&pod...wis&akcja=loguj
tylko ze nic z tego nie wynika :/ ciagle nie wykonuje funkcji oknododaj ale powraca do funkcji oknologuj :/ jakies sugestie ?
Guest
W adresie sciezki ktory napisalem powyzej cos sei skrzaczylo, w rzeczywistosci wszystko wyglada ok tak jak powinni, dlatego tez nie wiem gdzie lezy problem.

news.php?akcja=loguj&podaj1=mucha&podaj2=serwis

wszystko sie zgadza ale funkcja okododaj nie jest odpalana.. dlaczego questionmark.gif
legorek
Masz wyłączone na serwerz register globals.
Zamień na to:
  1. <?php
  2. if(($admin_login==$_GET[&#092;"$podaj1\"])||($admin_haslo==$_GET[\"podaj2\"]))
  3. ?>

Sprawdź też nazwy zmiennych, czy coś nie pomieszałeś. Ogólnie jeśli przekazujesz jakąś zmienną, za pomocą adresu np.
Cytat

to zmienna dostępna jest pod nazwą:
Cytat
$_GET["zmienna"]
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.