Login System Probleme !!Achtung anfänger mit vielen Fragen!!

Thomas S

Grünschnabel
Hallo :D

bitte bitte steinigt mich nicht aber ich brauche Hilfe in einer Sprache wovon ich noch nichts verstehe :confused: Ich werde PHP jedenfalls nach holen steht bei mir auf der Liste ganz oben. Jedoch möchte ich so langsam mal weiter kommen mit meiner HP und mich erst mal in PHP rein zu arbeiten hält mich wieder Wochen hin. Daher beanspruche ich eure Hilfe und hoffe das Ihr Verständnis habt. Es geht um ein Login System von dieser Seite MyWebsolution. Dort ist alles bei was ich suche und das sogar noch zum Download. Nachdem ich es runter geladen hatte ging ich zu erst auf die index.pvp und da steht folgendes:

Code:
\n"; ?>
MyWebsolution - PHP Loginsysten
Vorwort

Dieses Loginsystem stellt lediglich eine Demo für das PHP Loginsystem Tutorial von MyWebsolution dar. Es gibt unter anderem eine Übersicht darüber, wie die unterschiedliche Skripte benannt werden und wie sie zusammenarbeiten. Ein produktiver Einsatz ist nicht zu empfehlen, da das Loginsystem

  1  Öffentlich zugänglich ist (Sicherheit)
  2  lediglich ein Beispiel darstellt
  3  die Funktionalitäten nicht 100% geprüft sind

Wer sich entgegen dieser Warnungen dennoch für einen produktiven Einsatz entscheidet, tut dies auf eigene Gefahr und kann MyWebsolution in keiner Weise dafür haftbar machen.

Benutzt das Beispiel also dazu, wozu es gemacht ist: Zum Lernen und Verstehen :)
Installation

Die Installation läuft in 2 Schritten ab:

   1 Konfigurieren der MySQL-Datenbankverbindungsdaten
   2 Ausführen der Datei setup.php

MySQL Datenbankkonfiguration

Zum Konfigurieren der MySQL Datenbank öffnet bitte die Datei mysql.php mit einem Texteditor eurer Wahl und tragt dort die Zugangsdaten zu eurer MySQL Datenbank ein. Falls ihr Probleme damit habt, schaut bitte meinen Tipp zum Herstellen einer MySQL Datenbankverbindung an.
Setup

Nachdem ihr eure Daten für die MySQL Verbindung eingetragen habt, klickt bitte auf diesem Link: Setup des PHP Loginsystems
Menu

Zu guter Letzt folgt nun eine Auflistung der Skripte inklusive einer kurzen Beschreibung:

