2012-05-01 2 views
0

Cette question a été répondu (voir ci-dessous question)erreur PHP provoquant une page blanche (rapport d'erreurs fonctionne correctement)

Original Question: J'ai construit un site Web qui fonctionne correctement et n'a pas de problème. Ensuite, nous avons commencé une migration d'un serveur basé sur VPS vers un vrai serveur dédié. Ce faisant, notre société d'hébergement nous a mis à jour de CentOS 4 à CentOS 6, de PHP 5.2.9 à PHP 5.3 et nous a fait passer de DSO à SuPHP. Maintenant, le nouveau serveur provoque une erreur que nous n'avions pas auparavant. Une de nos pages est vide et je l'ai réduit à une seule ligne de code (ligne 26).

1. class directoryByLetterReverse{ 
2.  private $da=0; 
3.  public $category; 
4.  public $letter; 
5.  public $listing; 
6.  function __construct($letter,$category,$conn){ 
7.   $this->letter=$letter; 
8.   $this->category=$category; 
9.   $recordSet=&$conn->Execute('SELECT members.Member_ID AS MemberID, companies.CompanyName AS CompanyName, members.IPAddress AS IPAddress, directory_table.dir_id, members.BusinessType_ID, members.MemberType FROM members Inner Join companies ON companies.Company_ID = members.Company_ID Left Join directory_table ON directory_table.member_id = members.Member_ID WHERE companies.CompanyName LIKE "'.$this->letter.'%" AND members.BusinessType_ID LIKE "'.$this->category.'" AND members.published="1" ORDER BY directory_table.dir_id DESC, members.Member_ID DESC;'); 
10.   if(!$recordSet){ 
11.    print $conn->ErrorMsg(); 
12.   } else { 
13.    $this->listing[0]['memberid']=''.$recordSet->fields[0].''; 
14.    $this->listing[0]['companyname']=''.$recordSet->fields[1].''; 
15.    $this->listing[0]['ipaddress']=''.$recordSet->fields[2].''; 
16.    $this->listing[0]['dirid']=''.$recordSet->fields[3].''; 
17.    $this->listing[0]['typeid']=''.$recordSet->fields[4].''; 
18.    $this->listing[0]['memtype']=''.$recordSet->fields[5].''; 
19.    while($array=$recordSet->FetchRow()){ 
20.     $this->da++; 
21.     $this->listing[$this->da]['memberid']=''.$recordSet->fields[0].''; 
22.     $this->listing[$this->da]['companyname']=''.$recordSet->fields[1].''; 
23.     $this->listing[$this->da]['ipaddress']=''.$recordSet->fields[2].''; 
24.     $this->listing[$this->da]['dirid']=''.$recordSet->fields[3].''; 
25.     $this->listing[$this->da]['typeid']=''.$recordSet->fields[4].''; 
26.     $this->listing[$this->da]['memtype']=''.$recordSet->fields[5].''; < - - - - this line right here is what is causing the problem 
27.    }; 
28.   }; 
29.  } 
30.  function returnSingle($j){ 
31.   return $this->listing[$j]['memberid'].' '.$this->listing[$j]['companyname'].' '.$this->listing[$j]['ipaddress'].' '.$this->listing[$j]['dirid']; 
32.  } 
33. } 

Pour la vie de moi, je ne peux pas trouver quelque chose de mal avec la ligne 26, mais si je le laisse là, je reçois une page blanche, si je la mettre en commentaire, tout fonctionne (jusqu'à ce que vous allez à une page le fait référence mais je m'attendrais à être brisé).

Aussi, juste une note de côté, j'utilise ADOdb Database Abstraction Library (http://adodb.sourceforge.net/) pour l'interaction MySQL.

Il s'avère qu'il n'y a rien de mal avec le code, le serveur de test a simplement des performances limitées et n'a pas pu gérer la charge d'un chargement de page non-attaché. merci pour les commentaires car ils m'ont fait penser dans la bonne direction pour trouver ce dont j'avais besoin.

+0

Quelle est la seule ligne de code à laquelle vous l'avez réduit? – dweiss

+0

oups, j'ai édité le post, mais c'est la ligne 26 –

+0

Quelle erreur obtenez-vous? Avez-vous des erreurs PHP? Enregistrez-vous les erreurs apache? – hakre

Répondre

0

Et sans le ";" de la ligne 27 et 28, ne fonctionne toujours pas?

+0

essayé aussi, en fait, je les ai ajouté en essayant de le faire fonctionner, ne fait aucune différence, mais si je mets un // au début de la ligne 26, tout commence juste travail –