Page 1 sur 2

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

Posté : 17 nov. 2008, 10:54
par Cobra52
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 :)

Posté : 17 nov. 2008, 11:04
par yaug
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.

Posté : 17 nov. 2008, 11:34
par Cobra52
Merci yaug ;)

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

Bonne journée et encore merci :)

Posté : 19 nov. 2008, 10:52
par Cobra52
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 ;)

Posté : 19 nov. 2008, 10:58
par agité
Tu as bien redémarrer le server apache après les modifications ?

Colle ici le code que tu as maintenant.

Posté : 19 nov. 2008, 11:00
par Cobra52
Oui oui, j'ai redémarré le serveur.

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

Merci.

Posté : 19 nov. 2008, 11:02
par yaug
Bonjour.

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

Merci

Posté : 19 nov. 2008, 11:03
par zeus
Donne nous le début du code PHP de la page qui s'affiche en blanc

Posté : 19 nov. 2008, 11:11
par Cobra52
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;
?>

Posté : 19 nov. 2008, 11:12
par yaug
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?

Posté : 19 nov. 2008, 11:59
par agité
Ou une page avec un simple :
<?php

echo "Hello World";

?>
Te retourne quoi ?

Posté : 19 nov. 2008, 12:17
par Cobra52
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.

Posté : 19 nov. 2008, 12:20
par yaug
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:

Posté : 19 nov. 2008, 12:49
par Cobra52
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]

Posté : 19 nov. 2008, 12:57
par yaug
où as tu fait ton écho au juste ? (code ?)