Помогите с синтаксической ошибкой

  • Автор темы travelsitemaker
  • 51
  • Обновлено
  • 17, May 2024
  • #1
Я получаю эту ошибку: Ошибка синтаксического анализа: синтаксическая ошибка, неожиданное '[', ожидание ',' или ';' в /home/public_html/uploader.php в строке 6

 if(isset($_SESSION['channel_id'])) {

echo '<input type="hidden" name="channel" value="1" />';

} else {

echo '<select class="upload-video-form-input" name="channel" onchange="javascript:ahahscript.ahah('[var.base_url]/uploader.php?sub_cat='+ document.form_upload.channel.value, 'sub_change', '', 'GET', '', this);">

&nbsp;[var.fields_all;htmlconv=no]</select>';

}
Код (разметка): Можете ли вы помочь мне найти, как/где исправить ошибку? Любая помощь будет оценена по достоинству.

travelsitemaker


Рег
12 Aug, 2013

Тем
2

Постов
4

Баллов
24
  • 18, May 2024
  • #2
У вас возникли проблемы из-за встроенного JavaScript. Который вам не следует использовать. Но если вы это сделаете, вам придется решить, как вы хотите избежать одинарных кавычек. Но лучшее решение — просто не использовать встроенный JavaScript.
 

partprobe


Рег
02 Oct, 2013

Тем
0

Постов
1

Баллов
1
  • 01, Jun 2024
  • #3
@WebDeveloperOne показал вам это правильно: экранируйте одинарные кавычки внутри строк с помощью косой черты в начале - небольшой совет: если у вас есть только два результата и никакой другой код не работает, не тратьте время на if и два эха, чтобы выполнить эту работу.

одного эха и тернарного оператора.

Кроме того, при onchange автоматически создается JavaScript, поэтому фраза «Javascript:» фактически нарушает его.

Этот «javascript:» используется только в HREF, а не где-либо еще.событие обработчики.
 

echo isset($_SESSION['channel_id']) ?

'<input type="hidden" name="channel" value="1">' :

'<select

class="upload-video-form-input"

name="channel"

onchange="ahahscript.ahah(\'[var.base_url]/uploader.php?sub_cat=\'+ document.form_upload.channel.value, \'sub_change\', \'\', \'GET\', \'\', this);">

&nbsp; [var.fields_all;htmlconv=no]

</select>';

Код (разметка): Тем не менее... DINGDINGDINGDINGDNIG у нас есть победитель. Если вы используете какой-либо изсобытие методы в разметке или использование href="javascript:" у вас есть небрежные и, возможно, небезопасные сценарии... поэтому они вообще блокируются, если вы используете новую «политику безопасности контента» из HTML 5. (одна из несколько вещей в HTML 5 мне нравятся)
https://www.w3.org/TR/CSP/

Больше никаких onchange, onclick и т. д. в разметке... больше нет тега
 

Даниил2002


Рег
07 Dec, 2014

Тем
1

Постов
2

Баллов
12
  • 08, Jun 2024
  • #4
Надеюсь, я решил это
 if(isset($_SESSION['channel_id'])) {

echo '<input type="hidden" name="channel" value="1" />';

} else {

echo '<select class="upload-video-form-input" name="channel" onchange="javascript:ahahscript.ahah(\'[var.base_url]/uploader.php?sub_cat=\'+ document.form_upload.channel.value, \'sub_change\', \'\', \'GET\', \'\', this);">&nbsp;[var.fields_all;htmlconv=no]</select>';

}
PHP:
 

MC_Str1t


Рег
18 Apr, 2014

Тем
1

Постов
2

Баллов
12
Тем
49554
Комментарии
57426
Опыт
552966