Oui la connexion fournie à SPIP est la bonne et les tests se font bien depuis le squelette SOMMAIRE de SPIP...
Voici des explications détaillées du pbm :
FICHIERS CONCERNES :
squelettes/sondages.html contient simplement :
<?php
require_once '/var/www/vhosts/monsite.org/sd_devsite/Pds-sondages/admin/config.php';
require_once '/var/www/vhosts/monsite.org/sd_devsite/Pds-sondages/fonctions_sondage.php';
AfficherSondage(1);
?>
et config.php contient :
<?php
define("URL_SCRIPT","/var/www/vhosts/monsite.org/sd_devsite/Pds-sondages");
define("URL_ADMIN","/var/www/vhosts/monsite.org/sd_devsite/Pds-sondages/admin");
define("HOST","localhost");
define("USER","nomduuser");
define("PASSWORD","motdepasse");
define("DBNAME","nomdelabase");
try{
$Bdd = new PDO('mysql:host='.HOST.';dbname='.DBNAME, USER , PASSWORD);
$Bdd->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$Bdd->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
}
catch(Exception $e){
echo 'Impossible de se connecter au serveur MYSQL. Merci d\'en informer le webmaster';
}
session_start();
?>
Quant à sommaire.html, on peut le réduire à :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<body>
<INCLURE{fond=sondages}>
</body>
</html>
TESTS :
1ER CAS : TABLES Pds-sondages dans BASE EXTERNE (déclarée dans Spip)
. Si l’on fait http://monsite.org/spip.php?page=sondages , résultat : FONCTIONNE
. Si l’on fait http://monsite.org/spip.php?page=sommaire , résultat : ERREUR
Fatal error : Call to a member function prepare() on a non-object in /var/www/vhosts/monsite.org/sd_devsite/Pds-sondages/fonctions_sondage.php on line 59
=> normal car var_dump $Bdd est NULL...
line 59 : $InfosSondage=$Bdd->prepare("SELECT IdSondage,TitreSondage, DateFin, Statut, Style, AutoriserCommentaires, TypeCommentaires, LienCommentaires FROM pds_sondages " . $FinRequete . "");
2EME CAS : TABLES Pds-sondages DANS LA BASE DE SPIP
. Si l’on fait http://monsite.org/spip.php?page=sondages , résultat : ERREUR
Fatal error : Call to a member function bindParam() on a non-object in /var/www/vhosts/munci.org/sd_devsite/Pds-sondages/fonctions_sondage.php on line 69
=> cette fois-ci, Var_dump $Bdd est OK (= object(PDO)#2 (0) { })
line 69 : $InfosSondage->bindParam(':IdSondage', $IdSondage, PDO::PARAM_INT);
. Si l’on fait http://monsite.org/spip.php?page=sommaire , résultat : ERREUR idem cas avec BASE EXTERNE
CONCLUSION :
Impossible d’inclure mon script de sondages dans le SOMMAIRE via des INCLURE...
MERCI TRES VIVEMENT POUR TOUTE AIDE :-)
(une récompense peut être accordée compte tenu des enjeux importants de cette mise à jour de notre site...)