mySQL kode til Interbase
Har fundet et simpelt login lavet med php/mySQL http://www.eksperten.dk/artikler/913, har prøvet at overføre det til ibase. men virker selvfølgelig ikke :) nogen der kan se fejl ved koden? forslag?eneste ting jeg ved virker, er logon'et til databasen.
databasen film.gdb indeholder tabellen personer med datafelterne brugernavn og kodeord.
xtop.inc:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
login.php:
<?php
session_start();
include "xtop.inc";
$title = "Loginfelt";
$dbpath = "localhost:c:/htdocs/film.gdb";
$dbuser = "sysdba";
$dbpass = "masterkey";
printf("<head><title>%s</title>\n", $title);
print("</head>");
print("<body>");
printf("<h1>%s</h1>\n", $title);
$dbhandle = ibase_connect($dbpath, $dbuser, $dbpass) or die ("Fejl ved DB-Connect");
}
function ShowForm($dbuser = '')
{
return "
<form name="LoginForm" method="post" action="">
<table>
<tr>
<td>Brugernavn:</td>
<td><input type="text" name="brugernavn" value="". $dbuser .""></td>
<tr>
<td>Kodeord:</td>
<td><input type="text" name="kodeord" value="". $dbpass .""></td>
</tr>
<tr><td colspan="2"><input type="submit" name="Send" value="Log ind"></td></tr>
</table>
</form>
}
function CheckLogin($dbuser, $dbpass)
{
$Query = ibase_query("SELECT * FROM personer WHERE brugernavn="$dbuser" AND kodeord="$dbpass");
// Smider resultatet ind i et objekt
$Row = ibase_fetch_object($Query);
// Tjekker om der var nogen der passede til vores forespørgsel
if(!empty($Row) && $Row->kodeord == $dbpass && $Row->brugernavn == $dbuser)
{
// Smider brugernavnet og kodeordet ind i sessioner
$_SESSION['brugernavn'] = $dbuser;
$_SESSION['kodeord'] = $dbpass;
// Så er man logget ind.
return true;
}
else
{
// Smider en javascript alert til brugeren der siger, at han ikke loggede korrekt ind.
echo "<script language=\"javascript\" type=\"text/javascript\">alert('Dine loginoplysninger passede ikke sammen.');</script>";
// Returnerer false
return false;
}
}
?>
// Hvis man ikke er logget ind, skal man smides til login-formularen
if(!isset($_SESSION['brugernavn']))
{
$dbpass = sha1($_POST['kodeord']);
if($Login->CheckLogin($_POST['brugernavn'], $dbpass))
{
// Man er logget ind
header("location: /");
}
// Sætter formen ind med de brugerindtastede oplysninger
echo $Login->ShowForm($_POST['brugernavn']);
</body></html>