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.
Quelle est la seule ligne de code à laquelle vous l'avez réduit? – dweiss
oups, j'ai édité le post, mais c'est la ligne 26 –
Quelle erreur obtenez-vous? Avez-vous des erreurs PHP? Enregistrez-vous les erreurs apache? – hakre