|
|
|
Yazan
|
Konu: $_GET veya $_POST ile gönderilen ascii değerler bozuluyor,ne yapılması gerekiyor (Okunma Sayısı 222 defa)
|
beyaz_ölüm
PHP Öğrencisi
Offline
Mesaj Sayısı: 92
|
Merhabalar,
$_GET veya $_POST ile gönderilen ascii değerler gönderildiği gibi çıkmıyor ne yaptıysam çıkaramadım.
Ŋ ascii karekterini $_POST ile gönderildiği zaman strlen(); fonksiyonundan geçirdiğimiz zaman 6 karekter olduğunu gösteriyor.
ama normal editör ortamında echo strlen('Ŋ'); yaptığım zaman 1 döndürüyor. bu durumda editör bu karekteri tanıyor encode ediyor sanırım
ama ben birtürlü tanıyamadım post ile gönderdiğim zaman 6 karekter olarak görüyor. demekki post bu karekteri decode ediyor. bende anlamış değilim nasıl yapacağımıda inanın bulamadım. sizlerin yardımını bekliyorum.
|
|
|
|
|
Logged
|
|
|
|
turker
türker
PHP Öğrencisi
Offline
Mesaj Sayısı: 115
aggressiveness
|
|
|
|
|
|
Logged
|
|
|
|
beyaz_ölüm
PHP Öğrencisi
Offline
Mesaj Sayısı: 92
|
maalesef hiç bir değişiklik olmadı başka bir çözüm üretecek olan varmı? üyelik sisteminde kullanıcı adı seçimlerinde ascii karekterlerinde kullanılmasını istiyorum lakin işte bu sorundan dolayı bir türlü ayarlayamadım. düzenleme : & #330; veri tabanıda bu şekil kayıt oluyor bu kod bildiğim kadarıyla html ascii kodu post böyle döndürüyor veri tabanına böyle kayıt ediyor peki ben bunu post ile normal olarak nasıl alabilirim daha doğrusu alabilirmiyim?
|
|
|
|
« Son Düzenleme: 24, 2008, 11:23:19 am Gönderen: beyaz_ölüm »
|
Logged
|
|
|
|
tpaksu
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 28
|
gönderirken base64_encode alırken base64_decode yap belki öyle alırsın? yada rawurlencode fonksiyonuna bak UTF-8'leri onunla tam url bilgisine çevirebilirsin.$_GET'te işine yarar ama post'u bilmiyorum. sayfada o karakteri kullanacaksan ilgili charseti ayarlamanı tavsiye ederim. yada hepsini içeren utf8 yap.
|
|
|
|
|
Logged
|
|
|
|
beyaz_ölüm
PHP Öğrencisi
Offline
Mesaj Sayısı: 92
|
hocam bunun utf8 ile ne alakası var? base64 ile encode yaptığım zaman ne anlayacam? ben strlen fonksiyonundan geçiyorum alırken normal alıyorum zaten karekteleri ama post veya get den yolladığım zaman haliyle html ascii'ye çeviriyor ve yukarda verdiğim koda dönüşüyor oda 6 karekterli username ismi 10 karekter olmasını istiyorum kullanıcı o karekterle beraber 4 karekter daha yazdığı zaman ,kullacıya göre 5 karekter yazıldı ama php ye göre 10 karekter yazıldı,bunun için postan geçdiği zaman direk bunu normal karektere çevirmem lazım ama beceremedim , verdiğin fonksiyonlarla hiç ilgisi yok bunun , bu url kodlaması veya utf8, veya charset kodlaması değil,ascii karekteri sadece
|
|
|
|
|
Logged
|
|
|
|
beyaz_ölüm
PHP Öğrencisi
Offline
Mesaj Sayısı: 92
|
sorunu çözdüm belki lazım olabilir diye burayada veriyorum normal post veya get ile gönderdiğimiz ascii karekterler otomatik olarak html ascii'ye dönüştürülüyor. htmldeki &# arasındakini alıp ; chr(); fonksiyonundan geçirip sonra strlen fonksiyonundan geçirdim... function ascii_strlen($girdi) { $girdi = preg_replace('#&\#([0-9]+);#e', 'chr("\\1")', $girdi); return strlen($girdi); }
echo ascii_strlen($_POST['al']);
Kolay gelsin.
|
|
|
|
|
Logged
|
|
|
|
tpaksu
Yeni Kullanıcılar
Offline
Mesaj Sayısı: 28
|
sorduğun soruyu daha yeni anladım  htmlspecialchars_decode() fonksiyonu o html ascii dediğin &#;'leri eski haline getiriyor.
|
|
|
|
|
Logged
|
|
|
|
|
 |
|