Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Dyrektywa Magic_quotes_gpc, Jak Ją Skutecznie Wyłączyć ?
Forum PHP.pl > Forum > Przedszkole
sailor
Mam Prośbę o pomoc, w manulau php nie znalazłem rozwiązania mojego problemu, dlatego piszę w pod forum przedszkole.

Czy jest jakiś sposób na wyłączenie dyrektywy magic_quotes_gpc na serwerze(konkretnie na moim koncie FTP), nie mając praw administratora serwera ?. Próbowałem poradzić sobie z problemem umieszczając w głównym katalogu mojej strony plik ”.htaccess” (umieszczając w nim: php_flag magic_quotes_gpc off) ale wtedy zamiast załadować się strona, wyskoczył błąd ”500 Internal Server terror”. Chcę wyłączyć tę dyrektywę gdyż dodaje mi podczas pracy skryptu slashe(obok cudzysłowów i apostrofów), niestety użycie w skrypcie funkcji stripslashes nie dało efektu, a na forum nie uzyskałem pomocy. Stąd też szukam innej możliwości poradzenia sobie z tym koszmarnym problemem.

Za fachową pomoc będę bardzo wdzięczny
Serdecznie Pozdrawiam
legorek
Możliwe, że nie masz odpowiednich uprawnień do zmiany ustawień php. Poczytaj tutaj. Możesz też spróbować ini_set" title="Zobacz w manualu PHP" target="_manual
sailor
legorek dziękuję za wskazówki.
Próbowałem wyłączyć magic_quotes_gpc kozystajac z funkcji ini_set używając poniższego skryptu testowego. Skrypt wyświetla mi "magic_quotes are still on silly" czyli, że nie zdołał wyłączyć magic.

  1. <?php
  2. if (get_magic_quotes_gpc() == TRUE) {
  3. ini_set('magic_quotes_gpc','off');
  4. }
  5.  
  6. if (get_magic_quotes_gpc() == FALSE) {
  7. print 'magic_quotes are off';
  8. } else {
  9. print 'magic_quotes are still on silly';
  10. }
  11.  
  12. ?>


Macie może jakieś sprawdzone metody na poradzenie sobie z tym problemem ?. Moja wersja PHP to 4.4.7 (w której to można podobno wyłączyć magic_quotes_gpc za pomocą ini_set, wg. manuala php).

Serdecznie Pozdrawiam i liczę na fachową pomoc.
Gość
http://www.phpguru.org/article.php?ne_id=58
drPayton
A gdyby tak po prostu:
  1. <?php
  2. function escape_data($string) {
  3. return (ini_get('magic_quotes_gpc')) ? trim(stripslashes($string)) : trim($string);
  4. }
  5. ?>


Odpowiedź na pytanie przez PW
Tak przy okazji odpowiedzi, nie używaj konstrukcji
  1. <?php 
  2. echo "$zmienna";
  3. ?>

bo to bez sensu. Wystarczy:
  1. <?php
  2. echo $zmienna;
  3. ?>

Funkcję podaną wcześniej umieścić trzeba gdziekolwiek, byle przed pierwszym jej wywołaniem, np na początku skryptu, i potem:
  1. <?php
  2. $zmienna = escape_data($zmienna ); // Ta zmienna, z której chcemy się pozbyć slash'y przed cudzysłowami etc
  3. ?>

Jeśli to nie pomoże, to: (źródło):
  1. <?php
  2. function stripslashes_deep($value){
  3. $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value); return $value; 
  4. } 
  5. $_POST = array_map('stripslashes_deep', $_POST); 
  6. $_GET = array_map('stripslashes_deep', $_GET);}
  7. ?>


Co do .htaccess, to można jeszcze inaczej spróbować: (źródło):

Kod
# Disable all magic quoting.
php_value    magic_quotes_gpc off
php_value    magic_quotes_runtime off
sailor
Dziękuje Bardzo za zaangażowanie w mój problem.
Muszę napisać, z przykrością, że mimo waszych wskazówek nie udało mi się rozwiązać problemu.

Co do pliku .htaccess wychodzi na to, że ma ograniczenia jeśli chodzi o używanie dyrektyw. Chciałbym się zatem dowiedzieć czy administrator danego serwera może mi umożliwić stosowanie zmian w pliku .htaccess w zakresie dyrektywy magic_quotes_gpc, i w jakim zakresie jest to kwestią problemową jeśli chodzi o funkcjonowanie serwera i zamieszczonych na nim serwisów.

używana przezemnie wersja serwera: Apache/1.3.27 (Unix) (Red-Hat/Linux) PHP/4.3.7

Prosze o odpowiedź
drPayton
Jeżeli to wszystko nie pomogło, to:
1. Zmień host (i admina) winksmiley.jpg
2. A jak nie możesz/nie chcesz, to masz pełne prawo zadzwonić i zapytać: "WTF??""

Dla mnie jest to kompletna "schiza"...
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.