Bonjour,
Tout d'abord, le sujet que je voudrais évoquer concerne les librairies PEAR pour l'hébergeur tuxfamily.
J'espère que le fait de poster ici n'est pas trop en décalage avec le propos de votre forum.
Le but est de rendre mon site plus dynamique en y insérant un flux RSS. J'ai envoyé à la racine le script PHP "rss.php" :
<?php
// On appelle la librairie DB
require_once "DB.php";
// Connexion à la base puis test de la variable $db
$dsn = "mysql://mon_id_base:mot_de_passe@martini.tf-data.net";
$db = DB::connect($dsn);
if (DB::isError($db)) {
die($db->getMessage());
}
// Récupération et tri des éléments de la table "articles" + test en cas d'erreur
$result = $db->query("SELECT id, author, title, pubDate,
description FROM articles ORDER BY pubDate");
if (DB::isError($result)) {
die($result->getMessage());
}
// S'il y a des articles, on génère le flux RSS
if ($result->numRows() != 0) {
// Envoi de l'en-tête du fichier pour signifier au navigateur qu'il s'agit d'un fichier XML
header("Content-Type: text/xml");
// La variable $xml contiendra le code xml du flux
$xml = '<' . '?xml version="1.0" encoding="ISO-8859-1"?' . '>';
// Traitement du format RSS 2.0
$xml .= '<rss version="2.0">';
$xml .= '<channel>';
$xml .= '<title>Premier flux RSS</title>';
$xml .= '<link>http://art9libre.tuxfamily.org</link>';
$xml .= '<description>Mon premier flux RSS</description>';
$xml .= '<copyright>Copyleft</copyright>';
$xml .= '<managingEditor>Hubert Lombard</managingEditor>';
$xml .= '<webMaster>HL</webMaster>';
$xml .= '<generator>Mon Script PHP</generator>';
$xml .= '<lastBuildDate>' . date("r") . '</lastBuildDate>';
$xml .= '<ttl>1440</ttl>';
// On retrouve ici une instruction conditionnelle. Pour chaque article le script récupère
// les valeurs des champs définis dans la base et les inclue dans les balises XML adéquates
while ($article = $result->fetchRow(DB_FETCHMODE_ASSOC)) {
$xml .= '<item>';
$xml .= '<author>' . stripslashes($article["author"]) . '</author>';
$xml .= '<title>' . stripslashes($article["title"]) . '</title>';
$xml .= '<link>http://art9libre.tuxfamily.org/auteurs/' . $article["id"] . '.html</link>';
$xml .= '<pubDate>' . date("r",$article["pubDate"]) . '</pubDate>';
$xml .= '<guid>http://art9libre.tuxfamily.org/auteurs/' . $article["id"] . '.html</guid>';
$xml .= '<description>' .stripslashes($article["description"]) . '</description>';
$xml .= '</item>';
}
$xml .= '</channel>';
$xml .= '</rss>';
echo $xml;
}
?>
A l'adresse voulue, firefox me renvoie les messages d'erreur suivants :
Warning: main(): open_basedir restriction in effect. File(/usr/share/php/DB.php) is not within the allowed path(s): (/data/web) in /data/web/e5/dd/7c/art9libre.tuxfamily.org/htdocs/rss.php on line 3
Warning: main(DB.php): failed to open stream: Operation not permitted in /data/web/e5/dd/7c/art9libre.tuxfamily.org/htdocs/rss.php on line 3
Fatal error: main(): Failed opening required 'DB.php' (include_path='.:/usr/share/php:/usr/share/pear') in /data/web/e5/dd/7c/art9libre.tuxfamily.org/htdocs/rss.php on line 3
Ma question est : comment faire pour que "DB.php" fonctionne chez tuxfamily ?
Je pensai dans un premier temps qu'il me suffirait d'envoyer pear dans un dossier 'include' à la racine du site, mais il semble que pour tuxfamily ce soit un peu différent...
Merci d'avance pour vos éclaircissements.
Hubert
http://art9libre.tuxfamily.org/auteurs/
OS : Linux ubuntu dapper drake[code]
Modifié par gonzolero (01 Dec 2006 - 20:27)
Tout d'abord, le sujet que je voudrais évoquer concerne les librairies PEAR pour l'hébergeur tuxfamily.
J'espère que le fait de poster ici n'est pas trop en décalage avec le propos de votre forum.
Le but est de rendre mon site plus dynamique en y insérant un flux RSS. J'ai envoyé à la racine le script PHP "rss.php" :
<?php
// On appelle la librairie DB
require_once "DB.php";
// Connexion à la base puis test de la variable $db
$dsn = "mysql://mon_id_base:mot_de_passe@martini.tf-data.net";
$db = DB::connect($dsn);
if (DB::isError($db)) {
die($db->getMessage());
}
// Récupération et tri des éléments de la table "articles" + test en cas d'erreur
$result = $db->query("SELECT id, author, title, pubDate,
description FROM articles ORDER BY pubDate");
if (DB::isError($result)) {
die($result->getMessage());
}
// S'il y a des articles, on génère le flux RSS
if ($result->numRows() != 0) {
// Envoi de l'en-tête du fichier pour signifier au navigateur qu'il s'agit d'un fichier XML
header("Content-Type: text/xml");
// La variable $xml contiendra le code xml du flux
$xml = '<' . '?xml version="1.0" encoding="ISO-8859-1"?' . '>';
// Traitement du format RSS 2.0
$xml .= '<rss version="2.0">';
$xml .= '<channel>';
$xml .= '<title>Premier flux RSS</title>';
$xml .= '<link>http://art9libre.tuxfamily.org</link>';
$xml .= '<description>Mon premier flux RSS</description>';
$xml .= '<copyright>Copyleft</copyright>';
$xml .= '<managingEditor>Hubert Lombard</managingEditor>';
$xml .= '<webMaster>HL</webMaster>';
$xml .= '<generator>Mon Script PHP</generator>';
$xml .= '<lastBuildDate>' . date("r") . '</lastBuildDate>';
$xml .= '<ttl>1440</ttl>';
// On retrouve ici une instruction conditionnelle. Pour chaque article le script récupère
// les valeurs des champs définis dans la base et les inclue dans les balises XML adéquates
while ($article = $result->fetchRow(DB_FETCHMODE_ASSOC)) {
$xml .= '<item>';
$xml .= '<author>' . stripslashes($article["author"]) . '</author>';
$xml .= '<title>' . stripslashes($article["title"]) . '</title>';
$xml .= '<link>http://art9libre.tuxfamily.org/auteurs/' . $article["id"] . '.html</link>';
$xml .= '<pubDate>' . date("r",$article["pubDate"]) . '</pubDate>';
$xml .= '<guid>http://art9libre.tuxfamily.org/auteurs/' . $article["id"] . '.html</guid>';
$xml .= '<description>' .stripslashes($article["description"]) . '</description>';
$xml .= '</item>';
}
$xml .= '</channel>';
$xml .= '</rss>';
echo $xml;
}
?>
A l'adresse voulue, firefox me renvoie les messages d'erreur suivants :
Warning: main(): open_basedir restriction in effect. File(/usr/share/php/DB.php) is not within the allowed path(s): (/data/web) in /data/web/e5/dd/7c/art9libre.tuxfamily.org/htdocs/rss.php on line 3
Warning: main(DB.php): failed to open stream: Operation not permitted in /data/web/e5/dd/7c/art9libre.tuxfamily.org/htdocs/rss.php on line 3
Fatal error: main(): Failed opening required 'DB.php' (include_path='.:/usr/share/php:/usr/share/pear') in /data/web/e5/dd/7c/art9libre.tuxfamily.org/htdocs/rss.php on line 3
Ma question est : comment faire pour que "DB.php" fonctionne chez tuxfamily ?
Je pensai dans un premier temps qu'il me suffirait d'envoyer pear dans un dossier 'include' à la racine du site, mais il semble que pour tuxfamily ce soit un peu différent...
Merci d'avance pour vos éclaircissements.
Hubert
http://art9libre.tuxfamily.org/auteurs/
OS : Linux ubuntu dapper drake[code]
Modifié par gonzolero (01 Dec 2006 - 20:27)