|  | 
 
  |   |  
  | 
    
     | 
       
        | User gesamt | : | 2568123 |  
        | User online | : | 1 |  | KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de! |  |  |  
  | 
    
     |  |  
     | 
MyWebsolution.de Foren » Tutorials » Loginsystem Tutorial 
 
 
  | Seite: | 1
2
 > | Posts pro Seite: 5
10 
20 |  
 
  | Autor | Thread |  
  | 18.11.2008 09:20 Uhr | Loginsystem Tutorial |  
  | 
    
     | Che |  
     | User |  
     |  |  
     | registriert | 18.11.2008 |  
     | wohnt in |  |  
     | Beiträge | 1 |  | Alles funktioniert Tip top ausser User bearbeiten und User administrieren funktioniert nicht. Wenn ich die Rechte ändern will kommt:
 Zitat:
 Notice: Undefined index: Rechte in /xxxxxxx/htdocs/bla/admin/user/index.php on line 14
 Warning: in_array() [function.in-array]: Wrong datatype for second argument in /xxxxxxx/htdocs/bla/admin/user/index.php on line 14
 
 Aussgabe
 Sie sind nicht berechtigt, diese Seite zu betreten.
 Wenden sie sich bitte an den Administrator, falls es sich hier um ein Missverständnis handelt
 
 Ich bin aber Admin?!
 Habe ectra nochmals das script mit dem admin Acc anlegen, durchlaufen lassen
   |  
  |   |  |  
  | 23.11.2008 17:19 Uhr |  |  
  | 
    
     | Flitze |  
     | Administrator |  
     |   |  
     | registriert | 17.10.2006 |  
     | wohnt in | Eschwege |  
     | Beiträge | 332 |  | Hey, tritt der Fehler bei allen Usern auf?
 
 
 
   |  
  |     |  |  
  | 13.12.2009 21:57 Uhr |  |  
  | 
    
     | Pebbles |  
     | User |  
     |  |  
     | registriert | 13.12.2009 |  
     | wohnt in |  |  
     | Beiträge | 5 |  | Hi 
 ich hab das Tutorial jetzt durchgelesen und die Dateien angelegt. erstmal muss ich sagen: SPITZE!!! so ein übersichtliches Tutorial hab ich schon länger gesucht. Ich versuch es jetzt zum Laufen zu bringe aber ich hab noch ein paar Probleme. Anfangen tut es mit dem Registrieren. wenn ich den Sourcecode so verwende wie im Tut und mich dann registrieren möchte bekomme ich folgende Meldung:
 
 Zitat:
 INSERT INTOUser
 (Nickname,
 Email,
 Passwort,
 Show_Email,
 Registrierungsdatum,
 Wohnort,
 Homepage,
 ICQ,
 AIM,
 YIM,
 MSN
 )
 VALUES
 ('test',
 'grka@gmx.de',
 '60e964f80d668eead87bcef9dc8f79a7',
 '0',
 CURDATE(),
 '',
 '',
 '',
 '',
 '',
 ''
 )
 Field 'SessionID' doesn't have a default value Ihr Account wurde nicht erstellt
 
 eine SessionID wird tatsächlich nicht in die DB geschrieben... fehlt das noch oder liegt der Fehler wo anders?
 |  
  |   |  |  
  | 13.12.2009 22:26 Uhr |  |  
  | 
    
     | Pebbles |  
     | User |  
     |  |  
     | registriert | 13.12.2009 |  
     | wohnt in |  |  
     | Beiträge | 5 |  | und wenn ich mich als admin einlogge bekomme ich die Meldung: "Sie haben keine Berechtigung, diese Seite zu betreten!" für den Adminbereich
 
 Wenn ich als User eingeloggt bin und das Script zum Ändern des Profils aufrufe bekomme ich noch die Fehlermeldung, daß ich nicht eingeloggt sei. Woran kann das liegen?
 
 Den aufruf session_start musste ich aus einige Dateien rausnehmen weil sonst die Meldung kam, daß keine Session gestartet werden kann da schon ein Header gesendet wurde... war das richtig?
 |  
  |   |  |  
  | 13.12.2009 22:40 Uhr |  |  
  | 
    
     | Pebbles |  
     | User |  
     |  |  
     | registriert | 13.12.2009 |  
     | wohnt in |  |  
     | Beiträge | 5 |  | Ich hab mal alle Source dateien zusammengesucht. 
 configuration.php
 PHP:
 
 <?php
 $MYSQL_PASS = "xxxxxxxxx";
 $MYSQL_USER = "root";
 $MYSQL_HOST = "localhost";
 $MYSQL_DATA = "test";
 
 $connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
 mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
 ?>
 
 
 
 
 Im Adminbereich
 
 index.php // angeblich keine Rechte
 PHP:
 
 
 <html>
 
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
 <title>xxxxx</title>
 </head>
 
 <body>
 
 <?php
 error_reporting(E_ALL);
 
 include("../configuration.php");
 
 
 // Pr?ob der User den Adminbereich betreten darf
 if(!isset($_SESSION['Rechte']) OR !in_array('Adminbereich', $_SESSION['Rechte']))
 die("Sie haben keine Berechtigung, diese Seite zu betreten!\n");
 
 // Array f? Bereiche anlegen
 $page = array();
 $page['user'] = "user/index.php";
 
 // Pr?ob die als $_GET['page'] ?bene Seite existiert
 if(isset($_GET['page']) AND isset($page[$_GET['page']]))
 include $page[$_GET['page']];
 // Ansonsten wird das Menu angezeigt
 else
 echo "<a href=\"index.php?page=user\">User administrieren</a>\n";
 ?>
 
 </body>
 </html>
 
 
 
 
 login.php // funktioniert  jetzt
 PHP:
 
