Login - PHP

Tags:    php

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'];

// Vælg tabel
$get_user = "SELECT id, user, pass FROM login";
$get_user_res = @mysql_query($get_user,$conn);

// angiver arrays
$user_info = @mysql_fetch_array($get_user_res);
$username = $user_info['user'];
$password = $user_info['pass'];

// Godkender password
if ($_POST['login_username'] == "$username" AND $_POST['login_password'] == "$password") {
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>
<br>
<br>
<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>
<br>
Login by: #Team-sF.dk | ^FeoDra<br>
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!



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
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:
Fold kodeboks ind/udKode 

---------------------------------
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]



Hej!

Jeg har godt nok aldrig set noget lavet på den måde, men du kan jo prøve med;

// Vælg tabel
$get_user = "SELECT id, user, pass FROM login WHERE user='$login_username'";
$get_user_res = @mysql_query($get_user,$conn);

Jeg havde nok ventet med at lave en session til efter at brugen er 112% verficeret...



t