Loginsystem og sletning af rækker i db - hvad gør jeg forkert?
Hejsa,Jeg er igang med at lave et 'proof-of-concept' website, som led i et projekt og i den forbindelse skal der laves et simpelt loginsystem, hvorfra den pågældende person der er logget ind, skal kunne oprette og slette admins fra en mysql database, rette sit eget kodeord og også slette rækker/entries fra en anden tabel i databasen.
I forbindelse med Loginsystemet så har jeg brugt en gammel guide fra hæftet "Start på PHP5" som også findes på http://g2k.dk/php/kap/?kap=stort, men kan heller ikke helt få det til at fungere som jeg vil have det - når siden er uploadet melder den ingen fejl, men når jeg udfylder mine "opret/slet/ændr" forms bliver jeg smidt tilbage til login formularen, uden at der er sket ændringer i min database.
Mht. sletning af rækkerne, så kan jeg sagtens lave kaldet til databasen for at få mine rækker/entries vist ($visquery i Login.php), men jeg kan ikke få lov til at slette dem med min ($sletquery) og jeg kan ikke se hvad det er der går galt.
Der gives 60 point for løsning af hvert spørgsmål - på forhånd tak
Login.php
<?
session_start();
include "inc.config.php";
include "bruger.php";
$bruger = new bruger();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>uBogen</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<!-- start header -->
<div id="header">
<div id="menu">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="annoncer.php">Annoncer</a></li>
<li><a href="opretannonce.php">Opret annonce</a></li>
<li><a href="sletannonce.php">Slet annonce</a></li>
<li><a href="kontakt.php">FAQ / Kontakt</a></li>
<li class="current_page_item"><a href="login.php">Admin</a></li>
</ul>
</div>
</div>
<div id="logo">
<h1>uBogen</h1>
</div>
<!-- end header -->
<hr />
<!-- start page -->
<div id="page">
<!-- start content -->
<div id="content">
<div class="post">
<h1 class="title">Administration</h1>
<div class="entry">
<br />
<?
if(isset($_POST["brugernavn"]) &&
isset($_POST["kodeord"])){
if(get_magic_quotes_gpc()){
$brugernavn = stripslashes($_POST["brugernavn"]);
$kodeord = stripslashes($_POST["kodeord"]);
} else {
$brugernavn = $_POST["brugernavn"];
$kodeord = $_POST["kodeord"];
}
if($bruger->log_ind($brugernavn, $kodeord) == false)
echo "<font color=red>fejl i login</font><br>";
}
if( $bruger->logget_ind() ){
echo "<p>Du er logget ind som " ;
echo $bruger->hent_brugernavn();
echo "<br /><br />";
echo "<form action='$PHP_SELF'>";
echo 'Skriv ID på den annonce du vil slette og tryk på "Slet"</p>';
echo "<input type='text' name='id' value='AnnonceID' /> <input type='submit' name='slet' value='Slet' />";
echo "</form><br />";
$slet = $_POST['slet'];
$id = $_POST['id'];
if($slet) {
$sletquery = mysql_query("delete from ubogen where id='$id'") or die(mysql_error());
}
$visquery = mysql_query("SELECT id, titel, forfatter, DATE_format(dato, '%d/%m - %Y') as dato_formatteret, bruger FROM ubogen ORDER BY id");
while($row = mysql_fetch_array($visquery)) {
$titel = $row["titel"];
$forfatter = $row["forfatter"];
$dato= $row['dato_formatteret'];
$id = $row["id"];
$user = $row["bruger"];
echo "<b>ID nr. $id</b> - $titel, $forfatter blev tilføjet af $user ($dato)<br /><br />";
}
echo "<br /><br />";
} else {
echo "<form method = post action = $PHP_SELF>";
echo "brugernavn: <input name=brugernavn /><br />";
echo "kodeord: <input type=password name=kodeord /><br />";
echo "<input type=submit value=' log ind ' />";
echo "</form><br />";
}
?>
</div>
</div>
</div>
<!-- end content -->
<!-- start sidebar -->
<div id="sidebar" class="sidebar">
<ul>
<?
if( $bruger->logget_ind() ){
echo "<li>";
echo "<h2>Quick Links</h2>";
echo "<table border=0>";
$bruger->opret($brugernavn, $kodeord);
echo "<form method = post action = $PHP_SELF>";
echo "<tr><td> </td><td>brugernavn:</td><td><input name=brugernavn></td></tr>";
echo "<tr><td> </td><td>kodeord:</td><td><input type=password name=kodeord></td></tr>";
echo "<tr><td> </td><td></td><td><input type=submit value=\" opret admin \"></td></tr>";
echo "</form>";
$bruger->fjern($brugernavn);
echo "<form method = post action = $PHP_SELF>";
echo "<tr><td> </td><td>brugernavn:</td><td><input name=brugernavn></td></tr>";
echo "<tr><td> </td><td></td><td><input type=submit value=\" slet admin \"></td></tr>";
echo "</form>";
$bruger->log_ud();
echo "<form method = post action = $PHP_SELF>";
echo "<tr><td> </td><td></td><td><input type=submit value=\" log ud \"></td></tr>";
echo "</table><br />";
} else {
echo "<li>";
echo "<h2>Quick Links</h2>";
echo "<li>Log ind for se menuen</li>";
echo "</li>";
}
?>
</ul>
</div>
<!-- end sidebar -->
<div style="clear: both;"> </div>
</div>
<!-- end page -->
<hr />
<!-- start footer -->
<div id="footer">
<p>© 2009 <b>uBogen</b> • <i>et Bachelor-projekt fra SDU Kolding</i></p>
</div>
<!-- end footer -->
</body>
</html>
Bruger.php
<?
class bruger{
var $brugernavn, $kodeord;
function bruger(){
if(isset($_SESSION["brugernavn"]) &&
isset($_SESSION["kodeord"]))
$this->log_ind($_SESSION["brugernavn"], $_SESSION["kodeord"]);
}
function log_ind($brugernavn, $kodeord){
$bruger_slash = addslashes($brugernavn);
$kode_slash = addslashes($kodeord);
$foresp =
mysql_query("SELECT * FROM Admin ".
"WHERE username = '$bruger_slash' AND ".
"password = '$kode_slash'");
if(mysql_num_rows($foresp) == 1){
$this->brugernavn = $brugernavn;
$this->kodeord = $kodeord;
$_SESSION["brugernavn"] = $this->brugernavn;
$_SESSION["kodeord"] = $this->kodeord;
return true;
} else {
$this->log_ud();
return false;
}
}
function log_ud(){
if($this->logget_ind()){
unset($this->brugernavn);
unset($_SESSION["brugernavn"]);
unset($this->kodeord);
unset($_SESSION["kodeord"]);
return true;
} else
return false;
}
function logget_ind(){
if(isset($this->brugernavn) && isset($this->kodeord))
return true;
else
return false;
}
function opret($brugernavn, $kodeord){
$bruger_slash = addslashes($brugernavn);
$kode_slash = addslashes($kodeord);
$foresp = mysql_query("SELECT * FROM Admin ".
"WHERE username = '$bruger_slash'");
if(mysql_num_rows($foresp) != 0)
return false;
else{
mysql_query("INSERT INTO Admin (username, password) ".
"VALUES ('$bruger_slash', '$kode_slash')");
return true;
}
}
function fjern($brugernavn){
$bruger_slash = addslashes($brugernavn);
$foresp = mysql_query("SELECT * FROM Admin ".
"WHERE username = '$bruger_slash'");
if(mysql_num_rows($foresp) != 1)
return false;
else{
mysql_query("DELETE FROM Admin ".
"WHERE username = '$bruger_slash");
return true;
}
}
function hent_brugernavn(){
if($this->logget_ind())
return $this->brugernavn;
else
return "";
}
function hent_kodeord(){
if($this->logget_ind())
return $this->kodeord;
else
return "";
}
function ret_kodeord($kodeord){
if($this->logget_ind()){
$bruger_slash = addslashes($this->brugernavn);
$kode_slash = addslashes($kodeord);
mysql_query("UPDATE Admin ".
"SET password = '$kode_slash' ".
"WHERE username = '" . $bruger_slash . "'");
$this->kodeord = $kodeord;
$_SESSION["kodeord"] = $kodeord;
return true;
} else
return false;
}
}
?>
inc.config.php
<?php
/* Indstillinger : database */
$cfg['mysql']['host'] = 'localhost'; // Host til database
$cfg['mysql']['username'] = 'xxx'; // Brugernavn til database
$cfg['mysql']['password'] = 'yyy'; // Kodeord til database
$cfg['mysql']['database'] = 'zzz'; // Database
/* Redigering ikke nødvendig herunder */
mysql_connect($cfg['mysql']['host'],$cfg['mysql']['username'],$cfg['mysql']['password']) or die(mysql_error());
mysql_select_db($cfg['mysql']['database']) or die(mysql_error());
?>