Hij gaat niet na het inloggen verder...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior, Medior and Junior SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Veldhoven Vacature ID: 12696 Introductie Our client is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. Wat verwachten we van jou? SAP Certified Application Associate - SAP HANA Cloud Modeling (training and/or certification) Bachelor degree or higher Excellent understanding of SAP HANA (2.0 / Cloud), Data Modelling and writing

Bekijk vacature »

Dennis  van DUin

Dennis van DUin

01/02/2015 11:17:05
Quote Anchor link
Beste mensen,

Ik probeer op mijn site in te loggen met sessions. Nu hoeft het niet heel erg beveiligd te zijn maar is het meer even voor het oog. Nu heb ik dit gemaakt en een deel via internet gekregen. Maar na het inloggen stuurt hij me niet door naar mijn admin_home pagina... hij gaat gewoon terug naar de login pagina. De andere beveiligde paginas kan ik nu wel bezoeken. En als ik uitlog kan dit niet meer dus hiermee weet ik dat de sessions en de login wel werk. Maar ik wil dat als hij goed inlogt hij me doorstuurt naar de admin_home

Mijn code is:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
include("config.php");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST")
{

// username and password sent from Form
$myusername=mysqli_real_escape_string($db,$_POST['username']);
$mypassword=mysqli_real_escape_string($db,$_POST['password']);


$sql="SELECT id FROM admin WHERE username='$myusername' and passcode='$mypassword'";

$result=mysqli_query($db,$sql);
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
$active=$row['active'];
$count=mysqli_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1)
{

$_SESSION['login_user']=$myusername;

header("location: admin_home.php");
exit;
}

else
{
$error="Your naam of wachtwoord is niet goed.";
}
}[
/code]

kan iemand mij hiermee helpen?

Groeten,
Dennis
Gewijzigd op 01/02/2015 11:38:31 door Dennis van DUin
 
PHP hulp

PHP hulp

24/12/2024 05:52:08
 
- Ariën  -
Beheerder

- Ariën -

01/02/2015 11:31:00
Quote Anchor link
Waar komt $myusername vandaan?

Ben je je session_start(); niet vergeten?
Gewijzigd op 01/02/2015 11:32:25 door - Ariën -
 
Dennis  van DUin

Dennis van DUin

01/02/2015 11:38:15
Quote Anchor link
Van dit stukje dat erboven staat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
include("config.php");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST")
{

// username and password sent from Form
$myusername=mysqli_real_escape_string($db,$_POST['username']);
$mypassword=mysqli_real_escape_string($db,$_POST['password']);
[
/code]

Owja en config maakt connectie met mijn database
Gewijzigd op 01/02/2015 11:41:33 door Dennis van DUin
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/02/2015 11:44:21
Quote Anchor link
Twee dingen die mogelijk zouden kunnen gebeuren en door wat te testen kun je weten wat er gebeurt:

a) hij komt niet in de if() op regel 9 en je wordt dus niet doorgestuurd naar admin_home.php. (Officeel moet location: met een Hoofdletter L geschreven worden volgens mij).

b) Je wordt wel doorgestuurd naar admin_home.php maar op admin_home.php denkt ie dat je niet bent ingelogd en wordt je weer teruggestuurd naar login.php

Eventueel kun je admin_home.php nog voor een stukje met ons delen.
 
Dennis  van DUin

Dennis van DUin

01/02/2015 11:57:33
Quote Anchor link
Bedankt voor je reactie!

Ik heb beide even gecontroleerd en ik heb het gevoel dat hij helemaal niet in de IF komt. Ik heb Location veranderd naar een hoofdletter L. En ik heb op mijn home pagina de controle weggehaald:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include('config.php');
session_start();
$user_check=$_SESSION['login_user'];

$ses_sql=mysqli_query($db,"select username from admin where username='$user_check' ");

$row=mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);

$login_session=$row['username'];

if(!isset($login_session))
{

header("Location: admin_login.php");
}

?>


Deze heet sleutel.php en ik heb dit boven aan elke pagina die beveiligd is staan door middel van de deze code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
include('lock.php');
?>


Hoe kan het dat hij de IF niet uitvoert?
 
Thomas van den Heuvel

Thomas van den Heuvel

01/02/2015 11:59:59
Quote Anchor link
^ What he said :).

