inlogsysteem / "eigen space"
ik heb een werkend inlogsysteem, voor zowel bezoekers als admin.
Indien er ingelogd wordt door een bezoeker komt hij uit op nav.php
Bezoekers hebben dus geen eigen space. Ik zou graag willen dat als een bezoeker een profiel aan maakt hij gelijk een extentsie krijgt bijv:. http://www.mijnsite.nl/bezoeker1 , http://www.mijnsite.nl/bezoeker2 etc.
In phpmyadmin heb ik 2 databases waarvan 1 genaamd users. Indien iemand zich aanmeld wordt de bezoeker opgenomen in de database.
Indien jullie meer informatie nodig hebben hoor ik het graag!
Gr,
Thomas
In functions.php
======================================
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
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
<?php
function show_login(){
if (!isset($_SESSION[active])){
?>
<div id="loginbox">
<form method="POST" action="<?=makelink('login');?>">
<h1><?=LOG_IN;?></h1>
<?=USERNAME;?>:<br>
<input type="text" name="username"><br><br>
<?=PASSWORD;?>:<br>
<input id="loginboxinput" type="password" name="password"><br>
<input id="loginboxinput" type="checkbox" name="remember" value="remember"><?=REMEMBER_ME;?><br>
<input id="loginboxinput" type="submit" name="submit" value="<?=LOGIN;?>">
<br><br>
<a href="<?=makelink('request password');?>"><?=PASSWORD_FORGOT;?></a>
</form>
</div>
<?
}
if (isset($_SESSION[active])){
?>
<div id="loginbox">
<h1><?=ACCOUNT_MENU;?></h1>
<?
require('cp/includes/modules/'.$_SESSION[type].'/nav.php');
}
?>
</div>
<?
}
?>
function show_login(){
if (!isset($_SESSION[active])){
?>
<div id="loginbox">
<form method="POST" action="<?=makelink('login');?>">
<h1><?=LOG_IN;?></h1>
<?=USERNAME;?>:<br>
<input type="text" name="username"><br><br>
<?=PASSWORD;?>:<br>
<input id="loginboxinput" type="password" name="password"><br>
<input id="loginboxinput" type="checkbox" name="remember" value="remember"><?=REMEMBER_ME;?><br>
<input id="loginboxinput" type="submit" name="submit" value="<?=LOGIN;?>">
<br><br>
<a href="<?=makelink('request password');?>"><?=PASSWORD_FORGOT;?></a>
</form>
</div>
<?
}
if (isset($_SESSION[active])){
?>
<div id="loginbox">
<h1><?=ACCOUNT_MENU;?></h1>
<?
require('cp/includes/modules/'.$_SESSION[type].'/nav.php');
}
?>
</div>
<?
}
?>
======================================================
in login.php
======================================================
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
46
47
48
49
50
51
52
53
54
55
56
57
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
46
47
48
49
50
51
52
53
54
55
56
57
<?
//error_reporting(E_ALL);
//ini_set('display_errors', '1');
?>
<div id="video">
<form method="POST" action="<?=makelink('login');?>">
<h1><?=LOG_IN;?></h1>
<?
echo "<p class='fail'>";
$username = $_POST['username'];
$password = md5($_POST['password']);
if(isset($_POST['submit']) AND ($username=="" || $password=="")) {
echo FILL_EVERYTHING;
echo "<br><br>";
$fail=1;
}
elseif(isset($_POST['submit']) && $username!="" && $password!=""){
$result = mysql_query("SELECT * FROM users WHERE name = '" . $username . "' AND password = '" . $password ."'");
if(mysql_num_rows($result) < 1){
echo PASS_USER_FAIL;
echo "<br><br>";
$fail=1;
}
else{
while($row = mysql_fetch_array($result))
{
$type=$row['type'];
$language=$row['language'];
$id = $row['id'];
}
$_SESSION['active']= $username;
$_SESSION['type'] = $type;
$_SESSION['language'] = $language;
$_SESSION['id'] = $id;
header('location: index.php');
}
mysql_close($con);
}
if($fail==1 OR !isset($_POST['submit'])){
echo "</p>";
?>
<?=USERNAME;?>:<br>
<input type="text" name="username"><br><br>
<?=PASSWORD;?>:<br>
<input id="loginboxinput" type="password" name="password"><br>
<input id="loginboxinput" type="checkbox" name="remember" value="remember"><?=REMEMBER_ME;?><br>
<input id="loginboxinput" type="submit" name="submit" value="<?=LOGIN;?>">
<br><br>
<a href="<?=makelink('request password');?>"><?=PASSWORD_FORGOT;?></a>
</form>
</div>
<?
}
?>
//error_reporting(E_ALL);
//ini_set('display_errors', '1');
?>
<div id="video">
<form method="POST" action="<?=makelink('login');?>">
<h1><?=LOG_IN;?></h1>
<?
echo "<p class='fail'>";
$username = $_POST['username'];
$password = md5($_POST['password']);
if(isset($_POST['submit']) AND ($username=="" || $password=="")) {
echo FILL_EVERYTHING;
echo "<br><br>";
$fail=1;
}
elseif(isset($_POST['submit']) && $username!="" && $password!=""){
$result = mysql_query("SELECT * FROM users WHERE name = '" . $username . "' AND password = '" . $password ."'");
if(mysql_num_rows($result) < 1){
echo PASS_USER_FAIL;
echo "<br><br>";
$fail=1;
}
else{
while($row = mysql_fetch_array($result))
{
$type=$row['type'];
$language=$row['language'];
$id = $row['id'];
}
$_SESSION['active']= $username;
$_SESSION['type'] = $type;
$_SESSION['language'] = $language;
$_SESSION['id'] = $id;
header('location: index.php');
}
mysql_close($con);
}
if($fail==1 OR !isset($_POST['submit'])){
echo "</p>";
?>
<?=USERNAME;?>:<br>
<input type="text" name="username"><br><br>
<?=PASSWORD;?>:<br>
<input id="loginboxinput" type="password" name="password"><br>
<input id="loginboxinput" type="checkbox" name="remember" value="remember"><?=REMEMBER_ME;?><br>
<input id="loginboxinput" type="submit" name="submit" value="<?=LOGIN;?>">
<br><br>
<a href="<?=makelink('request password');?>"><?=PASSWORD_FORGOT;?></a>
</form>
</div>
<?
}
?>
====================================================
Gebruik code tags voor het weergeven van je code[/modedit]
Gewijzigd op 30/06/2010 18:37:27 door Joren de Wit
Dan kun je makkelijk zo doen
Code (php)
nu jij verder.
Gewijzigd op 30/06/2010 16:36:03 door Dalando De Zuil
Ga aub geen mappen aanmaken.
Bedankt voor je post!
Maar dat "makkelijk" kan je gerust weg laten dalando ;)
Waar moet ik dit stukje script invoegen?
Ik krijg alleen maar errors.
En durf je die ook te delen ;)?
Ik durf ze wel te delen, alleen de error is dat de site niet meer geladen wordt. Gewoon een mooi wit venstertje.
Heb je misschien suggesties?
Die maakt het verschil tussen een abstracte pas-geschilderde witte pagina, of een cryptische, graffiti-achtige maar duidelijke melding in Times New Roman.
Hmm.. de site werkt zowel met als zonder de regels. Ik heb de comment regels weg gehaald. Just to be sure :)
Ik heb helaas het "Elke-gebruiker-wilt-een-eigen-space-probleem" nog niet opgelost.
De foutmelding(en) die ik krijg zijn:
Warning: Cannot modify header information - headers already sent by (output started at /Applications/XAMPP/xamppfiles/htdocs/itradestar/index.php:14) in /Applications/XAMPP/xamppfiles/htdocs/iTradestar/includes/modules/login.php on line 40
Notice: Undefined variable: con in /Applications/XAMPP/xamppfiles/htdocs/iTradestar/includes/modules/login.php on line 42
Warning: mysql_close() expects parameter 1 to be resource, null given in /Applications/XAMPP/xamppfiles/htdocs/iTradestar/includes/modules/login.php on line 42
Notice: Undefined variable: fail in /Applications/XAMPP/xamppfiles/htdocs/iTradestar/includes/modules/login.php on line 44
Gewijzigd op 30/06/2010 22:55:46 door Thomas Cools
Gewijzigd op 30/06/2010 22:56:01 door Thomas Cools
Sorry voor 3x post. Maar mijn internet zat vast
Thomas Cools op 30/06/2010 22:54:24:
Warning: Cannot modify header information - headers already sent by (output started at /Applications/XAMPP/xamppfiles/htdocs/itradestar/index.php:14) in /Applications/XAMPP/xamppfiles/htdocs/iTradestar/includes/modules/login.php on line 40
Er mag geen enkele output naar de browser vóór een header.
Thomas Cools op 30/06/2010 22:54:24:
Notice: Undefined variable: con in /Applications/XAMPP/xamppfiles/htdocs/iTradestar/includes/modules/login.php on line 42
$con bestaat niet.
Thomas Cools op 30/06/2010 22:54:24:
Warning: mysql_close() expects parameter 1 to be resource, null given in /Applications/XAMPP/xamppfiles/htdocs/iTradestar/includes/modules/login.php on line 42
$con bestaat niet.
Thomas Cools op 30/06/2010 22:54:24:
Notice: Undefined variable: fail in /Applications/XAMPP/xamppfiles/htdocs/iTradestar/includes/modules/login.php on line 44
$fail bestaat niet.
Gewijzigd op 30/06/2010 23:13:48 door - SanThe -
Bedankt voor de post!
Bedoel je bestaat niet in 'php-taal'?
Heb je misschien een suggestie hoe ik dit op kan lossen?
Een header() gaat voor elke output. Dus maak je script zo dat de header() helemaal bovenin komt te staan. Dat doe je door eerst alle php-dingen te doen en daarna pas de html en verdere output. Volgorde is dus niet goed.
Die $fail kan ik niet goed volgen in jouw script omdat het onoverzichtelijk is. Zorg dat je duidelijk script en dus op de juiste plekken even inspringt met de tab-toets.
Deze regel kan weg: mysql_close($con);
Ok super bedankt voor jouw uitleg.