suryx
8.04.2008, 14:25:11
Jesli ja pisze na adres : index.php?dir=/admin&edytuj=faq.php to ten kod nie dziala funkcja isset ;(
<?php
if(isset($_GET['dir']) && $_GET['dir'] == $_GET[$kat] && 'edytuj' == isset($_GET[$nazwa])) {
}
?>
kto chce poprawic mi ten kod ? prosze ?
Cienki1980
8.04.2008, 14:28:27
Przenoszę na Przedszkole, chociaż powinienem zamknąć, żeby poziom forum nie upadł.
Zapraszam do manuala żebyś sprawdził jak działa i co zwraca funkcja isset
suryx
8.04.2008, 14:30:36
ale jest trudny manual , ja sam nie poradze ;/
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
marcio
8.04.2008, 14:37:20
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
suryx
8.04.2008, 14:38:41
Nie moge wiedziec o twojej odpowiedzi ...
Prosze pana , zobacz jaki mam kod :
<?
if(isset($_GET['dir']) && $_GET['dir'] == $_GET['kat'] && 'edytuj' == isset($_GET['nazwa'])) {
$id=$_GET['nazwa'];
$id2=$_GET['kat'];
$plik = fopen($id2/$id , "r"); $zaw = fread($plik, 9999
); }
?>
<div id="left">
<form action="plik.php" method="post">
<textarea id="textfull">
</textarea><br>
<input type="submit" value="Zapisz">
</form> </div>
Jesli wpisuje adres : index.php?dir=/admin&edytuj=faq.php to nei dziala ;(
Cienki1980
8.04.2008, 14:41:33
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
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.
marcio
8.04.2008, 14:44:56
@Cienki1980 nie rozumiem cie??Mozesz bardziej sie wytlumaczyc

Powiem tyle ze konstrujckja twojego if'a jest zla a reszty nawet nie spradzalem
suryx
8.04.2008, 14:45:46
to moze byc taki kod :
<?php
if('dir' == isset($_GET['kat']) && 'edytuj' == isset($_GET['nazwa'])) ?>
Pilsener
8.04.2008, 14:46:22
<?php
$var = '';
// This will evaluate to TRUE so the text will be printed.
echo "This var is set so I will print."; }
?>
- 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
~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.
Cienki1980
8.04.2008, 14:52:04
@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.
marcio
8.04.2008, 14:59:20
@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
suryx
8.04.2008, 15:00:58
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 ...
Cienki1980
8.04.2008, 15:21:56
@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ść.
suryx
8.04.2008, 15:38:53
problem rozwiazany , wielki thx ;]
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.