[PHP] Pagina laadt niet :?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo,
Ik ben bezig met een inlog systeem en nu laadt de pagina waar wordt gekeken of men is ingelogd niet.

Dit is de betreffende pagina, test.php:
PHP:
1
2
3
4
5
6
7
8
<?
session_start();

include('controleerlogin.php');

echo "Beveiligde c o n t e n t";

?>


controleerlogin.php
PHP:
1
2
3
4
5
6
7
8
9
if($_SESSION['ingelogd'] == 1){
    //men is ingelogd
    echo "Gebruikersnaam: " . $_SESSION['gebruikersnaamDB'];
    session_register("gebruikersnaamDB");
    session_register("ingelogd");
}else{
    //scripts stoppen en naar de loginpagina
    exit("Je moet ingelogd zijn om deze pagina te bekijken.<script>window.location.href = \"login.php\";</script>");
}


login2.php
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
<?
session_start(); 

// ff connecten met mysql
include('mysqlconnect.php');

// gegevens uit het formulier ophalen
$gebruikersnaam = $_POST['gebruikersnaam'];
$wachtwoord = md5($_POST['wachtwoord']);

// gegevens uit de db halen
$sqlstring = "SELECT * FROM gebruikers WHERE gebruikersnaam = '$gebruikersnaam'";
$result = mysql_query($sqlstring) or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());

$gebruikersnaamDB = $row['gebruikersnaam'];
$wachtwoordDB = $row['md5Wachtwoord'];

// kijken of het wachtwoord klopt
if($gebruikersnaamDB == $gebruikersnaam && $wachtwoordDB == $wachtwoord){
    echo "Succesvol ingelogd";
    // als men is ingelogd krijg $ingelogd waarde 1
    $ingelogd = 1;
    session_register("gebruikersnaamDB");
    session_register("ingelogd");
    // naar de main pagina
    echo "\n<SCRIPT LANGUAGE=\"JavaScript\">\n<!--\n    window.location=\"http://www.fok.nl\";\n//-->\n</script>";
}else{
    echo "Gebruikersnaam of wachtwoord klopt niet";
}
?>


Weet iemand wat ik fout doe?

[ Voor 34% gewijzigd door Verwijderd op 25-06-2004 12:02 . Reden: Actualiseren ]


Acties:
  • 0 Henk 'm!

  • Morax
  • Registratie: Mei 2002
  • Laatst online: 20-09 00:30
Verwijderd schreef op 25 juni 2004 @ 01:51:
Weet iemand wat ik fout doe?
Nee, want je hebt nog niet verteld WAT er precies fout gaat. Misschien wel zo handig :)

edit:
Pagina laadt niet als titel uiteraard |:( Het scherm blijft dus leeg? Of blijf je maar de melding krijgen dat je niet ingelogd bent? In welk opzicht laad hij niet? :)


Edit2:
Je controleert met $ingelogd of je ingelogd bent of niet. Maar $ingelogd is geen session variabele, en bestaat dus niet meer op de volgende pagina. Is dat misschien het probleem :? :)

[ Voor 51% gewijzigd door Morax op 25-06-2004 02:59 ]

What do you mean I have no life? I am a gamer, I got millions!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
test.php wil dus niet laden(duurt oneindig lang totdat die pagina komt).
En die $_session heb ik nu ff veranderd, maar het werkt nog steeds niet :?

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
test.php include controleer.php. Hierin controleer je of de variabele $_SESSION['ingelogd'] is gezet. Die is niet gezet, want die heb je nergens gezet. Daarna komt deze geniale regel:
PHP:
1
2
exit("Je moet ingelogd zijn om deze pagina te bekijken.
<script>window.location.href = \"test.php\";</script>");

Je stuurt iemand vanuit test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar hè, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, naar test, snap je?

Er is ook negens een formulier te bekennen, hoe moet je nu inloggen?

Er staat maar één persoon in je database?

[ Voor 119% gewijzigd door Skaah op 25-06-2004 11:45 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Als je niet in bent gelogd dan redirect je weer naar test.php en die checkt weer of je bent ingelogd en dat redirect weer naar test.php... nogal logische dat je dan nooit een pagina te zien krijgt.

Je komt nooit op login2.php uit....

Acties:
  • 0 Henk 'm!

  • HyperioN
  • Registratie: April 2003
  • Laatst online: 24-05 15:42
Verwijderd schreef op 25 juni 2004 @ 01:51:
[...]
login2.php
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
[...]
// gegevens uit de db halen
$sqlstring = "SELECT * FROM gebruikers";
$result = mysql_query($sqlstring) or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());

$gebruikersnaamDB = $row['gebruikersnaam'];
$wachtwoordDB = $row['md5Wachtwoord'];
[...]
}
?>

Weet iemand wat ik fout doe?
Je geeft niet precies aan wat er fout gaat, maar dit is in ieder geval niet goed:
Als ik het zo goed zie, haal je dus alle gebruikersnamen met bijbehorende md5 passwords op. je zegt, $gebruikersnaamDB = $row['gebruikersnaam'];
dit kan dus niet, want er is een hele array van gebruikersnamen.
je moet dus je query aanpassen naar:
PHP:
1
$sqlstring = "SELECT * FROM gebruikers WHERE gebruikersnaam= $_POST['gebruikersnaam']";

