![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%)
|
zapisuje do bazy danych przez addslashes a wczytuje poprzez stripslashes
natomiast gdy wczytuje to w inpucie to cudzysłowie znika jest to tylko przed nim $d['test'] to np. idę na "spacer" w inpucie wyświetla mi: idę na |
|
|
|
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
<?= htmlspiecialchars($d['test']); ?>
I zapomnij o stripslashes. Zapomnij też o addslashes. Do wkładania do bazy uzywa sie mysql_real_escape_string() |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%)
|
<?= htmlspiecialchars($d['test']); ?>
pokazuje mi tutaj \"test\" nie usuneło \\ Ten post edytował Randallmaster 6.03.2013, 09:29:52 |
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Widać do bazy wkładasz podwójne \\....
ALbo podwóje slashujesz przez addslashes i mysql_real_escape_string Albo masz w php.ini ustawione automatyczne slashowanie + twoje reczne slashowanie, dlatego masz podwójnie wszystko. Popraw to |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%)
|
Do bazy zapisało mi w postaci: dajemy cudzyslowie \'test\'
sprawdziłlem wczytuje tak: <?= htmlspecialchars($d['test']); ?> |
|
|
|
Post
#6
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
No właśnie. Do bazy ci sie źle zapisało. Do bazy ma się zapisać tak:
dajemy cudzyslowie 'test' Już ci napisałem gdzie problem. Popraw to. |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%)
|
Usunąłem mysql_real_escape_string()
serwer mam na home.pl dobrze przeczytałem że rozróżnia znaki poprzeczne? https://pomoc.home.pl/bazawiedzy/zagadnienia/215 i dodało mi do bazy tak: sprawdzanie dwa "test" teraz w inpucie dobrze wczytuje |
|
|
|
Post
#8
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Cytat Usunąłem mysql_real_escape_string() Ale nadal masz addslashes? Jak tak, to wywal addslashes a zostaw mysql_real_escape_string()Jak nie, to znaczy ze masz na serwerze włączone automatyczne slashowanie. Pisałem ci też o tym. Masz to wywalić. To jest bardzo zła opcja. masz zostawić mysql_real_escape_string() a wywalić to automatyczne slashowanie. Opcja ta się nazywa magic_quotes - ustaw to na 0 |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%)
|
Nie mam addslashes ani nie mam mysql_real_escape_string(),
slashuje mi serwer Rozumiem że uważasz że lepiej samemu slashować niż ma to robić serwer? dobrze utworze plik php.ini i dodam mysql_real_escape_string() |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
i dodam mysql_real_escape_string() Przejdź na PDO zapomnij o funkcjach mysql_* i zapomnij że musisz coś z danymi robić przy zapisie do bazy (poza walidacją). |
|
|
|
Post
#11
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
@!*! Nawet jak przejdzie na PDO to i tak będzie musiał wywalić automatyczne slashowanie - nie ma bata (IMG:style_emoticons/default/smile.gif)
Cytat dobrze utworze plik php.ini Tak, tak właśnie należy zrobić. Ewentualnie po wywaleniu automatycznego slashowania przejdź na PDO jak już wspomniano
i dodam mysql_real_escape_string() |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%)
|
mój plik php.ini:
znajduje sie w katalogu na ktore jest przekierowanie /test
zapisuje do bazy: $_POST['test'] = mysql_real_escape_string($_POST['test']); wynik w bazie: tutaj "test" teraz jest ok?? jak powinien wyglądać zapis w bazie danych? Ten post edytował Randallmaster 6.03.2013, 10:20:08 |
|
|
|
Post
#13
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Tak, teraz jest ok.
No może poza: error_reporting = E_ALL & ~E_NOTICE tak ma byc: error_reporting = E_ALL Masz widziesz wszyskie błędy w swojej aplikacji i na bieżąco je poprawiać. |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%)
|
Wielkie Dzięki (IMG:style_emoticons/default/smile.gif)
pierwszy raz mam styczność z php.ini mogę gdzieś poczytać o tych wszystkich funkcjach np error_reporting? po polsku? |
|
|
|
Post
#15
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
W linku który sam podałęś, masz je opisane po polsku....
https://pomoc.home.pl/bazawiedzy/zagadnienia/215 display_errors = off Z racji, że wyłączyłeś wyświetlanie błędów w przeglądarce, to zaglądaj do pliku z logami i pooprawiaj błędy, które tam będą. W przeciwnym wypadku z czasem będziesz miał problem. A najlepiej teraz, kiedy zapewne działasz testowo to zrób tak: display_errors = On By widziec wszystkie błędy na bieżąco na ekranie. |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 677 Pomógł: 11 Dołączył: 18.11.2009 Ostrzeżenie: (0%)
|
Sorry przecież ustaliłem error_log = /plik_logow.log. Jeszcze raz dzięki za pomoc (IMG:style_emoticons/default/smile.gif)
Ten post edytował Randallmaster 6.03.2013, 10:30:20 |
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 01:06 |