Bonsoir,
Un var_dump($match); pour voir ce qu'il contient avant le if
Ensuite pas de htmlspecialchars pour les données entrée en BDD, cela sert uniquement pour l'affichage
Bonjour,
J'ai suivis récemment le tuto sur le rooter php avec Altorouter.
Tous fonctionne parfaitement, sauf quand j'essais d'écrire dans ma base de données mysql.
sur mon blog, j'ai une page permettant d'écrire un nouvel article (new.php). Mon traitement s'effectue dans le fichier new_post.php.
lorsque je valide le formulaire, je suis bien redirigé vers la page de traitement, mais avec cette erreur :
Donc, rien n'est enregistré en bdd.
Mais si j'accède directement à new_post.php sans remplir le formulaire, aucune erreur et l'enregistrement en bdd est fait, avec aucune données, mais l'entrée est créée.
j'ai essayé de supprimer le router, et là, tous fonctionne parfaitement ! Donc le blem' vient de altorouter, mais impossible de savoir où.
J'espère avoir été clair, n'hésitez pas si besoin de plus de précision
Merci de votre aide,
anttondev
Les codes
public/index.php (le router)
templates/blog/new.php (création d'un article)
templates/blog/new_post.php (traitement de l'article)
4 réponses
Merci de ta réponse !
voici ce que m'indique le var_dump :
pour le htmlspecialchars, c'est noté, merci !
Personne n'a de solution ?
Bonjour,
L'utilsiation d'acollades dans le require "require "../templates/{$match['target']}.php"; ne me parrait pas du appropiée.
C'est surement ça qui provoque les erreurs "Warning: require(../templates/.php): failed to open stream: No such file or directory in P:\sites\projet-astuces-informatique\v2\public\index.php on line 21
Fatal error: require(): Failed opening required '../templates/.php' (include_path='.;C:\php\pear') in P:\sites\projet-astuces-informatique\v2\public\index.php on line 21"
Il vaudrait mieux concatener avec des points.
Au passage il y a autre chose qui me choque : le fait que le nom de la table soit collé à la liste des champs dans le INSERT INTO.