8791 sujets

Développement web côté serveur, CMS

Bonjour,

J'avais d'afficher des phrases d'un document html de façon aléatoire dans toutes les pages de mon site. J'ai trouvé un code simple en php mais visiblement il ne fonctionne pas. Je me suis cassé la tête dessus, j'ai lu pas mal de truc et notemment le tuto sur la fonction include mais je n'ai toujours pas le début d'une solution pour le faire fonctionner

Voilà le code de la page html nomé breves.inc.php
<?php 
function breve_aleatoire() 
{ 
$breves=array("Bonjour, comment allez-vous ?", 
"Ecoutez, j'ai un petit problème...", 
"Vous croyez vraiment ?", 
"Auriez-vous un début de solution?", 
"Au revoir et à Bientôt !" 
); 
$num_breve=rand(0, sizeof($breves) ); 
echo $breves[$num_breve]; 
) 
?> 


la partie que j'insère au début de chaque page du site
<?php include ("/breves.inc.php");
breve_aleatoire();
?>


Et celle que je mets à l'endroit où la phase doit s'afficher
<?php include ("/breves.inc.php") ?>



Réponse :

Warning: main(/breves.inc.php) [function.main]: failed to open stream: No such file or directory in /home.10.12/.../essai.php on line 1

Warning: main() [function.include]: Failed opening '/breves.inc.php' for inclusion (include_path='.:/usr/local/lib/php') in /home.10.12/.../essai.php on line 1

Fatal error: Call to undefined function: breve_aleatoire() in /home.10.12/.../essai.php on line 2


Si vous pouviez éclairer ma lanterne en m'expliquant ce que veut dire ce message d'erreur, ce serait bien aimable à vous Smiley biggrin
Modifié par Tweety (26 Feb 2008 - 00:59)
Salut Tweety Smiley cligne ,

ce message signifie que la page breves.inc.php n'est pas trouvée.

Si la page est dans le même répertoire que les pages qui font l'include il faut enlever le / :
<?php include ("breves.inc.php");

Sinon il faut rajouter le chemin vers la page. Par exemple
<?php include ("include/pages/breves.inc.php");

A+ Smiley smile
salut Heyoan Smiley biggrin

Merci beaucoup, ça fonctionne maintenant Smiley biggrin mais j'ai encore un petit problème Smiley lol Les phrases s'affichent correctement et lorsque je rafraîchi la page, elle change mais par moment il y a un raté et le cadre dans lequel elles s'affichent reste vide.

Autre petite question: il n'y a pas moyen de formater le texte et d'y ajouter des liens? C'est incompatible avec la fonction aléatoire?

Merci de votre aide
@+
Tweety a écrit :
mais par moment il y a un raté et le cadre dans lequel elles s'affichent reste vide.

sizeof/count retourne le nombre d'éléments (par exemple 5), par contre les éléments sont indexés depuis 0 (donc élément 5 = index 4).
Si le rand tombe sur la plus grande valeur possible l'index n'existe pas.

Tweety a écrit :
Autre petite question: il n'y a pas moyen de formater le texte et d'y ajouter des liens? C'est incompatible avec la fonction aléatoire?

En ajoutant <a href=""> etc dans la brève non ?
Modifié par Necromantik (26 Feb 2008 - 13:31)
Bonjour Smiley smile

Necromantik a écrit :
En ajoutant <a href=""> etc dans la brève non ?
non, j'avais déjà essayé mais ça ne fonctionne pas. Smiley ohwell
Bonsoir,

As-tu pensé à bien échapper les guillemets ou à utiliser des guillemets simples pour délimiter la phrase ?

// erreur
$breves=array(
  "<a href="toto">Bonjour</a>, comment allez-vous ?"
); 
// ok
$breves=array(
  "<a href=\"toto\">Bonjour</a>, comment allez-vous ?"
); 
// ok
$breves=array(
  '<a href="toto">Bonjour</a>, comment allez-vous ?'
); 

Modifié par Necromantik (27 Feb 2008 - 22:49)