OVH Cloud OVH Cloud

echec de ma 1ere page PHP

6 réponses
Avatar
micol
Bonjour,

Ma première page PHP fonctionne bien sur mon PC avec EasyPHP 1.8.0.1
sous Win2000.

Mais ça ne marche pas sur le site de Free.

J'ai ce warning (plus d'autres qui découlent du premier) :
Warning: Invalid argument supplied for foreach() ... on line 5

voici l'adresse de la page : http:/:a-velo.com/essais/index.php

et le code php :

<?
//rapatriement des images
$files = glob("images/*_400.jpg");
$i=0;
/* ici la ligne 5 en question */ foreach ($files as $filename) {
$filename=substr($filename,0,strlen($filename)-3);
$Tabnom[$i]=$filename;
$i++;
}
if (isset($_GET['j']))
{
$numero=($_GET['j']) ;
$numero++ ;
if ($numero>4) {$numero=0;}
}
else
{
$numero=1;
}

$nom= $Tabnom[$numero];

$image=$nom."jpg";
list($w, $h) = getimagesize($image);

//récupération du texte lié et des couleurs
$fichier = fopen($nom."txt", 'r');
$ligne=fgets($fichier);
fclose($fichier);
$tabligne=explode("|",$ligne);
$color=$tabligne[1];
$texte=$tabligne[0];
$color_texte=$tabligne[2];
?>

dans le header html, j'ai cette ligne :

<meta http-equiv="Refresh" content="5; url='index.php?j=<? echo
$numero ?>'">

et vous pouvez constater en listant http://a-velo.com/essais/images/
que les fichiers recherchés existent bien.

Merci à qui pourra m'expliquer d'où vient le problème.

Micol.

6 réponses

Avatar
Olivier Miakinen

J'ai ce warning (plus d'autres qui découlent du premier) :
Warning: Invalid argument supplied for foreach() ... on line 5

voici l'adresse de la page : http://a-velo.com/essais/index.php

et le code php :

<?
//rapatriement des images
$files = glob("images/*_400.jpg");
$i=0;
/* ici la ligne 5 en question */ foreach ($files as $filename) {
[...]


et vous pouvez constater en listant http://a-velo.com/essais/images/
que les fichiers recherchés existent bien.


<cit. http://fr.php.net/glob>
(PHP 4 >= 4.3.0, PHP 5)
...
glob() retourne un tableau contenant les fichiers et les dossiers
trouvés, un tableau vide si aucun fichier/dossier n'est trouvé ou FALSE
en cas d'erreur.
</cit.>

1) vérifie que la version de PHP chez Free est bien supérieure ou
égale à 4.3.0

2) regarde si par hasard (glob("images/*_400.jpg") === false) ne
serait pas vrai.

Avatar
micol
On 10 Nov 2006 21:28:38 GMT, Olivier Miakinen <om+
wrote:


<cit. http://fr.php.net/glob>
(PHP 4 >= 4.3.0, PHP 5)
...
glob() retourne un tableau contenant les fichiers et les dossiers
trouvés, un tableau vide si aucun fichier/dossier n'est trouvé ou FALSE
en cas d'erreur.
</cit.>

1) vérifie que la version de PHP chez Free est bien supérieure ou
égale à 4.3.0

2) regarde si par hasard (glob("images/*_400.jpg") === false) ne
serait pas vrai.


Merci pour ta réponse.

Le problème vient bien de là.
glob renvoie "false"

Je ne suis pas arrivé à voir la version de php utilisée par Free, mais
la page fonctionne chez un autre hébergeur avec php 4.4.4.

Avatar
Denis Beauregard
Le 11 Nov 2006 16:47:06 GMT, (micol) écrivait dans
fr.comp.lang.php:

Je ne suis pas arrivé à voir la version de php utilisée par Free, mais


Utilisez la fonction phpinfo();


Denis

Avatar
Florian Sinatra
*micol* @ 11/11/2006 17:47 :
1) vérifie que la version de PHP chez Free est bien supérieure ou
égale à 4.3.0



C'est le cas, car sinon l'on aurait :
*Fatal error* : Call to undefined function glob()

Le problème vient bien de là.
glob renvoie "false"


Vérifie donc que le chemin soit correct.

Je ne suis pas arrivé à voir la version de php utilisée par Free, mais
la page fonctionne chez un autre hébergeur avec php 4.4.4.


Un ptit phpinfo() doit faire l'affaire.


Avatar
micol
On 10 Nov 2006 15:09:07 GMT, (micol) wrote:

Bonjour,

Merci pour vos réponses.

J'ai trouvé ce morceau de phrase sur le Site du Zéro :

"...depuis que Free a désactivé la fonction glob()..."

Il ne s'agit donc pas de niveau de version mais de bridage volontaire.

C'est bien ma veine : la première fonction que j'utilise dans ce
langage est justement celle qui a été supprimée par mon hébergeur.
;-))
Avatar
thatsme
Le Sun, 12 Nov 2006 09:01:55 +0000, micol a écrit :

On 10 Nov 2006 15:09:07 GMT, (micol) wrote:

Bonjour,

Merci pour vos réponses.

J'ai trouvé ce morceau de phrase sur le Site du Zéro :

"...depuis que Free a désactivé la fonction glob()..."

Il ne s'agit donc pas de niveau de version mais de bridage volontaire.

C'est bien ma veine : la première fonction que j'utilise dans ce
langage est justement celle qui a été supprimée par mon hébergeur.
;-))
Dans ce cas, porte toi vers

opendir, readdir et consorts
http://php.easynet.be/manual/fr/function.opendir.php

Johan