Fejl første gang man logger ind fra en ny computer
Mit log ind script finder ud af at udregne en kunde's rabat, når man logger ind på siden, men hvis man gør det fra en computer, som ikke har været logget ind før, så kommer der en fejlmelding:Notice: Undefinde index $_SESSION["security_properties"] in security1.php on line 14.
Dette sker ikke anden gang man logger ind fra den samme computer.
Er der nogle af jer, som ved, hvad problemet er?
Vedlægger lige security1.php og udtræk scripted result.php.:
security1.php
-------------
<?php
session_start();
function securityUserActive()
{
if (securityGetProperty("password") != 0)
return true;
else
return false;
}
function securityGetProperty($key)
{
return $_SESSION["security_properties"][$key];
}
function securityLogin($dbName, $password, $username)
{
$loginOk = false;
$sql = "SELECT username,password,rabat FROM bruger WHERE password = '$password' AND username='$username'";
$res = mysql_db_query($dbName, $sql);
if ( mysql_num_rows($res) == 0 )
{
die("Fejl ved login: Du har indtastet et forkert password eller brugernavn");
}
if ($row = mysql_fetch_array($res))
{
$security_properties = Array();
$security_properties["password"] = $row["password"];
$security_properties["username"] = $row["username"];
$security_properties["rabat"] = $row["rabat"];
$loginOk = true;
}
mysql_free_result($res);
if ($loginOk)
{
$_SESSION["security_properties"] = $security_properties;
return true;
}
return false;
}
function securityLogoff()
{
session_destroy();
}
?>
result.php
----------
<?php
require_once("security1.php");
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html">
<meta name="GENERATOR" content="DBTools DBManager 2.0">
<title>Results</title>
<body text="#000000" link="#0000EE" vlink="#000000" alink="#3366FF" bgcolor="#eefffa">
<?php
$db = mysql_connect("localhost", "xxxx", "xxxx");
if( !$db )
{
die("Error connecting to the Server");
exit;
}
$result = mysql_select_db("xxxx", $db);
if( !$result )
{
die("Error selecting Database");
exit;
}
?>
<div align="center">
<center>
<table border="0" cellpadding="0" cellspacing="1" width="100%">
<?php
$query = "
SELECT
varekatalog.varenummer,
varekatalog.varenavn,
varekatalog.pris,
varekatalog.billed,
varekatalog.Sbilled
FROM
varekatalog
WHERE
kataloggruppe='10.25' OR kataloggruppe='10.26'
ORDER BY
varenavn ASC";
$result = mysql_query($query,$db);
if( !$result )
{
die("Error executing query");
}
echo "<tr>";
echo "<td align=CENTER bgcolor='#000000'><font face='Arial' size='2' color='#FFFFFF'>Billede</font></td>";
echo "<td align=CENTER bgcolor='#000000'><font face='Arial' size='2' color='#FFFFFF'>Varenummer</font></td>";
echo "<td align=CENTER bgcolor='#000000'><font face='Arial' size='2' color='#FFFFFF'>Navn</font></td>";
echo "<td align=CENTER bgcolor='#000000'><font face='Arial' size='2' color='#FFFFFF'>Nettopris</font></td>";
echo "</tr>";
$nrows = mysql_num_rows($result);
$row = 0;
while( $row < $nrows )
{
$varenummer = mysql_result($result,$row,"varenummer");
$varenavn = mysql_result($result,$row,"varenavn");
$pris = mysql_result($result,$row,"pris") - (mysql_result($result,$row,"pris")* securityGetProperty("rabat"));
$pris = number_format($pris, 2, ',', '.');
$billed = mysql_result($result,$row,"billed");
$Sbilled = mysql_result($result,$row,"Sbilled");
echo "<tr>";
echo " <td align='LEFT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'><a href='$Sbilled' target='_blank'><img src='$billed' alt='[klik her for stort billede]' border=´0'></a></font></td>";
echo " <td align='LEFT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'>".$varenummer."</font></td>";
echo " <td align='LEFT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'>".$varenavn."</font></td>";
echo " <td align='RIGHT' bgcolor='#eefffa'><font face='Arial' size='2' color='#000000'>".$pris."</font></td>";
echo "</tr>";
$row++;
}
mysql_free_result($result);
mysql_close();
?>
</table>
</center>
</div>
</body>
</html>
:-)
