Wit pagina na inloggen
Voor mijn project op school moet ik en mijn groep een helpdesk bouwen in PHP, in localhost draait het prima en heb een loginscript waarmee afhankelijk van de functie van een medewerker diegene wordt direct naar verschillende pagina's op de site.
Heb de site ook geüpload op de host van mijn pa's bedrijf maar op een of andere manier wilt ie niet verder met inloggen zodra je gebruikersnaam en wachtwoord invult, je krijgt dan gewoon een witte pagina en boven staat inloggen1.php (naam van onderstaande script), heb op internet gezocht maar geen echte oplossingen gevonden (wel een paar geprobeerd zoals Error Reporting, ben zelf niet zo heel goed met PHP en het script dat ik gebruik heb ik van internet geplukt alleen dan veranderd naar mijn situatie, de script zelf:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php
//Start session
session_start();
//Include database connection details
require_once('connect.php');
//Array to store validation errors
$errmsg_arr = array();
//Validation error flag
$errflag = false;
//Connect to mysql server
$link = mysql_connect(localhost, root);
if(!$link) {
die('Failed to connect to server: ' . mysql_error());
}
//Select database
$db = mysql_select_db(selfserviceportal);
if(!$db) {
die("Unable to select database");
}
//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
//Sanitize the POST values
$gebruikersnaam = clean($_POST['gebruikersnaam']);
$wachtwoord = clean($_POST['wachtwoord']);
//Input Validations
if($gebruikersnaam == '') {
$errmsg_arr[] = 'Login ID missing';
$errflag = true;
}
if($wachtwoord == '') {
$errmsg_arr[] = 'wachtwoord missing';
$errflag = true;
}
//If there are input validations, redirect back to the login form
if($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: inloggen.php");
exit();
}
//Create query
$qry="SELECT * FROM medewerkers WHERE gebruikersnaam='".$gebruikersnaam."' AND wachtwoord='".$wachtwoord."'";
$result=mysql_query($qry);
$niveau = "SELECT niveau FROM medewerkers WHERE gebruikersnaam ='".$gebruikersnaam."'";
$result2 = mysql_query($niveau);
$result3 = mysql_fetch_row($result2);
if(!$result3){
$message = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $niveau;
die($message);
exit();
}
//Check whether the 1st query was successful or not
if($result){
if(mysql_num_rows($result) == 1){
//Login successful
session_regenerate_id();
$login = mysql_fetch_assoc($result);
$_SESSION['gebruikersnaam'] = $login['gebruikersnaam'];
$_SESSION['niveau'] = $login['niveau'];
$_SESSION['wachtwoord'] = $login['wachtwoord'];
switch($result3[0])
{
case 'medewerker':
header("location: medewerker/medewerker_overzicht.php");
break;
case 'admin':
header("location: beheerder/beheerder_overzicht.php");
break;
case 'helpdesk':
header("location: helpdesk/helpdeskmedewerker_overzicht.php");
break;
default: die("all cases never worked");
}
}else {
//Login failed
header("location: inlogfout.php");
exit();
}
}
?>
//Start session
session_start();
//Include database connection details
require_once('connect.php');
//Array to store validation errors
$errmsg_arr = array();
//Validation error flag
$errflag = false;
//Connect to mysql server
$link = mysql_connect(localhost, root);
if(!$link) {
die('Failed to connect to server: ' . mysql_error());
}
//Select database
$db = mysql_select_db(selfserviceportal);
if(!$db) {
die("Unable to select database");
}
//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
//Sanitize the POST values
$gebruikersnaam = clean($_POST['gebruikersnaam']);
$wachtwoord = clean($_POST['wachtwoord']);
//Input Validations
if($gebruikersnaam == '') {
$errmsg_arr[] = 'Login ID missing';
$errflag = true;
}
if($wachtwoord == '') {
$errmsg_arr[] = 'wachtwoord missing';
$errflag = true;
}
//If there are input validations, redirect back to the login form
if($errflag) {
$_SESSION['ERRMSG_ARR'] = $errmsg_arr;
session_write_close();
header("location: inloggen.php");
exit();
}
//Create query
$qry="SELECT * FROM medewerkers WHERE gebruikersnaam='".$gebruikersnaam."' AND wachtwoord='".$wachtwoord."'";
$result=mysql_query($qry);
$niveau = "SELECT niveau FROM medewerkers WHERE gebruikersnaam ='".$gebruikersnaam."'";
$result2 = mysql_query($niveau);
$result3 = mysql_fetch_row($result2);
if(!$result3){
$message = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $niveau;
die($message);
exit();
}
//Check whether the 1st query was successful or not
if($result){
if(mysql_num_rows($result) == 1){
//Login successful
session_regenerate_id();
$login = mysql_fetch_assoc($result);
$_SESSION['gebruikersnaam'] = $login['gebruikersnaam'];
$_SESSION['niveau'] = $login['niveau'];
$_SESSION['wachtwoord'] = $login['wachtwoord'];
switch($result3[0])
{
case 'medewerker':
header("location: medewerker/medewerker_overzicht.php");
break;
case 'admin':
header("location: beheerder/beheerder_overzicht.php");
break;
case 'helpdesk':
header("location: helpdesk/helpdeskmedewerker_overzicht.php");
break;
default: die("all cases never worked");
}
}else {
//Login failed
header("location: inlogfout.php");
exit();
}
}
?>
In plaats van localhost en root moet hierbij gedacht worden aan de host van PCextreme en bijbehorende gebruikersnaam. Ik zou het zeer op prijs stellen als iemand een hint kon geven waar het fout zit want voor de beoordeling moet ie gehost zijn.
geen @'tjes gebruiken en een goede afhandeling gebruiken (dus geen die). Ik denk dat het verder wel slim is wanneer je error_reporting op 1 zet
Ik zie dat je post gebruikt?
dus onderaan of boven aan de pagina: echo $_POST['gebruikersnaam'];
dan weet je of deze gegevens wel of niet mee verzonden worden of dat de meldingen die je verwacht daar ook werkelijk iets mee doen. Dat zou ik doen tenminste.
Een lege pagina betekent dat php afhaakt omdat het nogal grof fout gaat. Zet foutmeldingen aan en haal @ weg voor functies e.d. want dat blokkeert foutmeldingen. Over foutmeldingen "aan" zetten is voldoende te vindn op dit forum.
Allen bedankt voor de reacties! Ben na paar uur verder zoeken en experimenteren maar afgehaakt en op een gratis host geprobeerd en daar doet ie het nu wel :) Zal nog wel een keer als ik meer tijd heb verder zoeken maar dit topic kan nu wel dicht.