Jak odczytać IP użytkownika?

function GetIP() { if ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) ) { $ip_prawdziwe = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip_prawdziwe = $_SERVER['REMOTE_ADDR']; } return $ip_prawdziwe; } (...)

Jak ładnie sformatować datę?

Najwydajniesza metoda formatowania daty to funkcja date(). Dostarcza ona wsystkich możliwych parametrów: np. // zwraca aktualna date date(‚d-m-Y g:i’) // zwraca date zdefiniowana przez $unix_stam date(‚d-m-Y g:i’, $unix_stamp) Poniższych znaków używa się w szablonie formatującym datę: * a – „am” lub „pm” * A – „AM” lub „PM” * B – Czas internetowy Swatcha * d – dzień miesiąca, 2 cyfry z zerem na początku; tzn. od „01” do „31” * D – dzień tygodnia, tekst, 3 litery; n.p. „Fri” * F – miesiąc, tekst, pełna nazwa; n.p. „January” * g – (...)

Ja wyświetlić nazwę pliku bez rozszerzenia?

Poniższy kod zwróci nazwę pliku bez rozszerzenia, w poniższym przypadku bez końcówki .php <?php $path = "/home/httpd/html/index.php"; $file1 = basename ($path); // $file zawiera "index.php" $file2 = basename ($path, ".php"); // $file zawiera "index" ?> (...)

Funkcje empty kontra isset

Jeśli chcesz sprawdzić czy zmienna przesyłana do skryptu nie jest pusta (np. walidacja formularzy) należy posłużyć się funkcją empty() if( empty($_GET['zmienna']) ) { //pusta zmienna } Natomiast jeśli chcesz sprawdzić czy zmienna została zainicjowana posłuż się funkcją isset() Zauważ, że dla zmiennej zawierającej spację np: $zmienna=' '; funkcja isste zwróci TRUE natomiast funkcja empty() zwrócie FALSE. Przydatne np podczas walidacji formularz gdy musimy upewnić się, że np login nie wraca pusty do skryptu (...)

Dlaczego zmienne globalne są wyłączone w PHP5?

Zmienne globalne to nic inne jak odwołanie do nazwy zmiennej bez sprawdzania źrodła jej pochodzenia. Przykład: http://strona.pl/?id=12 Zmienna ‚id’ dostepna jest w skrypcie PHP4 przez odwołanie $id natomiast w PHP5 jako $_GET[‚id’]. Nie wiesz dlaczego to takie ważne? Popatrz na przykład poniżej gdzie funkcja autoryzacja() sprawdza czy użytkownik jest zalogowany if (autoryzacja()) { $zalogowany = true; } if ($zalogowany) { echo 'pokaz tajna strone'; } Jeśli odwołamy sie do skryptu poprzez http://strona.pl/?zalogowany=true skrypt wyświetli nam tajną stronę! Jak temu zapobiec? bardzo prosto: session_start(); if (autoryzacja()) { $_SESSION['zalogowany'] = (...)

Dlaczego unikać funkcji mysql_num_rows()?

Funkcja mysql_num_rows() przesyła do bazy danych zapytanie i pobiera wszystkie zwracane wiersze. Wynik który nas interesuje to ilość wierszy a nie ich zawartość zatem o wiele szybszym zapytaniem jest przesłanie zapytania COUNT(*) w samym zapytaniu SELECT, które zwróci nam jedno pole i jeden rekord a zliczanie odbdzie sie po stronie serwera mysql. Jeśli nie jest wymagane wyświetlanie wszystkich rekordów z bazy na bieżaco można każdy wyciągniety wiersz przypisać do nowej zmiennej np $bufor_mysql i zliczać ilość wykonanych pętli inkrementując zmienną $i ($i++ lub ++$i) Kosztem utworzenia 2 zmiennych w skrypcie zaoszczędzamy dodatkowe odwołanie do bazy mysql – (...)

Dlaczego nie widzę enterów na stronie?

Aby zobaczyć załamania tekstu wprowadzone oryginalnie do formularza należy użyć funkcji: $tekst = nl2br($tekst); Zwraca ona zmienna z zamienionymi znakami \n na znacznik (...)

Dlaczego nie muszę zabezpieczyć danych przezd SQL INJECTION używająć PDO?

Biblioteka PDO sama dba o zabezpieczenie znaków specjalnych w danych pochodzących od użytkownika: <?php $stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?"); if ($stmt->execute(array($_GET['name']))) { while ($row = $stmt->fetch()) { print_r($row); } } ?> Pamiętaj, że nie ma nic za darmo! Jeśli szukasz optymalnego rozwiązania PDO nie jest dla ciebie, poszukaj informacji i zestawień mysqli i mysql pod katem szybkości. (...)