Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Podstawy formularzy
Forum PHP.pl > Forum > Przedszkole
piotrek0
Witajcie!

Przejrzałem i chyba już setki kursów PHP i większość z nich jest do kitu :/

Dlatego zwracam się do Was z prośbą o podanie mi odnośnika do kursu w którym jest wytłumaczone jak zrobić formularz dodający przez PHP dane do bazy MySQL.

Długo nad tym siedziałem i nawet popełniłem taki kod, ale co z tego jak wiele z niego nie rozumiem.

  1. <?php
  2. include 'sqlLogin.php';
  3.  
  4. if(isset($_POST['nazwisko']))
  5. {
  6. $nazwa_uzytkownika = $_POST['nazwisko'];
  7. $limit_zamowienia = $_POST['limit'];
  8. $zapytanie = "INSERT INTO `uzytkownik` (`nazwa_uzytkownika`, `limit_zamowienia`) VALUES ('$nazwa_uzytkownika', '$limit_zamowienia')";
  9. mysql_query($zapytanie);
  10. }
  11. ?>
  12. <form encetype="text/plain action="uzytkownik2.php" method="POST">
  13. <input type="text" name="nazwisko" value="NAZW">
  14. <input type="text" name="limit" value="987">
  15. <input type="submit" value="Wyslij">
  16. </form>
  17. <?php
  18.  
  19.  
  20. $wybranie = 'select * from uzytkownik ORDER BY id_uzytkownika DESC';
  21. $wynik = mysql_query($wybranie);
  22. $rekord = mysql_fetch_array($wynik);
  23. $rekordRow = mysql_fetch_row($wynik);
  24.  
  25. echo '<br><b>Nazwa użytkownika</b> '.$rekord[0].'<br><b>Limit zamówienia</b> '.$rekord[1].'<br><b>Aktywniść konta:</b> '.$rekord[2].'<br>ID: '.$rekord[3].'<br><br>';
  26.  
  27. echo '<br><b>Nazwa użytkownika</b> '.$rekordRow[0].'<br><b>Limit zamówienia</b> '.$rekordRow[1].'<br><b>Aktywniść konta:</b> '.$rekordRow[2].'<br>ID: '.$rekordRow[3].'<br><br>';
  28.  
  29. echo '<br> tablica';
  30. print_r($rekord);
  31.  
  32. while ($wiersz_danych = mysql_fetch_row($wynik))
  33.  
  34. {
  35.  
  36. for ($i=0;$i<count($wiersz_danych);$i++)
  37.  
  38. print $wiersz_danych[$i]." ";
  39.  
  40. print "<Br>";
  41.  
  42. }
  43. ?>


Oto moje pytania:

Linia 4

O co chodzi z tym if(isset($_POST['nazwisko']))? Czemu musimy sprawdzać czy nazwisko "is set" i dlaczego akurat to pole formularza a nie inne jak "limit"?

