php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > Tutorials
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


Tutorials In diesem Forum könnt Ihr euere Fragen zu unseren Tutorials stellen. Die Tutorials sind unter https://www.php-resource.de/tutorials/ zu finden. Tutorialgesuche bitte im Forum Off-Topic stellen!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 16-03-2008, 17:55
Champ Wasili
 Newbie
Links : Onlinestatus : Champ Wasili ist offline
Registriert seit: Mar 2008
Beiträge: 149
Champ Wasili ist zur Zeit noch ein unbeschriebenes Blatt
Standard Problem beim loginscript

hallo ertsmal,
ich hab mir ein registrierungsscript geschreiben,
bei dem ein html-formular die daten an eine phpdatei schickt und diese die daten dann in die datenbank einträgt.
Hier das phpscript:
PHP-Code:
<?php 
  
include("sessionhelpers.inc.php");


mysql_query(

"INSERT INTO `users` ( `UserID` , `UserName` , `UserPass` , `UserSession` , `UserMail` , `feld` , `lp` , `Angriff` )  
VALUES 
                            ('', 
                             '"
.$_POST["name"]."', 
                             md5('"
.$_POST["pass"]."'), 
                             NULL, 
                             '"
.$_POST["mail"]."',
                             'index2.html',
                             '15',
                             '2')"
)
or die(
mysql_error());
mysql_close();

echo 
"Registrierung abgeschlossen!";
?>
hier das htmlformular:
PHP-Code:
<html>
<
head>
</
head>
<
body>
<
form method=post action=eintragen.php>
Username:
  <
input type=text name=name size=15>
Passwort:
<
input type=password name=pass size=15>
Email:
<
input type=text name=mail size=15>


<
input type=submit value=Registrieren!>
</
form>
</
body>
</
html


und nun mein problem:

im phpscript wird ja das passwort mit md5() verschlüsselt in der DP gespeichert.
Aber, wenn ich jetzt versuche, mich mit dem Login script auf meiner seite einzuloggen, werden meine daten als falsch angegeben.
Wenn ich das mit usern versuche, die ich über phpmyadmin angelegt habe, kann ich mich jedoch einloggen.
und wenn ich die phpdatei ausführe, kommt auhc immer, registrierung abgeschlossen, und es wird auch ein 32stelliger string als pw gespeichert, aber es geht nicht.
wer kann mir dabei helfen?
ich weiß nicht, was ich falsch geschrieben hab.

Geändert von Champ Wasili (19-03-2008 um 17:02 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 16-03-2008, 17:58
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

iche sehe kein Loginscript, daher kann man nichts dazu sagen.
Mit Zitat antworten
  #3 (permalink)  
Alt 16-03-2008, 18:08
Manko10
 Newbie
Links : Onlinestatus : Manko10 ist offline
Registriert seit: Mar 2008
Beiträge: 115
Manko10 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich auch nicht, aber ich kann dir jetzt schon sagen, dass du nicht lange Freude an so einem Skript haben wirst.
Informiere dich bitte mal mit der Suchmaschine deiner Wahl über "SQL Injections".
Mit Zitat antworten
  #4 (permalink)  
Alt 17-03-2008, 14:42
Champ Wasili
 Newbie
Links : Onlinestatus : Champ Wasili ist offline
Registriert seit: Mar 2008
Beiträge: 149
Champ Wasili ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sorry, das login script hab ich vergessen, hier ist es.
PHP-Code:
<?
session_start
();
include 
'sessionhelpers.inc.php';


if (isset(
$_POST['login']))

{
    
$userid=check_user($_POST['username'], $_POST['userpass']);
    if (
$userid!=false)
        
login($userid);
    else
        echo 
'Ihre Anmeldedaten waren nicht korrekt! Versuchen sie es erneut.';
}

if (!
logged_in())
    echo 
'<form method="post" action="login.php">
        <label>Benutzername:</label><input name="username" type="text"><br>
        <label>Passwort: </label><input name="userpass" type="password" id="userpass"><br>
        <input name="login" type="submit" id="login" value="Einloggen">
    </form>'
;
else
    echo 
'<a href="logout.php">Ausloggen</a>';
echo 
'<p /><a href="logged_in.php">Weiter</a>';
?>
in der sessionhelpers.php stehen nur die mysql zugangsdaten.
und die logout.php löscht nur die sessionid, wenn ncoh was fehlt, einfachg sagen ich poste es dann.
Gegen sqlinjections wollte ich es schützen, nachdem es überhaupt läuft! wenn sich jemand z.b. adminrechte gibt, aber sich damit nicht einloggen kann, bringt das auch sonderlcih viel, oder?
Mit Zitat antworten
  #5 (permalink)  
Alt 17-03-2008, 14:44
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Naja, den Inhalt der Funktion check_user müsste man natürlich auch sehen.
Mit Zitat antworten
  #6 (permalink)  
Alt 17-03-2008, 20:08
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@Champ
Also erstmal würde ich nicht die MySql Fkt md5 verwenden, sondern diejenige von PHP. Sonst musst du das Passwort trotzdem noch mittels mysql_real_escape_string() entschärfen, weil es ja MySql ist, das die Daten erst zum Hash macht.
Und ja die fragliche Funktion sollte man auch noch zu Gesicht bekommen
Und ausserdem solltest du obengenannte mysql-Fkt auf alle Usereingaben anwenden, die in die Datenbank kommen.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #7 (permalink)  
Alt 17-03-2008, 23:56
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@Champ
Wirklich dein eigener Code, den du geschrieben hast? Der Code kommt mir irgendwie bekannt vor. Und da du nicht der dort genannte User bist habe ich so meine Zweifel.
Darum gehst du jetzt ins richtige Forum **move** zu Tutorials
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #8 (permalink)  
Alt 19-03-2008, 17:08
Champ Wasili
 Newbie
Links : Onlinestatus : Champ Wasili ist offline
Registriert seit: Mar 2008
Beiträge: 149
Champ Wasili ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@ jahloves, ja es ist das eben genannte tutorial. ich hatte es nur hier geppstet, weil das loginscript ja läuft, nur das regformular hab ich aber selbstgeschrieben!
Hier die check_uer
PHP-Code:
function check_user($name$pass)
{
    
$sql="SELECT UserId
    FROM users
    WHERE UserName='"
.$name."' AND UserPass=MD5('".$pass."')
    LIMIT 1"
;
    
$resultmysql_query($sql) or die(mysql_error());
    if ( 
mysql_num_rows($result)==1)
    {
        
$user=mysql_fetch_assoc($result);
        return 
$user['UserId'];
    }
    else
        return 
false;

Mit Zitat antworten
  #9 (permalink)  
Alt 22-03-2008, 23:21
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Nachdem du die genannten Tipps hier umgesetzt hast (was bis jetzt offensichtlich nicht erfolgt ist), prüfst du bitte mal, ob dein Registrierungsscript den korrekten Hash in der DB gespeichert hat. Die Antwort bitte hier posten, falls du dann die Lösung noch nicht finden solltest.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #10 (permalink)  
Alt 27-03-2008, 14:07
Champ Wasili
 Newbie
Links : Onlinestatus : Champ Wasili ist offline
Registriert seit: Mar 2008
Beiträge: 149
Champ Wasili ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich kapier irgendwie nicht, wie ich
mysql_real_escape_string() einbauen muss.
etwa so:
PHP-Code:
<?php 
  
include("sessionhelpers.inc.php");


mysql_query(

"INSERT INTO `users` ( `UserID` , `UserName` , `UserPass` , `UserSession` , `UserMail` , `feld` , `lp` , `Angriff` )  
VALUES 
                            ('', 
                             '"
.$_POST["name"]."', 
                             mysql_real_escape_string(md5('"
.$_POST["pass"]."')), 
                             NULL, 
                             '"
.$_POST["mail"]."',
                             'index2.html',
                             '15',
                             '2')"
)
or die(
mysql_error());
mysql_close();

echo 
"Registrierung abgeschlossen!";
?>
Mit Zitat antworten
  #11 (permalink)  
Alt 27-03-2008, 14:49
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
etwa so:
Nein
PHP-Code:
//so ist das eine MySql-Funktion
$sql "INSERT INTO tabelle (uName) VALUES('mysql_real_escape_string(blabla)')";
//korrekt wäre aber eine PHP-Funktion 
$sql "INSERT INTO tabelle (uName) VALUES('".mysql_real_escape_string('blabla')."')"
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:46 Uhr.