Для синтаксических ошибок вам нужно включить отображение ошибок в 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/
Похоже, вам нужно 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&file_id=<?php echo $result->id; ?>&filename=<?php echo $display_name; ?>&assn_id=<?php echo $assn_id; ?>"><?php echo $result->display_name; ?></a>
Должен выглядеть так:
<a href="renamefiles.php?action=rename&file_id=<?php echo $result->id; ?>&filename=<?php echo urlencode($display_name;) ?>&assn_id=<?php echo $assn_id; ?>"><?php echo $result->display_name; ?></a>
После обработки запроса вам понадобится urldecode
$_GET['filename']
.
Я бы посоветовал вам не иметь пробелов и специальных символов, например &
в вашем имени файла (если вы действительно используете это имя в качестве имени файла файловой системы). Вы просите о неприятностях.