2013-05-02 5 views
1

J'essaye de faire un formulaire sur un site using Silex, mais quand je POSTE les données, il me donne une erreur 405. Je n'utilise pas le générateur de formulaires Silex. Juste HTML. Existe-t-il un paramètre dans Silex qui empêcherait l'envoi de données? GET fonctionne bien.Silex produit 405 erreurs sur formulaire Soumet

HTML:

<form name='login' action='' method='POST'> 
    Username: <input type='text' name='user' value=''><br /> 
    Password: <input type='password' name='pass' value=''><br /> 
    <input type='submit' name='submit' value='Submit'> 
</form> 
+1

Avez-vous défini une route pour POST? –

+0

Vous voulez dire à Silex? Je ne suis pas sûr de savoir comment faire ça. J'ai laissé l'action vide alors il devrait POST à ​​la même page et je peux y faire face. – James

Répondre

0

405 code d'état HTTP signifie méthode pas permis, dans votre cas, cela signifie que vous avez défini un itinéraire pour cette URL, mais il n'accepte pas la demande de poste. Voici comment cela ressemble probablement:

$app->get("/myform", function() use ($app) {}); 

Même si l'URL correspond à lui-même, cela ne correspond à rien, mais GET, tout le reste se traduira par une 405. Vous avez deux choix:

  1. créer un contrôleur POST avec $app->post()
  2. créer un contrôleur qui accepte à la fois avec $app->match()

si vous descendez le deuxième chemin, je vous recommande le modèle suivant:

$app->match("/myform", function (Request) use ($app) { 
    if ($request->isMethod("post")) { 
     // process post data 
    } 
}); 
+0

Si je le change de $ app-> get à $ app-> match, je reçois une erreur de 500 Internal Server si je soumets des données ou non. – James

+0

Veuillez activer le mode de débogage ('$ app [" debug "] = true') afin que vous receviez un message d'erreur indiquant quel est le problème. – Maerlyn

Questions connexes