Login script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Jos Verstraeten

Jos Verstraeten

16/08/2013 17:08:25
Quote Anchor link
Kan iemand mij helpen, alvast bedankt.
Dit script dient om in te loggen op de site,
(dit is maar een deel van het script).

Het enige probleem is dat je niet wordt doorgestuurd nadat je met correcte gegevens hebt ingelogd terwijl
in de database onder de tabelnaam sessions wel degelijk de gegevens worden gestockeerd.

Wie kan mij helpen?

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
if(!$error){    
$selectleden = mysql_query("SELECT * FROM users WHERE inlog='$inlog' AND wachtwoord = '$ww'");
     if(mysql_num_rows($selectleden)) {
                                      // Ingelogd
                                      $hash = md5(uniqid(rand(), true));
                                      $get_id = mysql_query("SELECT id FROM users WHERE inlog='$inlog' AND wachtwoord = '$ww'");
                                      $fetch_id = mysql_fetch_assoc($get_id);
                                      $insert_session = mysql_query("INSERT INTO sessions (id, userid, hash, logintime) VALUES ('','".$fetch_id['id']."','".$hash."',NOW())");

                                      if ($insert_session) {
                                         setcookie ("id", $fetch_id['id'],time()+$sessiontime);
                                         setcookie ("hash", $hash,time()+$sessiontime);
                                         header('Window-target: _parent');
                                         header('location:beveiligd.html');
                                                           }
else {
                                                           $error="FOUT";
                                                           exit();
                                                           }
                                      }
  else {
                                      // Foute pass
                                      $error = "Fout wachtwoord!";
                                      }



 }                                                                          
}


if(!$error){
echo $error;}

mysql_close($link);

?>
 
PHP hulp

PHP hulp

18/04/2024 04:05:27
 
- Ariën  -
Beheerder

- Ariën -

16/08/2013 17:10:51
Quote Anchor link
Voglens mij is header('Window-target: _parent'); geen geldige header?
 
Ramon van Dongen

Ramon van Dongen

16/08/2013 17:11:12
Quote Anchor link
en als je header('Window-target: _parent'); weg haalt en location in header('location:beveiligd.html'); laat beginnen met een hoofdletter L ?
 
Jos Verstraeten

Jos Verstraeten

16/08/2013 17:12:22
Quote Anchor link
Nee werkt nog steeds niet :(
 
- Ariën  -
Beheerder

- Ariën -

16/08/2013 17:12:51
Quote Anchor link
Zet je error_reporting() eens op E_ALL en display_errors op 'on'.
Want wat gebeurt er wel?
Gewijzigd op 16/08/2013 17:13:28 door - Ariën -
 
Ramon van Dongen

Ramon van Dongen

16/08/2013 17:16:28
Quote Anchor link
Wordt het stuk tussen de if van if($insert_session) wel echt uitgevoerd? En bij zo ja; hoe weet je dat?

Oftewel: komt het script wel echt bij die header('Location: ...'); uit?
Gewijzigd op 16/08/2013 17:17:04 door Ramon van Dongen
 
Jos Verstraeten

Jos Verstraeten

16/08/2013 17:17:03
Quote Anchor link
Ik kan niet aan het .ini bestand ...
 
Ramon van Dongen

Ramon van Dongen

16/08/2013 17:17:36
Quote Anchor link
Hoeft ook niet, zet dit boven je php bestand:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);
?>
Gewijzigd op 16/08/2013 17:18:01 door Ramon van Dongen
 
Jos Verstraeten

Jos Verstraeten

16/08/2013 17:18:09
Quote Anchor link
Ik ben niet zeker dat dit deel wordt uitgevoerd:

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
<?php
                                      if ($insert_session) {
                                         setcookie ("id", $fetch_id['id'],time()+$sessiontime);
                                         setcookie ("hash", $hash,time()+$sessiontime);
                                         header('Window-target: _parent');
                                         header('location:beveiligd.html');
                                                           }
else {
                                                           $error="FOUT";
                                                           exit();
                                                           }
                                      }
  else {
                                      // Foute pass
                                      $error = "Fout wachtwoord!";
                                      }

?>


Ik weet echter wel dat ik in de tabel sessions telkens rows bij krijg tijdens het proberen ..
 
- Ariën  -
Beheerder

- Ariën -

16/08/2013 17:19:23
Quote Anchor link
Als je het niet weker weer? Waarom controleer je dat dan niet?
Gooi eens een echo in elk statement, puur om te debuggen.

En wat gebeurt er nu juist wel?
Gewijzigd op 16/08/2013 17:20:43 door - Ariën -
 
