/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
smart urls
Fra : Torben


Dato : 23-06-09 06:30

Hej venner

Jeg har et tricky problem... Jeg har fået lavet en flot side med bl.a.
smart urls. Altså som ex.

http://www.minside.dk/artikel/nummer/

nu dukker der det problem op at jeg ikke kan anvende methode="post" i
forbindelse med et login og 'get' er udelukket. Hvordan griber jeg den
an?

Min .htaccess ser sådan her ud:

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/
[^.]*)$ [NC]

RewriteRule ^\.htaccess$ - [F]
RewriteRule ^\.jpg$ - [F]
RewriteRule ^\.html$ - [F]
RewriteRule ^\.css$ - [F]
RewriteRule ^([a-z][A-Z][0-9]+),([a-z][A-Z][0-9]+)$ /index.php?
Language=$1&Index=$2 [L]
RewriteRule ^([a-z][A-Z][0-9]+),([a-z][A-Z][0-9]+),([a-z][A-Z][0-9]+)
$ /index.php?Language=$1&Index=$2&Category=$3 [L]
RewriteRule ^([a-z][A-Z][0-9]+),([a-z][A-Z][0-9]+),([a-z][A-Z][0-9]+),
([a-z][A-Z][0-9]+)$ /index.php?Language=$1&Index=$2&Category=$3&State=
$4 [L]
RewriteRule ^([a-z][A-Z][0-9]+),([a-z][A-Z][0-9]+),([a-z][A-Z][0-9]+),
([a-z][A-Z][0-9]+),([a-z][A-Z][0-9]+)$ /index.php?Language=$1&Index=
$2&Category=$3&State=$4&Position=$5 [L]
RewriteRule ^([a-z][A-Z][0-9]+),([a-z][A-Z][0-9]+),([[a-z][A-Z]0-9]+),
([a-z][A-Z][0-9]+),([a-z][A-Z][0-9]+),([a-z][A-Z][0-9]+)$ /index.php?
Language=$1&Index=$2&Category=$3&State=$4&Position=$5&SubCategory=$6
[L]

ErrorDocument 404 /index.php

<IfModule mod_expires.c>
ExpiresByType text/html A1
</IfModule>

Og min php indledes med:

$sektion = 'forside'; // default;
$urlVar = explode ( "/", $HTTP_SERVER_VARS[ 'REQUEST_URI' ] );
if ( $urlVar[ 1 ] == 'cms' ) {
$sektion = 'aministration';
} else if ( $urlVar[ 1 ] == 'emne' ) {
$sektion = 'emne';
$emneID = $urlVar[ 2 ];
} else if ( $urlVar[ 1 ] == 'artikel' ) {
$sektion = 'artikel';
$artID = $urlVar[ 2 ];
} else {
$sektion = 'forside';
}
}

 
 
Dan Storm (23-06-2009)
Kommentar
Fra : Dan Storm


Dato : 23-06-09 13:52

Torben skrev:
> nu dukker der det problem op at jeg ikke kan anvende methode="post" i
> forbindelse med et login og 'get' er udelukket. Hvordan griber jeg den
> an?
>

Der er ikke noget umiddelbart i vejen med at bruge metoden post i den
forbindelse.

Hvordan er det et problem? Kan du ikke poste til den rigtige side?





--
Dan Storm - storm at err0r dot dk / http://err0r.dk

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

Torben (23-06-2009)
Kommentar
Fra : Torben


Dato : 23-06-09 07:06

> Dan Storm wrote:
> Der er ikke noget umiddelbart i vejen med at bruge metoden post i den
> forbindelse.

Min sædvanlige metode med at læse browser-variablene via $_REQUEST
['brugerID'] virker tilsyneladende ikke. Er det ikke noget med at alle
indbyggede variable rewrites. Det gælder så vidt kan se altid med URL-
variable. Post-variable kommer derimod slet ikke igennem.

Johan Holst Nielsen (23-06-2009)
Kommentar
Fra : Johan Holst Nielsen


Dato : 23-06-09 14:11

Torben wrote:
>> Dan Storm wrote:
>> Der er ikke noget umiddelbart i vejen med at bruge metoden post i den
>> forbindelse.
>
> Min sædvanlige metode med at læse browser-variablene via $_REQUEST
> ['brugerID'] virker tilsyneladende ikke. Er det ikke noget med at alle
> indbyggede variable rewrites. Det gælder så vidt kan se altid med URL-
> variable. Post-variable kommer derimod slet ikke igennem.

