online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon Sandra22345 vom 03.08.2020, 17:35 Options

[PHP] login Problem!

Hallöle,

und zwar hab ich folgendes Problem:

Habe mir ein Registrierungformular geschrieben, do wie benutzer daten in die DB geschrieben werden, funktioniert auch, das passwort wird per sha1 hash in der DB gespeichert, leider funktioniert dann mein Login nicht, speicher ich jedoch das pw in klarform ab, funktioniert es... kann mir bite wer weiter helfen? (wobei der erstelle teil mein captcha ist, das funzt soweit auch)

hier das login skript:

<?
session_start();

function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "29jfkd921");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if(isset($_SESSION['rechen_captcha_spam']) AND $sicherheits_eingabe == $_SESSION['rechen_captcha_spam']){
unset($_SESSION['rechen_captcha_spam']);

require('func.php');



$password = sha1($_POST['password']);



if ($password==NULL) {
header("location:index.php");
}

else

{

require('config.php');
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
f($data['password'] != $password) {
header("location:index.php");

}

else

{

$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
mysql_close($con);
$nicke=$row['username'];
$passe=$row['password'];

//90 dias dura la cookie
setcookie("usNick",$nicke,time()+7776000);
setcookie("usPass",$passe,time()+7776000);


$lastlogdate=time();
$lastip = getRealIP();
require('config.php');
$querybt = "UPDATE users SET lastlogdate='$lastlogdate', lastiplog='$lastip' WHERE username='$nicke'";
mysql_query($querybt) or die(mysql_error());
mysql_close($con);


}
}
}

header("location:logging_in.php");

?>


Antwort schreiben

Antwort 1 von Marvin42 vom 03.08.2020, 17:43 Options

Hallo!

So ganz überblicke ich das nicht, aber kann es sein, dass du nicht Passwort mit Passwort (bzw. Hash mit Hash) vergleichst, sondern das eingegebene Passwort mit dem in der DB stehenden Hash? Du müsstest also erst mal das Passwort hashen, bevor du es mit dem DB-Eintrag vergleichst.

Antwort 2 von Sandra22345 vom 03.08.2020, 17:46 Options

Ja habs nur versucht mit der DB zu vergleichen, kannst du mir ein beispiel geben?!

Antwort 3 von Sandra22345 vom 03.08.2020, 19:31 Options

>> $password = sha1($_POST['password']); << ist doch richtig oder?

Antwort 4 von Sandra22345 vom 03.08.2020, 21:10 Options

Also es will einfach nicht..... bei der "Registrierung"" wird ja auch der hash in die db geschrieben, nur beim einloggen gehts einfach nicht, wenn ich die sha1 funktion weg nehme, es in klarform gespeichert ist, funzt alles reibungslos, echt seltsam.... kann mir bitte wer helfen? :(

Antwort 5 von Sandra22345 vom 03.08.2020, 23:22 Options

also nun funktionier es, aus welchem grund auch immer, wie könnte ich das alles noch mehr absichern?

Ähnliche Themen

Einfaches Problem bei php.
Hoshyman  30.03.2007 - 102 Hits - 3 Antworten

Problem mit PhP
Firefighter-nb  16.04.2007 - 150 Hits - 1 Antwort

Brauche dringend Hilfe bei Login.php
Uesch  13.04.2007 - 79 Hits - 16 Antworten

PHP - Problem
needhelpinphp  23.08.2007 - 19 Hits - 4 Antworten

PHP Problem - Text aus Datenbank auslesen wo PHP Code drinsteht?!
Kuscheltier  10.11.2007 - 127 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026