Webprogramozás arr PHP info Fehér lap...
(#5) Jedimaster 2013.07.10. 13:22

Jedimaster
Jedimaster
Kezdő

Sziasztok!

A problémám a következő: Csináltam egy projektmenedzselő, munkaidő nyilvántartó programot egy weboldalra. A probléma a bejelentkezési résznél van: felhasználói nevet és jelszót kér (POST metódussal továbbítja a feldolgozó fájlnak). Ha helyes adatokat adunk meg, rendben be is léptet, bent minden hibátlanul működik, de ha nem írunk be semmit (bármelyik mezőbe...) vagy elgépeljük a belépési adatokat, meg akarja nyitni (jeleníteni) a feldolgozó fájl tartalmát, mikor ez a fájl csak annyit tartalmaz, hogy fogadja a belépési adatokat, megvizsgálja, h a felhasználók adatait tartalmazó táblából tud-e visszaadni ID -t, ami ehhez a felh. névhez és jelszóhoz tartozik. Ha igen, akkor egy másik táblából kikeresi a teljes nevet, amit GET metódussal továbbít a "protected.php" oldalra és átirányít (header() -függvény...), ha valahol bukik a mutatvány, tehát valamelyik MySQL lekérdezés üres sort ad vissza, visszairányít a bejelentkezési oldalra, ami fogadja a GET metódussal küldött "hiba" változó értékét (ha 1 -> hibaüzenetet ír ki...).

Hozzá tartozik még ehhez a problémához, hogy régebben (1-2 hónapja) még tökéletesen működött, azóta csupán annyit változtattam rajta, hogy mindenhonnan kivettem az adatbázis eléréséhez deklarált változókat és azokat egy külön fájlba raktam, amit include_once() segítségével hívok meg (24 fájlnál elég fárasztó mindig átirkálni a változók értékeit a localhost-os értékről "éles" szerveren tárolt értékekre...).

A fájl tartalma (empl_feld.php):
_______________________________________________________________________________________________

<?php

header('Content-Type: text/html; charset=utf-8');
session_start();

include_once("connect.php");

$username = $_POST['username'];
$password = $_POST['password'];

$sqlUser = mysql_query ("SELECT user_id FROM user WHERE username='$username' AND password='$password'");

if (!$sqlUser)
{
header("location:employees.php?hiba=1");
}
else
{
while ($sqlUserID = mysql_fetch_assoc($sqlUser))
{
foreach ($sqlUserID as $userID)
{
$_SESSION['userID'] = $userID;
$sqlUName = mysql_query ("SELECT full_name FROM user_detail WHERE user_id='$userID'");

while ($resUser = mysql_fetch_assoc($sqlUName))
{
if (!$resUser)
{
print "A felhasználói név nincs regisztrálva!";
}
else
{
foreach ($resUser as $full_name)
{
header("location:protected.php?nev=$full_name");
}
}
}
}
}
}

?>

/*
* Természetesen, a "protected.php" -ra szeretnénk belépni; azzal nincs is semmi gond, ha azonban hibás adatokat adunk
* meg, akkor nem irányít vissza a belépési oldalra, hanem egy üres, fehér lapot jelenít meg, a címsorban pedig
* ".../empl_feld.php" szerepel. Több időt töltöttem már azzal, hogy ezt az egyetlen hibát orvosoljam, mint az egész
* program megírásával...
*/