Я пытаюсь создать страницу PHP, которая извлекает результаты из таблицы базы данных MySQL на сервере (www.domain.com).
Таблица имеет следующие поля:
ID (то есть: 1) Дата (то есть: 2014-12-06) Текст (например: Guns 'n Roses) URL (то есть: https://www.youtube.com/watch?v=xxxxxxx) Ссылка (например: смотреть на YouTube)
URL-адрес привязан к тексту ссылки на веб-страницу.
Мой запрос прост и понятен: простой select * from table
, При запуске страница PHP выводит на экран следующую таблицу:
2014-12-06 --- Guns 'n Roses --- Watch on YouTube
где, нажав «Смотреть на YouTube», фактический адрес становится:
www.domain.com/https://www.youtube.com/watch?v=xxxxxxx
Как избавиться от корня сервера и получить работающую ссылку?
Код является:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<div id="youtube">
<?php
require "parameters.php";
$con = mysqli_connect($host,$user,$password,$db);
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT Date, Text, URL, Link FROM $db.$table_10 ORDER BY date desc");
echo "<table>";
echo "<tr><th>Date</th><th>Text</th><th>Link</th></tr>";
echo "<tr><td></br></td></tr>";while($row = mysqli_fetch_array($result)) {
$safe_url = mysqli_real_escape_string($con, $row['URL']);
echo "<tr>";
echo "<td>" . $row['Date'] . "  </td>";
echo "<td>" . $row['Text'] . "</td>";
echo "<td><a href=" . $safe_url . " " . "target="."_blank".">" . $row['Link'] . "</a></td>";
echo "</tr>";
}
echo "</table>";
mysqli_close($con);
?>
</div>
</body>
</html>
Спасибо за ответ и помощь!
Если ссылка не имеет префикса протокола, она становится относительной к странице, содержащей ссылку.
<a href="example.com/somepage">Webpage</a>
становится http://example.net/example.com/somepage при нажатии
<a href="http://example.com/somepage">Webpage</a>
становится http: //example.com/somepage
Когда вы отображаете ссылку, добавьте к ней префикс http: //
—
Вот JSFiddle, показывающий это, http://jsfiddle.net/7fnpg5o1/
Других решений пока нет …