Er ændret (echo 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];) og har ingen effekt.
Synes godt om
Slettet bruger
09. august 2003 - 00:32#4
Problemet er ikke hidden input elementet. Men formen i sig selv. Hvorfor den ikke må være, hvor den er, ved jeg ikke. Men det har ihvertfald ikke noget med PHP at gøre nej.
ohmish: hm, forstår ikke hvad der burde ske, men jeg ser ingen ændring...
mercur8: PHP indsætter <input type="hidden" name="PHPSESSID" value="..."> for at overføre session variable, jo det er det der er problemet. Den "rigtige" kode indeholder jo ikke dette input-felt.
Den oprindelige kode er: ... <div id="login-form"> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <fieldset> <legend>Login informations</legend> ...
ohmish: og jo, .htaccess-filen bliver læst og fulgt. Jeg har også ForceType'et til php (efter jeg laver dit php_value-whatever-trick :)) -- se evt. http://fnof.dyndns.dk/vs/www/kurser/admin/todo.txt :)
Du mangler for mig at se en <? echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n"; ?> før din doctype. Før kan dit dokument ikke blive valideret korrekt.
Først og fremmest manglede der en "<?xml version="1.0" encoding="iso-8859-1"?>. Dernæst så manglede der åbenbart noget omkring det hidden inputfelt. I mit tilfælde prøvede jeg bare at smide en div omkring, og det hjalp tilsyneladende på problemet, for nu bliver repsacs form ihvertfald valideret korrekt som XHTML 1.0 Strict.
ohmish: parse error, fordi det er en almindelig tekst-fil der bliver parset som php... ... "beviset" på at .htaccess-filen bliver "udført"...
1: Jeg indsætter ikke selv det hidden input-felt, det sker ganske magisk (jeg antager det er PHP).
2: jeg har brug for at session-id'et også følger header-redirects.
7th: Den er placeret lige efter doctype'en, og output'et som alm. tekst, altså ikke vi PHP's echo "funktion". Bemærk desuden at jeg validerer det xhtml1.1 og ikke 1.0 strict.
OK, jeg fangede heller ikke helt i første omgang det med det magiske inputfelt :) Anyway dumt spørgsmål, men hvad er det i dit php som gør at du får et magisk hidden inputfelt? Formoder du har skrevet noget i en .htaccess.
7th: jeg har intet skrevet i min .htaccess -- faktisk havde jeg ingen .htaccess, nu har jeg en, men har udkommenteret indholdet som ohmish, ellers foreslog skulle være der.
Dengang jeg kiggede på output fra validatoren, var det placeringen af selve formen, der var problemet. Du har nu tilsynelandende fjernet de <p> tags, der gav problemet.
Og anden gang jeg kiggede, inden jeg tog i byen og blev fuld, brokkede den sig over det hidden input felt. Måske fordi det ikke stod på en linje for sig selv?
PHP placerer et hidden input, for at der skal være session support, hvis man ikke har cookies slået til. Dette er en feature. Som man kan slå fra.
mercur8: Bemærk at validatoren hele tiden har brokket sig over det hidden input-felt, men i starten brokkede den sig også over et malplaceret p-tag.
Det jeg gør er nok at jeg først (*host*) får PHP op på en (*host*) 4.3 og derefter sætter session.use_only_cookies On (mest af hensyn til sikkerheden), men når jeg validerer (og dermed udvilker) sætter den Off og ændrer i stedet url_rewriter.tags så form=fakeentry bliver fjernet som mulighed, men (here we go... :-/) det kan jeg ikke få til at makke ret, eller også forstår jeg blot ikke hvad der bør ske/sker. Ved at sætte url_rewriter.tags til a=href,area=href,frame=src,input=src,fieldset=fakeentry så burde der blive placeret et "fakeentry" (hidden input-felt med PHPSESSID'et i), ikke? -- det gør der jo hvis form=fakeentry... Hvis det nu havde sket, kunne jeg have set ideen, men det sker ikke.
Hvis man ønsker at validere en side der kræver at en session kan hapses: ---- Deny from all Allow from [din.ip.x.x] php_value session.use_only_cookies Off php_value url_rewriter.tags a= ---- - det er ligegyldigt om det fæle hidden input-felt indsættes, det er vel egentlig bedst hvis det ikke gør, da koden således ser ud for validatoren, som den ser ud for brugeren... og så tilgå det "hemlige" indhold som side.php?PHPSESSID=id'en -- hvor man med fordel kan echo'e strip_tags(SID) på alle siderne
Normalt: ---- session.use_only_cookies On ----
... eller har jeg forstået et eller andet helt galt?
Hm... og hvis man bare ønsker at validere sine sider xhtml1.1 og ikke vil bruge session.use_only_cookies On, så kan man jo "bare" lave sine form's lidt anderledes, så man selv indsætter det hidden input-felt:
googolplex: hm, tjaeh, det smarte ville vel være at man kunne indsætte det hidden input-felt i fieldset hvilket jeg (som tidligere skrevet) har forsøgt uden succes... hvis det hidden input-felt da bare blev indsat i fieldset'et når php_value url_rewriter.tags a=href,area=href,frame=src,input=src,fieldset=fakeentry ... men det sker tilsyneladende ikke... så man må ty til mit lille hack :)
... men måske smart nok at gøre følgende i stedet: <form ...> <?php if (ini_get('session.use_only_cookies')) { $a = explode('=', strip_tags(SID)); echo '<input type="hidden" name="' . $a[0] . '" value="' . $a[1] . '">'; } ?> resten af form'en...
googolplex: helt enig -- det ville være rart hvis det fæle fæle input-felt bare blev placeret i fieltset hvis man sætter php_value url_rewriter.tags a=href,area=href,frame=src,input=src,fieldset=fakeentry
... men det sker ikke -- i hvert fald ikke i PHP4.2.2 -- nogen der har en (*host*) tidssvarende installation?
ohmish: eh, det forstår jeg ikke helt -- et fieldset er da en del af en form og ikke omvendt? Helt konkret, er det så dette du mener?: <fieldset> <div> <form ...> </div> </fieldset> ... </form>
ok, nu har jeg læst alle svarene, og som nybegynder indenfor PHP er jeg ikke helt med på hvad der er løsningen, hvis der er en der gider opsummere hvad der virker, så det hele validerer, ville det være lækker...
prøv at lave dit eget felt med PHPSESSID i formen.. det rigtige sted. så er jeg ret sikker på at php ikke gør det et forkert sted. comprende?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.