Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przesyłanie zmiennych i problem ze Slashami
Forum PHP.pl > Forum > PHP
yakass
Wiam,

mam takie dosyć dziwny problem :oops:. Chpdzi o slashe w zmiennych. Inaczej skrypt się zachowuje u mnie na komputerze a inaczej jak go prześlę na serwer w internecie.

Powiedzmy że mam formularz (nieważne czy metoda POST czy GET) z polem "pole_form". Przesyłem tekst do tego samego skryptu i który wygląda tak:
[php:1:be419cd5fc]<?php
echo "<br>OTRZYMANY TEXT: $pole_form";
?>[/php:1:be419cd5fc]

W formularzu wpisuje:
Kod
TEST C:WindowsSystem
, przesyłam do przez Submit. Jeżeli uruchomię ten skrypt w domu to wyświetli się:
Kod
TEST C:WindowsSystem


jeżeli to samo zrobię na serwerze to otrzymam:
Kod
TEST C:WindowsSystem


Dodam jeszcze, że w domu mam php 4.3.4, RegisterGlobals=On, Apache 1.2.7 na Windowsie XP.
Serwer w internecie ma zablkowane phpinfo(), ale na pewno stoi na najnowszym php 4.x.x z RegisterGlobals=On.

Moje pytanie: dlaczego są różne ilości slashy? Co mam u siebie ustawić, żeby moje php w domu działało tak samo jak serwer w internecie? Czy moje php, czy może to na serwerze w internecie działa poprawnie?

Ten problem z rozbieżnością w ilościch slashy mam już ponad pół roku... rolleyes.gif POMOCY
scanner
Poczytaj o [manual:ae4ac46879]addslashes [/manual:ae4ac46879]i [manual:ae4ac46879]stripslashes[/manual:ae4ac46879]
yakass
Cytat
Poczytaj o [manual:9506b3e4b8]addslashes [/manual:9506b3e4b8]i [manual:9506b3e4b8]stripslashes[/manual:9506b3e4b8]


przecież opis funkcji nijak się ma do mojego problemu. Ja chcę wiedzieć, dlaczego u mnie domu po przesłaniu formularzem stringu "C:windowstest" pokazuje się:

C:windowstest

a na serwerze w internecie pokazuje się
C:windowstest

chcę wiedzieć jak skonfigurować moje php, żeby nie było rozbieżności w formacie przesyłania zmiennych...
hwao
[php:1:446351fbb6]<?php
$text = str_replace('', '', $text);
?>[/php:1:446351fbb6]
Może tak?
evo
Cytat
Cytat
Poczytaj o [manual:c8fa922053]addslashes [/manual:c8fa922053]i [manual:c8fa922053]stripslashes[/manual:c8fa922053]


przecież opis funkcji nijak się ma do mojego problemu. Ja chcę wiedzieć, dlaczego u mnie domu po przesłaniu formularzem stringu "C:windowstest" pokazuje się:

C:windowstest

a na serwerze w internecie pokazuje się
C:windowstest

chcę wiedzieć jak skonfigurować moje php, żeby nie było rozbieżności w formacie przesyłania zmiennych...


Akurat scanner ci podal poprawna odpowiedz! I opis tych funkcji ma bardzo duzo do twego problemu!

Krotko mowiac problem lezy w sciezkach windowsowskich uzywjacych backslashe! Na systemach unixowych zostaja one wykomentowywane poprzez poprzedzajacy je znak backslasha.

Dlatego przeczytaj opis tych funkcji i zacznij je stosowac winksmiley.jpg


Pozdrawaim
evo
yakass
Cytat
[php:1:ea6e92788d]<?php
$text = str_replace('', '', $text);
?>[/php:1:ea6e92788d]
Może tak?


ale problem w tym, że chcę, żeby skrypty działały TAK SAMO na MOIM komputerze i na serwerze w INTERNECIE. Takie modyfikacje to sobie mogę wprowadzać (i to do tej pory robiłem), ale jak będę musiał mieć 2 wersje skryptów. 1 wersja działająca poprawnie na moim kompie i 2 warsja działająca popawnie w internecie.

Mi chodzi o to, jak skonfigurować moje php w domu, żeby wyświetlało zamiast . Albo najlepiej co ma mój admin zmienić, żeby na serwerze w internecie pokazywało się - bo chyba podwójne slashe są standardowo wyświetlane...
scanner
Cytat
Cytat
Poczytaj o [manual:69a885dab9]addslashes [/manual:69a885dab9]i [manual:69a885dab9]stripslashes[/manual:69a885dab9]
przecież opis funkcji nijak się ma do mojego problemu. Ja chcę wiedzieć, dlaczego u mnie domu po przesłaniu formularzem stringu "C:windowstest" pokazuje się:
C:windowstest
a na serwerze w internecie pokazuje się
C:windowstest
chcę wiedzieć jak skonfigurować moje php, żeby nie było rozbieżności w formacie przesyłania zmiennych...
No a co ja ci poradziłem?

Gdybyś zajrzał do manuala w opisie funcji [manual:69a885dab9]addslashes[/manual:69a885dab9] nastepujący fragment:
Cytat
The php directive magic_quotes_gpc is on by default, and it essentially runs addslashes() on all GET, POST, and COOKIE data. Do not use addslashes() on strings that have already been escaped with magic_quotes_gpc as you'll then do double escaping. The function get_magic_quotes_gpc() may come in handy for checking this.
oraz w komentarzach do tejrze funkcji nastepujący listing:[php:1:69a885dab9]<?php
// This function is a generic data processing function. It adds slashes if the magic quotes is off.
function reslash($string)
{
if (!get_magic_quotes_gpc())
$string = addslashes($string);
return $string;
}

// This function takes out slashes if if the magic quotes are on.

function deslash($string)
{
if (get_magic_quotes_gpc())
$string = stripslashes($string);
return $string;
}
?>[/php:1:69a885dab9]Te dwa fragmenty w pełni wyjaśniają co i dlaczego się dzieje i jak rozwiązać Twój problem.
yakass
rzeczwiście :oops: :oops: :oops:, już sobie poprawiłem.

Przepraszam, myślałem, że nie zrozumiałeś o co mi chodzi...

I pomyśleć, że miałem tyle problemów ze skryptami, ponieważ mój admin orzestawił tą zmienną na Off angrysmiley.gif angrysmiley.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.