arkadaşlar merhaba küçük bir sorum var
$title = $_POST['title'];
ile post ettiğim formdan gelen başlığı
mkdir($title);
ile klasör açtırınca karakter hatası alıyorum öğrenmek için beni yönlendirirmisiniz? post edilen başlığı klasör açtırırken karakter hatasının önüne nasıl geçerim. şimdiden teşekkürler.
mkdir($title); karakter hatası problemim
5
●487
- 19-11-2015, 22:30:39hocam mantığı anlamam açısından değerli vaktinizden ayırmanızı istesem bana örnek bir kodlama yaparmısınız lütfen çünkü denedim başarısız oldum demekki anlayamamışım.
bunları
('ı','ş','ü','ç','ö','ğ','Ç','Ş','Ü','İ','Ğ','Ö');
bunlara çevirecek
('i','s','u','c','o','g','C','S','U','I','G','O');
xFactoria adlı üyeden alıntı: mesajı görüntüle - 19-11-2015, 22:41:18Üyeliği durduruldu
function trle($url) { $trharf=array("İ","Ş"," ","Ü","Ç","Ğ","Ö","ı","ş","ü","ç","ğ","ö"); $trharfdegis=array("I","S","-","U","C","G","O","i","s","u","c","g","o"); $url=str_replace($trharf,$trharfdegis,$url); $url=preg_replace("@[^A-Za-z0-9\-_]+@i","",$url); $url = trim($url); $url = strtolower($url); $find = array('<b>', '</b>'); $url = str_replace ($find, '', $url); $url = preg_replace('/<(\/{0,1})img(.*?)(\/{0,1})\>/', 'image', $url); $find = array(' ', '"', '&', '&', '\r\n', '\n', '/', '\\', '+', '<', '>'); $url = str_replace ($find, '-', $url); $find = array('é', 'è', 'ë', 'ê', 'É', 'È', 'Ë', 'Ê'); $url = str_replace ($find, 'e', $url); $find = array('í', 'ì', 'î', 'ï', 'I', 'Í', 'Ì', 'Î', 'Ï'); $url = str_replace ($find, 'i', $url); $find = array('ó', 'ö', 'Ö', 'ò', 'ô', 'Ó', 'Ò', 'Ô'); $url = str_replace ($find, 'o', $url); $find = array('á', 'ä', 'â', 'à', 'â', 'Ä', 'Â', 'Á', 'À', 'Â'); $url = str_replace ($find, 'a', $url); $find = array('ú', 'ü', 'Ü', 'ù', 'û', 'Ú', 'Ù', 'Û'); $url = str_replace ($find, 'u', $url); $find = array('ç', 'Ç'); $url = str_replace ($find, 'c', $url); $find = array('?', '!', '$', '#', '+'); $url = str_replace ($find, '-', $url); $find = array('ğ', 'Ğ'); $url = str_replace ($find, 'g', $url); $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/'); $repl = array('', '-', ''); $url = preg_replace ($find, $repl, $url); $url = str_replace('--', '-', $url); $url = trim($url,"-"); return $url; } $klasor = trle($_POST['title']); mkdir($klasor);Bu şekilde kullanabilirsiniz. - 19-11-2015, 23:04:13İşletim sistsemi klasör açarken bazı karakterleri kabul etmez, bunun sebebi güvenlik açığı oluşturabiliyor olmalarıdır.PHP ile bu engeli geçmek için yapmanız gereken işletim sisteminin izin vermediği harfleri, işaretleri silmek yada yerine farklı şeyler koymaktır.Benim verdiğim kod işin basit tarafıydı.Bunun yanında bazı karakter setlerini de klasör isminde kabul etmiyor.Yukarıdaki arkadaşın verdiği fonksiyonu kullanırsanız böyle bir sorununuz kalmayacaktır büyük ihtimal.Sizin verdiğiniz harfler klasör açmaya bir engel değildewadam adlı üyeden alıntı: mesajı görüntüle

Fonksiyonu nasıl kullanacağınızı bilmiyorsanız kısaca açıklayabilirim;
POST ettiğiniz sayfaya bu fonksiyonu en üste yazın / kaydedin.Daha sonra
$baslik = trle($_POST['title');
mkdir("/dokumanlar/{$baslik}", 0777, true);
demeniz yeterlidir.