Så må du lave en fejl et andet sted.

Du skriver også i dit oprindelige indlæg:

methode="post" - når du laver formen skriver skal du skrive
method="post" (altså uden det sidste e). Jeg ved dog ikke om det bare er
en tastefejl i indlægget - ellers kan den ligge der.

Hvis det stadig giver problemer, tror jeg det er nemmere du henviser til
siden - da det lyder som en fejl enten i din HTML eller i dit PHP.

/Johan

N/A (23-06-2009)
Kommentar
Fra : N/A


Dato : 23-06-09 14:35



N/A (23-06-2009)
Kommentar
Fra : N/A


Dato : 23-06-09 14:11



Torben (23-06-2009)
Kommentar
Fra : Torben


Dato : 23-06-09 07:21

Johan Holst Nielsen wrote:
> Så må du lave en fejl et andet sted.
>
> Du skriver også i dit oprindelige indlæg:
> methode="post" - når du laver formen skriver skal du skrive
> method="post" (altså uden det sidste e). Jeg ved dog ikke om det bare er
> en tastefejl i indlægget - ellers kan den ligge der.

Øps! Det har du ret i. Men det var nu kun en fejl i mit stillede
spørgsmål.

> Hvis det stadig giver problemer, tror jeg det er nemmere du henviser til
> siden - da det lyder som en fejl enten i din HTML eller i dit PHP.

Jeg tror ikke det er htmlen. Siden som er under udvikling finder du
her http://drv.b-ret_ning.dk/cms/ [fjern underscore]

Dan Storm (23-06-2009)
Kommentar
Fra : Dan Storm


Dato : 23-06-09 14:35

Torben skrev:
> Jeg tror ikke det er htmlen. Siden som er under udvikling finder du
> her http://drv.b-ret_ning.dk/cms/ [fjern underscore]

Prøv lige efter formafslutningen at skrive <?php print_r($_POST); ?>


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

N/A (24-06-2009)
Kommentar
Fra : N/A


Dato : 24-06-09 08:29



Torben (23-06-2009)
Kommentar
Fra : Torben


Dato : 23-06-09 14:33

Dan Storm wrote:
> Prøv lige efter formafslutningen at skrive <?php print_r($_POST); ?>

Det er gjort men det giver desværre ikke meget...?

Dan Storm (24-06-2009)
Kommentar
Fra : Dan Storm


Dato : 24-06-09 08:29

Torben skrev:
> Dan Storm wrote:
>> Prøv lige efter formafslutningen at skrive <?php print_r($_POST); ?>
>
> Det er gjort men det giver desværre ikke meget...?

Jeg har testet lidt på det og problemet ligger i dine rewrite regler
(uden at jeg kan præcisere hvor, så dygtig er jeg heller ikke til
mod_rewrite).

Når du tilgår ditdomæne.org/cms/ returnerer serveren en 404. Derved går
alle dine request variabler tabt.

I forvejen synes jeg dine rewrites er hen i vejret - PHP kan klare
(næsten) alt hvad du har behov i den sammenhæng. Du bør tilrette din
løsning så PHP håndterer det de forskellige regler - hvilket i øvrigt
ikke kan tage mange minutter med det setup du i forvejen har.


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

People who claim they don't let little things bother
them have never slept in a room with a single mosquito.

Torben (24-06-2009)
Kommentar
Fra : Torben


Dato : 24-06-09 03:39

Dan Storm wrote:

> Jeg har testet lidt på det og problemet ligger i dine rewrite regler
> (uden at jeg kan præcisere hvor, så dygtig er jeg heller ikke til
> mod_rewrite).
>
> Når du tilgår ditdomæne.org/cms/ returnerer serveren en 404. Derved går
> alle dine request variabler tabt.
>
> I forvejen synes jeg dine rewrites er hen i vejret - PHP kan klare
> (næsten) alt hvad du har behov i den sammenhæng. Du bør tilrette din
> løsning så PHP håndterer det de forskellige regler - hvilket i øvrigt
> ikke kan tage mange minutter med det setup du i forvejen har.

Det lyder sgu tiltalende. Har du en side hvor man viser hvordan det
gøres?!! Som du, synes jeg også mod_rewrite er noget krøl. Jeg troede
bare det var metoden - den eneste....

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409074
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste