Paules-PC-Forum.de Anzeige:

Microsoft Windows Intune: PC-Verwaltung und -Sicherheit in der Cloud: Updateverwaltung, Anti-Virus und vieles mehr!


Zurück   Paules-PC-Forum.de > Programmierung > PHP/MySQL

PHP/MySQL Alles rund um die Programmiersprache PHP sowie MySQL.

EM-Tippspiel

Paule bei Facebook


Paule bei Twitter


Letzte Forenthemen
Gehe zum ersten neuen Beitrag PPF - Spiel "Wörter weiter...
Aufrufe: 26887, Antworten: 4218
Gehe zum ersten neuen Beitrag Algorithmen Teil IV...
Aufrufe: 3321, Antworten: 122
Gehe zum ersten neuen Beitrag Von Live CD Windowspfad...
Aufrufe: 299, Antworten: 19
Gehe zum ersten neuen Beitrag Bundesliga-Tippspiel Saision...
Aufrufe: 7635, Antworten: 185
Gehe zum ersten neuen Beitrag Captur 2.2 (Snow Leo)
Aufrufe: 19, Antworten: 0
Gehe zum ersten neuen Beitrag Captur 2.3 (Lion)
Aufrufe: 20, Antworten: 0
Gehe zum ersten neuen Beitrag Acer Aspire 8745ZG fährt...
Aufrufe: 54, Antworten: 6
Gehe zum ersten neuen Beitrag Rechner fährt herunter,...
Aufrufe: 144, Antworten: 9
Gehe zum ersten neuen Beitrag avs4you_com Lizenz oder Abo?
Aufrufe: 69, Antworten: 4
Gehe zum ersten neuen Beitrag PPF - Shoppingwahn
Aufrufe: 50939, Antworten: 1395
Zeige:





Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26.05.2010, 16:52   #1 (Direktlink)
Forenmaskottchen
 
Registriert seit: 30.03.2007
Ort: Weilersiwst
Alter: 19
Beiträge: 837
Standard Problem mit Login Script

Hi,

Ich habe ein kleines Problem mit meinem Login Script auf meiner Homepage.

PHP-Einfach.de - Tutorial - Loginscript mit Sessions und Dateien

Ich habe dieses benutzt.

Jetzt habe ich die "user.txt" in ein verzeichniss vor dem "html" verzeichniss verschoben damit die Datei nicht vom Netz erreichbar ist,und ich damit mehr Sicherheit habe.

Das hat auch alles soweit funktioniert,aber wenn ich jetzt einen Neuen Benutzer regestrieren möchte schreibt er nicht mehr in die "User.txt".. hinein woran kann das Liegen ?

Ich habe den absoluten Pfad vom Server genommen also:

/var/www/XXX/files/user.txt
/var/www/XXX/html/index.php etc...


Dies ist der Script zum registrieren Neuer Benutzer:


PHP-Code:
<?php
$username 
$_POST["username"];
$password $_POST["passwort"];
$password2 $_POST["passwort2"];



if (
$password == $password2)
   {
   
$user_vorhanden = array();
   
$passwort md5($password);


   
$userdatei fopen ("/var/www/XXX/files/user.txt","r");
   while (!
feof($userdatei))
      {
      
$zeile fgets($userdatei,500);
      
$userdata explode("|"$zeile);
      
array_push ($user_vorhanden,$userdata[0]);
      }
   
fclose($userdatei);



   if (
in_array($username,$user_vorhanden))
      {
      echo 
"Username schon vorhanden <br> <a href=\"Registrieren.html\">zurück</a>";
      }

   else
      {
      
$userdatei fopen ("user.txt","a");
      
fwrite($userdatei$username);
      
fwrite($userdatei"|");
      
fwrite($userdatei$passwort);
      
fwrite($userdatei"\n");
      
fclose($userdatei);
      echo 
"$username, deine Anmeldung war erfolgreich<br><a href=\"index.html\">zum Login</a>";
      }
   }

else
  {
  echo 
"Die Passwörter sind nicht identisch<br> <a href=\"Registrieren.html\">zurück</a> ";
  }

?>
Ich hoffe ihr könnt mir helfen...

Mfg

Luca



Edit:

Ich sehe grade egal was ich mache der "Zugriff" wird immer verweigert auch wenn die "User.txt" mit im Hauptordner liegt.
__________________


Geändert von Peter (26.05.2010 um 17:25 Uhr)
Peter ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 26.05.2010, 21:04   #2 (Direktlink)
Super-Moderator
 
