Efter mange tanker skrev Anders Pedersen:
> Birger Sørensen wrote in dk.edb.internet.webdesign.serverside.php:
>> Følgende er skrevet af Anders Pedersen:
>>> Birger Sørensen wrote in dk.edb.internet.webdesign.serverside.php:
>>>> Anders Pedersen forklarede:
>>>>> Birger Sørensen wrote in dk.edb.internet.webdesign.serverside.php:
>>>>>> Anders Pedersen frembragte:
>>>>>>>>>>>> Anders Pedersen har bragt dette til verden:
>>>>>>>>>>>>> Hej alle.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Jeg roder med noget wordpress, og har fundet følgende kode:
>>>>>>>>>>>>>
>>>>>>>>>>>>> <?php
>>>>>>>>>>>>> //check login if post not empty
>>>>>>>>>>>>> if(!empty($_POST)) {
>>>>>>>>>>>>> if(!empty($_POST['user']) && $_POST['user'] == 'Starz' &&
>>>>>>>>>>>>> !empty($_POST['pwd']) && $_POST['pwd'] == '1234') {
>>>>>>>>>>>>> session_start();
>>>>>>>>>>>>> $_SESSION['login'] = true;
>>>>>>>>>>>>> header("Location:
http://diskotekstarz.dk/?page_id=422"); exit();
>>>>>>>>>>>>> }
>>>>>>>>>>>>> }
>>>>>>>>>>>>> ?>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Den sætter jeg ind i header.php, som jeg går stærk ud fra jeg
>>>>>>>>>>>>> skal. Også har jeg denne kode til selve login:
>>>>>>>>>>>>>
>>>>>>>>>>>>> <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
>>>>>>>>>>>>> Brugernavn: <input type="text" name="user" value="" /><br />
>>>>>>>>>>>>> Password: <input type="password" name="pwd" value="" /><br
>>>>>>>>>>>>> /> <p><div id="loginhoejre"><input type="submit"
>>>>>>>>>>>>> value="Login" /></div></p>
>>>>>>>>>>>>> </form>
>>>>>> 8x
>>>>>>
>>>>>> Jeg kan ikke se nogen grund til at dit eget forslag ikke virker.
>>>>>> Har du husket at kalde index filen for index.php?
>>>>>> index.html (eller andet) vil ikke virke.
>>>>>>
>>>>>> Jeg ville gøre noget denne retning
>>>>>> I index.php ser formen (f.eks) sådan ud :
>>>>>> <form action="chkpass.php" method="post">
>>>>>> <fieldset><legend>Login</legend>
>>>>>> Brugernavn: <input type="text" name="navn" value="" /><br />
>>>>>> Password: <input type="password" name="pwd" value="" /><br />
>>>>>> <div id="loginhoejre"><input type="submit" value="Login" /></div>
>>>>>> </fieldset>
>>>>>> </form>
>>>>>>
>>>>>>
>>>>>> fil chkpass.php :
>>>>>> <?php
>>>>>> session_start();
>>>>>> $_SESSION[ 'login'] = false;
>>>>>> $navn = ( isset($_POST[ 'navn'])) ? $_POST[ 'navn'] : '';
>>>>>> $pwd = ( isset($_POST[ 'pwd'])) ? $_POST[ 'pwd'] : '';
>>>>>> $_SESSION[ 'login'] = (( $navn == 'Starz') && ( $pwd == '1234'));
>>>>>> if ( $_SESSION[ 'login'] === true) {
>>>>>> header( 'Location:
http://diskotekstarz.dk/?page_id=422');
>>>>>> }
>>>>>> else {
>>>>>> echo 'Login ikke rigtigt!';
>>>>>> }
>>>>>> ?>
>>>>>>
>>>>>> chkpass.php i samme folder som index.php - så skal der ikke være
>>>>>> problemer.
>>>>>> I
http://diskotekstarz.dk/?page_id=422 kan du starte med at checke om
>>>>>> $_SESSION[ 'login'] er true, og kun vise siden hvis den er. Faktisk kan
>>>>>> chkpass.php stå i toppen af den i stedet, og siden genereres i if'en
>>>>>> i stedet.
>>>>>>
>>>>>> Birger
>>>>>>
>>>>>> --
>>>>>>
http://varmeretter.dk - billig, sund og hurtig mad
>>>>>>
http://bbsorensen.dk
>>>>>>
>>>>>>
>>>>> Puha, nu er jeg desværre stået af. Da jeg ikke er så god til php.
>>>>> Jeg har oprettet en php fil ved navn chkpass.php og smidt dette ind i:
>>>>> <?php
>>>>> session_start();
>>>>> $_SESSION[ 'login'] = false;
>>>>> $navn = ( isset($_POST[ 'navn'])) ? $_POST[ 'navn'] : '';
>>>>> $pwd = ( isset($_POST[ 'pwd'])) ? $_POST[ 'pwd'] : '';
>>>>> $_SESSION[ 'login'] = (( $navn == 'Starz') && ( $pwd == '1234'));
>>>>> if ( $_SESSION[ 'login'] === true) {
>>>>> header( 'Location:
http://www.diskotekstarz.dk/?page_id=422');
>>>>> }
>>>>> else {
>>>>> echo 'Login ikke rigtigt!';
>>>>> }
>>>>> ?>
>>>>>
>>>>> Og den fil har jeg lagt i mappen med det tema, som jeg kører via
>>>>> wordpress. Og formen har jeg også ændret, men resten er jeg desværre
>>>>> ikke lige med på? (:
>>>>>
>>>>> Anders Pedersen
>>>>
>>>> Jamen så lidt forklaring...
>>>>
>>>> $navn = ( isset($_POST[ 'navn'])) ? $_POST[ 'navn'] : '';
>>>> er det samme som
>>>> if ( isset($_POST[ 'navn'])) { $navn = $_POST[ 'navn']; }
>>>> else { $navn = ''; }
>>>>
>>>> $pwd = ( isset($_POST[ 'pwd'])) ? $_POST[ 'pwd'] : '';
>>>> kan på samme måde skrives som en if
>>>> () ? : er en expression, der altid returnerer et eller andet. Hvis ()
>>>> er sand returneres det der står mellem ? og : - ellers det der står
>>>> efter :
>>>> ( Den har et navn - terney operator, eller noget i den retning - men
>>>> kunne ikke lige finde den i doc...)
>>>>
>>>> $_SESSION[ 'login'] = (( $navn == 'Starz') && ( $pwd == '1234'));
>>>> her sættes $_SESSION[ 'login'] boolean sand, hvis de to betingelser er
>>>> opfyldt - ellers sættes den boolean false
>>>>
>>>> if ( $_SESSION[ 'login'] === true) {
>>>> === checker både type og værdi. Altså $_SESSION[ 'login'] er en boolsk
>>>> variabel *og* værdien skal være true. Andre typer variable kan ved
>>>> bestemte værdier også returnere sand.
>>>> Hvis f.eks.
>>>> $_SESSION[ 'login'] = (integer)1, vil
>>>> if ( $_SESSION[ 'login')) returnere sand - hvilket ikke er det du
>>>> ønsker.
>>>>
>>>> Er der andre ting du ikke forstår, spørger du igen
>>>>
>>>>
>>>> Birger
>>>>
>>>> --
>>>>
http://varmeretter.dk - billig, sund og hurtig mad
>>>>
http://bbsorensen.dk
>>>>
>>>>
>>> Er stået af (: Har slet ikke styr på php overhovedet. Havde bare brugt
>>> denne kode et andet sted, og der virkede den. Så det undrede mig at den
>>> så ikke ville virke. Må bare opgive :s
>>>
>>> Anders
>>
>> Jo da.
>> Hvis du ikke kan selv, er det svært at hjælpe dig.
>> Man kan "låne" mange steder fra - men i langt de fleste tilfælde, er
>> man nødt til at rette tingene så de passer til ens eget behov.
>>
>> Check at de filer du bruger PHPscripts har .php som extension.
>> Jeg tror faktisk at det er det der er galt...
>>
>> Birger
>>
>> --
>>
http://varmeretter.dk - billig, sund og hurtig mad
>>
http://bbsorensen.dk
>>
>>
>
> Vil gerne være ærlig at sige, at jeg ikke kan særlig meget php (:
> Men kan bare ikke få det til at virke..
Det ser for mig ud somom, at hvis du erstetter
action="<?php echo $_SERVER['PHP_SELF']?>"
med
action="
http://diskotekstarz.dk/"
virker tingene.
Jeg har gjort dette i kildekoden i FF, og det ser til at virke - jeg
bliver ikke logget ind - med Starz og 1234 er forhåbentligt heller ikke
de rigtige -, så jeg får blot index siden igen - men ingen fejl.
Du kan også prøve at skrive php'en i action rigtigt:
action="<?php echo $_SERVER['PHP_SELF']; ?>"
og se om det får tingene til at virke.
Ellers er det nødvendigt, at se den originale index.php - eller at
kontakte en der kender til WordPress.
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk