[SPIP Zone] Compatibilité d'un plugin...

Bonjour,
J’ai besoin d’aide pour rendre un plugin compatible sur SPIP 2.0…
Il s’agit du livre d’or.
Actuellement, quand je tape un message et essaye de l’envoyer, j’ai le warning suivant :
Warning: mysql_query() [function.mysql-query]: Access denied for user ‹ www-data ›@‹ localhost › (using password: NO) in /srv/d_pidev/www/site/htdocs/spip2/ecrire/public.php(178) : eval()'d code on line 77

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /srv/d_pidev/www/site/htdocs/spip2/ecrire/public.php(178) : eval()'d code on line 77
Erreur SQL !
INSERT INTO spip_livre(email, nom, ville, maj, note, texte) VALUES (‹ prigent.yohann@gmail.com ›, ‹ potter64 ›, ‹ Paris ›, ‹ 2008-07-20 21:21:35 ›, ‹ 10 ›, ‹ essai ›)
Access denied for user ‹ www-data ›@‹ localhost › (using password: NO)

Dans le formulaire,il y a :

<?php $maj = date('Y-m-d H:i:s'); $nom = $_POST['nom']; $ville = $_POST['ville']; $email = $_POST['email']; $note = $_POST['note']; $texte = $_POST['texte']; $texte = addslashes($texte); $texte=nl2br($texte); if($nom == ''){ echo ''; } else { **include_spip('base/abstract_sql');** **include_spip('ecrire/inc_connect');** **$sql="INSERT INTO spip_livre(email, nom, ville, maj, note, texte) VALUES ('$email', '$nom', '$ville', '$maj', '$note', '$texte')";** $req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error()); echo"Merci de votre participation! Le message apparaitra dès que le webmaster aura répondu."; mysql_close(); } ?>

J’ai donc modifié en
include_spip(‹ base/abstract_sql ›);
include_spip(‹ config/connect ›);

et j’ai toujours les warnings…

Je n’ai plus d’idées, il me faudrait de l’aide^^

Merci !

Yohann, Admin de la Chambre des Secrets - www.chambredesecrets.net
La Chambre des Secrets - Le meilleur de l’actualité Harry Potter !

Yohann Prigent a écrit :

Bonjour,
J'ai besoin d'aide pour rendre un plugin compatible sur SPIP 2.0..
Il s'agit du livre d'or.
_*include_spip('base/abstract_sql');
include_spip('ecrire/inc_connect');
        $sql="INSERT INTO spip_livre(email, nom, ville, maj, note, texte) VALUES ('$email', '$nom', '$ville', '$maj', '$note', '$texte')";

*_$req = mysql_query($sql) or die('Erreur SQL

Bon, 1) déjà en 1.9.2, c'eut été spip_query($sql); mais
2) en SPIP 2, c'est sql_query() ou mieux sql_insertq()

Voir par exemple : http://doc.spip.org/@La-base-de-donnees,4391

--
MM.

Matthieu Marcillaud wrote:

Yohann Prigent a écrit :

Bonjour,
J'ai besoin d'aide pour rendre un plugin compatible sur SPIP 2.0..
Il s'agit du livre d'or.
_*include_spip('base/abstract_sql');
include_spip('ecrire/inc_connect');
        $sql="INSERT INTO spip_livre(email, nom, ville, maj, note, texte) VALUES ('$email', '$nom', '$ville', '$maj', '$note', '$texte')";

*_$req = mysql_query($sql) or die('Erreur SQL

Bon, 1) déjà en 1.9.2, c'eut été spip_query($sql); mais
2) en SPIP 2, c'est sql_query() ou mieux sql_insertq()

Voir par exemple : http://doc.spip.org/@La-base-de-donnees,4391

Pour compléter ce que dit Matthieu :
- si tu n'utilises pas les fonctions de Spip (après tout pourquoi pas, on peut tout ré-écrire) : tu as une erreur logique en effet (cf doc de PHP PHP: mysql_query - Manual ), comme tu ne précises pas la ressource (le link_identifier) la fonction tente d'ouvrir une connexion comme si mysql_connect() était appelé sans argument (donc localhost + user == à celui du processus + sans mot de passe). Très logiquement la connexion se fait jeter...

- l'avantage des jolies fonctions de spip sql_insertq puisque c'est pour SPIP2.0 c'est leur portabilité et le fait que ce n'est pas dépendant de MySQL. Bien sûr, si les arguments et le type du résultat de la fonction ne change pas (oups).

--
Chryjs