Ramon van Dongen

Ramon van Dongen

16/08/2013 17:19:52
Quote Anchor link
Quote:
Ik ben niet zeker dat dit deel wordt uitgevoerd

Dat is toch wel handig om te weten, misschien werkt je header wel maar komt het script er nooit

zet net boven je setcookie regels eens:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo 'Ja hij komt hier!';
?>



---
offtopic: grapig dat ik op dit forum steeds hetzelfde op bijna hetzelfde moment als een ander post ;-) - Aar -
Gewijzigd op 16/08/2013 17:20:54 door Ramon van Dongen
 
Jos Verstraeten

Jos Verstraeten

16/08/2013 17:24:17
Quote Anchor link
Ik heb het eens geprobeerd door het gewoon op te roepen in plaats van via het script en als ik dan

$inlog = 'gebruikersnaam';
$ww= 'wachtwoord';

dit invul met de juiste gegevens lukt het wel.
Dus dan zit het probleem niet in de code die ik net toonde

Toevoeging op 16/08/2013 17:25:50:

Dus volgens mij wil hij gewoon niet redirecten ...
 
Ramon van Dongen

Ramon van Dongen

16/08/2013 17:26:33
Quote Anchor link
Quote:
door het gewoon op te roepen
'het' ?

Ik denk dat het voor jezelf het gemakkelijkste is om een betere foutcontrole toe te gaan passen op o.a. je query's. Als een query nu niet lukt of fout is, gaat je script gewoon door zonder dat je weet dat er iets fout is gegaan. Nu loop je tegen problemen aan.
 
- Ariën  -
Beheerder

- Ariën -

16/08/2013 17:27:27
Quote Anchor link
Jos, heb je onze tips al toegepast, en bij elk onderdeel van je statement een aparte echo geplaatst?

En waar komen $inlog en $ww vandaan?
Gewijzigd op 16/08/2013 17:28:11 door - Ariën -
 
Jos Verstraeten

Jos Verstraeten

16/08/2013 17:28:19
Quote Anchor link
als ik het script login.php uitvoer dan werkt het helemaal.
Als ik het oproep via mijn form krijg ik enkel een row in sessions maar wordt ik niet doorgestuurd.
 
- Ariën  -
Beheerder

- Ariën -

16/08/2013 17:30:39
Quote Anchor link
Dan lijkt het erop dat $ww en $login niet bestaan.
 
Ramon van Dongen

Ramon van Dongen

16/08/2013 17:30:59
Quote Anchor link
Hier zit wellicht ook al een fout:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
"INSERT INTO sessions (id, userid, hash, logintime) VALUES ('',


Zit op id een auto_increment? Zo ja; kun je het ook zo doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
"INSERT INTO sessions (userid, hash, logintime) VALUES ('".mysql_real_escape_string($fetch_id['id'])."','".mysql_real_escape_string($hash)."',NOW())");
 
Jos Verstraeten

Jos Verstraeten

16/08/2013 17:32:08
Quote Anchor link
Toch wel want als je gaat kijken in de database wordt de juiste userid getoond.
 
Ramon van Dongen

Ramon van Dongen

16/08/2013 17:32:37
Quote Anchor link
en je doet

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if(mysql_num_rows($selectleden))


probeer dit eens met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if(mysql_num_rows($selectleden) == 1){


heb je bij alle query's al een foutafhandeling (mysql_error) bijgezet?
Gewijzigd op 16/08/2013 17:35:31 door Ramon van Dongen
 
Jos Verstraeten

Jos Verstraeten

16/08/2013 17:39:12
Quote Anchor link
Ramon van Dongen op 16/08/2013 17:32:37:
en je doet

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if(mysql_num_rows($selectleden))


probeer dit eens met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
if(mysql_num_rows($selectleden) == 1){


heb je bij alle query's al een foutafhandeling (mysql_error) bijgezet?


Ja foutafhandeling gedaan, krijg geen errors.
 
Ramon van Dongen

Ramon van Dongen

16/08/2013 17:41:13
Quote Anchor link
Quote:
Ja foutafhandeling gedaan, krijg geen errors.

Met alle respect, maar ik geloof het niet 100%.

Dus jij beweert dat:
- Alle query's kloppen (geen mysql_errors)
- De php code 100% klopt (door error_reporting geen errors)
- De if statement uitgevoerd wordt (je hebt een echo ertussen gezet)
- Je geen foutmelding van de header krijgt (headers already send ofzo)

Maar het toch niet werkt... ?
 

Pagina: 1 2 3 volgende »



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.