Я использую PHP с MySQL, чтобы вытаскивать программы, курсы и т. Д. В поле 2003 с PHP 5.2. Я переношу свой сайт в новый ящик 2008 с PHP 5.4 (из-за эксплойтов в базе данных). Мои данные по-прежнему выводятся на мой сайт (программы, курсы и т. Д.) С моего нового сервера.PHP сбой при обновлении до 5.4
Проблема заключается в том, что у меня есть страница, которая для входа и не загружается (ошибка HTTP 500). Я проследил до раздела кода, который выдает и считает, что это session_start()
. Я знаю, что в 5.3 он изменился и теперь вернет false, если он не запускается вместо предыдущего.
Я попытался повторить, что загружает строки за строкой с каждой переменной, так как я могу сравнить ее с двумя версиями. Я попытался начать сеанс в начале. Завершение его перед моим кодом и т. Д. Это кажется простым, но у меня пока нет его работы.
Вот начало моей страницы «вход-ИНК-header.php»:
<?php
if(!isset($session_started)) $session_started = session_start();
// avoids duplicate pstings
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
ini_set("display_errors", "1");
if(!isset($requires)) $requires = "User";
include_once("includes/handleLogin.php");
include_once("../includes_app/db_settings.php");
?>
Если удалить этот блок, страница загружается только без моего входа в коробках. Страницы прекрасно работают в версии 5.2. Идеи?
Мои db_settings:
<?php
//$site_root = "/var/www/html/";
$site_root = "C:\\Inetpub\\wwwroot\\"; //changed 12-13-13 for new server
//$site_root = substr($_SERVER['PATH_TRANSLATED'], 0, (-1 * strlen($_SERVER['PATH_INFO'])));
$site_url = "http://10.20.251.60/";
include_once($site_root."includes_app/adodb/adodb.inc.php");
$db =& ADONewConnection('mysql');
$db->Connect("localhost", "####", "####", "####");
$db->SetFetchMode(ADODB_FETCH_ASSOC);
// for mysql only...make sure we are NOT in strict mode
$db->Execute("SET sql_mode=''");
$tblprefix = "";
$extraFieldLabHours = true;
$extraFieldOBIHours = true;
$extraFieldsPrereqCoreq = true;
$extraFieldProgramRequirements = true;
$maxCourseCodeLength = 4;
$maxCoursePrefixLength = 4; // 11-05-10 added this line to fix prefix length
$exportReport[$site_url.'includes_app/html_word_export.php'] = "Export for Microsoft Word 2007";
$exportReport[$site_url.'includes_app/html_rtf_export.php'] = "Export for Adobe InDesign CS2";
$exportReport[$site_url.'directory/print.php'] = "Export Directory to HTML";
$sysadmin_email = "[email protected]";
$extraModuleEmployeeDirectory = true;
$extraModuleCampusAlert = true;
$extraFieldAtAGlance = true;
$areas = array();
$configAreasResult = $db->Execute("SELECT dbName, displayName FROM ".$tblprefix."areas ORDER BY sequence");
while($configRow = $configAreasResult->fetchRow()) $areas[$configRow['dbName']] = $configRow['displayName'];
$program_types = array();
$configProgramTypesResult = $db->Execute("SELECT dbName, displayName FROM ".$tblprefix."program_types ORDER BY sequence");
while($configRow = $configProgramTypesResult->fetchRow()) $program_types[$configRow['dbName']] = $configRow['displayName'];
$extraFieldCampus = array();
$configCampusesResult = $db->Execute("SELECT displayName FROM ".$tblprefix."campuses ORDER BY sequence");
while($configRow = $configCampusesResult->fetchRow()) $extraFieldCampus[] = $configRow['displayName'];
$extraFieldEmployeeOfficeHours = true;
$extraFieldEmployeeBio = true;
$extraFieldEmployeePicture = true;
$extraFieldFoptNumRequirements = true;
$alternateTitleGeneralCoreCourses = "General Core Curriculum";
$alternateTitleOccupationalCourses = "Occupational Curriculum";
$extraModuleCampusAlert = true; // added on 3-10-10 to make campus alert feature work
$alternateTitleEmployeeEducation = "Credentials"; $showBannerID = true;
$deeperMenus = true;
$importModules = array();
$importModules['import_courses_xml.php'] = "Courses XML";
$importModules['import_employees_xml.php'] = "Employees XML";
$extraModuleDivisions = true;
$gntc_local_upload_dir = $site_root."uploads/";
$gntc_web_upload_dir = $site_url."uploads/";
$exportReport[$site_url.'includes_app/phone_sheet_csv.php'] = "Phone Sheet CSV";
?>
файла журнала:
[16-Jan-2014 21:17:46 UTC] PHP Warning: include_once (включает/handleLogin.php): не удалось open stream: Нет такого файла или каталога в C: \ inetpub \ wwwroot \ login \ includes \ header.php в строке 8
[16-Jan-2014 21:17:46 UTC] PHP Warning: include_once(): Неудачное открытие 'включает/handleLogin.php' для включения (include_path = '; C: \ php \ pear') в C: \ i netpub \ wwwroot \ login \ includes \ header.php в строке 8
[16-Jan-2014 21:17:46 UTC] PHP Warning: include_once (../ includes_app/db_settings.php): не удалось открыть поток : Нет такого файла или каталога в C: \ inetpub \ wwwroot \ login \ includes \ header.php в строке 9
[16-Jan-2014 21:17:46 UTC] PHP Warning: include_once(): Не удалось открыть '../includes_app/db_settings.php' для включения (include_path = '; C: \ php \ pear') в C: \ inetpub \ wwwroot \ login \ includes \ header.php в строке 9
[16 -Jan-2014 21:17:46 UTC] PHP Примечание: неопределенная переменная: заголовок в C: \ inetpub \ wwwroot \ login \ includes \ header.php в строке 16
[16-Jan-2014 21:17:46 UTC] PHP Notice: Undefined переменной: название в C: \ Inetpub \ Wwwroot \ Логин \ включает \ header.php на линии 159
Я заметил, что этот ссылочный PEAR, который не установлен по умолчанию, как более старые версии. Может ли это быть проблемой?
Итак ваш включает содержат файлы с некоторыми вещами, которые являются устаревшими в новых версиях (например, пройти по ссылке) –
Вы должны проверить ошибку, записанную в файл журнала, и показать, что там отображается ошибка, потому что там вы увидите точную причину. Если вы запустите php в качестве модуля apache, загляните в файл журнала ошибок apache. –
Пока вы не публикуете сообщение об ошибке, очень маловероятно, что вы получите ответ. Мы все волонтеры здесь, проведя время в нашем спарринге, поэтому мы не выкапываем линию для прокрутки кода, чтобы найти вашу ошибку, особенно если сообщение об ошибке с фактической линией, где это происходит, может быть предоставлено вами. Поэтому, если вы хотите получить помощь, тогда приложите время, чтобы показать сообщение об ошибке. –