Zur Navigation

Admin-Login

1 tomaschko (Gast)

DAnke für die Hilfe.

Ich habe gestern noch ein prob mit dem admininterface entdeckt. Das Passwort wird nciht abgefragt, ich weiss nicht wieso. Findet jemand den FEhler:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<?php
$blog_title="Admin-Interface";
include("http://localhost/inc/mysql.inc");
include("#_functions.inc");
$angemeldet=false;
$titel=PostVar("titel");
$beitrag=PostVar("beitrag");
$rubrik=PostVar("rubrik");
$link=PostVar("link");
$url=PostVar("url");
$status=$_POST['status'];
$datum=datum("now");
if (!empty($url) && empty($link)) $link="Quelle";
if (!empty($status)) {
  if (empty($titel)) $fehler .="Titel eingeben<br>";
  if (empty($beitrag)) $fehler .="Beitrag eingeben <br>";
  if (empty($rubrik)) $fehler .="Rubrik angeben<br>";
  if (!empty($link) && empty($url)) $fehler .="Link ohne URL<br>";
}
}
?>
<html>
  <head>
    <title><?=$blog_title ?></title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" type="text/css" href="styles.css">
      </head>
  <body>
    <div align="center">
    <table width="500" id="container">
    <tr><td id="titel"><?=$blog_title?></td></tr>
    <?
      if (!$angemeldet) {
      //Kennwortabfrage
      $name=$_POST['name'];
      $kennwort=$_POST['kennwort'];
      if (!empty($name) && !empty($kennwort)) {
      $query="SELECT name, kennwort FROM blog_admin WHERE name='$name'";
      $sql=mysql_query($query)
          or die(mysql_error());
      if (mysql_num_rows($sql) == 1) {
        $ds=mysql_fetch_object($sql);
        if ($ds->kennwort == $kennwort) $angemeldet=true;
        }
      } else $angemeldet=false;}
      //Blogeingabeform
      ?>
    <tr>
    <td id="blog" colspan="2">
    <?php 
    if ($fehler) echo "<p>$fehler</p>";
    elseif ($status == "Vorschau") {
      echo "<p>";
      ?>
        <small><?=$datum ?></small><br>
        <big><?=format($titel)?></big><br>
        <?=format($beitrag)?><br>
        <small>Rubrik: <?=format($rubrik)?></small><br>
        <?
        if (!empty($url)) {
        ?>
          <small><a href="<?=$url?>"><?=format($link)?></a></small>
        <?
        }
        echo "</p>";
        } elseif ($status=="Eintragen") {
          $query="INSERT INTO blog SET
              datum=now(),
              titel='".addslashes($titel)."',
              beitrag='".addslashes($beitrag)."',
              rubrik='".addslashes($rubrik)."',
              link='".addslashes($link)."',
              url='".addslashes($url)."'
              ";
             $sql=mysql_query($query)
                 or die(mysql_error());
             unset($status, $titel, $beitrag, $rubrik, $link, $url);
           }
         ?>
         </td>
         </tr>
         <tr>
         <td>
         <form method="post" action="admin.php">
         <table>
         <tr>
            <td><small><b>Titel</b></small></td>
            <td><input type="text" name="titel" value="<?=htmlentities($titel)?>"   style="width: 380px"></td>
         </tr>
         <tr>
           <input type="hidden" name="name" value="<?=$name?>">
           <input type="hidden" name="kennwort" value="<?=$kennwort?>">
           <td><small><b>Beitrag</b></small></td>
           <td><textarea name="beitrag" style="width: 380px; height: 150px"><?=htmlentities($beitrag)?></textarea></td>
         </tr>
         <tr>
           <td><small><b>Rubrik</b></small></td>
           <td><input type="text" name="rubrik" value="<?=htmlentities($rubrik)?>" style="width: 380px"></td>
         </tr>
         <tr>
           <td><small><b>Link-Titel</b></small></td>
           <td><input type="text" name="link" value="<?=htmlentities($link)?>" style="width: 380px"></td>
         </tr>
         <tr>
           <td><small><b>Link-Adresse</b></small></td>
           <td><input type="text" name="url" value="<?=$url?>" style="width: 380px"></td>
         </tr>
         <tr>
           <td></td>
           <td>
             <input type="submit" name="status" value="Vorschau">
             <input type="submit" name="status" value="Eintragen">
           </td>
         </tr>
         </table>
         </form>
         </td>
         </tr>
         </table>
         </div>
  </body>
</html>

wäre echt dankbar, weil ich finde nix - vllt. ist es so ein minifehler den man selber übersieht (zeichen vergessen oder so)

12.01.2006 15:36

2 Jörg Kruse

Einen Fehler, den ich sehe: in Zeile 20 und 21 wird jeweils eine } geschlossen, zuvor wurde aber nur eine { (in Zeile 15) geöffnet

12.01.2006 16:00

3 tomaschko (Gast)

danke für den Tipp, ich habe gestern abend noch einen anfängerfehler entdeckt: Ich habe das Formular für die Passwort und User abfrage vergessen - ich idiot ;-)

18.01.2006 14:36

4 tomaschko (Gast)

Noch ne Frage (auch wenn´s nervt ;-) )

Ich wollte die Anmeldung auf eine Session umbauen statt es wie oben im Code zu handhaben.
Inwieweit muss ich folgenden Codeteil der der Sessionanmeldeprüfung ändern, damit er die Daten aus der Datenbank holt:

if ($username == 'admin' && $passwort == 'geheim') {
       $_SESSION['angemeldet'] = true;

Ich habe probiert einfach admin durch $query="SELECT name FROM blog_admin

27.01.2006 13:23

5 Jörg Kruse

Welche Daten meinst du? Die Werte für $username und $passwort hast du ja jetzt direkt im Script, in der if-Anweisung, stehen - dafür benötigst du die Tabelle blog_admin dann ja nicht mehr?

27.01.2006 14:27

6 tomaschko (Gast)

genau das will ich ja ändern - ich möchte es so umschreiben, dass ich die daten aus der Db bekomme, statt aus dem script, aus sicherheitsgründen.

27.01.2006 14:31

7 Jörg Kruse

Es sollte so funktionieren wie bisher, wenn du die Tabelle blog_admin beibehälst. Wenn du andere Variablennamen, wie z.B. $username und $passwort verwendest, müssen diese im Script entsprechend geändert werden

     $query="SELECT name, kennwort FROM blog_admin WHERE name='$username'";
     $sql=mysql_query($query)
         or die(mysql_error());
     if (mysql_num_rows($sql) == 1) {
       $ds=mysql_fetch_object($sql);
if ($ds->kennwort == $passwort) {
      $_SESSION['angemeldet'] = true;
     }

27.01.2006 14:52 | geändert: 27.01.2006 14:53

8 Jörg Kruse

Ich habe die Beiträge zum Admin-Login mal in einen eigenen Thread verschoben...

27.01.2006 19:30

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]