hallo allerseits
ich bin neu hier und auch neu in php
um anzufangen habe ich ein fertiges kleines CMS (aus dem Buch Webseiten gestalten und programmieren von Mark Lubkowitz) genommen und angefangen es für mich umzubasteln.
Das hat auch ganz gut geklappt.
Jetzt stehe ich vor folgendem Problem:
Wenn ich mich verscuhe in den Adminbereich meines CMS einzuloggen, passiert gar nichts. Wenn ich aber gleichzeitig das MiniCMS von M.L. starte und mich dort einlogge, bin ich automatisch auch in meinem eigenen cms eingelogged.
Kann mir jemand sagen wo mein Fehler liegen könnte oder auch, welche Codeteile ich posten muss, damit man von außen etwas dazu sagen kann?
thanx a lot im voraus,
toby
mrhappiness
01-12-2005, 16:46
Original geschrieben von tobydom
Kann mir jemand sagen wo mein Fehler liegen könnte oder auch, welche Codeteile ich posten muss, damit man von außen etwas dazu sagen kann?Die relevanten ;)
das Loginformular für das CMS die Datei, die das Loginformular für das CMS verarbeitet (steht im action-Attribut des Formulars)
aber bitte den Teil, der die Daten prüft, ist ja hoffentlich kommentiert/im Buch beschrieben
die beiden Punkte analog für das miniCMS
den Teil der beim CMS prüft, ob du eingeloggt bist (anhand Kommentare/Beschreibung im Buch)
ok. Dann will ichs mal versuchen.
Also:
....
ich hab hier mal alles rausgelöscht. das war ja ne zumutung.... ;-)
toby
....
So. Das wars glaube ich.
Ich hoffe, ihr könnt was damit anfangen.
gruß,
toby
Hoppala.
was hab ich denn jetzt schon wieder verbockt?
ich hoffe man kann mit dieser einzeiligen anzeige was anfangen.
wenn nicht muss ich das wohl nochmal versuchen zu ändern. Ich hab hier einfach auf PHP geklickt und meinen code per paste ins aufpoppende fenster eingefügt. und jetzt das....:rolleyes:
änder das mal lieber, so kann das kein mensch lesen
Ich glaub ich habs grad rausgefunden. (warum mein php-code keine zeilenumbrüche hatte, nicht warum mein login nicht funzt) also, auf ein neues:
das Loginformular für das CMS
login.inc.php:
<?php
/* Session initialisieren */
session_start();
/* Überprüft, ob ein Login erfolgt ist */
function is_logged_in()
{
global $base;
/* User angemeldet? */
if($_SESSION['authenticated'] == true)
{
return true;
}
/* Login ausgeben */
else
{
$content = '<h1>Login</h1>';
$content .= '<form action="login.php" method="post">';
$content .= '<table border="0" cellpadding="2" cellspacing="0">';
$content .= '<tr>';
$content .= '<td>Benutzername:</td><td><input type="text"
name="username" size="32" maxlength="64"></td>';
$content .= '</tr><tr>';
$content .= '<td>Passwort:</td><td><input type="password"
name="password" size="32"></td>';
$content .= '</tr><tr>';
$content .= '<td></td><td><input type="submit" value="Login"></td>';
$content .= '</tr>';
$content .= '</table>';
$content .= '</form>';
$template = get_file_as_string($base['adm_template']);
$template = str_replace($base['tag_start'].'title'.
$base['tag_end'],$base['adm_title'],$template);
$template = str_replace($base['tag_start'].'naview'.
$base['tag_end'],' ',$template);
$template = str_replace($base['tag_start'].'navigation'.
$base['tag_end'],' ',$template);
$template = str_replace($base['tag_start'].'content'.
$base['tag_end'],$content,$template);
$template = str_replace('$PHP_SELF',$PHP_SELF,$template);
echo stripslashes($template);
return false;
}
}
?>
die Datei, die das Loginformular für das CMS verarbeitet
login.php:
<?php
/* Session initialisieren */
session_start();
/* übergebene Variablen auslesen */
$username = $_POST['username'] ?
$_POST['username'] : false;
$password = $_POST['password'] ?
$_POST['password'] : false;
if($username && $password)
{
/* verschlüsseltes Passwort erzeugen */
$encrypted = md5($username,$password);
include('../inc/database.inc.php');
$connection = mysql_connect($db['host'],$db['uid'],$db['pwd']);
if($connection)
{
if(mysql_select_db($db['db']))
{
$sql = "SELECT id FROM user WHERE (username = '$username')
AND (password = '$encrypted') AND (active = 'true')";
$result = mysql_query($sql);
if($result && (@mysql_num_rows($result) > 0))
{
$row = mysql_fetch_row($result);
$_SESSION['authenticated'] = true;
$_SESSION['user_id'] = $row[0];
$_SESSION['username'] = $username;
}
else
{
$_SESSION['authenticated'] = false;
}
}
}
}
/* Umleitung */
header('Location: index.php');
?>
die beiden Punkte analog für das miniCMS
login.inc.php:
<?php
/* Session initialisieren */
session_start();
/* Überprüft, ob ein Login erfolgt ist */
function is_logged_in()
{
global $base;
/* User angemeldet? */
if($_SESSION['authenticated'] == true)
{
return true;
}
/* Login ausgeben */
else
{
$content = '<h4>Login</h4>';
$content .= '<form action="login.php" method="post">';
$content .= '<table border="0" cellpadding="2" cellspacing="0">';
$content .= '<tr>';
$content .= '<td>Benutzername:</td><td><input
type="text" name="username" size="32"
maxlength="64"></td>';
$content .= '</tr><tr>';
$content .= '<td>Passwort:</td><td><input type="password"
name="password" size="32"></td>';
$content .= '</tr><tr>';
$content .= '<td></td><td><input type="submit" value="Login"></td>';
$content .= '</tr>';
$content .= '</table>';
$content .= '</form>';
$template = get_file_as_string($base['adm_template']);
$template = str_replace($base['tag_start'].'title'.
$base['tag_end'],$base['adm_title'],$template);
$template = str_replace($base['tag_start'].'shortnav'.
$base['tag_end'],' ',$template);
$template = str_replace($base['tag_start'].'navigation'.
$base['tag_end'],' ',$template);
$template = str_replace($base['tag_start'].'content'.
$base['tag_end'],$content,$template);
$template = str_replace('$PHP_SELF',$PHP_SELF,$template);
echo stripslashes($template);
return false;
}
}
?>
login.php:
<?php
/* Session initialisieren */
session_start();
/* übergebene Variablen auslesen */
$username = $_POST['username'] ? $_POST['username'] : false;
$password = $_POST['password'] ? $_POST['password'] : false;
if($username && $password)
{
/* verschlüsseltes Passwort erzeugen */
$encrypted = md5($username,$password);
include('../inc/database.inc.php');
$connection = mysql_connect($db['host'],$db['uid'],$db['pwd']);
if($connection)
{
if(mysql_select_db($db['db']))
{
$sql = "SELECT id FROM user WHERE (username = '$username')
AND (password = '$encrypted') AND (active = 'true')";
$result = mysql_query($sql);
if($result && (@mysql_num_rows($result) > 0))
{
$row = mysql_fetch_row($result);
$_SESSION['authenticated'] = true;
$_SESSION['user_id'] = $row[0];
$_SESSION['username'] = $username;
}
else
{
$_SESSION['authenticated'] = false;
}
}
}
}
/* Umleitung */
header('Location: index.php');
?>
den Teil der beim CMS prüft, ob du eingeloggt bist
index.php (admin):
<?php
/* Konfigurationsdateien laden */
include('../inc/base.inc.php');
include('../inc/adminfunctions.inc.php');
include('../inc/login.inc.php');
/* Überprüfen ob Login erfolgt ist, ggf. Anmeldemöglichkeit bieten */
if(is_logged_in())
{
/* übergebene Variablen auslesen */
$cmd = $_GET['cmd'];
$id = $_GET['id'];
/* Template einlesen */
$template = get_file_as_string($base['adm_template']);
/* Inhalt laden */
switch(strtolower($cmd))
{
default:
case 'aktuell':
$base['adm_content'] = '<p>'.$base['adm_naview'].'
<i>Admin / Home / Aktuelles</i></p>';
$base['adm_content'] .= load_admin_aktuell();
break;
case 'aktuelledit':
$base['adm_content'] = '<p>'.$base['adm_naview'].'
<i>Admin / Home / Aktuelles bearbeiten</i></p>';
$base['adm_content'] .= load_admin_aktuelledit($id);
break;
case 'aktuelladd':
$base['adm_content'] = '<p>'.$base['adm_naview'].'
<i>Admin / Home / Aktuelles erstellen</i></p>';
$base['adm_content'] .= load_admin_aktuelladd($id);
break;
case 'aktuelldel':
$base['adm_content'] = '<p>'.$base['adm_naview'].'
<i>Admin / Home / Aktuelles löschen</i></p>';
$base['adm_content'] .= load_admin_aktuelldel($id);
break;
}
/* Platzhalter ersetzen */
$template = str_replace($base['tag_start'].'title'.$base['tag_end'],
$base['adm_title'],$template);
$template = str_replace($base['tag_start'].'navigation'.$base['tag_end'],
$base['adm_navigation'],$template);
$template = str_replace($base['tag_start'].'naview'.$base['tag_end'],
$base['adm_naview'],$template);
$template = str_replace($base['tag_start'].'content'.$base['tag_end'],
$base['adm_content'],$template);
$template = str_replace('$PHP_SELF',$PHP_SELF,$template);
/* Template ausgeben */
echo stripslashes($template);
}
?>
So. Das wars glaube ich.
Ich hoffe, ihr könnt was damit anfangen.
gruß,
toby
PS Habs nochmal editiert und auf nem 15" bei 800x600 getestet. Ich hoffe ihr könnt es jetzt lesen.
gruß, toby
HELP:(
please....:{
ich weiß nich weiter.....
:baby
Dein Code ist immer noch zu breit, besonders bei den Select-Abfragen und den $content .= Stellen.