Avatar billede judas Nybegynder
10. september 2003 - 15:22 Der er 16 kommentarer og
1 løsning

input field til PHP variabel

Denne kode skal validere om password er korrekt i en php funktion (verifyPassword). $_POST['password'] indeholder tilsyneladende ikke det jeg forventer (inputtet fra password feltet??!

Hvad er der galt?

<form method="post" action= <? if(verifyPassword($_POST['userName'], $_POST['password'])){echo "\"phpinfo.php\"";}  else {echo "\"ep.php\"";}?>>
<INPUT TYPE="HIDDEN" NAME="return_to" VALUE=""><p/>
Username:
<br><input type="text" name="userName" VALUE="" autocomplete=OFF><p/>
Password:
<br><input type="password" name="password"><P/>
<input type="submit" value="Login" id="submiter" name="submitIt"><p/>
</form>
Avatar billede 7th Praktikant
10. september 2003 - 15:31 #1
Tror det er sådan noget du søger...

<?
if(verifyPassword($_POST['userName'], $_POST['password'])){
header ("location: phpinfo.php");
exit;
}
else {
header ("location: ep.php");
exit;
}
?>
<html>
<head>
blablabla
</head>

<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
<INPUT TYPE="HIDDEN" NAME="return_to" VALUE=""><p/>
Username:
<br><input type="text" name="userName" VALUE="" autocomplete=OFF><p/>
Password:
<br><input type="password" name="password"><P/>
<input type="submit" value="Login" id="submiter" name="submitIt"><p/>
</form>
Avatar billede judas Nybegynder
10. september 2003 - 15:46 #2
Jeg får fejlen: Warning: Cannot modify header information - headers already sent

når jeg benytter dit eksempel.
Avatar billede 7th Praktikant
10. september 2003 - 15:51 #3
Der må være noget i din verifyPassword funktion som sender/udskriver et eller andet til din login side, siden du får fejlmeddelelsen.
Avatar billede judas Nybegynder
10. september 2003 - 15:54 #4
Nej - den er umådelig simpel. Returnerer true eller false
Avatar billede judas Nybegynder
10. september 2003 - 15:57 #5
Hvad giver det her mig?

$_SERVER['PHP_SELF'];
Avatar billede 7th Praktikant
10. september 2003 - 16:01 #6
Det udskriver blot den pågældende side du befinder dig på. Du kan jo prøve at skrive echo $_SERVER['PHP_SELF']; og se om det passer med den adresse der står i adresselinien.
Avatar billede judas Nybegynder
10. september 2003 - 16:03 #7
Hvorfor ville jeg være interesseret i det. Det skal jo være afhængigt af hvad min verifyPassword returnerer! Jeg er lidt vag i php, så skyd mig hvis jeg spørger dumt
Avatar billede 7th Praktikant
10. september 2003 - 16:07 #8
Jeg gik ud fra at hvis verifyPassword = true så skulle man redirectes til phpinfo.php, og hvis false så til ep.php, men det var et skud i tågen. Kan du ikke skrive hvad du forventer der skal ske hvis verifyPassword = true.
Avatar billede judas Nybegynder
10. september 2003 - 16:10 #9
Det er også korrekt.
Men vil action i det eksempel du skrev ikke bare reloade min login side. Jeg kan ikke lige se hvad actionen gør i dette tilfælde
Avatar billede 7th Praktikant
10. september 2003 - 16:15 #10
Nej, action betyder ganske simpelt hvor du vil have din "action" til at foregår henne. Det vil sige, når du submitter formen, hvilken side skal så behandle formdata.

Kunne du ikke eventuelt prøve at poste din verifyPassword funktion.
Avatar billede judas Nybegynder
10. september 2003 - 16:20 #11
Ok - og vil det så sige at når så den ser min login side igen vil den i den første php kode gå ind i verifyPassword funktionen.

Her er koden til verifyPassword:

function verifyPassword($userName, $password)
{
    $xmlPassword = md5("testpassword");
    $testUserName = $userName;
    if(md5($password)==$xmlPassword)
    {
        return true;
    }
    else    return false;
}
Avatar billede judas Nybegynder
10. september 2003 - 16:21 #12
Det er kun password der benyttes pt., da den bare er lavet til tests
Avatar billede 7th Praktikant
10. september 2003 - 16:29 #13
Ja. Jeg er desværre ikke ret stærk i functions, så jeg tror du må få en anden til at hjælpe dig herfra, men umiddelbart virker det ok, så jeg ved ikke hvad der kan være galt.
Avatar billede judas Nybegynder
10. september 2003 - 16:30 #14
ok - men funktionen er testet og virker upåklageligt. Men du skal have tak for hjælpen
Avatar billede 7th Praktikant
10. september 2003 - 16:47 #15
Jeg ved ikke om dette kan hjælpe dig, men følgende virker fint hos mig.

<?
function verifyPass() {
if ($_POST['pass'] == 123) {
return true;
}

else {
return false;
}
}

if (isset ($_POST['go'])) {
if (verifyPass()) {
header ("location: phpinfo.php");
exit;
}

else {
header ("location: ep.php");
exit;
}
}
?>
<html>
<head>
<title>Function</title>
</head>

<body>

<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
<input name="pass" type="text" value=""><br><input name="go" type="submit" value="go">
</form>

</body>
</html>
Avatar billede judas Nybegynder
10. september 2003 - 16:59 #16
bucker. Havde en html kommentar øverst i filen med min funktion - det var den der var skyld i det, da der ikke må være noget html overhovedet før en header.

Tak for hjælpen
Avatar billede 7th Praktikant
10. september 2003 - 17:02 #17
Tænkte det nok :o) Smider lige et svar så...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester