Register_Globals fout met inloggen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rover ---

Rover ---

28/10/2010 16:15:12
Quote Anchor link
Ben ik weer met een vraagje ;-)
Ik heb een login script, maar omdat mijn Register_globals uit staan op de server werkt ons script niet, in iedergeval ik denk dat het daardoor komt. Zouden jullie even naar mijn script kunnen kijken en kunnen zeggen waar het fout gaat?

De fout is dat de session vars niet gevuld of bewaard worden, zouden jullie me opweg kunnen helpen?


Login:

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
36
37
38
39
40
41
42
<?php
$host
="";
$username="";
$password="";
$db_name="";
$tbl_name="";


mysql_connect("$host", "$username", "$password")or die("Error 101: Verbinding mislukt!");
mysql_select_db("$db_name")or die("Error 102: verbinding mislukt!");

$naam=$_POST['naam'];
$wachtwoord=$_POST['wachtwoord'];
$recht == 0;

$naam = stripslashes($naam);
$wachtwoord = stripslashes($wachtwoord);
$naam = mysql_real_escape_string($naam);
$wachtwoord = mysql_real_escape_string($wachtwoord);

$sql="SELECT * FROM $tbl_name WHERE Gebruikersnaam='$naam' and Wachtwoord='$wachtwoord' and Recht=0";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1)
{

session_start();
session_ID("leerling");
session_register ("naam");
session_register ("recht");



header("location:succesvoltest.php");
}

else
{
echo "Combinatie naam en wachtwoord onbekend!";
header("location:spel.php");
}

?>


Succesvol:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?
session_start();
if(!session_is_registered(myusername)){
header("location:spel.php");
}

?>



<html>
<head>
<title>Rekenen doe je zo! - Team 2 Interactive&trade;</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="stijlendoejezo.css" />
</head>
<body>



<div id="content">

<div id="sponge">
</div>

<div id="header">
<div id="subheader">
<a href="index.htm"><img src="img/thumbutton_home.png" alt="home" border="0"></img></a>&nbsp;
<a href="spel.htm"><img src="img/thumbutton_login.png" alt="spel" border="0"></img></a>&nbsp;
<a href="contact.htm"><img src="img/thumbutton_contact.png" alt="contact" border="0"></img></a>&nbsp;
</div>
</div>

<div id="bar">
</div>


<div id="b1">
<a href="index.htm"><img src="img/button_home_1.gif" onmouseover="this.src='img/button_home_2.gif';" onmouseout="this.src='img/button_home_1.gif';" / border="0"></img></a>
</div>

<div id="b2">
<a href="spel.htm"><img src="img/button_spelen_1.gif" onmouseover="this.src='img/button_spelen_2.gif';" onmouseout="this.src='img/button_spelen_1.gif';" / border="0"></img></a>
</div>

<div id="b3">
<a href="contact.htm"><img src="img/button_contact_1.gif" onmouseover="this.src='img/button_contact_2.gif';" onmouseout="this.src='img/button_contact_1.gif';" / border="0"></img></a>
</div>

<div id="textcontent">
<div id="text_leftcolumn">
<h1>Inloggen</h1>
<p> Succesvol ingelogd!
</div>

<div id="text_rightcolumn">
<h1>hallo</h2>

<p>
<a href="destroy.php">Destroy</a>
<br><br>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "Welkom  <br><br> Recht is ";
?>


</p>
</div>



</div>







<div class="bottomhome">
<br>
Team 2 Interactive&trade;
</div>

</div>



</body>
</html>

Bedankt voor jullie hulp!
Gewijzigd op 28/10/2010 16:20:26 door Rover ---
 
PHP hulp

PHP hulp

25/04/2024 12:25:36
 
Teun Hesseling

Teun Hesseling

28/10/2010 16:17:20
Quote Anchor link
$host="*******";
$username="***********";
$password="*******************";
$db_name="******************";

ik zouw maar effe al di info daar weg halen
 
- SanThe -

- SanThe -

28/10/2010 16:19:22
Quote Anchor link
Session_register() is antiek, gebruik $_SESSION['...']

Zet dit bovenin je script.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);


// rest
?>
 
Rover ---

Rover ---

28/10/2010 16:27:40
Quote Anchor link
Dan krijg ik nog steeds geen output, ik krijg mijn username en recht niet te zien na het inloggen

Toevoeging op 28/10/2010 16:37:30:

Wat wij nu hebben is dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "Welkom $naam <br><br> Recht is $recht";
?>


maar omdat $naam en $recht geen inhoud hebben, krijgen we een error.

We hebben het stukje al vervangen door dit:

if($count==1)
{
session_start();
$_SESSION['naam'] = $naam;
$_SESSION['recht'] = $recht;

Klopt dat?
Gewijzigd op 28/10/2010 16:38:17 door Rover ---
 
- SanThe -

- SanThe -

28/10/2010 16:39:50
Quote Anchor link
Script is niet echt logisch.

Zet die error_reporting op elke pagina bovenin

Paar opmerkingen
// antiek
session_register ("naam");
// antiek en moet dat niet "naam" zijn
if(!session_is_registered(myusername)){
// er wordt geen info gegeven
echo "Welkom <br><br> Recht is ";
// header zal niet werken omdat er info naar de browser is
echo "Combinatie naam en wachtwoord onbekend!";
header("location:spel.php");
 
Rover ---

Rover ---

28/10/2010 16:43:05
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "Welkom $naam <br><br> Recht is $recht";
?>


Zo is het nu, klopt dit? Zie de post hierboven over wat we hebben aangepast. Bedankt voor je hulp! :-)
 
- SanThe -

- SanThe -

28/10/2010 17:00:15
Quote Anchor link
$vars buiten quotes houden, dat voorkomt een hoop ellende en het is overzichtelijker.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo 'Welkom ' . $naam . '<br><br> Recht is ' . $recht;
?>
 
Mark Tielemans

Mark Tielemans

28/10/2010 17:21:06
Quote Anchor link
Hartstikke mooi dat je ons zover hebt kunnen helpen! Jij doet even wat wij in 4 dagen niet voor elkaar krijgen ;)

Laatste puntje. Ik snap niet precies wat waar naartoe refereert aangaande sessie variabelen. Het stukje echo staat er nu in zoals jij het net post, maar de naam is goed, het recht verschijnt niet.

Bovenin de 'ingelogd' pagina stond dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
session_start();
if(!session_is_registered(naam)){
header("location:spel.php");
}


$user = $_SESSION['naam'];
$recht = $_SESSION['recht'];
?>

Zonder de onderste verklaringen en met de (nergens anders gebruikte) $user en $recht in de echo geeft naam nog steeds de behorende output.

Daar snap ik dus helemaal niets meer van.. Hoe kan dit? En hoe krijg ik het recht nu ook zichtbaar?
 
- SanThe -

- SanThe -

28/10/2010 17:32:01
Quote Anchor link
Vervang dit (antiek)
if(!session_is_registered(naam)){
door dit:
if(!isset($_SESSION['naam'])) {

Hoe vul je nu de session met die gegevens?
Gewijzigd op 28/10/2010 17:32:23 door - SanThe -
 
Rover ---

Rover ---

28/10/2010 18:48:02
Quote Anchor link
-Fout-
Gewijzigd op 28/10/2010 18:48:53 door Rover ---
 
Mark Tielemans

Mark Tielemans

28/10/2010 18:57:26
Quote Anchor link
Ik heb de session_register's vervangen met wat jij postte:

if($count==1)
{
session_start();
$_SESSION['naam'] = $naam;
$_SESSION['recht'] = $recht;

header("location:succesvoltest.php");
}

Wat moet ik dan op de volgende pagina zetten om de data in tekst weer te geven?
nu begint die pagina, die beveiligd moet zijn, als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?
session_start();
if(!isset($_SESSION['naam']))
{

header("location:spel.php");
}


$user = $_SESSION['naam'];
$recht = $_SESSION['recht'];
?>


Het stuk dat de variabelen moet printen is ook van jou:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo 'Welkom ' . $naam . '<br><br> Recht is ' . $recht;
?>
 
Dalando De Zuil

Dalando De Zuil

28/10/2010 19:14:06
Quote Anchor link
Die laatste 2 codes zijn nu goed, maar alleen:

if($count==1)
{
session_start();
$_SESSION['naam'] = $naam;
$_SESSION['recht'] = $recht;

header("location:succesvoltest.php");
}

klopt helemaal niks van. Session_start moet helemaal bovenin de pagina.
 
Mark Tielemans

Mark Tielemans

28/10/2010 19:27:30
Quote Anchor link
De session_start() moet voor all HTML en voordat je waarden toekent aan een sessie. Dat had ik. Ik had m daar staan om pas een sessie te laten starten als je log in gegevens goed waren. Heb het echter aangepast en nu werkt het recht nog steeds niet.
 
- SanThe -

- SanThe -

28/10/2010 19:43:14
Quote Anchor link
Je hebt error_reporting aanstaan en je krijgt geen melding en je krijgt ook niks te zien? Niet echt logisch.
 
Mark Tielemans

Mark Tielemans

28/10/2010 19:59:11
Quote Anchor link
Toch is dat helaas wat er gebeurd...

Hier nogmaals beide scripts:

login.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
session_start();
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>


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
36
37
38
39
40
41
42
43
<?php
$host
="sql103.byethost12.com";
$username="b12_6433174";
$password="RunTiMe6";
$db_name="b12_6433174_Basisscholen";
$tbl_name="Leerlingen";


mysql_connect("$host", "$username", "$password")or die("Error 101: Verbinding mislukt!");
mysql_select_db("$db_name")or die("Error 102: verbinding mislukt!");

$naam=$_POST['naam'];
$wachtwoord=$_POST['wachtwoord'];
$recht == 0;

$naam = stripslashes($naam);
$wachtwoord = stripslashes($wachtwoord);
$naam = mysql_real_escape_string($naam);
$wachtwoord = mysql_real_escape_string($wachtwoord);

$sql="SELECT * FROM $tbl_name WHERE Gebruikersnaam='$naam' and Wachtwoord='$wachtwoord' and Recht=0";
$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1)
{


$_SESSION['naam'] = $naam;
$_SESSION['recht'] = $recht;



header("location:succesvoltest.php");
}


else
{
echo "Combinatie naam en wachtwoord onbekend!";
session_destroy();
header("location:spel.php");
}

?>





succesvoltest.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
session_start();
if(!isset($_SESSION['naam']))
{

header("location:spel.php");
}


$user = $_SESSION['naam'];
$recht = $_SESSION['recht'];

ini_set('display_errors', 1);
error_reporting(E_ALL);
?>


Onbelangrijk HTML

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo 'Welkom ' . $user . '<br><br> Recht is ' . $recht;
?>



Onbelangrijk HTML
 
- SanThe -

- SanThe -

28/10/2010 20:23:02
Quote Anchor link
De error_reporting helemaal bovenin zetten. Dus ook in succesvoltest.php

En dit gaat niet werken. GEEN output voor headers.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
echo "Combinatie naam en wachtwoord onbekend!";
session_destroy();
header("location:spel.php");
?>
Gewijzigd op 28/10/2010 20:24:10 door - SanThe -
 
Mark Tielemans

Mark Tielemans

28/10/2010 23:17:22
Quote Anchor link
Hmm, maar het werkt wel.. De sessie wordt gesloopt als de login niet klopt... Het enige wat niet werkt is dat het recht niet afgedrukt wordt........
 



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.