<?php
 session_start();
 ?>
 
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html">
 <title>xxxxx</title>
 </head>
 
 <body>
 
 <?php
 
 
 include("../configuration.php");
 
 error_reporting(E_ALL);
 
 
 // Session starten
 
 // liefert die Rechte eines Users ..
 function getRights()
 {
 $rights = array();
 // .. indem die Rechte eines User aus der Datenbank ausgew?t werden..
 if(isset($_SESSION['UserID'])){
 $sql = "SELECT
 Recht
 FROM
 User_Rechte
 WHERE
 UserID = '".$_SESSION['UserID']."'
 ";
 $result = mysql_query($sql) OR die ("<pre>\n".$sql."</pre>\n".mysql_error());
 $rights = array();
 // .. und als array zur?eben werden
 while($row = mysql_fetch_assoc($result))
 $rights[] = $row['Recht'];
 }
 return $rights;
 }
 
 // Loggt einen User ein, ..
 function doLogin($ID, $Autologin=false)
 {
 // .. indem die aktuelle Session ID in der Datenbank gespeichert wird
 $sql = "UPDATE
 User
 SET
 SessionID = '".mysql_real_escape_string(session_id())."',
 Autologin = NULL,
 IP = '".$_SERVER['REMOTE_ADDR']."',
 Letzte_Aktion = '".mysql_real_escape_string(time())."',
 Letzter_Login = '".mysql_real_escape_string(time())."'
 WHERE
 ID = '".$ID."'
 ";
 mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
 // Wenn 'eingeloggt bleiben' aktiviert wurde
 if($Autologin){
 // Zufallscode erzeugen
 $part_one = substr(time()-rand(100, 100000),5,10);
 $part_two = substr(time()-rand(100, 100000),-5);
 $Login_ID = md5($part_one.$part_two);
 // Code im Cookie speichern, 10 Jahre d?gen?            setcookie("Autologin", $Login_ID, time()+60*60*24*365*10);
 $sql = "UPDATE
 User
 SET
 Autologin = '".$Login_ID."'
 WHERE
 ID = '".$ID."'
 ";
 mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
 }
 
 // Daten des Users in der Session speichern
 $sql = "SELECT
 Nickname
 FROM
 User
 WHERE
 ID = '".$ID."'
 ";
 $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
 
 $row = mysql_fetch_assoc($result);
 $_SESSION['UserID'] = $ID;
 $_SESSION['Nickname'] = $row['Nickname'];
 // Rechte in der Session speichern
 $_SESSION['Rechte'] = getRights();
 }
 
 
 if(isset($_POST['submit']) AND $_POST['submit']=='Einloggen'){
 // Falls der Nickname und das Passwort ?nstimmen..
 $sql = "SELECT
 ID
 FROM
 User
 WHERE
 Nickname = '".mysql_real_escape_string(trim($_POST['Nickname']))."' AND
 Passwort = '".md5(trim($_POST['Passwort']))."'
 ";
 $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
 // wird die ID des Users geholt und der User damit eingeloggt
 $row = mysql_fetch_assoc($result);
 // Pr?b wirklich genau ein Datensatz gefunden wurde
 if (mysql_num_rows($result)==1){
 doLogin($row['ID'], isset($_POST['Autologin']));
 echo "<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n";
 echo "Sie wurden erfolgreich eingeloggt.<br>\n".
 "Zur <a href=\"index.php\">Startseite</a>\n";
 }
 else{
 echo "Sie konnten nicht eingeloggt werden.<br>\n".
 "Nickname oder Passwort fehlerhaft.<br>\n".
 "Zur?m <a href=\"".$_SERVER['PHP_SELF']."\">Login-Formular</a>\n";
 }
 }
 else{
 echo "<form ".
 " name=\"Login\" ".
 " action=\"".$_SERVER['PHP_SELF']."\" ".
 " method=\"post\" ".
 " accept-charset=\"ISO-8859-1\">\n";
 echo "Nickname :\n";
 echo "<input type=\"text\" name=\"Nickname\" maxlength=\"32\">\n";
 echo "<br>\n";
 echo "Passwort :\n";
 echo "<input type=\"password\" name=\"Passwort\">\n";
 echo "<br>\n";
 echo "eingeloggt bleiben :\n";
 echo "<input type=\"checkbox\" name=\"Autologin\" value=\"1\">\n";
 echo "<br>\n";
 echo "<input type=\"submit\" name=\"submit\" value=\"Einloggen\">\n";
 echo "<br>\n";
 echo "<a href=\"passwort.php\">Passwort vergessen</a> oder noch nicht <a href=\"registrierung.php\">registriert</a>?\n";
 echo "</form>\n";
 }
 ?>
 
 </body>
 </html>
 
 
 EditProfil.php // angeblich nicht eingeloggt
 [php]
 <html>
 
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
 <title>xxxxx</title>
 </head>
 
 <body>
 
 <?php
 error_reporting(E_ALL);
 
 include("../configuration.php"
  ; //		include("../function.php"
  ; 
 
 if(!isset($_SESSION['UserID'])) {
 echo "Sie sind nicht eingeloggt.<br>\n".
 "Bitte <a href=\"login.php\">loggen</a> Sie sich zuerst ein.\n";
 }
 else{
 // Avatar hochladen
 if(isset($_POST['submit']) AND $_POST['submit'] == "Avatar hochladen"
  { $errors = array();
 // Uploadfehler prüfen
 switch ($_FILES['pic']['error']){
 case 1: $errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist.";
 break;
 case 2: $errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist.";
 break;
 case 3: $errors[] = "Die Datei wurde nur teilweise hochgeladen.";
 break;
 case 4: $errors[] = "Es wurde keine Datei ausgewählt.";
 break;
 default : break;
 }
 // Prüfen, ob eine Grafikdatei vorliegt
 if(!@getimagesize($_FILES['pic']['tmp_name']))
 $errors[] = "Ihre Datei ist keine gültige Grafikdatei.";
 else {
 // Mime-Typ prüfen
 $erlaubte_typen = array('image/pjpeg',
 'image/jpeg',
 'image/gif',
 'image/png'
 );
 if(!in_array($_FILES['pic']['type'], $erlaubte_typen))
 $errors[] = "Der Mime-Typ ihrer Datei ist verboten.";
 
 // Endung prüfen
 $erlaubte_endungen = array('jpeg',
 'jpg',
 'gif',
 'png'
 );
 // Endung ermitteln
 $endung = strtolower(substr($_FILES['pic']['name'], strrpos($_FILES['pic']['name'], '.'
  +1)); if(!in_array($endung, $erlaubte_endungen))
 $errors[] = "Die Dateiendung muss .jpeg .jpg .gif oder .png lauten ";
 
 // Ausmaße prüfen
 $size = getimagesize($_FILES['pic']['tmp_name']);
 if ($size[0] > 150 OR $size[1] > 150)
 $errors[] = "Die Datei darf maximal 150 Pixel breit und 150 Pixel hoch sein.";
 }
 // Dateigröße prüfen
 if($_FILES['pic']['size'] > 0.2*1024*1024)
 $errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist.";
 
 if(count($errors)){
 echo "Ihr Avatar konnte nicht gespeichert werden.<br>\n".
 "<br>\n";
 foreach($errors as $error)
 echo $error."<br>\n";
 echo "<br>\n".
 "Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\&qu ot;>Profil</a>\n";
 }
 else {
 // Bild auf dem Server speichern
 $uploaddir = 'avatare/';
 // neuen Bildname erstellen
 $Name = "IMG_".substr(microtime(),-
  .".".$endun g; if (move_uploaded_file($_FILES['pic']['tmp_name'], $uploaddir.$Name)) {
 $sql = "UPDATE
 User
 SET
 Avatar = '".mysql_real_escape_string(trim($Nam
 
 Dieser Beitrag wurde am 08.02.2010 um 23:55:15 Uhr von Pebbles zum 3. Mal editiert.
 |  
  |   |  |  
 
  | Seite: | 1
2
 > |   |  |  
     | 
       
        | Powered by | Pascal Landau | © 2006 | MyWebsolution.de |  
        | Designed by | Pascal Landau | © 2006 | MyWebsolution.de |  
 |  
     |  |  |  |  |