Loginskript auf der mainpage

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Yanko
Mitglied
Beiträge: 7
Registriert: 27.12.2008 14:25

Loginskript auf der mainpage

Beitrag von Yanko »

es steht immer da falsches passwort

Passwort: 123123
Name: Urn

Wichtig: Das ist kein Werbelink sondern nur das Testprogramm!

http://panferno.pytalhost.net/login.php

ich denke mal das beim Passwortencoden irgendwas nicht klappt
weil wenn ich des verschlüsselte PW einfüge und phpbb_hash aus dem skript entferne geht es

Hier der code

Code: Alles auswählen

<?php include("include/db.php");?>
...
<div id='inhalt'><?php

if (!empty($_POST['username'])) {

define('IN_PHPBB', true);
$phpbb_root_path = 'forum/'; // Passe hier den Pfad zu deinem Forum an
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);


$user->session_begin();
$auth->acl($user->data);
$user->setup();

if( $user->data['is_registered'] )
{
   // Benutzer ist schon eingeloggt
   echo 'Benutzer schon eingeloggt';
}

// Daten holen; request_var() funktioniert über POST und GET und schützt vor SQL-Injections
$username = request_var("username", "", true);
$password = request_var("password", "", true);

// Verschlüsseltes Passwort aus der DB holen
$sql = "SELECT user_password FROM phpbb_users WHERE username = '".$username."'";
$result = $db->sql_query_limit($sql, 1);
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);

if( !$row )
{
   // User existiert nicht
   echo "<h2>Fehler</h2>
         <div class='bad'>Der User existiert nicht. Registriere dich in unserem Forum, wenn du noch keinen Account hast.</div>";
}
if( phpbb_hash($password) == $row['user_password'] )
{
   // Alles richtig, also irgendetwas tun, um Eingeloggt-Status in Session zu speichern
   $_SESSION['user'] = $username;

   echo '<h2>Willkommen '.$_SESSION['user'].'</h2>
         <div class="good">Login erfolgreich.</div>';

}
else
{
   // Falsches Passwort
   echo "<h2>Fehler</h2>
         <div class='bad'>Du hast ein falsches Passwort eingegeben</div>";
}

}

else {

  echo '<h2>Login</h2>
<form action="login.php" method="POST"><table width="100%"><tr>
<td width="45%" align="left">Username:
<input name="username" type="text" /></td>
<td width="45%" align="left">Passwort:
<input name="password" type="password" /></td>
<td width="10%" align="left"><input value="Login" type="submit" /></td></tr>
</table>
</form>
Wenn du noch keinen Account auf Panferno.net hast, kannst du dich kostenlos in unserem Forum registrieren.';

}

?>


<?php include("include/copyright.php");?></div>
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

kein Support per PN
Yanko
Mitglied
Beiträge: 7
Registriert: 27.12.2008 14:25

Beitrag von Yanko »

ich will bloß das passwort entschlüsseln und es dann mit dem eingegebenen vergleichen und das eingegeben verschlüsseln dass es gleich wie das aus der db is
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Beitrag von Mahony »

Hallo
ich will bloß das Passwort entschlüsseln...
Das geht nicht, da nur der Hash-Wert (MD5+Salt) des Passworts in der Datenbank gespeichert wird. Ein entschlüsseln ist NICHT möglich. Du kannst lediglich die beiden Hash-Werte vergleichen.




Grüße: Mahony
Zuletzt geändert von Mahony am 27.12.2008 20:51, insgesamt 1-mal geändert.
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Du kannst kein Passwort entschlüsseln.....

Du kannst nur das eingegebene Passwort übergeben.

Durch:

Code: Alles auswählen

//Wenn username und passwort uebergeben worden sind, starte einen Anmeldeversuch
if (isset($username) && isset($password))
{
    $auth->login($username, $password, $autologin, $viewonline);
}
Wird das Passwort aus $password und der Benutzername aus $username der API übergeben und ein Login Versuch durchgeführt.

Ist der Login Versuch erfolgreich, wird das Objekt $user gefüllt sein.

Daher gilt:

Code: Alles auswählen

if ($user->data['is_registered'])
{
    // Hier steht der Code für ein erfolgreich eingeloggter User
    echo "Du bist angemeldet.<br /><br />";
}
Yanko
Mitglied
Beiträge: 7
Registriert: 27.12.2008 14:25

Beitrag von Yanko »

und wenn ich das eingegebene verschlüssel und es dann vergleiche
Dave
Mitglied
Beiträge: 2085
Registriert: 25.05.2003 15:03
Wohnort: Wuppertal

Beitrag von Dave »

willst du ne session im Forum erzeugen? Dann mach das so wie Dr.Death es sagte. Weil das ist die einfachste möglichkeit. Wieso das Rad neu erfinden :wink:

Code: Alles auswählen

// Daten holen; request_var() funktioniert über POST und GET und schützt vor SQL-Injections 
$username = request_var("username", "", true); 
$password = request_var("password", "", true);
Also das ist nicht ganz richtig. Wenn du request_var() nicht neu geschrieben hast schützt es NICHT vorl sql injektion.

MfG
Dave
Yanko
Mitglied
Beiträge: 7
Registriert: 27.12.2008 14:25

Beitrag von Yanko »

Ich versteh jetzt gar nix mehr kann mir einfach jemand den code so anpassen dass es klappt??

was muss ändern dass die PW nicht mehr verschlüsselt werden??

lieber kein schutz und dafür klappst
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Da du die fertige API nicht nutzen möchtest,

siehe die Dateien:

includes/functions.php

Code: Alles auswählen

function phpbb_check_hash($password, $hash)
oder:
includes/auth/auth_dp.php

Code: Alles auswählen

	// Check password ...
	if (!$row['user_pass_convert'] && phpbb_check_hash($password, $row['user_password']))
Yanko
Mitglied
Beiträge: 7
Registriert: 27.12.2008 14:25

Beitrag von Yanko »

was muss ich mit den dateien machen
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“