кнопка щебета и общий URL-адрес [дубликат]

Для синтаксических ошибок вам нужно включить отображение ошибок в php.ini. По умолчанию они отключены, потому что вы не хотите, чтобы «клиент» видел сообщения об ошибках. Проверьте эту страницу в документации PHP для информации по двум директивам: error_reporting и display_errors. display_errors, вероятно, тот, который вы хотите изменить. Если вы не можете изменить php.ini, вы также можете добавить следующие строки в файл .htaccess:

php_flag  display_errors        on
php_value error_reporting       2039

Возможно, вам захочется использовать значение E_ALL (как упоминалось Gumbo) для вашей версии PHP для error_reporting, чтобы получить все ошибки. Дополнительная информация

3 других элемента: (1) Вы можете проверить файл журнала ошибок, поскольку он будет иметь все ошибки (кроме случаев, когда ведение журнала отключено). (2) Добавление следующих двух строк поможет вам отлаживать ошибки, которые не являются синтаксическими ошибками:

error_reporting(-1);
ini_set('display_errors', 'On');

(3) Другой вариант - использовать редактор, который проверяет наличие ошибок при вводе, например PhpEd . PhpEd также поставляется с отладчиком, который может предоставить более подробную информацию. (Отладчик PhpEd очень похож на xdebug и интегрируется непосредственно в редактор, поэтому вы используете 1 программу для выполнения всего.)

Ссылка Cartman также очень хороша: http : //www.ibm.com/developerworks/library/os-debug/

0
задан dcaswell 18 October 2013 в 06:30
поделиться

1 ответ

Похоже, вам нужно urlencode указать имя файла, когда вы вставляете его в URL-адрес, который вы создаете. За комментарий выше, не делая этого, вы нарушаете строку GET.

array(5) { 
  ["action"]=> string(6) "rename" 
  ["file_id"]=> string(5) "24086" 
  ["filename"]=> string(8) "Black " 
  ["White_pdf"]=> string(0) "" 
  ["assn_id"]=> string(2) "25" 
}

Это привело вас к выводу, что код, который вы опубликовали, терпит неудачу. Это не так. Это просто конструирует неверный HTML, который затем терпит неудачу, когда вы нажимаете на него.

Этот код:

<a href="renamefiles.php?action=rename&amp;file_id=<?php echo $result->id; ?>&amp;filename=<?php echo $display_name; ?>&amp;assn_id=<?php echo $assn_id; ?>"><?php echo $result->display_name; ?></a>

Должен выглядеть так:

<a href="renamefiles.php?action=rename&amp;file_id=<?php echo $result->id; ?>&amp;filename=<?php echo urlencode($display_name;) ?>&amp;assn_id=<?php echo $assn_id; ?>"><?php echo $result->display_name; ?></a>

После обработки запроса вам понадобится urldecode $_GET['filename'].

Я бы посоветовал вам не иметь пробелов и специальных символов, например & в вашем имени файла (если вы действительно используете это имя в качестве имени файла файловой системы). Вы просите о неприятностях.

1
ответ дан s_ha_dum 21 August 2018 в 13:14
поделиться
  • 1
    Это сработало отлично. Спасибо, что объяснили это ясным способом, я ценю помощь! – royalenfield 29 January 2013 в 17:48
  • 2
    Почему не более + 1? Кажется, это точно отвечает на вопрос. – FeralReason 12 January 2018 в 07:04
Другие вопросы по тегам:

Похожие вопросы: