Avatar billede sofr1973 Nybegynder
20. maj 2011 - 12:45 Der er 1 kommentar

Login script til forskellige sider

Jeg har fundet et php script på nettet efter lang tids søgen og jeg er godt tilfreds med det, så gider ikke databaser og alt i den retning.

Det virker helt fint, men jeg kunne godt tænke mig at ændre det til at login ud fra brugernavn går til en bestemt side...

Admin => side1.php

Birgitte => side2.php

Claus => side3.php

Herunder findes hele scriptet:

Login sker fra forsiden af min hjemmeside www.abfr.dk i index filen:
-----------------------------------------------------------------
<form method="post" action="dataProcess.php">
<table width="250" border="0" align="center" cellpadding="2" cellspacing="2">
<tr>
<td align="left" valign="middle" width="125"><font color="#FFFFFF" size="2">Brugernavn</font></td>
<td align="left" valign="middle" width="125"><font color="#FFFFFF" size="2">Adgangskode</font></td>
</tr>
<tr>
<td align="right" width="100"><input type="text" name="loginName"></td>
<td align="right" width="100"><input type="password" name="passWord"></td>
<td align="right" width="50"><input type="submit" name="submit" value="Log In"></td>
</tr>
</table>
</form>
-----------------------------------------------------------------
DATAPROCESS.PHP:
-----------------------------------------------------------------
<?php

$namePassCombos = array (     

    "Administrator" => "KN7XE98E2",    //  Tilføj så mange brugernavne og kodeord her der skal bruges...
    "Birgitte" => "Soroebo",    //  HUSK at tilføje brugernavne til "secure.php"
    "Admin" => "nimda" 

);

$loginName = $_POST['loginName']; $passWord = $_POST['passWord'];
$passWord = preg_replace ("/</","[",$passWord); $loginName = preg_replace ("/>/","]",$loginName);
$loginName = str_replace(".."," ",$loginName); $passWord = str_replace(".."," ",$passWord);       
$loginName=trim($loginName); $passWord=trim($passWord);

function success($loginName)
{
        $filename = "user.log";
    $log=fopen($filename, "w+");
        fputs($log, $loginName);
    fclose($log);
    Header("Location: secure.php");
}

function error($notice){
if($notice=="0"){
    echo"
    <title>Log-In Error: Absent username / password</title>
    <body><br><p style=\"font:11pt arial\"><font color=red>NOTICE:</font> Log-In Error: Absent username / password.
    <br><br><br>Click <a href=\"java script:history.back(1)\" style=\"color:black\">here</a> to try again.
    </body></html>
    "; exit;
    }

if($notice=="1"){
    echo"
    <title>Log-In Error: Incorrect username / password</title>
    <body><br><p style=\"font:11pt arial\"><font color=red>NOTICE:</font> Log-In Error: Incorrect username / password.
    <br><br><br>Click <a href=\"java script:history.back(1)\" style=\"color:black\">here</a> to try again.
    </body></html>
    "; exit;
    }
}

if (($loginName == "") || ($passWord == "")) { $notice=0; error($notice); }
else if (strcmp($namePassCombos[$loginName],$passWord) != 0) { $notice=1; error($notice); }
else if (strcmp($namePassCombos[$loginName],$passWord) == 0) { success($loginName); }
?>

----------------------------------------------------------------
Jeg er lidt usikker på om det er muligt at tilføje den funktion jeg ønsker i funktionen:
function success($loginName)
----------------------------------------------------------------

Secure.php:
----------------------------------------------------------------
<?php

// published at: scripts.tropicalpcsolutions.com

$filename = "user.log";
$log = fopen($filename, "r");
$contents = fread($log, filesize($filename));
fclose($log);

//  Add usernames below
if ($contents == "Administrator" || $contents == "Birgitte"  || $contents == "Admin") {

$filename = "user.log";
$log = fopen($filename, "w+");
fputs($log,"");
fclose($log);
echo <<<EOF
<!-- #######################################################  -->
<!-- #######################################################  -->
<!--                Begin your HTML below                    -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style>
table.menu
{
position:absolute;
visibility:hidden;
}
</style>
<title>Modul 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function showmenu(elmnt)
{
document.getElementById(elmnt).style.visibility="visible";
}
function hidemenu(elmnt)
{
document.getElementById(elmnt).style.visibility="hidden";
}
</script>
</head>
<body topmargin="0" leftmargin="0" rightmargin="0">

<!-- TOPMENU start -->

<table width="100%" height="20" bgcolor="rgb(219,41,41)">
    <tr>

BLA BLA BLA BLA BLA BLA BLA og så videre...
----------------------------------------------------------------

Er der nogen der kan komme med et hurtigt og forholdsvis nemt forslag til hvordan det kan gøres???
Avatar billede olsensweb.dk Ekspert
20. maj 2011 - 20:33 #1
du skal lave lidt stræk øvelser med et multidim associative array.
jeg har lavet om i dataProcess.php på følgende:

$namePassCombos = array (   
    "Administrator" => "KN7XE98E2",    //  Tilføj så mange brugernavne og kodeord her der skal bruges...
    "Birgitte" => "Soroebo",    //  HUSK at tilføje brugernavne til "secure.php"
    "Admin" => "nimda"
);

laves om til

$namePassCombos = array (   
    array ("Username" =>"Administrator", "Password"=>"KN7XE98E2", "Page" =>"side1.php"), //  Tilføj så mange brugernavne og kodeord her der skal bruges...
    array ("Username" =>"Birgitte",     "Password"=>"Soroebo",  "Page" =>"side2.php"), //  HUSK at tilføje brugernavne til "secure.php"
    array ("Username" =>"Admin",         "Password"=>"nimda",       "Page" =>"side3.php")
);



function success($loginName)
{
    $filename = "user.log";
    $log=fopen($filename, "w+");
    fputs($log, $loginName);
    fclose($log);   
    Header("Location: secure.php");
}

laves om til

function success(&$names, $UserIndex){
    $filename = "user.log";
    $log=fopen($filename, "w+");
    fputs($log, $names[$UserIndex]['Username']);   
    fclose($log);   
    Header("Location: ".$names[$UserIndex]['Page']);
}



else if (strcmp($namePassCombos[$loginName],$passWord) != 0) { $notice=1; error($notice); }
else if (strcmp($namePassCombos[$loginName],$passWord) == 0) { success($loginName); }

laves om til

$lng=count($namePassCombos);
for($i=0; $i<$lng;$i++){   
    // finder brugernavnet i arrayet
    if($namePassCombos[$i]['Username']==$loginName){
        // sammenligner password
        if($namePassCombos[$i]['Password']==$passWord){ success($namePassCombos, $i); }
        else { $notice=1; error($notice); }       
    }   
}


komplet dataProcess.php

<?php
$namePassCombos = array (   
    array ("Username" =>"Administrator", "Password"=>"KN7XE98E2", "Page" =>"side1.php"), //  Tilføj så mange brugernavne og kodeord her der skal bruges...
    array ("Username" =>"Birgitte",     "Password"=>"Soroebo",  "Page" =>"side2.php"), //  HUSK at tilføje brugernavne til "secure.php"
    array ("Username" =>"Admin",         "Password"=>"nimda",       "Page" =>"side3.php")
);
$loginName = $_POST['loginName']; $passWord = $_POST['passWord'];
$passWord = preg_replace ("/</","[",$passWord); $loginName = preg_replace ("/>/","]",$loginName);
$loginName = str_replace(".."," ",$loginName); $passWord = str_replace(".."," ",$passWord);     
$loginName=trim($loginName); $passWord=trim($passWord);

function success(&$names, $UserIndex){
    $filename = "user.log";
    $log=fopen($filename, "w+");
    fputs($log, $names[$UserIndex]['Username']);   
    fclose($log);   
    Header("Location: ".$names[$UserIndex]['Page']);
}

function error($notice){
if($notice=="0"){
    echo"
    <title>Log-In Error: Absent username / password</title>
    <body><br><p style=\"font:11pt arial\"><font color=red>NOTICE:</font> Log-In Error: Absent username / password.
    <br><br><br>Click <a href=\"java script:history.back(1)\" style=\"color:black\">here</a> to try again.
    </body></html>
    "; exit;
    }
if($notice=="1"){
    echo"
    <title>Log-In Error: Incorrect username / password</title>
    <body><br><p style=\"font:11pt arial\"><font color=red>NOTICE:</font> Log-In Error: Incorrect username / password.
    <br><br><br>Click <a href=\"java script:history.back(1)\" style=\"color:black\">here</a> to try again.
    </body></html>
    "; exit;
    }
}
if (($loginName == "") || ($passWord == "")) { $notice=0; error($notice); }
$lng=count($namePassCombos);
for($i=0; $i<$lng;$i++){   
    // finder brugernavnet i arrayet
    if($namePassCombos[$i]['Username']==$loginName){
        // sammenligner password
        if($namePassCombos[$i]['Password']==$passWord){ success($namePassCombos, $i); }
        else { $notice=1; error($notice); }       
        break;
    }   
}
?>


du skal så overveje om Birgitte må kunne åbne Admin's side !!!, men det må komme i et andet spørgsmål hvis det bliver aktuelt.

en ide kunne værer at sætte en session http://dk2.php.net/session_start
eller en cookie http://dk2.php.net/set_cookie
nb: hvis du anvender cookie husk der er nye EU regler for brug af cookie's
http://www.computerworld.dk/art/116242?a=exp&i=80
https://www.borger.dk/Lovgivning/Hoeringsportalen/Sider/Fakta.aspx?hpid=2146002415
http://www.dr.dk/harddisken/blog/2011/03/09/smakagerne-pa-din-harddisk/
http://www.dr.dk/harddisken/blog/2011/03/09/pas-pa-der-er-smakager-i-din-browser/
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