[php] dziwne znikanie znaku "/"

Odpowiedz Nowy wątek
2006-07-28 21:01
0

A więc mam następujący problem, wczytuje z bazy danych z tabela1 pole ulica (dla osób mieszkających w blokach będzie występował znak "/"), i chce zapisac owe informacje do tabela2 to w phpmyadmin pokazuje mi ze skrypt pomija ten nieszczęsny znak. Co zrobic, żeby ten znak były widoczny w drugiej tabeli ?

Pozostało 580 znaków

2006-07-28 22:08
0

Daj przyklad zapytania i wyjasnij co znaczy 'phpmyadmin pokazuje ...'

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-07-28 22:25
0
$tabx=$mysql_prefix.'address_book';
$wynikx = mysql_query("select * from $tabx where customers_id like $_SESSION[user]");
while($wierszx = mysql_fetch_array($wynikx))
{
$customers_street_address=$wierszx[entry_street_address];
}
$tabelax=$mysql_prefix.'orders';
$zapytanie1 = "insert into $tabelax values ('$customers_street_address')";
$wynik1 = mysql_query("$zapytanie1");

No i jak w pierwszej tabeli pisze mi Morsk 22d/1
tak w drugiej tabeli po uruchu\omieniu skryptu mam tylko Morska22d1

Pozostało 580 znaków

2006-07-28 22:31
0

rozwiązanie, które może by tymczasowe to

$customers_street_address=str_replace("\\"\, " m ", "$customers_street_address");

ale chciałbym jednak aby móc wpisac backslasha do bazy danych.

Pozostało 580 znaków

2006-07-28 22:33
0
wafcio napisał(a)
$tabx=$mysql_prefix.'address_book';
$wynikx = mysql_query("select * from $tabx where customers_id like $_SESSION[user]");
while($wierszx = mysql_fetch_array($wynikx))
{
$customers_street_address=$wierszx[entry_street_address];
}
$tabelax=$mysql_prefix.'orders';
$zapytanie1 = "insert into $tabelax values ('$customers_street_address')";
$wynik1 = mysql_query("$zapytanie1");

No i jak w pierwszej tabeli pisze mi Morsk 22d/1
tak w drugiej tabeli po uruchu\omieniu skryptu mam tylko Morska22d1

Pytanko 1:
czy w $customers_street_address jeszcze jest ze znakiem '/', czy juz nie?
Pytanko 2:
czemu nie uzyjesz konstrukcji 'select into ...' albo 'insert into ... select', zeby oszczedzic sobie calej tej petli i wywolywania wielu zapytan, zamiast jednego?

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

2006-07-28 22:43
0

ad pyt1
w zmiennej $customers_street_adress jak wpisze

str_replace("\", " m ", "$customers_street_address");

to nie działa, a dziala jak jest tak jak napisałem wyżej
ad pyt2
nie znam takiej konstrukcji, jak to stosowac ? w kursach w internecie nie ma czegos takiego podanego

Ale trzymajmy się głównego mojego problemu

Pozostało 580 znaków

2006-07-28 22:53
0

to w końcu się nie da backslasha () czy slasha (/) ??
jak to pierwsze no to chyba nie poddajesz swoich danych escape'owaniu, czyli masz podatność na SQL Injection (jeśli dane do pierwszej tablicy idą od usera):

zamiast:

$something = $whatever;
mysql_query("INSERT blah blah ($something)");

ysz:

$something = mysql_real_escape_string($whatever);
mysql_query("INSERT blah blah ($something)");

Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-07-28 22:59
0

Adamo dzięki za pomoc, problem rozwiązany

Pozostało 580 znaków

2006-07-28 23:01
0

To mowimy o slashu '/' jak na poczatku czy backslashu '\'?

Przetestuj to - powinno dzialac dokladnie jak caly ten kod i ominie klopot z slashem\backslashem:

mysql_query("insert into $mysql_prefix.orders (nazwa_kolumny) select entry_street_address from $mysql_prefix.address_book where customers_id like '$_SESSION[user]'");

//no i nie zdazylem :P

pozdrawiam
johny


You need to learn how to walk
before you can run

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0