Sessions werken niet goed
Hij logt wel in en zegt dat het goed is, soms worden de gegevens dan nog getoond zoals het hoort soms ook niet, maar in ieder geval als je op een link klikt vergeet hij het weer. Het gaat om www.ge64.nl/alpha/
Om even te testen, username Lalala en wachtwoord bla
Dit is de code voor het inloggen:
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
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
<?php
if(!empty($_POST['login_name']) AND !empty($_POST['login_pass']))
{
$login['name'] = $_POST['login_name'];
$login['pass'] = md5($_POST['login_pass']);
connectdb();
$query = "SELECT * FROM users WHERE `name` = '" . $login['name'] . "'";
$result = mysql_query($query);
$num = mysql_num_rows($result);
if ($num < 1) { $loginattempt = "wrong user"; }
mysql_close();
$i=0;
while ($i < $num) {
$name = mysql_result($result,$i,'name');
$pass = mysql_result($result,$i,'pass');
$i++;
}
if($pass == $login['pass'])
{
$_SESSION['name'] = $login['name'];
$_SESSION['pass'] = $login['pass'];
$loginattempt = "successful";
}
else
{
$loginattempt = "wrong pass";
}
}
?>
if(!empty($_POST['login_name']) AND !empty($_POST['login_pass']))
{
$login['name'] = $_POST['login_name'];
$login['pass'] = md5($_POST['login_pass']);
connectdb();
$query = "SELECT * FROM users WHERE `name` = '" . $login['name'] . "'";
$result = mysql_query($query);
$num = mysql_num_rows($result);
if ($num < 1) { $loginattempt = "wrong user"; }
mysql_close();
$i=0;
while ($i < $num) {
$name = mysql_result($result,$i,'name');
$pass = mysql_result($result,$i,'pass');
$i++;
}
if($pass == $login['pass'])
{
$_SESSION['name'] = $login['name'];
$_SESSION['pass'] = $login['pass'];
$loginattempt = "successful";
}
else
{
$loginattempt = "wrong pass";
}
}
?>
En hier is de code die kijkt of je ingelogd bent:
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
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
<?php
function islogin() {
if(!isset($_SESSION['name']) OR !isset($_SESSION['pass'])) {
return NULL;
} else {
global $sqlhost, $sqluser, $sqlpass, $sqldb;
mysql_connect($sqlhost,$sqluser,$sqlpass);
mysql_select_db($sqldb);
$query = "SELECT * FROM users WHERE `name` = '" . $_SESSION['name'] . "'";
$result = mysql_query($query);
$num = mysql_numrows($result);
mysql_close();
$i=0;
while ($i < $num) {
$name = mysql_result($result,$i,'name');
$pass = mysql_result($result,$i,'pass');
$i++; }
if($pass == $_SESSION['pass']) {
return $_SESSION['name'];
} }
}
?>
function islogin() {
if(!isset($_SESSION['name']) OR !isset($_SESSION['pass'])) {
return NULL;
} else {
global $sqlhost, $sqluser, $sqlpass, $sqldb;
mysql_connect($sqlhost,$sqluser,$sqlpass);
mysql_select_db($sqldb);
$query = "SELECT * FROM users WHERE `name` = '" . $_SESSION['name'] . "'";
$result = mysql_query($query);
$num = mysql_numrows($result);
mysql_close();
$i=0;
while ($i < $num) {
$name = mysql_result($result,$i,'name');
$pass = mysql_result($result,$i,'pass');
$i++; }
if($pass == $_SESSION['pass']) {
return $_SESSION['name'];
} }
}
?>
Ziet iemand waarom het niet lukt? Ik heb echt alles geprobeerd
28-02-2006 12:10 - edit door PHPerik - highlighting van code toegevoegd voor leesbaarheid
Gewijzigd op 28/02/2006 12:11:00 door Jeroen van de Ven
moet altijd hè...
wat zou er moeten staan, en wat staat er als het 'niet goed gaat'
session_start(); staat helemaal bovenaan index.php, en alle handelingen gaan via index.php dus dat kan geen probleem zijn. Hij doet het bij mij thuis trouwens wel he.
Als het goed gaat staat er waar eerst de login form staat een lijstje met stats, maar als hij dus uitlogt zie je daar weer de login form Of je ziet het lijstje wel maar username is leeg en alle getallen zijn 0. Bij Home Base zou je een uitgebreidere lijst moeten vinden van de gebruiker die ingelogd is maar die doet het dus niet omdat hij je uitlogt zodra je op de link klikt.
je doet :
$_SESSION['xxx']="bla";
maar dat kon in PHP4 nog niet
dus moest het zo:
$xxx="bla";
session_register("xxx");
Wat is eigenlijk de reden dat veel mensen liever PHP4 hebben dan PHP5?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
// Use of session_register() is deprecated
$barney = "A big purple dinosaur.";
session_register("barney");
// Use of $_SESSION is preferred, as of PHP 4.1.0
$_SESSION["zim"] = "An invader from another planet.";
// The old way was to use $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants.";
?>
// Use of session_register() is deprecated
$barney = "A big purple dinosaur.";
session_register("barney");
// Use of $_SESSION is preferred, as of PHP 4.1.0
$_SESSION["zim"] = "An invader from another planet.";
// The old way was to use $HTTP_SESSION_VARS
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants.";
?>
Dat staat op de PHP site, dus vanaf 4.10 moet het wel kunnen. Volgens phpinfo(); is het 4.3 die op de server staat...
maar voo ontwikkel ontgeving(je localhost),
is PHP 5 prima
Ik heb het geprobeerd:
$sname = $login['name'];
session_register("sname");
$spass = $login['pass'];
session_register("spass");
//$_SESSION['name'] = $login['name'];
//$_SESSION['pass'] = $login['pass'];
Maar het werkt nog steeds niet :(
Gewijzigd op 27/02/2006 17:27:00 door Jeroen van de Ven
Het is niet $num = mysql_numrows($result);
maar $num = mysql_num_rows($result);
Edit: Nog een keer alles gecheckt, gesaved, geupload, geen verschil :(
Gewijzigd op 27/02/2006 17:56:00 door Jeroen van de Ven
error_reporting(E_ALL);
probeer eens gewoon:
ik vind dit wel heel raar, ik loop nog ff 1 keerjte goed jou script na
Ik kreeg eerst 2 fouten, toen refreshte die en kreeg ik een site te zien. Kortom hij werkt.
Zal ik even de hele source uploaden in een zip
http://www.ge64.nl/files/src.zip
Gewijzigd op 27/02/2006 20:03:00 door Jeroen van de Ven
Ik wachtte en wachtte, tot ze het de volgende dag weer deden. =)
wat is je host eigenlijk?
PurpleMadness:
Ik had dat een paar weken geleden ook, precies hetzelfde..
Ik wachtte en wachtte, tot ze het de volgende dag weer deden. =)
wat is je host eigenlijk?
Ik wachtte en wachtte, tot ze het de volgende dag weer deden. =)
wat is je host eigenlijk?
HJHosting.nl (goedkoop)
Ik denk niet dat er veel mensen zijn die de .zip gaan downloaden, uitpakken en dan nog bekijken. Van codes moet je gewoon het relavante stukje hier plaatsen.
Quote:
Ik heb ook de relevante code gepost, maar ik weet nog niet precies waar het aan ligt dus post ik ook de fele code maar...