2014-01-16 5 views
2

Я использую 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, который не установлен по умолчанию, как более старые версии. Может ли это быть проблемой?

+0

Итак ваш включает содержат файлы с некоторыми вещами, которые являются устаревшими в новых версиях (например, пройти по ссылке) –

+5

Вы должны проверить ошибку, записанную в файл журнала, и показать, что там отображается ошибка, потому что там вы увидите точную причину. Если вы запустите php в качестве модуля apache, загляните в файл журнала ошибок apache. –

+1

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

ответ

0

Вы поставили это в качестве корня сайта

$site_root = "C:\\Inetpub\\wwwroot\\"; 

Попробуйте положить

$site_root = "http://yourhost/folder_name/" 
Смежные вопросы