Benutzerbild von Desert_Igel
 
Registriert seit: 22.05.2005
Ort: c:\DE\NDS\SHG\Rinteln
Alter: 21
Beiträge: 5.808
Standard

Gib der Datei mal CHMOD 777.
__________________
Hauptrechner: Intel Q6600 | Gigabyte P35-DQ6 | ATi Radeon 2900XT | 4 GB OCZ RAM | Corsair HX520W | 31 TB Festplattenkapazität | 120 GB OCZ Vertex II SSD | Wasserkühlung

LAN-Rechner: Intel Xeon UP W3520 | nVidia Geforce 8800 GTS | 4 GB TeamGroup RAM | LC Power LC6550 | 640 GB Platte

HTPC: AMD Athlon II X2 250 | Foxconn A88GM Deluxe | 4 GB TeamGroup RAM | 3 TB Hitachi Platte
Desert_Igel ist offline   Mit Zitat antworten
Alt 27.05.2010, 16:34   #3 (Direktlink)
Forenmaskottchen
 
Registriert seit: 30.03.2007
Ort: Weilersiwst
Alter: 19
Beiträge: 837
Standard

Mist geht leider auch nicht:=( wäre es sehr kompliziert wenn man die Daten in eine MySql Datenbank schreiben würde ?

Mfg
Luca
__________________

Peter ist offline   Mit Zitat antworten
Alt 27.05.2010, 16:48   #4 (Direktlink)
Super-Moderator
 
Benutzerbild von Desert_Igel
 
Registriert seit: 22.05.2005
Ort: c:\DE\NDS\SHG\Rinteln
Alter: 21
Beiträge: 5.808
Standard

Nein.
  • Neue Datenbank erstellen
  • Tabelle mit Spalten erstellen
  • Datenbankverbindung mit PHP herstellen
Gibt für dein Vorhaben auch eine menge Tutorials. Da du einen Loginbereich erstellen möchtest, informiere dich auch über Sessions.

Wenn du PHP Anfänger bist, kann ich dir diese Seite empfehlen:
Quakenet/#php Tutorial - de - Einleitung
__________________
Hauptrechner: Intel Q6600 | Gigabyte P35-DQ6 | ATi Radeon 2900XT | 4 GB OCZ RAM | Corsair HX520W | 31 TB Festplattenkapazität | 120 GB OCZ Vertex II SSD | Wasserkühlung

LAN-Rechner: Intel Xeon UP W3520 | nVidia Geforce 8800 GTS | 4 GB TeamGroup RAM | LC Power LC6550 | 640 GB Platte

HTPC: AMD Athlon II X2 250 | Foxconn A88GM Deluxe | 4 GB TeamGroup RAM | 3 TB Hitachi Platte
Desert_Igel ist offline   Mit Zitat antworten
Alt 27.05.2010, 16:56   #5 (Direktlink)
Forenmaskottchen
 
Registriert seit: 30.03.2007
Ort: Weilersiwst
Alter: 19
Beiträge: 837
Standard

Hey,
danke schonmal für deine Hilfe,dann werd ich mich wohl mal reinlesen :=)
Muss man sich wieder Ausloggen können ? weil das wäre ein bischen schwierig bei meinem Vorhaben :=)

Mfg
Luca
__________________

Peter ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 27.05.2010, 18:05   #6 (Direktlink)
Super-Moderator
 
Benutzerbild von Desert_Igel
 
Registriert seit: 22.05.2005
Ort: c:\DE\NDS\SHG\Rinteln
Alter: 21
Beiträge: 5.808
Standard

Verstehe die Frage nicht.
Du kannst bei einer Session ein Cookie setzen und die Laufzeit selber bestimmen. Wenn man das nächste mal die Webseite besucht, ist man weiterhin eingeloggt. Erst wenn das Cookie gelöscht wird bzw abgelaufen ist, muss man sich neu einloggen.

Ich würde auf jeden Fall eine Funktion zum Ausloggen auf der Seite mit einbinden, evtl. greift jemand aus einem Internet-Café auf deine Homepage zu, wenn dann ein Cookie gesetzt wurde, kann jemand anderes den Account verwenden. Es ist daher sinnvoll sich auszuloggen, bevor man die Webseite verlässt.

Wenn du Session ohne Cookie verwendest, bleibt man nicht automatisch eingeloggt. Eine Sitzung (Session) dauert je nach Konfiguration etwa 30 Minuten, siehe:
Quakenet/#php Tutorial - de - Sessions
__________________
Hauptrechner: Intel Q6600 | Gigabyte P35-DQ6 | ATi Radeon 2900XT | 4 GB OCZ RAM | Corsair HX520W | 31 TB Festplattenkapazität | 120 GB OCZ Vertex II SSD | Wasserkühlung

