|
|
|
| Не могу понять что за глюк :(
При проверке
<?php echo $news['url']; ?>
|
выдаёт:
Но вот если пишу
<?php echo "<a href=".$news['url']." target=_blank>".$news['url_text']."</a>"; ?>
|
выдаёт не ссылку на www.example.ru, а на http://example1.ru/news/www.example.ru
Где http://example1.ru - сайт, на котором обрабатывается страничка с php.
Что за дурь? | |
|
|
|
|
|
|
|
для: Andron
(11.08.2004 в 01:40)
| | Ага, есть такая штука :)
Это потому что URL написан, как www.example.ru, а не http://www.example.ru
Т.е. в первом случае, HTML считает, что это относительный путь и строит его от директории где этот скрипт работает. Т.е. от http://example1.ru/news
Тут есть 2 пути решения.
1 - так как это админ новостей (если я правильно понял), то просто администратор должен всегда писать полностью URL - с http://
2 - добавлять http:// автоматически, например вот так
if (trim($url)!="") {
if (strtolower((substr($url, 0, 7))!="http://") && (strtolower(substr($url, 0, 7))!="ftp://")) $url="http://".$url;
}
|
Хотя лично я склоняюсь к первому способу. Ручной ввод URL-а в правильном формате. Потому что при автоматическом добавлении http:// есть исключения и их надо тоже обрабатывать, например.
1. пути могут быть относительными, т.е. href="../directory/news2.php" - без http://
2. вместо http:// может быть написан ftp:// | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(11.08.2004 в 02:58)
| | Ну это кусочек кода из "новостей". При добавлении новости в бд, есть строчка с этой проверкой. Значит не добавляется автоматически http:// (если например написать www.example.ru).
Что может быть?
Вот строчка кода из editnews.php:
// Добавляем протокол в url, если пользователь забыл это сделать сам
$_POST['url'] = strtr($_POST['url'], "HTTP", "http");
if (!empty($_POST['url'])) {
if (strtolower((substr($_POST['url'], 0, 7))!="http://") && (strtolower(substr($_POST['url'], 0, 7))!="ftp://")) $url="http://".$_POST['url'];
}
|
| |
|
|
|