Registrierung
    Registrierungsformular zum Registrieren neuer User ("registrierung.php)
Login
    Loginformular zum Einloggen (login.php)
Logout
    "Logoutbutton" (logout.php)
Userliste
    Auflistung aller registrierten User (userliste.php)
Mein Profil
    Das eigene Profil zum editieren ("myprofil.php)
Adminbereich
    Registrierungsformular zum Registrieren neuer User (admin/index.php)

Wie dort verlangt wurde habe ich zu erst eine Datenbank mit phpmyadmin angelegt und die Daten dazu in mysql.php eingefügt:

PHP:
<?php
    define ('MYSQL_HOST', 'localhost');
    define ('MYSQL_USER', 'root');
    define ('MYSQL_PASS', '********');
    define ('MYSQL_DATA', 'demotape');
    $connid = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die("Error: ".mysql_error());
    $sql = "CREATE DATABASE IF NOT EXISTS `".MYSQL_DATA."`
            DEFAULT CHARACTER SET latin1
            COLLATE latin1_general_ci
           ";
    if(!mysql_query($sql)){
                  echo "<p>MySQL Datenbank ".MYSQL_DATA." konnte nicht erzeugt werden.</p>";
                  echo "<h2>Query</h2>\n";
                  echo "<pre>".$sql."</pre>\n";
                  echo "<h2>Fehlermeldung</h2>";
                  echo "<p>".mysql_error()."</p>";
                  die();
    }
    mysql_select_db(MYSQL_DATA) OR die("Error: ".mysql_error());
?>

demotape ist mein alter Projektname und darum heißt auch noch die Datenbank so. Nachdem eigentlich alles richtig eingegeben wurde habe ich auf den Link namens setup.php geklickt. Und folgende Seite wurde mir so gezeigt:

Code:
Setup"; $sql = "DROP TABLE IF EXISTS USER"; @mysql_query($sql); $sql = 'CREATE TABLE `User` (' . ' `ID` INT AUTO_INCREMENT NOT NULL, ' . ' `Autologin` VARCHAR(32) NULL, ' . ' `IP` VARCHAR(15) NULL, ' . ' `SessionID` VARCHAR(32) NULL, ' . ' `Nickname` VARCHAR(30) NOT NULL, ' . ' `Passwort` VARCHAR(32) NOT NULL, ' . ' `Email` VARCHAR(70) NOT NULL, ' . ' `Show_Email` BOOL NULL, ' . ' `Homepage` VARCHAR(70) NOT NULL, ' . ' `Registrierungsdatum` DATE NULL, ' . ' `Wohnort` VARCHAR(70) NOT NULL, ' . ' `ICQ` VARCHAR(20) NOT NULL, ' . ' `AIM` VARCHAR(70) NOT NULL, ' . ' `YIM` VARCHAR(70) NOT NULL, ' . ' `MSN` VARCHAR(70) NOT NULL, ' . ' `Avatar` VARCHAR(100) NOT NULL, ' . ' `Letzter_Login` INT NOT NULL DEFAULT \'0\', ' . ' `Letzte_Aktion` INT NOT NULL DEFAULT \'0\',' . ' PRIMARY KEY (`ID`),' . ' UNIQUE (`Nickname`, `Email`)' . ' )'; if(mysql_query($sql)) echo "

Tabelle 'User' erfolgreich erstellt
"; else { echo "

Tabelle 'User' konnte nicht erstellt werden.
"; echo "
Query
\n"; echo "

".$sql."

\n"; echo "
Fehlermeldung
"; echo "

".mysql_error()."
"; die(); } $sql = "DROP TABLE IF EXISTS User_Rechte"; @mysql_query($sql); $sql = 'CREATE TABLE `User_Rechte` (' . ' `ID` INT AUTO_INCREMENT NOT NULL, ' . ' `UserID` INT NOT NULL, ' . ' `Recht` VARCHAR(100) NOT NULL, ' . ' PRIMARY KEY (`ID`)' . ' )'; if(mysql_query($sql)) echo "

Tabelle 'User_Rechte' erfolgreich erstellt
"; else { echo "

Tabelle 'User_Rechte' konnte nicht erstellt werden.
"; echo "
Query
\n"; echo "

".$sql."

\n"; echo "
Fehlermeldung
"; echo "

".mysql_error()."
"; die(); } $sql = "INSERT INTO User (Nickname, Email, Show_Email, Passwort, Registrierungsdatum ) VALUES ('admin', 'webmaster@website.de', '1', '".md5('admin')."', CURDATE() ) "; if(mysql_query($sql)) echo "

User 'admin' mit Passwort 'admin' erfolgreich erstellt
"; else { echo "

User 'admin' konnte nicht erstellt werden.
"; echo "
Query
\n"; echo "

".$sql."

\n"; echo "
Fehlermeldung
"; echo "

".mysql_error()."
"; die(); } $sql = "SELECT LAST_INSERT_ID() "; $result = mysql_query($sql); $ID = mysql_result($result,0); $sql = "INSERT INTO User_Rechte (UserID, Recht ) VALUES ('".$ID."', 'Adminbereich' ) "; if(mysql_query($sql)) echo "

Recht 'Adminbereich' erfolgreich zu User 'admin' hinzugefügt
"; else { echo "

Recht 'Adminbereich' konnte nicht zu User 'admin' zugeordnet werden
"; echo "
Query
\n"; echo "

".$sql."

\n"; echo "
Fehlermeldung
"; echo "

".mysql_error()."
"; die(); } $sql = "INSERT INTO User_Rechte (UserID, Recht ) VALUES ('".$ID."', 'User administrieren' ) "; if(mysql_query($sql)) echo "

Recht 'User administrieren' erfolgreich zu User 'admin' hinzugefügt
"; else { echo "

Recht 'User administrieren' konnte nicht zu User 'admin' zugeordnet werden
"; echo "
Query
\n"; echo "

".$sql."

\n"; echo "
Fehlermeldung
"; echo "

".mysql_error()."
"; die(); } if(!file_exists("avatare")){ if(mkdir("avatare")) echo "

Ordner 'avatare' erfolgreich erstellt
"; else { echo "

Ordner 'avatare' konnte nicht erstellt werden
"; die(); } } echo "
Setup erfolgreich beendet!
"; echo "

Zurück zur Startseite
"; ?>

Und hier liegt mein Problem. Hab ich es jetzt richtig gemacht oder war es falsch? Es müsste doch mit diesem Script eine Tabelle in der Datenbank angelegt worden sein oder? Aber eine Tabelle unter der Datenbank demotape fand ich nicht. Ich benutze XAMPP und habe darüber Apache, MySQL und Filezilla an. Alle drei sind Running.
Jedoch habe ich bei Filezilla nach 1-2 Minuten immer folgende Meldung:

Code:
Status:	Anzeigen des Verzeichnisinhalts abgeschlossen
Antwort:	421 Connection timed out.
Fehler:	Verbindung vom Server geschlossen

Bin ich bei Filezilla überhaupt richtig oder ist das ein Falscher Anlaufpunkt für mein Problem?

Die Webseite MyWebsolution bietet zwar auch ein Tutorial an aber daraus werde ich ohne Vorkenntnisse so gar nicht schlau -.- . Jedoch habe ich aus dem Tutorial den SQL Code genommen der eine Tabelle anlegt und es hat geklappt. Ich hatte unter demotape jetzt die Tabelle "user". Nachdem die Tabelle angelegt wurde bin ich wieder auf meinen Download gegangen und habe die Datei registrierung.php geöffnet und die wird mir so angezeigt:

PHP:
\n".$sql."\n".mysql_error()); while($row = mysql_fetch_assoc($result)){ $nicknames[] = $row['Nickname']; $emails[] = $row['Email']; } // Prüft, ob ein Nickname eingegeben wurde if(trim($_POST['Nickname'])=='') $errors[]= "Bitte geben Sie einen Nickname ein."; // Prüft, ob der Nickname mindestens 3 Zeichen enthält elseif(strlen(trim($_POST['Nickname'])) < 3) $errors[]= "Ihr Name muss mindestens 3 Zeichen lang sein."; // Prüft, ob der Nickname nur gültige Zeichen enthält elseif(!preg_match('/^\w+$/', trim($_POST['Nickname']))) $errors[]= "Benutzen Sie bitte nur alphanumerische Zeichen (Zahlen, Buchstaben und den Unterstrich)."; // Prüft, ob der Nickname bereits vergeben ist elseif(in_array(trim($_POST['Nickname']), $nicknames)) $errors[]= "Dieser Nickname ist bereits vergeben."; // Prüft, ob eine Email-Adresse eingegeben wurde if(trim($_POST['Email'])=='') $errors[]= "Bitte geben Sie Ihre Email-Adresse ein."; // Prüft, ob die Email-Adresse gültig ist elseif(!preg_match('§^[\w\.-]+@[\w\.-]+\.[\w]{2,4}$§', trim($_POST['Email']))) $errors[]= "Ihre Email Adresse hat eine falsche Syntax."; // Prüft, ob die Email-Adresse bereits vergeben ist elseif(in_array(trim($_POST['Email']), $emails)) $errors[]= "Diese Email-Adresse ist bereits vergeben."; // Prüft, ob ein Passwort eingegeben wurde if(trim($_POST['Passwort'])=='') $errors[]= "Bitte geben Sie Ihr Passwort ein."; // Prüft, ob das Passwort mindestens 6 Zeichen enthält elseif (strlen(trim($_POST['Passwort'])) < 6) $errors[]= "Ihr Passwort muss mindestens 6 Zeichen lang sein."; // Prüft, ob eine Passwortwiederholung eingegeben wurde if(trim($_POST['Passwortwiederholung'])=='') $errors[]= "Bitte wiederholen Sie Ihr Passwort."; // Prüft, ob das Passwort und die Passwortwiederholung übereinstimmen elseif (trim($_POST['Passwort']) != trim($_POST['Passwortwiederholung'])) $errors[]= "Ihre Passwortwiederholung war nicht korrekt."; } // Prüft, ob Fehler aufgetreten sind if(count($errors)){ echo "Ihr Account konnte nicht erstellt werden.
\n". "
\n"; foreach($errors as $error) echo $error."
\n"; echo "
\n". "Zurück zum Registrierungsformular\n"; } else{ // Daten in die Datenbanktabelle einfügen $sql = "INSERT INTO User (Nickname, Email, Passwort, Show_Email, Registrierungsdatum, Wohnort, Homepage, ICQ, AIM, YIM, MSN ) VALUES ('".mysql_real_escape_string(trim($_POST['Nickname']))."', '".mysql_real_escape_string(trim($_POST['Email']))."', '".md5(trim($_POST['Passwort']))."', '".mysql_real_escape_string(trim($_POST['Show_Email']))."', CURDATE(), '".mysql_real_escape_string(trim($_POST['Wohnort']))."', '".mysql_real_escape_string(trim($_POST['Homepage']))."', '".mysql_real_escape_string(trim($_POST['ICQ']))."', '".mysql_real_escape_string(trim($_POST['AIM']))."', '".mysql_real_escape_string(trim($_POST['YIM']))."', '".mysql_real_escape_string(trim($_POST['MSN']))."' ) "; mysql_query($sql) OR die("

\n".$sql."

\n".mysql_error()); echo "Vielen Dank!\n
". "Ihr Accout wurde erfolgreich erstellt.\n
". "Sie können sich nun mit Ihren Daten einloggen.\n
". "Zum Login\n"; } } else { echo "
\n"; echo "
Obligatorische Angaben
\n"; echo "\n". "Nickname :\n". "\n"; echo "\n"; echo "
\n"; echo "\n". "Passwort :\n". "\n"; echo "\n"; echo "
\n"; echo "\n". "Passwort wiederholen:\n". "\n"; echo "\n"; echo "
\n"; echo "\n". "Email-Adresse:\n". "\n"; echo "\n"; echo "
\n"; echo "\n". "Email-Adresse anzeigen:\n". "\n"; echo " ja\n"; echo " nein\n"; echo "
Freiwillige Angaben
\n"; echo "\n". "Homepage :\n". "\n"; echo "\n"; echo "
\n"; echo "\n". "Wohnort :\n". "\n"; echo "\n"; echo "
\n"; echo "\n". "ICQ :\n". "\n"; echo "\n"; echo "
\n"; echo "\n". "AIM :\n". "\n"; echo "\n"; echo "
\n"; echo "\n". "YIM :\n". "\n"; echo "\n"; echo "
\n"; echo "\n". "MSN :\n". "\n"; echo "\n"; echo "
\n"; echo "\n"; echo "\n"; echo "
\n"; } ?>

Was mach ich falsch? Wenn ich das öffne dann schaut es alles total durcheinander geworfen aus. Als wenn was Falsch geschrieben sei. Und selbst wenn das Problem behoben ist wie geht es weiter muss ich andere Dateien ebenfalls bearbeiten und anpassen?

Ich danke schon mal in voraus das ihr mir helft. Sonst bin ich echt aufgeschmissen.

mit schönen Grüßen

Thomas S
 
Zuletzt bearbeitet:
Hi und herzlich Willkommen hier im Forum,

so wie es aussieht kann dein Server kein PHP. Falls du dir nicht sicher bist, bei welchem Anbieter bist du und welches Paket hast du? Dann kann ich schnell nachschauen :)

Die 421-er Meldung beim Filezilla ist ganz normal. Der Server trennt die Verbindung zum Filezilla automatisch nach ein paar Minuten wenn keine Daten fließen. Dies läuft über einen Timeout und ist kein Problem.

Grüße,
BK
 
Also was dem fehlerhaften Zahlencode angeht das Problem habe ich gelöst. Ich habe die php Seiten immer mit doppelklick geöffnet und das war falsch. Ich habe sie jetzt in den Ordner htdocs geworfen und über http://localhost/ ordnungsgemäß auf bekommen. Jetzt sind alle Fragen geklärt :D. Ich freue mich wie ein Gummibärchen mal weiter zu kommen ^^. Danke erst einmal falls noch was anliegt schreib ich mal wieder was.

Liebe Grüße

Thomas S
 

Neue Beiträge

Zurück