Dotclear

Vous n'êtes pas identifié(e).

Annonce

13 février 2024 Sortie de Dotclear 2.29

#1 2008-01-30 21:57:27

niz
Membre
Inscription : 2006-02-07
Site Web

Plugin homemade et Precondition Failed

Salut,
J'ai essayé de faire un plug in home made dans l'espace admin (je veux dire par la que je ne suis pas un "pro") et j'ai un soucis avec une erreur du style

Precondition Failed

ce message apparait lorsque j'esssaie d'ecire dans ma base de données, pour la lecture pas soucis, j'affiche les choses que je veux voir mais je n'arrive pas à écrire...

Un bout de mon code pour vous aidez (Attention les puristes je suis un amateur)

//connection à la base de données
mysql_pconnect($serveur, $utilisateur , $motDePasse)    or die("Impossible de se connecter au serveur de bases de données.");
mysql_select_db($base)    or die("Base de données non trouvée.");
//fin de la connection
$req = mysql_query("SELECT id,nom,mail,message from messages Order by id DESC") or die ("erreur sql ".mysql_error());
$req2 = mysql_query("SELECT user_id from dc_user") or die ("erreur sql ".mysql_error());
$num_rows = mysql_num_rows($req2);

$liste ='<FORM><SELECT name="nom" size="1">';
for ($i = 0; $i <= $num_rows; $i++) {
while ( $resultat2 = mysql_fetch_row($req2))
	{
	
	$liste .= '<OPTION>'.$resultat2[$i];
	}
}
$liste .= '</SELECT></FORM>';
//affichage
print '<div>';
print '<table >
<tr>
  <td>id</td>
  <td>Nom</td>
  <td>mail</td>
  <td>Message</td>
  <td>Qui s\'en charge ?</td>
</tr>';

while ( $resultat = mysql_fetch_array($req))
{
print '<tr>
  <td>'.$resultat[id]. '</td>
  <td>'.$resultat[nom].'</td>
  <td>'.$resultat[mail].'</td>
  <td>'.$resultat[message].'</td>
  <td>'.$liste.'<br/><form method="POST" action="test.php" name="monform"><input type="submit" value="Ok je m\'en occupe"></form></td>
  </tr>';
 }
 print '</table>';
 print '</div>';
//fin

ceci inséré dans une page du style /admin/post.php (en enlevant ce qui concerne directement post.php et en gardant le squelette)
Merci de m'éclairer sur ce point

Hors ligne

#2 2008-01-31 06:49:38

zeiram
Membre
Inscription : 2004-06-27
Site Web

Re : Plugin homemade et Precondition Failed

Bonjour.

Pour le "precondition failed", il faut faire un appel à la méthode $core->formNonce() dans chaque formulaire qui est utilisé. Pour les détails, voici la documentation du formNonce().

Une deuxième chose : ce n'est pas une bonne idée d'utiliser les méthodes mysql_ de PHP pour faire ses requêtes à la base de données. En effet, Dotclear 2 supporte plusieurs types de bases de données et un plugin qui serait codé comme dans votre exemple ne peut pas fonctionner sur d'autres bases de données que MySQL. Pour contourner cela, Dotclear 2 met à disposition une couche d'abstraction de la base de données[1]. Sur le blog de gniark, il y a une série d'articles explicatifs pour l'utilisation de cette couche d'abstraction. Voici un lien vers le premier d'entre eux.

[1] Pour être exact, la couche d'abstraction est fournie par le framework clearbricks et s'appelle dbLayer.


« Y a des jours où faut pas m'chercher !! Et y a des jours tous les jours ! »

Hors ligne

#3 2008-02-05 21:31:44

niz
Membre
Inscription : 2006-02-07
Site Web

Re : Plugin homemade et Precondition Failed

Merci beaucoup je vais m'y plonger

Hors ligne

Vous n'êtes pas identifié(e).

Pied de page des forums

Sites map