Daarnaast: zet in je config.php (tijdelijk) error reporting en het weergeven van fouten aan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'stdout'); // >= 5.2.4 stderr, stdout, < 5.2.4 bool
?>


Ook: gaat mogelijk het verbinden met je database of het uitvoeren van de query mis? Wellicht wil je voor je database een eenvoudige wrapper class gebruiken waarin wat foutafhandeling zit.

EDIT:
Waarom controleer je niet rechtstreeks $_SESSION?
Gewijzigd op 01/02/2015 12:01:19 door Thomas van den Heuvel
 
Dennis  van DUin

Dennis van DUin

01/02/2015 12:07:50
Quote Anchor link
Ik krijg deze errors nu ik dat van jou neer heb gezet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
Notice: A session had already been started - ignoring session_start() in /home/haastrechtloop.nl/public_html/admin_logout.php on line 32

Warning: Cannot modify header information - headers already sent by (output started at /home/haastrechtloop.nl/public_html/admin_logout.php:22) in /home/haastrechtloop.nl/public_html/admin_logout.php on line 35
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/02/2015 12:10:37
Quote Anchor link
wat krijg je wel te zien?

Toevoeging op 01/02/2015 12:57:17:

De eerste is een notice. Blijkbaar heb je de session_start() functie al eerder aangeroepen. Op zich niet zo een ramp. De tweede is een veel gestelde vraag op dit forum.

Je mag voordat je een header() functie aanroept nog geen enkele output verzonden hebben. Output is onder andere iedere echo, ieder stukje HTML, een witregel, een spatie, een ENTER en ook onzichtbare karakters zoals bijvoorbeeld de null byte. Dit geldt voor je PHP landingspagina maar ook voor alle php bestanden die je included hebt.
 
- SanThe -

- SanThe -

01/02/2015 13:57:22
Quote Anchor link
Je set de variabele:
$login_session=$row['username'];

En dan kijk je of ie geset is.
if(!isset($login_session))

Ja dus, want dat heb je net zelf gedaan.
Dus de header wordt nooit bereikt.
 
Dennis  van DUin

Dennis van DUin

01/02/2015 16:30:16
Quote Anchor link
- SanThe - op 01/02/2015 13:57:22:
Je set de variabele:
$login_session=$row['username'];

En dan kijk je of ie geset is.
if(!isset($login_session))

Ja dus, want dat heb je net zelf gedaan.
Dus de header wordt nooit bereikt.


Dit is de logout code en deze werkt helemaal hoor...

Naar het andere ga ik even kijken!

Toevoeging op 01/02/2015 16:33:02:

Frank Nietbelangrijk op 01/02/2015 12:10:37:
wat krijg je wel te zien?

Toevoeging op 01/02/2015 12:57:17:

De eerste is een notice. Blijkbaar heb je de session_start() functie al eerder aangeroepen. Op zich niet zo een ramp. De tweede is een veel gestelde vraag op dit forum.

Je mag voordat je een header() functie aanroept nog geen enkele output verzonden hebben. Output is onder andere iedere echo, ieder stukje HTML, een witregel, een spatie, een ENTER en ook onzichtbare karakters zoals bijvoorbeeld de null byte. Dit geldt voor je PHP landingspagina maar ook voor alle php bestanden die je included hebt.


Hoe kan ik dit dan oplossen? Ik kan de php code bovenaan de pagina zetten maar dan gebeurd het nog steeds...

Toevoeging op 01/02/2015 16:42:49:

Na het inloggen herlaad hij niet de hele pagina trouwens! Hij gaat tot de Exit... en de rest wordt niet weergegeven...
 
Frank Nietbelangrijk

Frank Nietbelangrijk

01/02/2015 21:47:52
Quote Anchor link
van het begin tot je code tot de header() functie daar gaat hem om. en ook om config.php. De ?> kun je onderin de config.php gewoon weglaten dat kan voorkomen dat er nog even een spatie oid achter ?> staat die dan als output gezien wordt. voor <.php mag absoluut niets staan.

Het kan ook nog een Byte Order Mark zijn (BOM). Dit is op te lossen door met een goede editor (notepad) de bestanden opnieuw aan te maken en de inhoud te kopieren en te plakken in de nieuwe bestanden.
 
Dennis  van DUin

Dennis van DUin

02/02/2015 07:06:22
Quote Anchor link
Bedankt voor je snelle reactie!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.