LAN-Rechner: Intel Xeon UP W3520 | nVidia Geforce 8800 GTS | 4 GB TeamGroup RAM | LC Power LC6550 | 640 GB Platte

HTPC: AMD Athlon II X2 250 | Foxconn A88GM Deluxe | 4 GB TeamGroup RAM | 3 TB Hitachi Platte
Desert_Igel ist offline   Mit Zitat antworten
Alt 27.05.2010, 18:18   #7 (Direktlink)
Forenmaskottchen
 
Registriert seit: 30.03.2007
Ort: Weilersiwst
Alter: 19
Beiträge: 837
Standard

Okay, Dnake dir.

Ich soll eine Tabelle in meiner Datenbank anlegen die so Aussehen soll:

id, int, 8, unsigned, not null, , auto_increment, primary, ,
username, varchar, 150, not null, , , , ,
passwort, varchar, 32, not null, , , , ,



Wie macht man das ^^

bei mir kommt das raus xD
Code:
SQL-Befehl:     
              CREATE  TABLE  `****`.`login` ( `username` INT( 8  )  UNSIGNED NOT  NULL  AUTO_INCREMENT ,
 `passwort` INT( 8  )  UNSIGNED NOT  NULL  AUTO_INCREMENT ,
 PRIMARY  KEY (  `username` ,  `passwort`  ) 
) ENGINE  =  MYISAM ;

     
      MySQL meldet:  
  #1075 - Falsche Tabellendefinition. Es darf nur eine  AUTO_INCREMENT-Spalte geben, und diese muss als Schlüssel definiert  werden
__________________

Peter ist offline   Mit Zitat antworten
Alt 27.05.2010, 18:27   #8 (Direktlink)
Super-Moderator
 
Benutzerbild von Desert_Igel
 
Registriert seit: 22.05.2005
Ort: c:\DE\NDS\SHG\Rinteln
Alter: 21
Beiträge: 5.808
Standard

Code:
CREATE TABLE `users` (
  `id` int(8) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(150) NOT NULL,
  `password` varchar(32) NOT NULL,
  PRIMARY KEY (`id`)
);
ist ungetestet.
__________________
Hauptrechner: Intel Q6600 | Gigabyte P35-DQ6 | ATi Radeon 2900XT | 4 GB OCZ RAM | Corsair HX520W | 31 TB Festplattenkapazität | 120 GB OCZ Vertex II SSD | Wasserkühlung

LAN-Rechner: Intel Xeon UP W3520 | nVidia Geforce 8800 GTS | 4 GB TeamGroup RAM | LC Power LC6550 | 640 GB Platte

HTPC: AMD Athlon II X2 250 | Foxconn A88GM Deluxe | 4 GB TeamGroup RAM | 3 TB Hitachi Platte
Desert_Igel ist offline   Mit Zitat antworten
Alt 27.05.2010, 18:40   #9 (Direktlink)
Forenmaskottchen
 
Registriert seit: 30.03.2007
Ort: Weilersiwst
Alter: 19
Beiträge: 837
Standard