[ Voor 40% gewijzigd door HyperioN op 25-06-2004 11:48 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat was idd nog een klein foutje ja :D . test.php, moest daar login.php zijn :)

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
HyperioN. schreef op 25 juni 2004 @ 11:46:
[...]

Je geeft niet precies aan wat er fout gaat, maar dit is in ieder geval niet goed:
Als ik het zo goed zie, haal je dus alle gebruikersnamen met bijbehorende md5 passwords op. je zegt, $gebruikersnaamDB = $row['gebruikersnaam'];
dit kan dus niet, want er is een hele array van gebruikersnamen.
je moet dus je query aanpassen naar:
PHP:
1
$sqlstring = "SELECT * FROM gebruikers WHERE gebruikersnaam= $_POST['gebruikersnaam']";
Die gaat niet werken, kijk maar goed naar de quotes.
PHP:
1
$sqlstring = 'SELECT * FROM gebruikers WHERE gebruikersnaam= "'.addslashes($_POST['gebruikersnaam']).'" AND md5Wachtwoord = "'.md5($_POST['wachtwoord'].'"';

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Die sql string was eigenlijk nog test-fase, die ik nog niet had aangepast.
Maar test.php laadt nog steeds niet, ik kreeg op login2.php de volgende warning:

Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

Heeft dat er misschien iets mee te maken?


edit: Volgens mij heeft het iets te maken met de instellingen van php/apache, want als ik een simpele pagina met sessie's maak, dan houd ik het "laad probleem"......

[ Voor 35% gewijzigd door Verwijderd op 25-06-2004 12:22 ]


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Je gebruikt session_register en $_SESSION door elkaar. Of het een, óf het ander.

Tip: schrap session_register en zet gewoon al je vars in de $_SESSION superglobal.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Volgens mij heb ik de server verkeerd ingesteld, zelfs het volgende script werkt niet(pagina blijft oneindiglang laden):
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
if (!isset($_SESSION['count'])) {
   $_SESSION['count'] = 0;
} else {
   $_SESSION['count']++;
   echo $count;
}

?> 

Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Dit moet 'm zijn:
PHP:
1
2
3
4
5
6
7
8
9
10
<?php
session_start();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
if (!isset($_SESSION['count'])) {
   $_SESSION['count'] = 0;
} else {
   $_SESSION['count']++;
}
echo $_SESSION['count'];
?>

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
@Skaah
Bedankt voor je hulp, maar aan het script ligt het niet, want dat van jouw werkt ook niet bij mij(lokaal). Dus er is iets mis met de instellingen van apache/php, maar wat :{

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:06

crisp

Devver

Pixelated

Verwijderd schreef op 25 juni 2004 @ 15:16:
@Skaah
Bedankt voor je hulp, maar aan het script ligt het niet, want dat van jouw werkt ook niet bij mij(lokaal). Dus er is iets mis met de instellingen van apache/php, maar wat :{
check je php.ini mbt je sessie-instellingen; waarschijnlijk kan hij de sessie-bestanden nergens wegschrijven ;)

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
Tien tegen een dat de directory nog op /tmp staat, en dat de TS op Windows draait.

Je temp dir moet iets als c:\windows\temp zijn.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Lijkt ook dat het dat is ja. Maar als ik het verander in: session.save_path = "c:\php\tmp" of session.save_path = c:\php\tmp Dan blijft er toch in de phpinfo() session.save_path /tmp /tmp staan. Na een reboot van mijn computer en opnieuw opstarten van apache verander het niet :?

Vreemd, is het niet?


hier de phpinfo:
code:
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
session
Session Support  enabled  
Registered save handlers  files user  

Directive Local Value Master Value 
session.auto_start Off Off 
session.bug_compat_42 Off Off 
session.bug_compat_warn On On 
session.cache_expire 180 180 
session.cache_limiter nocache nocache 
session.cookie_domain no value no value 
session.cookie_lifetime 0 0 
session.cookie_path / / 
session.cookie_secure Off Off 
session.entropy_file no value no value 
session.entropy_length 0 0 
session.gc_divisor 1000 1000 
session.gc_maxlifetime 1440 1440 
session.gc_probability 1 1 
session.name PHPSESSID PHPSESSID 
session.referer_check no value no value 
session.save_handler files files 
session.save_path /tmp /tmp 
session.serialize_handler php php 
session.use_cookies On On 
session.use_only_cookies Off Off 
session.use_trans_sid Off Off

[ Voor 60% gewijzigd door Verwijderd op 25-06-2004 18:06 ]


Acties:
  • 0 Henk 'm!

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Pas je de juiste php.ini aan? Of komt dezelfde key misschien twee keer voor?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
bigbeng schreef op 25 juni 2004 @ 18:19:
Pas je de juiste php.ini aan? Of komt dezelfde key misschien twee keer voor?
Ja de php.ini in de windows dir. Nee, de key komt maar 1 keer voor.
Pagina: 1