Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Решение ошибок php html ( Валидация по w3c )

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
chestelrfield
Отправлено: 22 Ноября, 2020 - 18:34:56
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Нояб. 2020  


Помог: 0 раз(а)




Добрый день уважаемые пользователи данного форума, обращаюсь к вам за помощью.
Суть следующая, столкнулся с проблемами на сайте и нет знаний решить их самостоятельно

Ошибка первая

Error: Bad value /out/?url=aHR0cDovL2wybWFkLm5ldA==" for attribute href on element a: Illegal character in query: " is not allowed.

Ошибка вторая

= in an unquoted attribute value. Probable causes: Attributes running together or a URL query string in an unquoted attribute value.

Сайт на котором вылазят ошибки представляет из себя каталог игровых серверов и приходится прятать ссылки через специальный скрипт который содержит в себе

<?php
$url = isset($_REQUEST['url']) ? $_REQUEST['url'] : '';
$new_url = base64_decode($url);
header("Location: $new_url");
exit();

?>

Для вывода ссылки на сайте используется

<a rel="nofollow" href=/out/?url=<?php $str = 'http://'.get_the_title(); $codeStr = base64_encode($str); echo $codeStr;?>" target="_blank"><?php the_title(); ?></a>

В конечном результате отображается как

<a rel="nofollow" href="/out/?url=aHR0cDovL2V2aWxheC5uZXQ=&quot;" target="_blank">примерсайта.домен</a>

Читал похожие темы на форуме от новичков но ничего исправить не смог, буду признателен за помощь
 
 Top
LIME
Отправлено: 23 Ноября, 2020 - 06:32:03
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




CODE (php):
скопировать код в буфер обмена
  1. <a rel="nofollow" href="/out/?url=<?= urlencode(base64_encode('http://' . get_the_title())) ?>" target="_blank">
  2.     <?= get_the_title(); ?>
  3. </a>
 
 Top
Vladimir Kheifets
Отправлено: 23 Ноября, 2020 - 08:18:41
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




chestelrfield пишет:
В конечном результате отображается как
<a rel="nofollow" href="/out/?url=aHR0cDovL2V2aWxheC5uZXQ=&quot;" target="_blank">примерсайта.домен</a>

Добрый день!
Первая ошибка - потерян urlencode (подсказал, LIME)
Вторая ошибка - после href= потеряна ковычка, парные кавычки подставились автоматически, а непарная ковычка в конце "превратилась" в &quot;
Попробуйте сделать так:
PHP:
скопировать код в буфер обмена
  1. <?
  2. $url = urlencode(base64_encode('http://'.get_the_title()));
  3. $title = the_title();
  4. echo <<<EOF
  5. <a rel="nofollow" href="/out/?url=$url" target="_blank">$title</a>
  6. EOF;
  7. ?>
Удачи!
 
 Top
LIME
Отправлено: 23 Ноября, 2020 - 08:21:19
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Vladimir Kheifets пишет:
Первая ошибка - потерян urlencode (подсказал, LIME)
я что-то еще упустил?
твой пример не будет работать на большинстве хостингов
(Добавление)
да еще и громоздкий и плохо читается
что за мода лепить хередоки где надо и ненадо
(Добавление)
ко всему the_title() судя по использованию еще и выводит а не возвращает
 
 Top
Vladimir Kheifets
Отправлено: 23 Ноября, 2020 - 13:23:50
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




LIME пишет:
Vladimir Kheifets пишет:
Первая ошибка - потерян urlencode (подсказал, LIME)
я что-то еще упустил?

Вторая ошибка - после href= потеряна ковычка, парные кавычки подставились автоматически, а непарная ковычка в конце "превратилась" в &quot;
LIME пишет:
твой пример не будет работать на большинстве хостингов
(Добавление)
да еще и громоздкий и плохо читается
что за мода лепить хередоки где надо и ненадо

Работаю много лет на разных хостингах и версиях PHP влоть до актуальной и не встречал чтобы где-то не работало.
Грамоздкий, плохо читается М.б лучше повторять <??> в HTML?
LIME пишет:
(Добавление)
ко всему the_title() судя по использованию еще и выводит а не возвращает

В твоём коде: <?= get_the_title(); ?> Если судить по оригиналу, то д.б. the_title()

(Отредактировано автором: 23 Ноября, 2020 - 13:24:23)

 
 Top
LIME
Отправлено: 23 Ноября, 2020 - 19:49:02
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Vladimir Kheifets пишет:
Вторая ошибка
ее я тоже учел
Vladimir Kheifets пишет:
Работаю много лет на разных хостингах и версиях PHP влоть до актуальной и не встречал чтобы где-то не работало.
да ... не на большинстве... я уж стал думать что короткие теги отключены по умолчанию(что было бы правильнее) за многие годы
но мне простительно я с хостингами не работаю
в любом случае это бредовая практика - уменьшает портабельность
Vladimir Kheifets пишет:
Если судить по оригиналу, то д.б. the_title()
в оригинале <?php the_title(); ?>
стало быть там вывод типа echo
$title = the_title(); как это будет?

(Отредактировано автором: 23 Ноября, 2020 - 20:04:32)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB