Forme écriture des tags (<?php) sous PHP5

Eléphant du PHP | 153 Messages

17 nov. 2008, 10:54

Bonjour à tous,

Je vais changer l'ensemble des tags pour toutes mes pages php (actuellement sous PHP4) afin de les rendre compatible pour PHP5. Pas envie de désactiver shorts_open_tags.

Tout ce qui est en <? je vais les passer en <?php
Par contre, j'en ai sous cette forme <?=$var
Est-ce que je peux les remplacer par <?php=$var sans soucis ?

Merci pour vos réponses :)

Eléphant du PHP | 353 Messages

17 nov. 2008, 11:04

Rah les shorts open tags :D

Tu vas être obligé de remplacer tous les <?=$var?> par des <?php echo $var; ?>

Normalement, je ne dis pas de bêtises.

Eléphant du PHP | 153 Messages

17 nov. 2008, 11:34

Merci yaug ;)

Je vais modifier comme tu me l'as indiqué.

Bonne journée et encore merci :)

Eléphant du PHP | 153 Messages

19 nov. 2008, 10:52

Re à tous,

J'ai effectué les modifs comme ci-dessus.
Mais en affichant le site sous EasyPHP2 (PHP5) je me retrouve avec une page blanche, sans erreur d'indiquée.
J'ai pourtant activé error_reporting = E_ALL et mis short_open_tag = off

Donc, si quelqu'un avait déja eu ce problème et qu'il puisse m'aiguiller.

Merci ;)

Mammouth du PHP | 965 Messages

19 nov. 2008, 10:58

Tu as bien redémarrer le server apache après les modifications ?

Colle ici le code que tu as maintenant.

Eléphant du PHP | 153 Messages

19 nov. 2008, 11:00

Oui oui, j'ai redémarré le serveur.

De quel code parles-tu ? Code d'erreur ? Je n'en ai pas.

Merci.

Eléphant du PHP | 353 Messages

19 nov. 2008, 11:02

Bonjour.

A défaut de code d'erreur peux tu nous coller ton code php ?
Cela aidera surement.

Merci

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

19 nov. 2008, 11:03

Donne nous le début du code PHP de la page qui s'affiche en blanc
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 153 Messages

19 nov. 2008, 11:11

Je veux bien, mais j'ai des centaines de fichiers php
Et si je vous mets l'index, je dois y inclure les fichiers en "include" qui eux ont d'autres "include"
Bref, il me faudrait quelles milliers de lignes sur le forum

Je précise que le site fonctionne parfaitement sous EasyPHP1-8
J'avais testé EasyPHP2 sans avoir effectué les modifs ci-dessus, là, je voyais le code source des pages (mes tags étaient encore sousla forme <? et <?= ), mais depuis la modif, page blanche.
Je vous mets quand même l'index
<?php
session_start();

define ('IN_SITE', 1);
define ('INDEX_PAGE', 1); 

include_once ('includes/global.php');

include_once ('includes/functions_login.php');
include_once ('includes/functions_item.php');

if (eregi('logout', $_GET['option']))
{
	logout();
}

include_once ('global_header.php');

if (isset($_GET['change_language']))
{
	$all_languages = list_languages('site');

	if (in_array($_GET['change_language'], $all_languages))
	{
		$session->set('site_lang', $_GET['change_language']);
	}

	$refresh_link = 'index.php';

	$template_output .= '<br><p class="contentfont" align="center">' . MSG_SITE_LANG_CHANGED . '<br><br>
		Please click <a href="' . process_link('index') . '">' . MSG_HERE . '</a> ' . MSG_PAGE_DOESNT_REFRESH . '</p>';
	$template_output .= '<script>window.setTimeout(\'changeurl();\',300); function changeurl(){window.location=\'' . $refresh_link . '\'}</script>';
}
else if (isset($_GET['change_skin']))
{
	$all_skins = list_skins('site');

	if (in_array($_GET['default_theme'], $all_skins))
	{
		$session->set('site_theme', $_GET['default_theme']);
	}

	$refresh_link = 'index.php';

	$template_output .= '<br><p class="contentfont" align="center">' . MSG_SITE_SKIN_CHANGED . '<br><br>
		Please click <a href="' . process_link('index') . '">' . MSG_HERE . '</a> ' . MSG_PAGE_DOESNT_REFRESH . '</p>';
	$template_output .= '<script>window.setTimeout(\'changeurl();\',300); function changeurl(){window.location=\'' . $refresh_link . '\'}</script>';	
}
else
{
	include_once ('global_mainpage.php');
}

include_once ('global_footer.php');

echo $template_output;
?>

Eléphant du PHP | 353 Messages

19 nov. 2008, 11:12

Déjà est ce que tu as débogué un peu?
En mettant des écho successifs dans ton code afin de cibler au moins on se situe le problème?

Mammouth du PHP | 965 Messages

19 nov. 2008, 11:59

Ou une page avec un simple :
<?php

echo "Hello World";

?>
Te retourne quoi ?

Eléphant du PHP | 153 Messages

19 nov. 2008, 12:17

Effectivement, j'ai tout retiré de mon index.php et inséré echo "coucou";
J'ai bien l'affichage de coucou.

il semble que j'ai un soucis (uniquement avec EasyPHP2) dans l'une (ou plusieurs) de mes pages php qui sont incluses dans l'index.
Mais sans erreur reportée, c'est pas simple.

Eléphant du PHP | 353 Messages

19 nov. 2008, 12:20

c'est pour ca qu'il te faut repasser au bon vieux débogue des familles.
Essaye de trouver quel fichier bogue.
echo "debug 1 <br />";
include "fichier1.pxp";
echo "debug 2 <br />";
include "fichier2.pxp";
Une fois fait, trouve ce qui plante dans le fichier génant de la même manière. :wink:

Eléphant du PHP | 153 Messages

19 nov. 2008, 12:49

c'est pour ca qu'il te faut repasser au bon vieux débogue des familles.
Essaye de trouver quel fichier bogue.
echo "debug 1 <br />";
include "fichier1.pxp";
echo "debug 2 <br />";
include "fichier2.pxp";
Une fois fait, trouve ce qui plante dans le fichier génant de la même manière. :wink:
Bon, j'ai effectué la manoeuvre comme tu me l'as indiqué et j'ai enfin l'affichage d'une erreur !

Parse error: parse error, unexpected T_ECHO, expecting T_FUNCTION in C:\EasyPHP 2.0b1\www\xxxxxxxxx\class_database.php on line 19
Et la fonction associée :
function connect($host, $username, $password)  <-- ligne 19
	{
		$result = @mysql_connect($host, $username, $password);
		
		if (!$result)
		{
			$error = $this->display_error(MSG_ERROR_MYSQL_CONNECT, $this->sql_error());

			if ($this->die)
			{
				die ($error);
			}
			else 
			{
				return false;
			}
		}
		else 
		{
			return true;
		}
		
	}
Je ne vois pas à quoi peut correspondre les erreurs "T_ECHO et T_FUNCTION" dans ma fonction à la ligne 19 ?

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphant du PHP | 353 Messages

19 nov. 2008, 12:57

où as tu fait ton écho au juste ? (code ?)