2009-09-02 4 views
0

Я сделал один проект php, и я загрузил его на сервере. Я разработал его на windowsas, и теперь я пытаюсь развернуть его на удаленном Linux-сервере. Но я получаю ошибку. Некоторые части страницы не показаны, я не знаю почему? Например, у меня есть одна страница, как показано ниже. я вижу только верхнюю часть других частей, которые я не вижу.php project deployment new problem

<?php 
require 'inc/header.php'; 
require 'inc/config.php'; 
require 'inc/functions.php'; 



$QUERY0 = " 
      SELECT * 
      FROM states 
      "; 

     $result0 = send_query($QUERY0); 
     $i=0; 
     while($row = mysql_fetch_array($result0)) 
      { 
       $states_names[$i]=$row['sname']; 
       $states_val[$i] =$row['id']; 
       $i++; 

      } 

$QUERY1 = " 
      SELECT * 
      FROM courses 
      "; 

     $result1 = send_query($QUERY1); 
     $i=0; 
     while($row = mysql_fetch_array($result1)) 
      { 
       $courses_names[$i]=$row['cname']; 
       $courses_val[$i]=$row['id']; 
       $i++; 

      } 


$QUERY2 = " 
      SELECT * 
      FROM jobprofile 
      "; 

     $result2 = send_query($QUERY2); 
     $i=0; 
     while($row = mysql_fetch_array($result2)) 
      { 
       $jobprofiles_names[$i]=$row['jobname']; 
       $jobprofile_val[$i]=$row['jobid']; 
       $i++; 

      } 



$QUERY3 = " 
      SELECT * 
      FROM edu 
      "; 

     $result3 = send_query($QUERY3); 
     $i=0; 
     while($row = mysql_fetch_array($result3)) 
      { 
       $edu_names[$i]=$row['eduq']; 
       $edu_val[$i]=$row['id']; 


       // echo "***********" .$edu_names[$i]; 
       $i++; 

      } 






?> 

<div class="left"> 
    <div class="left_articles"> 

     <h2><a href="#">Register</a></h2> 
     <p class="description">Please submit the folloing form</p> 
     <p> 
      <form action="check.php" method="post"> 

      <table border="0"> 

       <tbody> 
        <tr> 
         <td>First name</td> 
         <td><input type="text" name="fname" value="" /></td> 
        </tr> 
        <tr> 
         <td>Last name</td> 
         <td><input type="text" name="lname" value="" /></td> 
        </tr> 
        <tr> 
         <td>Address</td> 
         <td><input type="text" name="address" value="" /></td> 
        </tr> 

        <tr> 
         <td>age</td> 
         <td><input type="text" name="age" value="" /></td> 
        </tr> 

        <tr> 
         <td>State of origin</td> 
         <td> 
          <select name="origin"> 
           <? $i=0; 
            foreach($states_names as $state) 
            { 

             $val= $states_val[$i] ; 
           ?> 
           <option value="<? echo $val; ?>"><? echo $state; ?> </option> 
           <? 
             $i++; 
            } 
           ?> 
          </select> 
         </td> 
        </tr> 
        <tr> 
         <td>Mobile no</td> 
         <td><input type="text" name="mobile" value="" /></td> 
        </tr> 
        <tr> 
         <td>Sex</td> 
         <td><select name="sex"> 
           <option value="1">Male</option> 
           <option value="0">Female</option> 
         </select></td> 
        </tr> 
        <tr> 
         <td>Marrital Status</td> 
         <td><select name="ms"> 
           <option value="0">Single</option> 
           <option value="1">Married</option> 
         </select></td> 
        </tr> 
        <tr> 
         <td>Email</td> 
         <td><input type="text" name="email" value="" /></td> 
        </tr> 
        <tr> 
         <td>Job Applying For</td> 
         <td><select name="jobtype"> 
           <? $i=0; 
            foreach($jobprofiles_names as $job) 
            { 

             $val= $jobprofile_val[$i] ; 
           ?> 
           <option value="<? echo $val; ?>"><? echo $job; ?> </option> 
           <? 
             $i++; 
            } 
           ?> 
         </select> 
         </td> 
        </tr> 

        <tr> 
         <td>Have u worked in this sector before</td> 
         <td><select name="exp"> 
           <option value="0">no</option> 
           <option value="1">yes</option> 

         </select></td> 
        </tr> 
        <tr> 
         <td>Which department of this sector u have worked?</td> 
         <td> <input type="text" name="exptype" value="" /> 

         </td> 

        </tr> 
        <tr> 
         <td>Years of experinece in this sector</td> 
         <td><input type="text" name="yrsexp" value="" /></td> 
        </tr> 

        <tr> 
         <td>Higest Educational qualification</td> 
         <td><select name="eduq"> 
           <? $i=0; 
            foreach($edu_names as $ed) 
            { 

             $val= $edu_val[$i]; 
           ?> 
           <option value="<? echo $val; ?>"><? echo $ed; ?> </option> 
           <? 
             $i++; 

            } 
           ?> 
         </select> 

         </td> 
        </tr> 

        <tr> 
         <td>Course taken in above educational qualification</td> 
         <td><select name="crc"> 

           <? $i=0; 
            foreach($courses_names as $crc) 
            { 

             $val= $courses_val[$i]; 
           ?> 
           <option value="<? echo $val; ?>"><? echo $crc; ?> </option> 
           <? 
             $i++; 

            } 
           ?> 
         </select> 

         </td> 
        </tr> 

        <tr> 
         <td>Grade obtained in the above educational qualification</td> 
         <td><select name="grade"> 
           <option value="0">A</option> 
           <option value="1">B</option> 
            <option value="2">C</option> 
            <option value="3">D</option> 

         </select> 

         </td> 
        </tr> 


        <tr> 
         <td></td> 
         <td><input type="submit" value="Apply now" /></td> 
        </tr> 
       </tbody> 
      </table> 
      <input type="hidden" name="action" value="check" /> 
      </form> 

     </p> 
    </div> 


