URL rewritting avec formulaire - méthode GET

Consultez la formation au REFERENCEMENT naturel Google de WebRankInfo / Ranking Metrics

sacha63
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Enregistré le: 24 Fév 2017

URL rewritting avec formulaire - méthode GET

Message le Ven Fév 24, 2017 13:12

Bonjour,

Je suis un débutant en php et en URL rewriting.
Je souhaite créer une calculatrice qui ai une URL de la forme :
adresse_site/calculatrice/[opération]/nombre1/nombre2
J'ai donc utilisé une méthode GET qui me donne une addresse de la forme :

http://localhost/calculatrice.php?choix=addition&nombre1=5&nombre2=5

Avec ce que j'ai pu trouvé sur les forums, j'ai donc créé un .htaccess qui contient :

Code: Tout sélectionner
RewriteEngine On
RewriteRule ([a-z]+)/([0-9]+)/([0-9]+).php$ /calculatrice.php?choix=$1&nombre1=$2&nombre2=$3 [L,QSA]


Mais cela n'a aucun effet. J'ai essayé plusieurs modifications sans succès.
Quelqu'un a-t-il une piste?
Merci.

Louis63
WRInaute discret
WRInaute discret
 
Messages: 112
Enregistré le: 22 Fév 2016

Re: URL rewritting avec formulaire - méthode GET

Message le Ven Fév 24, 2017 14:33

RewriteRule ([a-z]+)/([0-9]+)/([0-9]+)$ /calculatrice.php?choix=$1&nombre1=$2&nombre2=$3 [L,QSA]

à tester avec :
http://localhost/addition/5/5

sacha63
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Enregistré le: 24 Fév 2017

Re: URL rewritting avec formulaire - méthode GET

Message le Ven Fév 24, 2017 15:35

Bonjour,

Merci de votre réponse.
Avec cette ligne, lorsque je test avec http://localhost/addition/5/5, j'arrive sur une page blache (mais pas une page d'erreur).
Par contre, lorsque je test directement en cliquant sur le bouton d'envoie du formulaire, j'ai toujours l'adresse http://localhost/calculatrice.php?op=addition&nombre1=5&nombre2=5
Merci


spout
WRInaute accro
WRInaute accro
 
Messages: 8334
Enregistré le: 14 Mai 2003

Re: URL rewritting avec formulaire - méthode GET

Message le Ven Fév 24, 2017 15:59

Form en method GET ?
Si oui, c'est le navigateur qui génère l'URL. Il faut utiliser un POST/REDIRECT/GET: https://fr.wikipedia.org/wiki/Post-redirect-get

sacha63
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Enregistré le: 24 Fév 2017

Re: URL rewritting avec formulaire - méthode GET

Message le Ven Fév 24, 2017 16:11

Bonjour,

Mon formulaire est bien en GET.
Je vais me renseigner sur cette méthode, merci.

sacha63
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Enregistré le: 24 Fév 2017

Re: URL rewritting avec formulaire - méthode GET

Message le Ven Fév 24, 2017 17:06

D'après ce que j'ai compris, il faut que je passe par une base de données pour enregistrer les valeurs.
Il n'y a pas une solution plus simple?
Merci.


spout
WRInaute accro
WRInaute accro
 
Messages: 8334
Enregistré le: 14 Mai 2003

Re: URL rewritting avec formulaire - méthode GET

Message le Ven Fév 24, 2017 17:19

Non t'as dû mal comprendre.

- Post:
Code: Tout sélectionner
<form action="..." method="POST"

- Redirect:
Code: Tout sélectionner
$url = "/{$_POST['operation']}/{$_POST['nombre1']}/{$_POST['nombre2']}";
header("Location: $url"); 

- Get: /addition/5/5/ => accès à $_GET['operation'], $_GET['nombre1'], $_GET['nombre2']

sacha63
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Enregistré le: 24 Fév 2017

Re: URL rewritting avec formulaire - méthode GET

Message le Ven Fév 24, 2017 17:49

Merci beaucoup! Je réussis bien à avoir l'URL.
Par contre, je n'arrive plus à afficher des éléments sur ma page, même un "echo" (j'ai une page blanche) :

Code: Tout sélectionner
<?php

if(isset($_POST['nombre1']) AND isset($_POST['op']) AND isset($_POST['nombre2'])) // Si les varaibles existent
{
   
    $url = "/{$_POST['op']}/{$_POST['nombre1']}/{$_POST['nombre2']}";
    header("Location: $url");                                                                       //redirection
     $nombre1 =htmlspecialchars($_GET['nombre1']); // On sécurise
    $op = htmlspecialchars($_GET['op']);
    $nombre2 = htmlspecialchars($_GET['nombre2']);

    echo 'Test';


spout
WRInaute accro
WRInaute accro
 
Messages: 8334
Enregistré le: 14 Mai 2003

Re: URL rewritting avec formulaire - méthode GET

Message le Ven Fév 24, 2017 18:01

Page blanche = probablement une erreur 500 avec le display_errors PHP à Off => cfr. headers HTTP.

sacha63
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 6
Enregistré le: 24 Fév 2017

Re: URL rewritting avec formulaire - méthode GET [Résolu]

Message le Ven Fév 24, 2017 22:35

C'est bon, j'avais mal placé la méthode GET dans ma page.
Encore merci pour votre aide


Formation recommandée sur ce thème :

Formation REFERENCEMENT naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :