Sziasztok!
Valamiért nem reagál a bejelentkezés, ez a login.php-m.
Idéz<div id="content"> <div class="postui2 text-title">
<h2>
Bejelentkezés
</h2>
</div>
<div class="postui2 text-con">
<div class="con-wrap">
<?PHP
if(isset($_GET['do']) && $_GET['do']=="aktivieren" && isset($_GET['hash']) && !empty($_GET['hash'])) {
if(strlen($_GET['hash'])==32 && $_GET['hash']!=1 && checkAnum($_GET['hash'])) {
$cmdHash = "SELECT id,web_aktiviert FROM account.account WHERE web_aktiviert='".$_GET['hash']."' AND web_aktiviert!='1' LIMIT 1;";
$qryHash = mysql_query($cmdHash,$sqlServ);
if(mysql_num_rows($qryHash)) {
$getData = mysql_fetch_object($qryHash);
$userUpdate = "UPDATE account.account SET web_aktiviert='1',status='OK' WHERE id='".$getData->id."' LIMIT 1;";
$updateQry = mysql_query($userUpdate,$sqlServ);
if($updateQry) {
echo'<p class="meldung">Ihr Account wurde erfolgreich aktiviert. Sie können sich nun einloggen.</p>';
echo'<meta http-equiv="refresh" content="1; URL=index.php?s=login"> ';
}
else {
echo'<p class="meldung">Query fehlgeschlagen. Bitte einen Admin kontaktieren!</p>';
}
}
else {
echo'<p class="meldung">Es wurde kein passender Eintrag gefunden. Aktivierung fehlgeschlagen.</p>';
}
}
else {
echo'<p class="meldung">Kein valider Hash!</p>';
}
}
if(!empty($_SESSION['user_id']))
{
echo'<h2>Accountübersicht</h2>';
echo'<div class="splitLeft">';
echo'<ul class="menue">';
echo'</div>';
echo'<div class="splitRight">';
$cmdStats = "SELECT SUM( player.playtime ) AS ges_spielzeit, COUNT( * ) AS ges_chars, player_index.empire
FROM player.player
INNER JOIN player.player_index ON player_index.id = player.account_id
WHERE player.account_id = '".$_SESSION['user_id']."'
LIMIT 1";
$qryStats = mysql_query($cmdStats,$sqlServ);
$getStats = mysql_fetch_object($qryStats);
if(!empty($getStats->empire)) {
$reich = '<img src="img/reiche/'.$getStats->empire.'.png" title="Reich" alt="Reich"/>';
}
else {
$reich='kein Reich ausgewählt';
}
echo'
<table>
<tr>
<th class="topLine">Account:</th>
<td class="tdunkel">'.$_SESSION['user_name'].'</td>
</tr>
<tr>
<th class="topLine">Reich:</th>
<td class="thell">'.$reich.'</td>
</tr>
<tr>
<th class="topLine">Charaktere:</th>
<td class="tdunkel">'.$getStats->ges_chars.'</td>
</tr>
<tr>
<th class="topLine">Gesamte Spielzeit:</th>
<td class="thell">'.$getStats->ges_spielzeit.' Minuten</td>
</tr>';
$sqlAcc = "SELECT account.social_id AS loeschcode, safebox.password AS lagerpw
FROM account.account
LEFT JOIN player.safebox
ON account.id=safebox.account_id
WHERE account.id='".$_SESSION['user_id']."'";
$qryAcc = mysql_query($sqlAcc) or die(mysql_error());
$getAcc = mysql_fetch_object($qryAcc);
if(empty($getAcc->lagerpw)) $getAcc->lagerpw = '000000';
echo'<tr>
<th class="topLine">Löschcode:</th>
<td class="tdunkel">'.$getAcc->loeschcode.'</td>
</tr>
</table>';
echo'</div><div class="clear"></div>';
}
else
{
?>
<h2>Login</h2>
<form action="index.php?s=login" method="POST">
<table>
<tr>
<th class="topLine">Felhasználónév:</th>
<td class="tdunkel"><input type="text" name="userid" maxlength="16" size="20"/></td>
</tr>
<tr>
<th class="topLine">Jelszó:</th>
<td class="thell"><input type="password" name="userpass" maxlength="16" size="20"/></td>
</tr>
<tr>
<td class="topLine" style="text-align:center;" colspan="2"><input type="submit" name="submit" value="login"/></td>
</tr>
</table>
<p><a href="index.php?s=register">Regisztráció</a> • <a href="index.php?s=lostpw">Jelszó emlékeztető</a></p>
</form>
<?PHP
}
?>
</div>
</div>
<div class="postui2 text-end">
</div></div>
Egy Fórumrészleggel arrébb kellett volna nyitnod a témát. http://metin2hungary.net/index.php/board,45.0.html
Na de, hogy ne legyen off.. megnéztem a PHP-t és ebben csak maga a Form azaz a Felhasználónév és a Jelszó bekérő van, és nincs megadva, hogy milyen PHP / MySQL utasítás fusson le a "login" gombra kattintás után.
A PHP elején egy aktiválórész van, E-mailos megerősítés esetére, alatta pedig már az, hogy megjeleníti magát a fiók információit, ha be van lépve, szóval így nehéz lesz bárhogy is a belépéssel próbálkozni.
A feldolgozó része az inc/head.inc.php fájlban van. Azt másold be.
(Ha lehet akkor ne [quote][/quote] tag-ek közé, hanem [code][/code] közé írd a tartalmát)
Idéz<?PHP
if(isset($_POST['submit']) && ($_POST['submit']=="login" || $_POST['submit']=="Log In"))
{
if(!empty($_POST['userid']) && !empty($_POST['userpass']) && checkAnum($_POST['userid']) && checkAnum($_POST['userpass']))
{
$sqlCmd = "SELECT id,login,coins,web_admin,email
FROM account.account
WHERE login
LIKE '".mysql_real_escape_string($_POST['userid'])."'
AND password=PASSWORD('".mysql_real_escape_string($_POST['userpass'])."')
LIMIT 1";
$sqlQry = mysql_query($sqlCmd,$sqlServ);
if(mysql_num_rows($sqlQry)>0)
{
$getAdmin = mysql_fetch_object($sqlQry);
$_SESSION['user_id'] = $getAdmin->id;
$_SESSION['user_name'] = $getAdmin->login;
$_SESSION['user_admin'] = $getAdmin->web_admin;
$_SESSION['user_coins'] = $getAdmin->coins;
$_SESSION['user_email'] = $getAdmin->email;
$updateIP = mysql_query("UPDATE account.account SET web_ip='".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."' WHERE id='".mysql_real_escape_string($getAdmin->id)."'",$sqlServ);
}
}
}
if(empty($_SESSION['user_id']))
{
unset($_SESSION['user_id']);
unset($_SESSION['user_name']);
unset($_SESSION['user_admin']);
unset($_SESSION['user_coins']);
unset($_SESSION['user_email']);
}
else {
$sqlCmd = "SELECT id,login,web_admin,coins,email FROM account.account WHERE web_ip='".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."' AND id='".mysql_real_escape_string($_SESSION['user_id'])."' LIMIT 1";
$sqlQry = mysql_query($sqlCmd,$sqlServ);
if(mysql_num_rows($sqlQry)>0)
{
$getAdmin = mysql_fetch_object($sqlQry);
$_SESSION['user_id'] = $getAdmin->id;
$_SESSION['user_name'] = $getAdmin->login;
$_SESSION['user_admin'] = $getAdmin->web_admin;
$_SESSION['user_coins'] = $getAdmin->coins;
$_SESSION['user_email'] = $getAdmin->email;
}
else
{
unset($_SESSION['user_id']);
unset($_SESSION['user_name']);
unset($_SESSION['user_admin']);
unset($_SESSION['user_coins']);
unset($_SESSION['user_email']);
}
}
?>
Elsőként, ami szemet szúrt az a legelső sor.
Ezt cseréld le:
if(isset($_POST['submit']) && ($_POST['submit']=="login" || $_POST['submit']=="Log In"))
erre:
if(isset($_POST['submit']) && ($_POST['submit']=="login" || $_POST['submit']=="login"))
Ezzel sem jutsz előrébb. :)
Kétszer ugyanazt ellenőrzöd, semmi értelme. Azért van kettő különböző módon beírva, hogy például az egyik gombon "login" a value, a másikon meg "Log In", mindkettővel be tudjon lépni. Ha átírod, akkor annyi változik, hogy csak a "login" értékűvel fog beléptetni. De ahogy látom a login.php-ban úgy is csak ez van, de ki tudja, a loginbar.inc.php-ban lehet, hogy a "Log In", így az semmiképp sem fog működni. ;)
Uhh tényleg, igazad van, az előtte lévő részt meg sem néztem. :DD Mondjuk van pár hibalehetőség, lehet hogy magában az account táblából hiányzik olyan oszlop, amit belépésnél lekérne, például a web_admin, ezt egy alap tábla nem tartalmazza, de így találomban... inkább TeamVieweren lenne érdemesebb, ha fellépne vagy valami "újabb" fajta oldalt használna.