login system error
ik heb op all mn site panle paginas
ingevoegd om te controleren of je wel ingelogd ben.
maar nu krijg ik dit op elke pagina
Code (php)
1
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/mmuziek/public_html/klanten/gmforce.co.cc/users/142423/index.php:1) in /home/mmuziek/public_html/klanten/gmforce.co.cc/users/142423/check.php on line 2
weet iemand hoe ik dit verhelp hier is de check.php
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?
session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}
?>
session_start();
if(!session_is_registered(myusername)){
header("location:main_login.php");
}
?>
de sessie is geregistreerd via de login system
main_login is de login pagina.
jullie mogen het proberen op mijn test panel
login
mmuziek
mmuziek
megaword
www.gmforce.co.cc
dat fix de helft van de error.
Warning: Cannot modify header information - headers already sent by (output started at /home/mmuziek/public_html/klanten/gmforce.co.cc/users/142423/blist.php:7) in /home/mmuziek/public_html/klanten/gmforce.co.cc/users/142423/check.php on line 3
tevens weten jullie misshien hoe ik verwijs naar een bestand in een lagere map
dus www.gmforce.co.cc/main_login.php vanaf www.gmforce.co.cc/users/142423/check.php
?
hier ook al gehad...
Deze fouten heb je maar nu logt hij me niet in..
pff
word nu direct terug naar de login gestuurd. terwijl mn data correct is?
hoe fix ik dit. hier zijn de login scripts:
login succes
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
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
<?php
include "check.php";
include "config.php";
$gameid = $_SESSION['gameid'];
mysql_connect("$host", "$username", "$pass")or die("cannot connect");
mysql_select_db("$db")or die("this game panel has not been activated or does not exist please contact our support for more info");
$sql="SELECT url FROM $gameid";
if (!$result=mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($result) == 0)
{
echo 'Geen resultaten gevonden<br />';
}
else
{
while($row = mysql_fetch_assoc($result))
{
$test = $row['url'];
header( 'Location:'.$row['url']) ;
echo $row['url'].'<br />';
}
}
?>
include "check.php";
include "config.php";
$gameid = $_SESSION['gameid'];
mysql_connect("$host", "$username", "$pass")or die("cannot connect");
mysql_select_db("$db")or die("this game panel has not been activated or does not exist please contact our support for more info");
$sql="SELECT url FROM $gameid";
if (!$result=mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_num_rows($result) == 0)
{
echo 'Geen resultaten gevonden<br />';
}
else
{
while($row = mysql_fetch_assoc($result))
{
$test = $row['url'];
header( 'Location:'.$row['url']) ;
echo $row['url'].'<br />';
}
}
?>
login main
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
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
<html>
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="text" id="mypassword"></td>
</tr>
<tr>
<td width="78">game ID</td>
<td width="6">:</td>
<td width="294"><input name="gameid" type="text" id="gameid"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
</html>
<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="text" id="mypassword"></td>
</tr>
<tr>
<td width="78">game ID</td>
<td width="6">:</td>
<td width="294"><input name="gameid" type="text" id="gameid"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>
</html>
check login voor juiste data en register session
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
38
39
40
41
42
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
include "config.php";
ob_start();
$tbl_name="login"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$pass")or die("cannot connect");
mysql_select_db("$db")or die("cannot select DB");
// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$gameid=$_POST['gameid'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$gameid = stripslashes($gameid);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$gameid = mysql_real_escape_string($gameid);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and pass='$mypassword' and game_id='$gameid'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count = mysql_num_rows ($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
session_register("gameid");
header("location:login_success.php");
}
else {
echo 'Wrong Username or Password or game id try again <a href="http://www.gmforce.co.cc/main_login.php">back!</a>';
}
ob_end_flush();
?>
include "config.php";
ob_start();
$tbl_name="login"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$pass")or die("cannot connect");
mysql_select_db("$db")or die("cannot select DB");
// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$gameid=$_POST['gameid'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$gameid = stripslashes($gameid);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$gameid = mysql_real_escape_string($gameid);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and pass='$mypassword' and game_id='$gameid'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count = mysql_num_rows ($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
session_register("gameid");
header("location:login_success.php");
}
else {
echo 'Wrong Username or Password or game id try again <a href="http://www.gmforce.co.cc/main_login.php">back!</a>';
}
ob_end_flush();
?>
de sessie die geregistreerd is werkt nog op login succes.
maar daarna niet meer
Gewijzigd op 10/06/2010 11:47:46 door mar groen
Mar groen op 10/06/2010 11:37:16:
das nu het punt
er is niets eerder verzonden. geen text of enig output.
kijk
er is niets eerder verzonden. geen text of enig output.
kijk
Kijk zelf
Mar groen op 10/06/2010 11:37:16:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="nl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Serif WebPlus 11.0.6.030">
<title>Gmforce panel</title>
<?php include "check.php"; ?>
<html lang="nl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="Serif WebPlus 11.0.6.030">
<title>Gmforce panel</title>
<?php include "check.php"; ?>
En hoe de fuck noem je dat wel ooit niet? DAT IS OUTPUT! Html is toch ook tekst....
ik heb mn bericht aangepast.
Verder zie ik nergens session_start staan.
Dat is tekst.
Dat is output.
Dat mag niet.
Dat kan niet.
Dat moet niet.
Dat doe je verkeerd.
Het http protocol werkt zo dat een header vóór de data verzonden moet worden. Het is net een envelop. Op de envelop staat de adresgegevens e.d. bij het http protocol zou dat dus de headers zijn. In de envelop stop je dan de data, wat bij het http protocol is dat dus ook de tekst.
Je moet dus eerst de envelop klaar hebben (c.q. verstuurd) voordat je de data kan versturen.
En je kunt wel twee keer posten dat je je bericht hebt aangepast, misschien moet je dan ook nog even je bericht aanpassen.
@Karl Karl, zeer duidelijke uitleg!
Oetzie en mijn achternaam op 10/06/2010 12:02:26:
@Karl Karl, zeer duidelijke uitleg!
Als je gewoon dat principe onthoud (want zo werkt het ook), kan het nooit mis gaan.
TJVB tvb op 10/06/2010 11:51:07:
sessioN-register is deprecated. Gebruik $_SESSION['name'] = 'bladiebla';
Verder zie ik nergens session_start staan.
Verder zie ik nergens session_start staan.
ik heb nu
$_SESSION['name'] = 'myusername';
$_SESSION['pass'] = 'mypassword';
$_SESSION['gameid'] = 'gameid';
gedaan en de andere sessie scripts aangepast op de nieuwe sessie settings
en nog word ik direct geredirect terug naar login..
tevens heb ik ook session_start(); toegevoegt in de checklogin
Gewijzigd op 10/06/2010 12:48:13 door mar groen
Heb je deze antieke session_is_registered() ook al vervangen door $_SESSION['...']? En wat doet een password in een session? Niet doen.
SanThe Nvt op 10/06/2010 12:56:01:
Heb je deze antieke session_is_registered() ook al vervangen door $_SESSION['...']? En wat doet een password in een session? Niet doen.
het is niet letterlijk een password. tevens kan je niets met de pass word en username op zich
mijn systeem check ook de Gameid die altijd verschillend is van de game naam
en ik snap er nu niets meer van nu heb ik dit:
het moet controleren of
sessie var
name en pass en gameid bestaat zo ja ga verder zo niet redirect naar login
ik weet dat de code hierboven alleen name controleerd maar kan iemand de gefixte versie posten want ik snap geen ******* meer van mn eigen session script..
Gewijzigd op 10/06/2010 14:08:08 door mar groen
Er zijn bovenstaand al enkele oplossingen geboden. Je moet ook snappen dat we hier bij PHPhulp niet iets klakkeloos voor je gaan voorkauwen in de zin van je hele script maar even herschrijven. Lees je topic nogmaals van begin tot eind door en pas de foutjes aan. Daar leer je het beste van.
Tevens kan ik je adviseren geen php shorttags te gebruiken:
Maar de gewone php tags:
Ook las ik een vraag over bestanden uit een lagere map halen dat kan door "../" voor je url te zetten, bijvoorbeeld:
Als laatste tipje, wat ik persoonlijk fijn vindt is was spaties, maar niet teveel. Bijvoorbeeld bij de volgende code:
Code (php)
1
2
3
4
2
3
4
// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$gameid=$_POST['gameid'];
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$gameid=$_POST['gameid'];
Zet hier een spatie tussen. Zeker als je een fout eruit wil gaan halen is en leest dit wat makkelijker:
Code (php)
1
2
3
4
2
3
4
// Define $myusername and $mypassword
$myusername = $_POST['myusername'];
$mypassword = $_POST['mypassword'];
$gameid = $_POST['gameid'];
$myusername = $_POST['myusername'];
$mypassword = $_POST['mypassword'];
$gameid = $_POST['gameid'];
Niet meer dan een spatie. Persoonlijk vindt ik dit het handig en staat het ook wat overzichtelijker. Tevens viel het me al op dat je het ene stuk het wel doet en het andere stuk weer niet.
Gewijzigd op 10/06/2010 15:14:25 door Bas IJzelendoorn
Mar groen op 10/06/2010 14:01:34:
je controleerd of de variabele bestaat met isset dus:
ok luister Diep respect maar nu registreert hij helemaal geen vars meer naar de session. dus nu werkt er niets meer. login succes sql querry doet het niet want de gameid var kan niet uit de sessie gehaalt worden omdat het er niet is.
weet iemand wat de juiste register vars zijn..
ik heb http://www.php.net/manual/en/function.session-is-registered.php
door gelezen en daar worden vooral de oude die ik had gebruikt>?
de checklogin werkt niet. das zeker. omdat hij continue zegt dat ik ingelogt ben terwijl dat niet zo is want ik heb 4x logout gedraait:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();
// Unset all of the session variables.
$_SESSION = array();
// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// Finally, destroy the session.
session_destroy();
?>
// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();
// Unset all of the session variables.
$_SESSION = array();
// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// Finally, destroy the session.
session_destroy();
?>
dit is mijn check.php
Code (php)
omdat de vars die gezet zijn in checklogin.php niet worden meegenomen naar login_succes.php of check.php die checkt of je ingelogt ben.
dit heb ik natuurlijk op de ouderwetse manier getest door het via echo te latenzien
als je nu inlogt zie je
gameid = <<< hier had de geregistreerde sessie gameid naast moeten staan.
Notice: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
In query: SELECT url FROM in /home/mmuziek/public_html/klanten/gmforce.co.cc/login_success.php on line 12
Gewijzigd op 10/06/2010 16:30:52 door mar groen
Mar groen op 10/06/2010 16:04:31:
Hier staat: Als de name niet bestaat doe niks, bestaat die wél ga dan naar login.
ok nog 1 probleem!!!
hij registreert NIETS
geen enkele var word opgeslagen..
geen enkele sessie word opgeslagen NIETS
dus dan kan je moeilijk ingelogd zijn..
Waar vul je de session?
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
38
39
40
41
42
43
44
45
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
44
45
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
include "config.php";
session_start();
ob_start();
$tbl_name="login"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$pass")or die("cannot connect");
mysql_select_db("$db")or die("cannot select DB");
// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$gameid=$_POST['gameid'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$gameid = stripslashes($gameid);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$gameid = mysql_real_escape_string($gameid);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and pass='$mypassword' and game_id='$gameid'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count = mysql_num_rows ($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
$_SESSION['name'] = $myusername;
$_SESSION['pass'] = $mypassword;
$_SESSION['gameid'] = $gameid;
header("location:login_success.php");
}
else {
echo 'Wrong Username or Password or game id try again <a href="http://www.gmforce.co.cc/main_login.php">back!</a>';
}
ob_end_flush();
?>
error_reporting(E_ALL);
ini_set('display_errors', 'On');
include "config.php";
session_start();
ob_start();
$tbl_name="login"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$pass")or die("cannot connect");
mysql_select_db("$db")or die("cannot select DB");
// Define $myusername and $mypassword
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$gameid=$_POST['gameid'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$gameid = stripslashes($gameid);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$gameid = mysql_real_escape_string($gameid);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and pass='$mypassword' and game_id='$gameid'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count = mysql_num_rows ($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
$_SESSION['name'] = $myusername;
$_SESSION['pass'] = $mypassword;
$_SESSION['gameid'] = $gameid;
header("location:login_success.php");
}
else {
echo 'Wrong Username or Password or game id try again <a href="http://www.gmforce.co.cc/main_login.php">back!</a>';
}
ob_end_flush();
?>