Thx,Tabelle sollte stehen, nur jetzt hab ich wieder mal ein problem :=(

PHP-Code:
Warning:  mysql_num_rows(): supplied argument is not a valid  MySQL result resource in /var/www/XXX/html/XXX/eintragen.php  on line 19 
PHP-Code:
<?php
$verbindung 
mysql_connect("localhost""XXX" "XXX")
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("XXX") or die ("Datenbank konnte nicht ausgewählt werden");

$username $_POST["username"];
$passwort $_POST["passwort"];
$passwort2 $_POST["passwort2"];

if(
$passwort != $passwort2 OR $username == "" OR $passwort == "")
    {
    echo 
"Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"Registrieren.html\">Zurück</a>";
    exit;
    }
$passwort md5($passwort);

$result mysql_query("SELECT id FROM login WHERE username LIKE '$username'");
$menge mysql_num_rows($result);

if(
$menge == 0)
    {
    
$eintrag "INSERT INTO login (username, passwort) VALUES ('$username', '$passwort')";
    
$eintragen mysql_query($eintrag);

    if(
$eintragen == true)
        {
        echo 
"Benutzername <b>$username</b> wurde erstellt. <a href=\"index.html\">Login</a>";
        }
    else
        {
        echo 
"Fehler beim Speichern des Benutzernames. <a href=\"Registrieren.html\">Zurück</a>";
        }


    }

else
    {
    echo 
"Benutzername schon vorhanden. <a href=\"Registrieren.html\">Zurück</a>";
    }
?>
Sry das ich dich hier so nerve

Mfg
Luca
__________________

Peter ist offline   Mit Zitat antworten
Alt 27.05.2010, 19:35   #10 (Direktlink)
Super-Moderator
 
Benutzerbild von Desert_Igel
 
Registriert seit: 22.05.2005
Ort: c:\DE\NDS\SHG\Rinteln
Alter: 21
Beiträge: 5.808
Standard

Wichtiger Sicherheitshinweis:
Informiere dich unbedingt über SQL Injections! Gib niemals $_POST-Daten direkt in einen SQL-Befehl.
Vorher die Funktion mysql_real_escape_string() verwenden!!


Ersetze in Zeile 18 diesen Eintrag:

Code:
$result = mysql_query("SELECT id FROM login WHERE username LIKE '$username'");


gegen

Code:
$result = mysql_query("SELECT `id` FROM `login` WHERE username = '$username'");
Ebenfalls ungetestet.
__________________
Hauptrechner: Intel Q6600 | Gigabyte P35-DQ6 | ATi Radeon 2900XT | 4 GB OCZ RAM | Corsair HX520W | 31 TB Festplattenkapazität | 120 GB OCZ Vertex II SSD | Wasserkühlung

LAN-Rechner: Intel Xeon UP W3520 | nVidia Geforce 8800 GTS | 4 GB TeamGroup RAM | LC Power LC6550 | 640 GB Platte

HTPC: AMD Athlon II X2 250 | Foxconn A88GM Deluxe | 4 GB TeamGroup RAM | 3 TB Hitachi Platte
Desert_Igel ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Alt 27.05.2010, 20:12   #11 (Direktlink)
Forenmaskottchen
 
Registriert seit: 30.03.2007
Ort: Weilersiwst
Alter: 19
Beiträge: 837
Standard

Wurde gemacht:

Fehler:

PHP-Code:
Warning:  mysql_num_rows(): supplied argument is not a valid  MySQL result resource in /var/www/XXX/html/XXX/eintragen.php  on line 19 
__________________

Peter ist offline   Mit Zitat antworten
Alt 27.05.2010, 20:18   #12 (Direktlink)
Super-Moderator
 
Benutzerbild von Desert_Igel
 
Registriert seit: 22.05.2005
Ort: c:\DE\NDS\SHG\Rinteln
Alter: 21
Beiträge: 5.808
Standard

Heisst deine Tabelle denn überhaupt login? Wenn du genau meinen SQL-Befehl genommen hast, heisst die Tabelle nämlich users.

Dementsprechend muss dann auch der Query aussehen.
__________________
Hauptrechner: Intel Q6600 | Gigabyte P35-DQ6 | ATi Radeon 2900XT | 4 GB OCZ RAM | Corsair HX520W | 31 TB Festplattenkapazität | 120 GB OCZ Vertex II SSD | Wasserkühlung

LAN-Rechner: Intel Xeon UP W3520 | nVidia Geforce 8800 GTS | 4 GB TeamGroup RAM | LC Power LC6550 | 640 GB Platte

HTPC: AMD Athlon II X2 250 | Foxconn A88GM Deluxe | 4 GB TeamGroup RAM | 3 TB Hitachi Platte
Desert_Igel ist offline   Mit Zitat antworten
Alt 27.05.2010, 20:36   #13 (Direktlink)
Forenmaskottchen
 
Registriert seit: 30.03.2007
Ort: Weilersiwst
Alter: 19
Beiträge: 837
Standard

Soviel zum Thema kleine fehler xDD


eine Fehlermeldung kommt nicht mehr nur noch :

PHP-Code:
Fehler beim Speichern des BenutzernamesZurück 
__________________

Peter ist offline   Mit Zitat antworten
Alt 27.05.2010, 20:55   #14 (Direktlink)
Super-Moderator
 
Benutzerbild von Desert_Igel
 
Registriert seit: 22.05.2005
Ort: c:\DE\NDS\SHG\Rinteln
Alter: 21
Beiträge: 5.808
Standard

Hi,
langsam kommen wir doch vorran

Ich möchte ja, dass du was lernst. Daher kau ich dir jetzt nicht alles vor, nun musst du selber mal überlegen:

Passwort/Password

Bitte poste deinen gesamten Code, damit ich den aktuellen Stand der Dinge sehe.
__________________
Hauptrechner: Intel Q6600 | Gigabyte P35-DQ6 | ATi Radeon 2900XT | 4 GB OCZ RAM | Corsair HX520W | 31 TB Festplattenkapazität | 120 GB OCZ Vertex II SSD | Wasserkühlung

LAN-Rechner: Intel Xeon UP W3520 | nVidia Geforce 8800 GTS | 4 GB TeamGroup RAM | LC Power LC6550 | 640 GB Platte

HTPC: AMD Athlon II X2 250 | Foxconn A88GM Deluxe | 4 GB TeamGroup RAM | 3 TB Hitachi Platte
Desert_Igel ist offline   Mit Zitat antworten
Alt 27.05.2010, 21:04   #15 (Direktlink)
Forenmaskottchen
 
Registriert seit: 30.03.2007
Ort: Weilersiwst
Alter: 19
Beiträge: 837
Standard

Perfekt *lach*

Alles Funktioniert soweit !
Benutzerdaten werden Angelegt,Passwor"T" wird in MD5 Verschlüsselt,so wie es sein soll!


Hier noch mal die Script`s

PHP-Code:
<?php
$verbindung 
mysql_connect("localhost""XXX" "XXX")
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden");

mysql_select_db("XXX") or die ("Datenbank konnte nicht ausgewählt werden");

$username $_POST["username"];
$passwort $_POST["passwort"];
$passwort2 $_POST["passwort2"];

if(
$passwort != $passwort2 OR $username == "" OR $passwort == "")
    {
    echo 
"Eingabefehler. Bitte alle Felder korekt ausfüllen. <a href=\"Registrieren.html\">Zurück</a>";
    exit;
    }
$passwort md5($passwort);

$result mysql_query("SELECT `id` FROM `login` WHERE username = '$username'");
$menge mysql_num_rows($result);

if(
$menge == 0)
    {
    
$eintrag "INSERT INTO login (username, passwort) VALUES ('$username', '$passwort')";
    
$eintragen mysql_query($eintrag);

    if(
$eintragen == true)
        {
        echo 
"Benutzername <b>$username</b> wurde erstellt. <a href=\"index.html\">Login</a>";
        }
    else
        {
        echo 
"Fehler beim Speichern des Benutzernames. <a href=\"Registrieren.html\">Zurück</a>";
        }


    }

else
    {
    echo 
"Benutzername schon vorhanden. <a href=\"Registrieren.html\">Zurück</a>";
    }
?>
PHP-Code:
<?php
session_start
();
?>

<?php
$verbindung 
mysql_connect("localhost""XXXX")
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("XXX") or die ("Datenbank konnte nicht ausgewählt werden");

$username $_POST["username"];
$passwort md5($_POST["password"]);

$abfrage "SELECT username, passwort FROM login WHERE username LIKE '$username' LIMIT 1";
$ergebnis mysql_query($abfrage);
$row mysql_fetch_object($ergebnis);

if(
$row->passwort == $passwort)
    {
    
$_SESSION["username"] = $username;
    echo 
"Login erfolgreich. <br> <a href=\"/XXX/index.php\">Geschützer Bereich</a>";
    }
else
    {
    echo 
"Benutzername und/oder Passwort waren falsch. <a href=\"index.html\">Login</a>";
    }

?>
Ich danke dir das du mir Heute so geholfen hast
Ist echt ein Klasse Forum^^


Mfg

Peter

P.S Schönen Abend noch.. Ohne mich
__________________


Geändert von Peter (27.05.2010 um 21:11 Uhr)
Peter ist offline   Mit Zitat antworten
Werbung

Windows 7 Tipps und Tricks in Bildern

Antwort

  Paules-PC-Forum.de > Programmierung > PHP/MySQL

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP Login-Script gesucht // auch zum neu anmelden JPP PHP/MySQL 14 04.07.2007 15:19
Wie bekommt man so ein Login Script hin? Desert_Igel Homepagegestaltung 8 21.04.2006 15:59
Login Script! K. R. Eyden PHP/MySQL 2 21.04.2006 12:23
Brauche Hilfe bei meinem Login-Script! ELeX PHP/MySQL 4 15.09.2005 19:40
Login-Problem. pc-man Office-Anwendungen 9 24.09.2004 19:53



Alle Zeitangaben in WEZ +2. Es ist jetzt 02:33 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
(c) Paules-PC-Forum.de

::: Impressum :::

Search Engine Optimization by vBSEO 3.3.2