Login-funktion til min backend virker ikke
Først må jeg lige sige at jeg er ny (både med php og her poå eksperten) – jeg ved derfor ikke helt om nedenstående er formuleret ”efter etiketten”, men håber det er ok…Undertegnede har fået (ikke stjålet ;-)) en fuld kopi af en php/Mysql cms-hjemmeside – altså med frontend og backend.
Jeg kan sagtens få frontenden og alt hvad den refererer til i databasen til at virke (jeg har rettet dabasenavnet, db-login og db-password) – men jeg kan IKKE få login til backenden til at virke – altså ikke komme ind i den via almindelig html!
Så vidt jeg kan se anvendes der 4 filer til loginfunktionen:
1. index.php (loginsiden til backenden)
2. dologin.php (som loginsiden refererer til – indeholder selve login-funktionen)
3. index(1).php (selve backendhovedsiden)
4. tjeklogin.php (som index(1).php refererer til – tjekker om jeg har logget ind)
Når jeg indtaster korrekt login og password i index.php får jeg bare den samme side frem igen – med tomme felter (hvis jeg taster forkert, for jeg en korrekt fejlmeddelelse)
De centrale php-scripts i de 4 filer er:
1. Index.php:
(start)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Et eller andet</title>
<link rel="STYLESHEET" type="text/css" href="stylesheet.css">
<script language="JavaScript" src="funktioner.js"></script></head>
<body marginwidth="100" leftmargin="100">
<table align="center" width="650" cellspacing="0" cellpadding="0" border="0">
<tr><td align="top"><img src="../pics/print_logo.gif" width="294" height="50" alt="" border="0"></td><td align="right" valign="bottom">
<br><br>
<?php
error_reporting(E_ALL & ~E_NOTICE);
require ("funktioner.php");
dato();
echo "<h4>Administrationsmodul</h4>";
?>
</td></tr><tr><td>
<form action="dologin.php" method="post">
<input type="hidden" name="logind" value="logind">
<p><b>Indtast:</b></p>
LOGIN:<br>
<input class="inputfelt" type="text" name="login" onmouseover="msover_field(this)" onmouseout="msout_field(this)" onfocus="fieldfocus(this)" onblur="fieldblur(this)"><br>
PASSWORD:<br>
<input class="inputfelt" type="password" name="password" onmouseover="msover_field(this)" onmouseout="msout_field(this)" onfocus="fieldfocus(this)" onblur="fieldblur(this)"><br>
<br><br><input class="submit" type="submit" name="submit" value="Log ind">
</form>
<?php
if (isset($_GET['error']) && $_GET['error'] == "fejl") {
echo"<b>Fejl i brugernavn eller password!</b>";
}
?></td></tr></table>
</body></html>
(slut)
2. dologin.php:
(start)
<?php
require ("funktioner.php");
session_start();
//hvis form er submittet
if (isset($_POST['logind'])) {
//password i databasen er krypteret, så det gøres også med indtastet password
$dopass = $_POST['password'];
//skift selv bruger og pass til databasen.
open_base();
$tjek = mysql_query("SELECT * FROM skribenter WHERE skribentlogin='$_POST[login]' AND skribentpassword='$dopass'") or die ("Kunne ikke vælge felter i database-tabellen");
close_base();
if(mysql_num_rows($tjek) != 0) {
$_SESSION['sessionnr'] = session_id();
$_SESSION['login'] = $_POST['login'];
session_register("sessionnr");
session_register("login");
header("Location:index(1).php");
}else{
header("Location:index.php?error=fejl");
}
}else{
header("Location:index.php");
exit;
}
?>
(slut)
3.index(1):
(start)
<?php require("tjeklogin.php"); ?>
(kun linie 1 – resten klippet væk)
(slut)
4.tjeklogin.php
(start)
<?php
session_start();
if (!isset($_SESSION['login'], $_SESSION['sessionnr']) || $_SESSION['sessionnr'] != session_id()) {
header("Location:index.php");
}
?>
(slut)
Når jeg indtaster korrekt login og password i index.php, får jeg bare den samme side frem igen – med tomme felter (hvis jeg taster forkert, får jeg en korrekt fejlmeddelelse)
Det skal påpeges at den ”original”, som jeg har fået kopien fra, ingen problemer har.
Databasen i phpmyadmin-kopien er også fuldstændig identisk med ”originalen”
Hvad er problemet?
Vh rapsak