Okay jeg har nu været i gang med mit login i et stykke tid, men den vil kun tillade den første i min database, hvad kan fejlen være???
index.php:
<?php
### Starter sessions ###
session_start();
### Indkluder dvs. filer ###
include("config/db.php");
include("config/functions.php");
### Globale variabler ###
global $db_hostname;
global $db_username;
global $db_password;
global $db_database;
global $conn;
global $banned_ip;
### Connect til MySql-database ###
$conn = @mysql_connect($db_hostname,$db_username,$db_password);
@mysql_select_db($db_database,$conn);
### Vis Ip-adresse ###
$IP = $_SERVER['REMOTE_ADDR'];
@$FIP = $_SERVER['HTTP_X_FORWARDED_FOR'];
if (($FIP != "") && ($FIP != "unknown")) $IP = $FIP;
$IP = explode(",", $IP);
$IP = $IP[0];
$hostmask = gethostbyaddr($IP);
### Hent banned ip-adresser ###
$get_ip = "SELECT addr FROM ip";
$get_ip_res = @mysql_query($get_ip,$conn);
$ip_info = @mysql_fetch_array($get_ip_res);
$banned_ip = $ip_info['addr'];
### Hoveddelen af siden ###
switch(@$_GET['mode']) {
case 'auth':
//Tjekker om brugerinput er tomt
if (!$_POST['login_username']) {
$_SESSION['submit1'] = "1";
header("Location: index.php");
}
else if (!$_POST['login_password']) {
$_SESSION['submit2'] = "1";
header("Location: index.php");
}
// Registrer sessions
$_SESSION['login_username'] = $_POST['login_username'];
$_SESSION['login_password'] = $_POST['login_password'];
/*
Prøv dette i stedet for:
*/
// Vælg tabel
$get_user = "SELECT id, user, pass FROM `login` WHERE
(user = '" . $_SESSION['login_username'] . "')
AND
(pass = '" . $_SESSION['login_password'] . "')";
$sql = mysql_query($get_user);
$num_rows = mysql_num_rows($sql);
if($num_rows == 0) { echo "Forkert brugernavn/password";}
elseif($num_rows == 1) {
print("<script>location.href='users/main/index.php';</script>");
} else {
$_SESSION['submit1'] = "1";
$_SESSION['submit2'] = "1";
header("Location: index.php");
}
break;
default:
// Tjekker om brugeren er banned
if($hostmask != $banned_ip) {
?>
<html>
<head>
<title>|Star-Fighters| - Login</title>
</head>
<body>
<form action="index.php?mode=auth" method="post">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="300">
<tr>
<td background="grafik/top.jpg" colspan="2" height="30" valign="middle"><center>Velkommen til CrewArea</center></td>
</tr>
<tr>
<td><font color="<? user_form_empty(); ?>"> Brugernavn:</font></td>
<td><input type="text" name="login_username" size="25"></td>
</tr>
<tr>
<td><font color="<? pass_form_empty(); ?>"> Adgangskode:</font></td>
<td><input type="password" name="login_password" size="25"></td>
</tr>
<tr>
<td background="grafik/top.jpg" colspan="2" height="30"><center><input type="submit" value="Log Ind"></center></td>
</tr>
</table>
</form>
<center>Din ip-adresse: [u]<?= $hostmask; ?>[/u]
Login by: #Team-sF.dk | ^FeoDra
Version: 2.0
</center>
</body>
</html>
<?php
unset($_SESSION['submit1']);
unset($_SESSION['submit2']);
} else {
?>
<html>
<head>
<title>|Star-Fighters| - Din ip er blevet blokeret!</title>
</head>
</html>
<?php
}
}
db.php:
<?php
$db_hostname = "localhost";
$db_username = "????";
$db_password = "????";
$db_database = "teamsf";
?>
functions.php:
<?php
// Funktioner
### Skift farve vis brugernavn forkert! ###
function user_form_empty() {
if (@$_SESSION['submit1'] == "1") {
print("red");
}
}
### Skift farve hvis password er forkert ###
function pass_form_empty() {
if (@$_SESSION['submit2'] == "1") {
print("red");
}
}
---------------------------------
www.teamsf.frac.dk
Webcoder er best!
Ved ikke om det var det du kiggede efter... men grunden til at den kun tog den første var at du kun trak den første bruger ud i databasen ved:
$kfs = mysql_fetch_array($mysql_queri'en);
ellers skulle du bruge en løkke:
while($kfs = mysql_fetch_array($mysqlsf))
{
og så fortage godkendelses koden herinde.
}
//Krille
[Redigeret d. 09/06-05 15:22:50 af Krille]