</div> 



<? require 'inc/right.php' ?> 

<? require 'inc/footer.php' ?> 

Мое описание файла выглядит следующим образом. содержит заголовок righ.php содержит правую сторону страницы

Почему мои страницы не показаны полностью? есть ли проблема с косой чертой? Различия в Windows и Linux?

ответ

1

Что вы подразумеваете под «верхними частями»?

Кроме того, попробуйте изменить теги PHP явно маркировать себя как PHP, так

<?php ... ?> 

вместо

<? ... ?> 
2

ли файлы и каталоги для вкл и вкл/headers.php все в нижнем регистре в файловой системе? Имена файлов Unix чувствительны к регистру. Измените включенные требования, чтобы убедиться, что это вызывает ошибку.

2

Вы также должны проверить окончания строк во всех своих файлах. Если вы разработали Windows, вероятность того, что у вас есть окончание строк cr/lf во всех файлах или даже в смешанном состоянии. В зависимости от того, как вы передали файлы на сервер Linux, они могут быть преобразованы или нет. Особенно смешанное состояние может вызвать проблемы.

Еще одна проверка - это кодирование файлов - они также должны быть согласованы во всем вашем проекте. Если они находятся в UTF-8, убедитесь, что у них нет Byte-order mark (BOM), так как это может вызвать проблемы с включенными файлами.

2

Вы испытываете Windows и Linux, обрабатываете относительные пути по-разному.

Использовать абсолютные пути (обратите внимание, что php как для Windows, так и для Linux принимает разделитель каталога косой черты).

Предполагая (пример сервера Linux) приложение всегда выполняет от абсолютного пути:

/home/www/index.php 

И ваши включают скрипты расположены:

/home/www/inc/header.php 

...

Тогда вы может определить абсолютный путь и объединить его в каждую строку include:

<?php 

define('ABSPATH', dirname(__FILE__)); 

... 

include ABSPATH . '/inc/header.php'; 

... 

include ABSPATH . '/inc/footer.php'; 

?> 
0

Константа DIRECTORY_SEPARATOR поможет вам здесь.

Заменить:

require 'inc/header.php'; 

с:

require dirname(__FILE__) . DIRECTORY_SEPARATOR . 'inc' . DIRECTORY_SEPARATOR . 'header.php'; 

И сделать что-то подобное для остальных.