Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem wstawienie zmiennej do $_POST w funkcji
Forum PHP.pl > Forum > Przedszkole
superbarman
Witam, męczyłem się już na wiele sposobów, dlaczego to nie chce działać i jeżeli tak się nie da, to jak najłatwiej jest to rozwiązać?

function zabezpieczpole($nazwapola) {
echo mysqli_real_escape_string(htmlentities($_POST[$nazwapola], ENT_QUOTES, "UTF-8"), $db_connect);
}

zabezpieczpole(nazwapola);

Dlaczego ta funkcja nie chce mi wyświetlić $_POST jak wstawiam prawidłową nazwę pola?
Czy real_escape_string jest w 100% skuteczne przed sqlinjection?
Aqu
1. Czy samo echo $_POST[$nazwapola] działa?
2. Nie przekazujesz do funckji $db_connect, może to jest przyczyną?
superbarman
Cytat(Aqu @ 3.04.2015, 00:15:11 ) *
1. Czy samo echo $_POST[$nazwapola] działa?
2. Nie przekazujesz do funckji $db_connect, może to jest przyczyną?


1. umieszczone w funkcji? nie
2. to funkcja nie pobierze zmiennej ustawionej w dokumencie php? na początku skryptu mam tą zmienną

pawwin
1) Zrób sobie var_dump na $_POST i zobacz czy na pewno pod kluczem który przekazujesz w parametrze znajduje się jakaś wartość
2) W PHP funkcje nie mają dostępu do zmiennych ustawionych poza nimi, możesz to rozwiązać dodając linijke kodu na początku funkcji:
  1. global $db_connect;
com
Nie zabezpiecza od tego jest bindowanie zmienych smile.gif lepiej zrob klase i przekaz poloaczenie jako zaleznosc(di) no ale w najgorszym wypadku tak jak powyzej ew jako param do funkcji smile.gif
superbarman
uporałem się, podaje rozwiązanie

function safeinput($pole) {
global $polaczenie;
global $_POST;
return mysqli_real_escape_string($polaczenie, htmlentities($pole, ENT_QUOTES, "UTF-8"));
}

echo safeinput($_POST['maslo']);

trzeba ustawić zmienną z połączeniem jako globalną w funkcji i $_POST tak samo, teraz w miejscu w którym chcemy wprowadzić zabezpieczoną zawartość pola wystarczy wstawić funkcję safeinput($_GET[] albo $_POST[]);
com
$_POST jest superglobalna wiec poco smile.gif i nawet jej tam nie uzywasz wink.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.