Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]FUNKCJA ISSET I GET [prolem]
suryx
post
Post #1





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

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


Jesli ja pisze na adres : index.php?dir=/admin&edytuj=faq.php to ten kod nie dziala funkcja isset ;(



  1. <?php
  2. if(isset($_GET['dir']) && $_GET['dir'] == $_GET[$kat] && 'edytuj' == isset($_GET[$nazwa])) {
  3.  
  4. echo 'edytuj';
  5. }
  6. ?>


kto chce poprawic mi ten kod ? prosze ?
Go to the top of the page
+Quote Post
Cienki1980
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Przenoszę na Przedszkole, chociaż powinienem zamknąć, żeby poziom forum nie upadł.

Zapraszam do manuala żebyś sprawdził jak działa i co zwraca funkcja isset
Go to the top of the page
+Quote Post
suryx
post
Post #3





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

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


ale jest trudny manual , ja sam nie poradze ;/
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Programowanie to zajęcie, które same w sobie selekcjonuje tych którzy się tym zajmują.
Przeczytaj dokładnie dokumentację: isset(). Masz tam również przykłady.

Jeśli nie dasz rady. Trudno.
Może dostaniesz gotowca, ale nie od razu (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
marcio
post
Post #5





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


To moze powiedz czego nie rozumiesz??
Wiesz jaka jest roznica pomiedzy empty() a isset() isset(0 spradza czy dana zmienna zostala wyslalana a mepty czy nie jest pusta
Go to the top of the page
+Quote Post
suryx
post
Post #6





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

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


Nie moge wiedziec o twojej odpowiedzi ...

Prosze pana , zobacz jaki mam kod :

  1. <?
  2. if(isset($_GET['dir']) && $_GET['dir'] == $_GET['kat'] && 'edytuj' == isset($_GET['nazwa']))
  3. {
  4. echo 'Jest';
  5. $id=$_GET['nazwa'];
  6. $id2=$_GET['kat'];
  7. $plik = fopen($id2/$id , "r");
  8. $zaw = fread($plik, 9999);
  9. fclose($plik);
  10. }
  11. ?>
  12. <div id="left">
  13. <form action="plik.php" method="post">
  14. <textarea id="textfull">
  15. <? echo $zaw; ?>
  16. </textarea><br>
  17. <input type="submit" value="Zapisz">
  18. </form> </div>


Jesli wpisuje adres : index.php?dir=/admin&edytuj=faq.php to nei dziala ;(
Go to the top of the page
+Quote Post
Cienki1980
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Do autora: Nie działa bo źle wykorzystujesz isset() .. raz całkiem dobrze, raz zupełnie źle. Poza tym w warunku IF masz nie tylko ten jeden błąd dla którego nic tam nie zadziała ... sprawdź jakie wartości otrzymujesz z $_GET i do czego chcesz je przyrównać .. i na kod php zajrzyj do manuala w końcu.

@marcio: ciekawe jest to co piszesz ... funkcja isset sprawdza czy zmienna została wysłana .. czyli do zmiennych tworzonych w skrypcie nie mam co jej używać bo mi nie zadziała (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

PS. Do wszystkich odpowiadających ... proszę nie dawać gotowców .. każdy zostanie usunięty. Jeżeli ktoś nie ma zamiaru zajrzeć do manuala nie zasługuje, żeby mu dawać coś gotowego.
Go to the top of the page
+Quote Post
marcio
post
Post #8





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


@Cienki1980 nie rozumiem cie??Mozesz bardziej sie wytlumaczyc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Powiem tyle ze konstrujckja twojego if'a jest zla a reszty nawet nie spradzalem
Go to the top of the page
+Quote Post
suryx
post
Post #9





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

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


to moze byc taki kod :

  1. <?php
  2. if('dir' == isset($_GET['kat']) && 'edytuj' == isset($_GET['nazwa']))
  3. ?>
Go to the top of the page
+Quote Post
Pilsener
post
Post #10





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


  1. <?php
  2. $var = '';
  3.  
  4. // This will evaluate to TRUE so the text will be printed.
  5. if (isset($var)) {
  6. echo "This var is set so I will print.";
  7. }
  8. ?>
- prosto z manuala.

Wiem to, bo sam kiedyś używałem tylko isset (sam nie wiem, skąd to się bierze) i czułem strach przed manualem. Teraz jak mi się śni, że ktoś mnie odciął od manuala to się budzę z krzykiem (IMG:http://forum.php.pl/style_emoticons/default/ohmy.gif)
Go to the top of the page
+Quote Post
mike
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


~Cienki1980 isset() często powoduje przekłamania. Pamiętaj że zmienna, która ma wartość null lub false albo jest pustym ciągiem również jest ustawiona.
Testowanie zmiennych tą funkcją w tym kontekście może dać nieoczekiwane informacje więc dużo bezpieczniej stosować empty()

Uroki typowania w PHP.
Go to the top of the page
+Quote Post
Cienki1980
post
Post #12





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


@suryx: nie nie zadziała Ci ... piszę raz jeszcze:
- sprawdź jak działa isset ( co zwraca )
- sprawdź jaką tablicą jest $_GET .. jakie ma klucze i jakie wartości
- no i może powiedz co chcesz zrobić


@marcio: Ty napisałeś że isset sprawdza czy zmienna jest wysłana .. to ja się zapytałem czy w przypadku gdy zmienna jest tworzona w kodzie to isset nie da mi żadnego wyniku ? bo nie będzie to zmienna wysłana a utworzona w skrypcie.

EDIT UP: @mike .. wiem, że tak się dzieje ... co nie zmienia faktu że można używać isset o ile chcemy jej użyć w dobrym miejscu z dobrym zamiarem .. to co próbuje zrobić autor to raczej zamiar raczej nie dobry.
Go to the top of the page
+Quote Post
marcio
post
Post #13





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


@Cienki1980 chodzilo mi to co mowil mike ogolnie teraz dobrze nie wiem co zwraca a nie wiem tez po co mialbym uzyc to na zmiennych tworzonych w skrypcie
Go to the top of the page
+Quote Post
suryx
post
Post #14





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

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


1. nic nie zwraca ...
2. tu macie zobaczyc :

if('dir' == isset($_GET['kat']) && 'edytuj' == isset($_GET['nazwa']))

kat = kategoria(folder) ktora zawiera nazwa pliku (np: cos.php )..

$id=$_GET['nazwa'];
$id2=$_GET['kat'];
$plik = fopen($id2/$id , "r"); // otwiera plik folder/cos.php
$zaw = fread($plik, 9999);
fclose($plik);

<form action="plik.php" method="post">
<textarea id="textfull">
<? echo $zaw; ?> // mozliwe przegleda jak edytor
</textarea>

jesli bede wpisal na adres : index.php?dir=folder&edytuj=cos.php to bedzie OK ... ale napraw mi kod ...

Ten post edytował suryx 8.04.2008, 15:11:47
Go to the top of the page
+Quote Post
Cienki1980
post
Post #15





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


@syrux:
tego linku index.php?dir=folder&edytuj=cos.php
tablica GET będzie wyglądała tak:
$_GET['dir'] będzie miała wartość 'folder'
$_GET['edytuj'] będzie miała wartość 'cos.php'

Ty w warunku jeszcze masz $_GET['kat'] i $_GET['nazwa'] których w linku brak.

isset() zwraca TRUE lub FALSE ... więc przyrównując 'cos'==isset($_GET['kat'] będziesz miał taki wynik:
'cos' dla php istnieje więc będzie traktował jako TRUE
isset($_GET['kat']) zwróci FALSE .. więc całe wyrażenie zwróci FALSE .. bo TRUE nie jest równe z FALSE.

Podpowiedź .. za pomocą isset sprawdzasz czy zmienna jest ustawiona .. w Twoim przypadku możesz traktować to jako sprawdzenie czy wystąpiła w linku .... a za pomocą == możesz sprawdzić czy zmienna z GET ma jakąś ustaloną wartość.
Go to the top of the page
+Quote Post
suryx
post
Post #16





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

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


problem rozwiazany , wielki thx ;]
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: 21.12.2025 - 18:58