Вставить символы в начало и конец строки

Статус
В этой теме нельзя размещать новые ответы.

phillip

Полезный
Регистрация
4 Сен 2007
Сообщения
411
Реакции
15
Подскажите, пожалуйста, как в начало строки поставить http:// а в конец строки просто слеш /. То есть я в форму ввожу урл. Мне его в бд надо записать в таком виде Для просмотра ссылки Войди или Зарегистрируйся Вот. а если юзер ввел просто Для просмотра ссылки Войди или Зарегистрируйся мне надо его привести в нужный вид. Не могу понять как ставить символы в начало и конец строки. не нашел такой функции на php.su
 
Подскажите, пожалуйста, как в начало строки поставить http:// а в конец строки просто слеш /. То есть я в форму ввожу урл. Мне его в бд надо записать в таком виде Для просмотра ссылки Войди или Зарегистрируйся Вот. а если юзер ввел просто Для просмотра ссылки Войди или Зарегистрируйся мне надо его привести в нужный вид. Не могу понять как ставить символы в начало и конец строки. не нашел такой функции на php.su
только не забывай экранировать ввод в БД, хотябы так:

PHP:
$a=mysql_escape_string("http://".$a."/");


иначе прямиком получишь SQL Injection у себя на сайте
 
про инъекцию не совсем понял, почему небезопасно? а если это скрипт у меня на моем компе, которому я уверен 100% никто не будет делать гадостей?

И вот про совет SaidAuita я понял, все гениальное просто))) а если он уже ввел со слешем и впереди стоит Для просмотра ссылки Войди или Зарегистрируйся как проверить? чтоб два раза не воткнуть по ошибке
 
PHP:
if (!preg_match('!^http://!i', $a)) $a="http://{$a}/";
 
про инъекцию не совсем понял, почему небезопасно? а если это скрипт у меня на моем компе, которому я уверен 100% никто не будет делать гадостей?

И вот про совет SaidAuita я понял, все гениальное просто))) а если он уже ввел со слешем и впереди стоит Для просмотра ссылки Войди или Зарегистрируйся как проверить? чтоб два раза не воткнуть по ошибке
PHP:
# если не начинается с хттп добавляем
if (!preg_match('^~https?://~i', $a))  $a = 'http://'.$a;

# если не кончается слэшем то добавляем
if (!preg_match('~/$~', $a)) $a = $a . '/';

насчет уязвимости и дома, а кто домены вводить будет? если ты сам то опасности нету - если не ты, то человек может послать СКУЛ запрос к твоей базе данных, и вытянуть всю инфу из нее, записать файлы или украсть файлы с твоего винта где находится база - все зависит от прав пользователя и изначального запроса, поэтому данные нужно экранировать
 
А, ну вводить буду только я, и пользоваться всей системой только я. Всем спасибо за помощь :)

А вот еще какая ошибка выскакивает почему-то теперь
Warning: preg_match() [function.preg-match]: No ending delimiter '^' found
 
А, ну вводить буду только я, и пользоваться всей системой только я. Всем спасибо за помощь :)

А вот еще какая ошибка выскакивает почему-то теперь
Warning: preg_match() [function.preg-match]: No ending delimiter '^' found

PHP:
if (!preg_match('~^https?://~i', $a))  $a = 'http://'.$a;
 
И? хоть бы объяснил, а то скопировал две чужие фразы и все.
 
Забудь про preg_match, эта функция не нужна для твоей задачи - достаточно strpos().
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху