Php form Fix

2 Cevap php

Ben bir veritabanında depolamak için kullanıcılar url toplayan bir web sitesi form var. Onlar ancak birçok onların URL http:// girmemeli ve sonuç onların url görüntülendiğinde bu gibi görünüyor olduğunu

http ;/ / http://www.foo.com Bunu şerit ya da görmezden ya da ne kadar bunu işlemek için en iyi yolu olduğunu düşünüyorum formu gerekir.

teşekkürler

2 Cevap

Iki şey yapmalıyım!

1 - veritabanı temizleyin ve veritabanı kongresinde (http://example.org, protokol URL dahil) ile ince, böylece tüm http://http//example.org girişlerini değiştirin.

// Something like this ...
UPDATE table SET field = REPLACE(field, 'HTTP://HTTP://', 'HTTP://');

2 - Bir kullanıcı kendi URL teslim sonra, dize "http://" için kontrol etmelisiniz.

$url = trim('http://example.org');
if (0 !== strpos($url, 'http://')) {
    $url .= 'http://' . $url;
}

Kullanıcı tarafından verilen url üzerinde bu kullanın:

$url=str_replace("http://","",$_POST['url']);
//Where $_POST['url'] is the users input

Bu işlev, bir argüman alır ve bir dize içinde bu iddianın tüm tekrarlarını değiştirir. Daha bu işlevi here.