Login via PHP
jeg har lavet følgende script:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title></title>
<link type="text/css" rel="stylesheet" href="style/style.css">
<title>
Tuned In.dk
</title>
</head>
<body>
<div id="title"></div>
<div id="mainMenu">
</div>
<div id="main">
<div id="dummySubMenu"></div>
<div id="subMenu">
<a href="login.htm">Startside</a> |
<a href="download.htm">Download</a> |
<a href="galleri1.htm">Galleri</a> |
<a href="adresseliste.htm">Adresser</a> |
<a href="kalender1.htm">Kalender</a> |
<a href="links1.htm">Links</a> |
<a href="logafdersgudamand.htm">Log af</a>
</div>
<?php
// sessionen startes
session_start();
// hvis formularen ikke er afsendt vises den
if (!isset($_POST['Brugernavn']) || !isset($_POST['Adgangskode'])) {
print ("<?xml version=\"1.0\" encoding=\"ISO-8859-15\"?> \r" );
print ("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" ");
print ("\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\"> \r" );
print ("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"da\"> \r" );
print ("<head> \r" );
print (" <title>Login-side</title> \r" );
print ("</head> \r" );
print ("<body> \r" );
print ("<h1>Login</h1></h1> \r" );
print ("<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\"> \r");
print ("<table><tr>\r");
print ("<td>Brugernavn: </td><td><input type=\"Text\" name=\"Brugernavn\" /></td>\r");
print ("</tr>\r<tr>\r");
print ("<td>Adgangskode: </td><td><input type=\"Text\" name=\"Adgangskode\" /></td>\r");
print ("</tr>\r<tr>\r");
print ("<td></td><td><input type=\"Submit\" value=\"GO GO GO!\" /> </td>\r");
print ("</tr>\r</table>\r");
print ("</form>\r");
print ("</body>\r");
print ("</html>\r");
}
else {
// ellers oprettes en forbindelse til databasen med
// indholdet fra formularen angives som søgekriterium
// php-funktionen scr_replace sikrer mod sql-injektion
// Opretter forbindelse til databaseserveren
$conn = mysql_connect('localhost', 'nobody', 'test');
if (!$conn) {
die ("Der kunne ikke etableres forbindelse til databaseserveren!");
}
// Opretter forbindelse til databasen
$is_db_selected = mysql_select_db('test_tunedin', $conn);
if (!$is_db_selected) {
die ("Der kunne ikke etableres forbindelse til databasen!");
}
$sql = "SELECT Brugernavn, Adgangskode ";
$sql .= "FROM medlemmer ";
$sql .= "WHERE Brugernavn = '" . str_replace("'", "", $_POST['Brugernavn']) . "' ";
$sql .= "AND Adgangskode = '" . str_replace("'", "", $_POST['Adgangskode']). "'";
$result = mysql_query($sql);
if (!$result) {
die ("query ikke udført: " . $sql. "<br /><strong>Fejl:</strong> " . ibase_errmsg());
}
if ($row = mysql_fetch_object($result)) {
// hvis det er et gyldigt login sættes sessionsvariablene lig adgangskoderne fra [ADMINISTRATOR]
if (strlen($row->Brugernavn) > 0) {
$_SESSION['Brugernavn'] = $row->Brugernavn;
$_SESSION['Adgangskode'] = $row->Adgangskode;
// "kunde_edit.php" vises og scriptet afbrydes
header("Location: tabel.php");
exit;
}
}
// hvis det ikke er et gyldigt login forøges sessionsvariablen $_SESSION['loginCount'] med 1
if (!(isset($_SESSION['loginCount']))) {
$_SESSION['loginCount'] = 1;
}
else {
$_SESSION['loginCount']++;
}
// hvis der mindre end 4 loginforsøg kaldes login-siden igen
if ($_SESSION['loginCount'] < 4) {
header("Location: login.php");
exit;
}
else {
// hvis der mere end 3 loginforsøg vises en fejlmeddelelse
print ("<?xml version=\"1.0\" encoding=\"ISO-8859-15\"?> \r" );
print ("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" ");
print ("\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\"> \r" );
print ("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"da\"> \r" );
print ("<head> \r" );
print (" <title>Login-side</title> \r" );
print ("</head> \r" );
print ("<body> \r" );
print ("<h1>HVAD HAR DU GANG I!?</h1></h1> \r" );
print ("<p>Du kan ikke finde ud af det!! gå hjem og tænk over hvad du har gjort :-)</p>");
print ("<p>Forsøg igen eller sluk computeren!.</p>");
print ("</body>\r");
print ("</html>\r");
exit;
}
}
?>
<br><br>
<a href="index.html" style="color:black">Tilbage til ekstern side</a>
</div>
</div>
</body>
</html>
Scriptet virker, hvis jeg kører det gennem localhost intern på computeren. Men hvis jeg oploader den til vores websted, hvor det skal bruges, melder den fejl i linie 29 som har noget at gøre med det XHTML'en som ligger sammen med PHP'en. Hvad skal jeg gøre for at få mit PHP login til at virke? Vi har tjekket at vores webserver understytter PHP og MySQL, så det kan ikke være der problemet ligger, hvad kunne det ellers være?
På forhånd tak for hjælpen.
Mvh Per Jacobsen.