linia 8 Czym się różni ` od ' ?

I na koniec
Używam mysql_fetch_row do wyświetlania zawartości bazy danych, ale podobno w dzisiejszych czasach już lepiej jest używać mysql_fetch_array , ale nie wiem jak to zrobić. I tu prosiłbym o link lub wytłumaczenie.

Z góry dziękuję za pomoc.
MateuszS
Isset sprawdza czy został wysłany formularz. Po naciśnięciu buttona wysyłamy formularz i wykonuje się kod wrzucający do bazy dane nie? Ale co by się działo bez isseta? Wchodzisz na stronę a tu zonk, wysłano zapytanie z pustymi danymi do bazy, bo nie sprawdziło formularza. Równie dobrze możesz dać limit zamiast nazwisko przy sprawdzaniu, jak chcesz, ale najlepiej nadać submitowi name i sprawdzać po submicie winksmiley.jpg Bo zawsze zostanie naciśnięty.

Oczywiście rozumiem że ten kod to przykład bo jest trochę bez sensu, najpierw mysql_fetch_array potem row, wystarczy jeden tongue.gif Polecam jakąś książkę
mortus
Cytat(MateuszScirka @ 27.03.2010, 20:57:13 ) *
Isset sprawdza czy został wysłany formularz. Po naciśnięciu buttona wysyłamy formularz i wykonuje się kod wrzucający do bazy dane nie? Ale co by się działo bez isseta? Wchodzisz na stronę a tu zonk, wysłano zapytanie z pustymi danymi do bazy, bo nie sprawdziło formularza. Równie dobrze możesz dać limit zamiast nazwisko przy sprawdzaniu, jak chcesz, ale najlepiej nadać submitowi name i sprawdzać po submicie winksmiley.jpg Bo zawsze zostanie naciśnięty.

Oczywiście rozumiem że ten kod to przykład bo jest trochę bez sensu, najpierw mysql_fetch_array potem row, wystarczy jeden tongue.gif Polecam jakąś książkę
Nieprawda isset sprawdza, czy zmienna została zainicjowana, również pustą wartością. Przykład
  1. $a = '';
  2. isset($a); // zwróci true
  3. isset($b); // zwróci false
isset nie jest specjalnym poleceniem, które służy do sprawdzania, czy formularz został wysłany, aczkolwiek możemy takiego sprawdzenia dokonywać, przy czym sprawdzenie isset($_POST['nazwisko']) możemy interpretować jako "czy w tablicy $_POST istnieje klucz o nazwie 'nazwisko'?".
@piotrek0 W kodzie który podałeś należy użyć składni
  1. if(isset($_POST['nazwisko']) && $_POST['nazwisko'] != '')
ponieważ $_POST['nazwisko'] zostanie zainicjowane pustą wartością, jeżeli nie wypełnimy odpowiedniego pola.
Natomiast znak ` to gravis, czyli znak akcentu. W bazach danych nazwy baz, tabel i pól możemy otaczać tylko tym znakiem, a ' (czyli apostrof) służy do definiowania łańcucha znakowego.
sadistic_son
Pojedynczy cudzyslow ( ' ) uzywasz w php np. do tworzenia ciagow znakow np. echo ' costam'; a w SQLu konkretne wartosci. Natomiast to ( ` ) uzywasz w zapytaniu kierowanym do SQL umieszczajac nazwy tabel i kolumn.
  1. <?php
  2. include 'sqlLogin.php';
  3.  
  4. if(isset($_POST['nazwisko']) && $_POST['nazwisko']!="" && isset($_POST['limit']) && $_POST['limit']!="" && isset($_POST['send']))
  5. {
  6. $nazwa_uzytkownika = $_POST['nazwisko'];
  7. $limit_zamowienia = $_POST['limit'];
  8. $zapytanie = "INSERT INTO `uzytkownik` (`nazwa_uzytkownika`, `limit_zamowienia`) VALUES ('$nazwa_uzytkownika', '$limit_zamowienia')";
  9. mysql_query($zapytanie);
  10. }
  11. ?>
  12. <form encetype="text/plain action="uzytkownik2.php" method="POST">
  13. <input type="text" name="nazwisko" value="NAZW">
  14. <input type="text" name="limit" value="987">
  15. <input type="submit" name="send" value="Wyslij">
  16. </form>
  17. <?php
  18.  
  19.  
  20. $wybranie = 'select * from `uzytkownik` ORDER BY `id_uzytkownika` DESC';
  21. $wynik = mysql_query($wybranie);
  22. $num=mysql_num_rows($wynik);
  23. if($num>0){
  24. while($rekord = mysql_fetch_array($wynik, MYSQL_NUM)){
  25.  
  26. echo '<br><b>Nazwa użytkownika</b> '.$rekord[0].'<br><b>Limit zamówienia</b> '.$rekord[1].'<br><b>Aktywniść konta:</b> '.$rekord[2].'<br>ID: '.$rekord[3].'<br><br>';
  27. }}else{ echo 'Brak danych z tej tabeli!';}
  28. ?>
Masz tu poprawiony kod.
Warunek sprawdza czy zostaly wypelnione potrzebne pola czyli nazwisko i limit oraz czy kliknieto w 'Wyslij'. Jesli tak to wykonuje sie dodanie do bazy. Nastepnie wysiwetlany jest formularz. Zmienna $num jest iloscia rekordow z tego zapytania. Warunek if sprawdza czy jest minimum 1 rekord. Jesli tak to wyswietlane sa rekordy z bazy. Petla while wykonuje wyswietlenie wszystkich rekordow spelniajacych kryteria zapytania (select * from `uzytkownik` ORDER BY `id_uzytkownika` DESC), czyli wyswietli wszystkie rekordy uporzadkowane wg. id_uzytkownika majejaco. Ciag znakow podany w echo wyswietli sie tyle razy ile jest rekordow, natomiast za $rekord[0], $rekord[1] itd. zostana podstawione wartosci kolejnych kolumn z tej tabeli, przy kazdym powtorzeniu petli - nastepny wiersz. Jesli $num <=0 to wyswietla sie komunikat ze brak rekordow.
Proste? winksmiley.jpg
MateuszS
Mortus, napisalem co isset robi w jego kodzie a nie co robi w ogole smile.gif
piotrek0
Aha czyli isset służy do tego, że jak jakiś maniak wejdzie nam na stronę i będzie naciskać F5 kilkaset razy to nam się dzięki temu nie pojawi kilkaset wpisów w bazie danych.

Dziękuję! Co do książek to już kilka wypożyczałem zaczynałem czytać, krzyczałem w myślach "WTF?!" i odkładałem. Ciężko o pomoc która wytłumaczy elementarne rzeczy, albo są one w ogóle nie tłumaczone, albo tak, że "echh napijmy się".

Najgorsze jest to, że jest w sieci dużo śmiecia, które tłumaczy jak dodawać do siebie zmienne, ale żeby trafić na to jak zrobić formularze z dodawaniem danych do bazy, czy jak te dane wyciągnąć do tablicy, a potem jak tę tablicę wydrukować na ekranie w sposób przystępny dla użytkownika to już nie.

Dlatego zdesperowany zawracam Wam głowę, chociaż zawszę wolę sam poszukać, pogooglować i poczytać.

Czekam na rozwikłanie reszty zagadek smile.gif

I oczywiście dziękuję smile.gif


//edit
O widzę, że jest więcej odpowiedz, zaraz ogarnę i się ustosunkuję.
sadistic_son
Cytat(piotrek0 @ 27.03.2010, 21:28:24 ) *
Aha czyli isset służy do tego, że jak jakiś maniak wejdzie nam na stronę i będzie naciskać F5 kilkaset razy to nam się dzięki temu nie pojawi kilkaset wpisów w bazie danych.
Nie, isset Cie przed F5 nie zabezpieczy. Isset powoduje ze rekord sie nie doda do bazy jesli nie klikniesz w 'Wyslij' i nie wypelnisz pol nazwisko i limit.
MateuszS
Cytat(sadistic_son @ 27.03.2010, 21:32:45 ) *
Nie, isset Cie przed F5 nie zabezpieczy. Isset powoduje ze rekord sie nie doda do bazy jesli nie klikniesz w 'Wyslij' i nie wypelnisz pol nazwisko i limit.


Dokładnie.

Jeżeli nie rozumiesz kursów, to polecam jakąś analizę prostego kodu, praktykę, jakąś dobrą książkę. Kursy to czysta teoria, bez praktycznych przykładów typu system newsów, shoutbox. Takich skryptów jest mnóstwo, wystarczy wpisać w google odpowiednią frazę, pobierasz i analizujesz.
sadistic_son
Osobiście polecam tą książkę: Lis M.: PHP i MySQL dla każdego. Wydawnictwo Helion, Gliwice 2005. stara ale jara. Wszystko jest tak wytlumaczone ze nie majac kompletnie zadnego polecia o programowaniu nawet debil nauczy sie z niej php i podstaw sql/mysql.
mortus
Cytat(sadistic_son @ 27.03.2010, 21:20:40 ) *
Pojedynczy cudzyslow ( ' ) uzywasz w php np. do tworzenia ciagow znakow np. echo ' costam';
@sadistic_son: Nie tylko w PHP, bo Twoje $zapytanie wstawia łańcuchy znaków do bazy danych i używasz tam apostrofów (dokładniej w VALUES ('...', '...')).
@MateuszScirka: Sorry, że się czepiam, ale już Ci to gdzieś tłumaczyłem.
@piotrek0: Jeżeli użytkownik naciśnie F5 zaraz po wysłaniu formularza, to dostanie pytanie "Czy wysłać ponownie dane?". Zatem isset nie "blokuje" F5. F5 możemy zablokować np. przekierowując użytkownika na konkretną stronę za pomocą funkcji header, oczywiście po poprawnym zalogowaniu. isset w formularzach ma sprawdzać, czy np. checkbox-y albo radio zostały zaznaczone, lub czy pole zostało wypełnione 0 (zerem). Ogólnie rzecz biorąc isset doskonale się nadaje do sprawdzenia, czy szczególny "typ danych" został przesłany w odpowiednim polu. Oczywiście możemy również sprawdzać, czy formularz został wysłany, ale wtedy tak jak Mateusz pisał, najlepiej nadać parametr name przyciskowi submit.



Cytat(sadistic_son @ 27.03.2010, 21:32:45 ) *
Nie, isset Cie przed F5 nie zabezpieczy. Isset powoduje ze rekord sie nie doda do bazy jesli nie klikniesz w 'Wyslij' i nie wypelnisz pol nazwisko i limit.



Cytat(MateuszScirka @ 27.03.2010, 21:38:39 ) *
Dokładnie.

Jeżeli nie rozumiesz kursów, to polecam jakąś analizę prostego kodu, praktykę, jakąś dobrą książkę. Kursy to czysta teoria, bez praktycznych przykładów typu system newsów, shoutbox. Takich skryptów jest mnóstwo, wystarczy wpisać w google odpowiednią frazę, pobierasz i analizujesz.


NIEPRAWDA
Jeżeli będzie tak skonstruowany warunek, jak w listingu z pierwszego postu, a na pola w bazie danych nie będzie nałożonej restrykcji NOT NULL, to rekord doda się do bazy danych i będą w nim dwa puste pola.
sadistic_son
Cytat(mortus @ 27.03.2010, 21:48:30 ) *
NIEPRAWDA
Jeżeli będzie tak skonstruowany warunek, jak w listingu z pierwszego postu, a na pola w bazie danych nie będzie nałożonej restrykcji NOT NULL, to rekord doda się do bazy danych i będą w nim dwa puste pola.
Właśnie to jest kolego nie prawda. Nie sądzisz że to: isset($_POST['nazwisko']) && $_POST['nazwisko']!="" dość solidnie zabezpiecza przed dodaniem pustego rekordu? EDIT: ok, jesli chodzi o pierwszy post to masz racje. Ale w moim poscie juz jest bezpiecznie smile.gif

Cytat(mortus @ 27.03.2010, 21:48:30 ) *
@sadistic_son: Nie tylko w PHP, bo Twoje $zapytanie wstawia łańcuchy znaków do bazy danych i używasz tam apostrofów (dokładniej w VALUES ('...', '...')).
Przeciez napisalem ze w SQLu sluzy do dodawania konkretnych wartosci.
piotrek0
No dobrze to co na razie zrozumiałem to to, że tego gravisa używamy w mysql i tak po prostu jest.

Co do isset. To zrozumiałem, że ta instrukcja warunkowa sprawdza czy pola formularza nie są puste, i jak są to wtedy nie pozwala na wykonanie zapytania do bazy czyli dodania rekordu.

Ale czy konieczne jest robienie tego dla wszystkich pól? Może będę chciał zezwolić użytkownikowi na nie wypełnianie pola? A co się stanie, jak w ogóle nie użyję isset? Przy każdym wejściu na stronę będzie wywoływało się zapytanie i puste rekordy trafią do mojej tabeli?

A jaką wartość będzie miała zamienna $_POST jeżeli jednak wyślemy puste formularze? NULL?
MateuszS
Piotrek0, nie każde pole musi być wypełnione, ty decydujesz które. Wiadomo, pole hasło/login itp. muszą, wiadomo, ale np. numer telefonu nie, jeżeli pozostawisz puste to się nic nie stanie. W przypadku loginu i hasła (przykład) musisz sprawić np. za pomocą empty czy zmienna nie jest pusta no i musisz ją zwalidować (czy jak to się pisze)
sadistic_son
Cytat(piotrek0 @ 27.03.2010, 22:04:26 ) *
A co się stanie, jak w ogóle nie użyję isset? Przy każdym wejściu na stronę będzie wywoływało się zapytanie i puste rekordy trafią do mojej tabeli?
Tak się właśnie stanie.

Cytat(piotrek0 @ 27.03.2010, 22:04:26 ) *
A jaką wartość będzie miała zamienna $_POST jeżeli jednak wyślemy puste formularze? NULL?
Tak.

Cytat(piotrek0 @ 27.03.2010, 22:04:26 ) *
Co do isset. To zrozumiałem, że ta instrukcja warunkowa sprawdza czy pola formularza nie są puste, i jak są to wtedy nie pozwala na wykonanie zapytania do bazy czyli dodania rekordu.
Dobrze zrozumiałeś.

Cytat(piotrek0 @ 27.03.2010, 22:04:26 ) *
Ale czy konieczne jest robienie tego dla wszystkich pól? Może będę chciał zezwolić użytkownikowi na nie wypełnianie pola?
Jesli chcesz np. aby uzytkownik musial wypelnic nazwisko a tylko mogl opcjonalnie wypelnic limit to nie musisz uzywac isste w pierwszym warunku. Ale musisz uzyc go dalej aby sprawdzic czy uzytkownik to wypelnil czy nie. Cos musi byc dodane do bazy w miejsce limit. Albo to co wpisal uzytkownik albo np. znak 0 czy + czy cokolwiek innego ustalonego przez Ciebie. Tzn nie musi byc dodane jesli w tabeli dla konkretnej kolumny nie ustawiles NOT NULL. Ale ja proponuje jednak i tak wpisywac np. 0 bo inaczej moze to powodowac problemy przy pozniejszym dzialaniu na rekordach.
piotrek0
Cytat(MateuszScirka @ 27.03.2010, 22:10:13 ) *
Dobra ludzie, nie mąćcie mu w głowie tą teorią,

Piotrek0, nie każde pole musi być wypełnione, ty decydujesz które. Wiadomo, pole hasło/login itp. muszą, wiadomo, ale np. numer telefonu nie, jeżeli pozostawisz puste to się nic nie stanie. W przypadku loginu i hasła (przykład) musisz sprawić np. za pomocą empty czy zmienna nie jest pusta no i musisz ją zwalidować (czy jak to się pisze)

Właśnie usunąłem isset z tego mojego kodu i tak jak odświeżałem to mi się nowe rekordy pojawiały, a jak przywróciłem ją z powrotem to już nie.

Dlaczego za pomocą empty mam to sprawdzić? Isset się do tego nie nadaje?

Następne co zrobiłem to nadałem name="przycisk" przyciskowi i ustawiłem isset na "przycisk".
Ale rezultaty były inne niż się spodziewałem. Kiedy nacisnąłem przycisk a potem odświeżałem to rekordy do bazy danych dodawały się, ale jak wszedłem od nowa na stronę i nic nie ruszałem tylko odświeżałem to wtedy nie.

Bo ten submit to przekazuje do zmiennej $_POST to co jest w formularzach, i jeżeli formularze będą puste to przekaże NULL

Chyba powoli zaczynam rozumieć.

Jaką wartość będzie miała ta zmienna?
  1. $a

a ta?
  1. $b=''


obie NULL?

@sadistic_son

Cytat
Cytat(piotrek0 @ 27.03.2010, 22:04:26 )
Cytat
Co do isset. To zrozumiałem, że ta instrukcja warunkowa sprawdza czy pola formularza nie są puste, i jak są to wtedy nie pozwala na wykonanie zapytania do bazy czyli dodania rekordu.

Dobrze zrozumiałeś.

Skoro tak to dlaczego nie uchroni mnie to przed odświeżaniem?

Nie ochroni mnie to przed odświeżaniem, bo jak jakiś maniak już kliknie wyślij, to wtedy przeglądarka podczas odświeżania będzie wysyłać te same dane, co przy poprzednim załadowaniu. Jednak uchroni mnie to przed dodawaniem rekordu podczas wejścia na stronę.
erix
Ekhm, przecież to są stałe...?
piotrek0
Cytat(erix @ 27.03.2010, 22:33:19 ) *
Ekhm, przecież to są stałe...?

O co chodzi? smile.gif
Nie no racja niechcący wpisałem małpę zamiast dolara. Dzięki.
achill
na odświeżanie znam tylko jeden sposób - nie bedę go tu prezentował bo by troche zajał miejsca a nie o tym tu przeciez mowa - sprawdzanie czy wartosci nie sa zdublowane jeszcze przed zapisem do bazy - ma niestety pare wad - przy duzej ilosci wierszy sprawdzenie chwilke zajmie - poza tym wymaga gruntownego przemyslenia ktora kolumne ma sprawdzac - przeciez nie kazda z osobna bo gdyby cos takiego zastosowali na tym forum to kazdy z nas moglby zamiescic tylko jeden post w zyciu w obrebie calego forum).

co do isset - to troche chlopaki namieszaliscie albo ja was nie zrozumialem blinksmiley.gif

isset to z angielskiego is set = jest wybrany (w wolnym tlumaczeniu)
czyli
if (isset($_POST['user'])&&($_POST['user'] != ')) ...

nalezy odczytywac jako:

jesli ( jest wybrane (pole post o nazwie [user]) //inaczej: zostalo przeslane pole post o nazwie user// i (to wlasnie pole o nazwie [user] nie ma zadnej wartosci )to ... (i tu wpisujemy instrukcje do wykonania np dodania wartosci przeslanego pola do bazy danych)

takze samo isset($_POST['user']) sprawdza czy pole 'user' zostalo przeslane/istnieje - innaczej mowiac tworzy array o nazwie user o podanej przez uzytkownika wartosci i nic wiecej - latwo sprawdzic: print_r($_POST);
if (isset($_POST['user'])) - stawia warunek dla wykonania dalszych instrukcji - jesli zostalo przeslane pole user.

co do materialow z ktorych mozna sie uczyc polecam - tez juz nienajswiezsza "php5, apache i mysql - od podstaw" z serii programmers for programmers wydanej po polsku w helionie. ja sie z tego uczylem i odnosze wrazenie ze mam solidne podstawy

mortus
Cytat(achill @ 28.03.2010, 09:26:20 ) *
isset to z angielskiego is set = jest wybrany (w wolnym tlumaczeniu)
To ty chba znasz inny angielski niż ja, bo is set w moim wolnym tłumaczeniu znaczy "jest ustawiony", a nie jest wybrany, zresztą tak mówi manual php.
Cytat(achill @ 28.03.2010, 09:26:20 ) *
pole 'user' zostalo przeslane/istnieje - innaczej mowiac tworzy array o nazwie user o podanej przez uzytkownika wartosci i nic wiecej - latwo sprawdzic: print_r($_POST);
A skąd. Przesłanie pola [user], również pustego spowoduje dodanie do tablicy $_POST indexu (klucza) [user], tablicę tworzy się w wyjątkowych sytuacjach (jeśli np. mamy kilka checkbox-ów z name="nazwa[]").
thek
Achill... Ja na odświeżanie znam taki sposób, że możesz sobie wciskać F5 ile razy chcesz, pierwsze klikniecie wyśle do bazy jako normalne dodanie, a każde kolejne będzie rozpoznawane jako update.
Isset -> pole jest ustawione, ma jakąkolwiek wartość (może być puste, NULL, nul)
empty -> sprawdza czy pole nie ma aby przypadkiem wartości pustej.

Piotrek... Jak widzę te kursy to Ty chyba na pierwszej stronie oglądaleś. Bo średnio niemal 100% kursów porusza temat łączenia i zapisu do bazy biggrin.gif Niektóre robia to lepiej, inne gorzej, ale niemal wszystkie pokazują gotowce! Może kłamię? Wpisz w google: php mysql. Pierwszy to manual php o bibliotece mysql, a drugi to pełnoprawny kurs na webmade.org, który od samej instalacji poprzez GOTOWCE pokazuje jak dodawać tabele, rekordy poprzez php i wyciągać je także poprzez php. Tak więc nie pieprz głupot, że setki oglądałeś, jak ja wpisałem dwa słowa w google i dostałem to czego Ty rzekomo nie znalazłeś. Chyba nie chcesz podpaść lenistwem od razu po rejestracji?
piotrek0
@thek
Na webmade to nie znalazłem takiego czegoś jak formulaże isset itp. A manual jest po angielsku, a ja się dopiero uczę angielskiego w takim zagadnieniu (Zwykle teksty jakoś jeszcze dukam).

Podsumowanie:
Już trochę się pogubiłem z tym isset, bo ilu ludzi tyle opinii, sam nie wie co to sprawdza, bo raczej nie sprawdza czy zmienna jest NULL, ale nie wiem. Wydaje mi się, że to sprawdza czy taka zmienna jak $_POST istnieje, bo jak formularz nie zostanie wysłany (czyli nie zostanie naciśnięty przycisk do wysyłania) to wtedy wygląda to tak

  1. $a = 0; // wartość nie NULL
  2. $b = ""; //wartość NULL
  3.  
  4. echo isset($a);
  5. echo "<br>";
  6. echo isset($b);
  7. echo "<br>";
  8. echo isset($c);
  9.  


To nam zwróci coś takiego:

  1. 0
  2.  
  3. notice bla bla bla


Wiem jaka jest różnica pomiędzy apostrofem a gravisem.
Jeszcze nie rozumiem kilku spraw, ale to najpierw sam poszukam, a potem zapytam, bo nawet sam nie wiem jak pytać, żeby zostać zrozumianym.

Na razie dziękuję i czekam na odpowiedzi, rozdaję podzięki.
achill
Cytat(mortus @ 28.03.2010, 09:36:38 ) *
To ty chba znasz inny angielski niż ja, bo is set w moim wolnym tłumaczeniu znaczy "jest ustawiony", a nie jest wybrany, zresztą tak mówi manual php.A skąd. Przesłanie pola [user], również pustego spowoduje dodanie do tablicy $_POST indexu (klucza) [user], tablicę tworzy się w wyjątkowych sytuacjach (jeśli np. mamy kilka checkbox-ów z name="nazwa[]").

szczegóły
przesylamy z form oczywiscie.
no owszem ale tak wlasciwie co za roznica - ja wole tak to robic - tak sie nauczylem a na jazde bez trzymanki jeszcze troche za cienki jestem.
Zresztą chodzi o ogólną zasadę i tak i tak jest poprawnie i bedzie działać

a co do angielskiego no cóż wybrany/ustawiony na jedno wychodzi ale nie czas i ne miejsce na dyskusje lingwistyczne.
Zatem krotko wniosek prosty lepiej rozumiec co jest napisane niz na sztywno tlumaczyc - tym bardziej ze sa wyrazy ktorych nie da sie tlumaczyc doslownie jak chocby print - drukować a w php sluży do wyswietla danych na monitorze - zonk!.
mniejsza z tym - grunt, że się rozumiemy tongue.gif



Cytat(piotrek0 @ 28.03.2010, 21:14:37 ) *
Wydaje mi się, że to sprawdza czy taka zmienna jak $_POST istnieje, bo jak formularz nie zostanie wysłany (czyli nie zostanie naciśnięty przycisk do wysyłania) to wtedy wygląda to tak

if (isset $_POST) - owszem sprawdza czy istnieje taka zmienna

warunek bedzie prawdziwy w obu przypadkach gdy $_POST
1) bedzie mial jakakolwiek wartosc
lub też
2) bedzie to NULL.
warunek bedzie jednak nieprawdziwy wtedy i tylko wtedy gdy $_POST nie zostanie przeslana z formularza
mortus
Cytat(achill @ 28.03.2010, 23:55:40 ) *
if (isset $_POST) - owszem sprawdza czy istnieje taka zmienna
...
warunek bedzie jednak nieprawdziwy wtedy i tylko wtedy gdy $_POST nie zostanie przeslana z formularza
Nieprawda, warunek isset($_POST) zawsze będzie spełniony, ponieważ $_POST jest tablicą superglobalną i istnieje zawsze, nawet przy pierwszym uruchomieniu strony. Zatem isset($_POST) nie może nam służyć do sprawdzenia, czy formularz został wysłany.
achill
sorka, masz racje caly czas w glowie mialem $_POST['xxxx'] wstydnis.gif
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.