Username in URL
Tijdens het registreren wordt er een mapje op de server aangemaakt (met de ingegeven username) en daarin worden bestandjes gekopieerd.
So far so good.
Nu wil ik dat als de gebruiker inlogt deze direct naar zijn/haar eigen map gaat.
In de config.php zit de volgende code:
$loginpage = "http://www.factory6.nl/map/";
vervolgens in de inloggen.php:
<script language="Javascript" type="text/javascript">
location.href='';
</script>
Hoe krijg ik dit wel werkend???
Buiten het feit dat je het werkend wilt hebben. Waarom zou je dat willen. Een username in een url is niet veilig! Waarom maak je geen gebruik van sessies? of gewoon een goede database?
Maar misschien werkt dit (het is PHP en niet JavaScript):
Code (php)
Omdat de XML (die in de usermap staat) per persoon aangepast moet kunnen worden die vervolgens in een Flashmovie ingelezen wordt...
Code (php)
1
2
3
4
5
2
3
4
5
<script language="Javascript" type="text/javascript">
function login(){
location.href='<?php echo $loginpage.'/'.$naam; ?>';
}
</script>
function login(){
location.href='<?php echo $loginpage.'/'.$naam; ?>';
}
</script>
lijkt mij ;)
wat me voorganger zegt kan natuurlijk ook gewoon!
Gewijzigd op 22/01/2012 14:04:55 door ScrapZz nl
config.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
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
<?
session_start();
ob_start();
// Error reporting zetten we uit, het is niet echt netjes je bezoekers errors voor te schotelen
ERROR_REPORTING(0);
// MySQL
$db_user = ""; // Gebruiker voor MySQL
$db_pass = ""; // Wachtwoord voor MySQL
$db_host = ""; // Host voor MySQL; standaard localhost
$db_db = ""; // Database
mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_db);
$loginpage = "http://www.factory6.nl/core/"; // Pagina waar de gebruiker heen wordt gestuurd wanneer deze is ingelogd
$forgoturl = "http://www.factory6.nl/core/"; // Volledige URL naar inlogsysteem, voor activeren van wachtwoord vergeten, / aan einde
$sitenaam = ""; // Naam van je site; deze word oa. gebruikt bij het verzenden van mail
$sitemail = "[email protected]"; // Afzender van verzonden mail
$SourceDir = 'source';
function recurse_copy($src,$dst) { // recursive function that copy files from one directory to another
$dir = opendir($src);
@mkdir($dst);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ) {
recurse_copy($src . '/' . $file,$dst . '/' . $file);
}
else {
copy($src . '/' . $file,$dst . '/' . $file);
}
}
}
closedir($dir);
//echo "$src";
}
?>
session_start();
ob_start();
// Error reporting zetten we uit, het is niet echt netjes je bezoekers errors voor te schotelen
ERROR_REPORTING(0);
// MySQL
$db_user = ""; // Gebruiker voor MySQL
$db_pass = ""; // Wachtwoord voor MySQL
$db_host = ""; // Host voor MySQL; standaard localhost
$db_db = ""; // Database
mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_db);
$loginpage = "http://www.factory6.nl/core/"; // Pagina waar de gebruiker heen wordt gestuurd wanneer deze is ingelogd
$forgoturl = "http://www.factory6.nl/core/"; // Volledige URL naar inlogsysteem, voor activeren van wachtwoord vergeten, / aan einde
$sitenaam = ""; // Naam van je site; deze word oa. gebruikt bij het verzenden van mail
$sitemail = "[email protected]"; // Afzender van verzonden mail
$SourceDir = 'source';
function recurse_copy($src,$dst) { // recursive function that copy files from one directory to another
$dir = opendir($src);
@mkdir($dst);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ) {
recurse_copy($src . '/' . $file,$dst . '/' . $file);
}
else {
copy($src . '/' . $file,$dst . '/' . $file);
}
}
}
closedir($dir);
//echo "$src";
}
?>
En het inloggen.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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
include("config.php");
include("htmltop.php");
if(isset($_SESSION['user_id'])) {
?>
Je bent reeds ingelogd.
<script language="Javascript" type="text/javascript">
function login(){
location.href='<?php echo $loginpage.'/'.$user; ?>';
}
</script>
<?
}else{
if(isset($_COOKIE['user_id'])) {
// Cookie uitlezen, sessie aanmaken
$sql = "SELECT id,status,wachtwoord,actief FROM gebruikers WHERE id='".$_COOKIE['user_id']."'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$id = htmlspecialchars($rij->id);
$status = htmlspecialchars($rij->status);
$dbpass = htmlspecialchars($rij->wachtwoord);
$actief = htmlspecialchars($rij->actief);
if($dbpass == $_COOKIE['user_password'] AND $actief == 1) {
$_SESSION['user_id'] = $id;
$_SESSION['user_status'] = $status;
?>
Er is weer een sessie aangemaakt. Je wordt doorverwezen.
<script language="Javascript" type="text/javascript">
function login(){
location.href='<?php echo $loginpage.'/'.$user; ?>';
}
</script>
<?
}else{
echo "Je cookie klopt niet met wat er in de database staat of je account is niet geactiveerd. Mogelijk heb je je wachtwoord veranderd.<br />\nJe oude cookies zijn verwijderd.";
setcookie("user_id", "", time() - 3600);
setcookie("user_password", "", time() - 3600);
}
}else{
if(isset($_POST['submit'])) {
// Inloggen
$sql = "SELECT id,naam,wachtwoord,status,actief FROM gebruikers WHERE naam='".$_POST['user']."'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$dbpass = htmlspecialchars($rij->wachtwoord);
$userpass = md5($_POST['pass']);
$userid = htmlspecialchars($rij->id);
$userstatus = htmlspecialchars($rij->status);
$useractief = htmlspecialchars($rij->actief);
if($dbpass == $userpass) {
if($useractief == 1) {
$_SESSION['user_id'] = $userid;
$_SESSION['user_status'] = $userstatus;
if($_POST['cookie'] == "do") {
setcookie("user_id", $userid, time() + 365 * 86400);
setcookie("user_password", $dbpass, time() + 365 * 86400);
}
?>
Je bent succesvol ingelogd.<br />
Je wordt doorgestuurd, indien er niets gebeurd <a href="<?php echo $loginpage.'/'.$user ?>">klik dan hier</a>.
<script language="Javascript" type="text/javascript">
function login(){
location.href='<?php echo $loginpage.'/'.$user; ?>';
}
</script>
<?
}else{
echo "Je account is niet geactiveerd. Activeer deze, door op de link in de verzonden e-mail te klikken.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
echo "Het door jouw ingevoerd wachtwoord klopt niet voor de gebruiker '".$_POST['user']."'.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
// Inlogform
?>
<form method="post" action="inloggen.php">
<table>
<tr>
<td>Gebruikersnaam:</td><td><input type="text" name="user" /></td>
</tr>
<tr>
<td>Wachtwoord:</td><td><input type="password" name="pass" /></td>
</tr>
<tr>
<td align="right"><input type="checkbox" name="cookie" value="do" style="border: 0px;" /></td><td><small>Ingelogd blijven (cookie)</small></td>
</tr>
<tr>
<td></td><td><input type="submit" name="submit" value="Inloggen" /></td>
</tr>
</table>
<small><a href="forgotpass.php" title="Wachtwoord vergeten">Wachtwoord vergeten</a></small>
</form>
<?
}
}
}
include("htmlbottom.php");
?>
include("config.php");
include("htmltop.php");
if(isset($_SESSION['user_id'])) {
?>
Je bent reeds ingelogd.
<script language="Javascript" type="text/javascript">
function login(){
location.href='<?php echo $loginpage.'/'.$user; ?>';
}
</script>
<?
}else{
if(isset($_COOKIE['user_id'])) {
// Cookie uitlezen, sessie aanmaken
$sql = "SELECT id,status,wachtwoord,actief FROM gebruikers WHERE id='".$_COOKIE['user_id']."'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$id = htmlspecialchars($rij->id);
$status = htmlspecialchars($rij->status);
$dbpass = htmlspecialchars($rij->wachtwoord);
$actief = htmlspecialchars($rij->actief);
if($dbpass == $_COOKIE['user_password'] AND $actief == 1) {
$_SESSION['user_id'] = $id;
$_SESSION['user_status'] = $status;
?>
Er is weer een sessie aangemaakt. Je wordt doorverwezen.
<script language="Javascript" type="text/javascript">
function login(){
location.href='<?php echo $loginpage.'/'.$user; ?>';
}
</script>
<?
}else{
echo "Je cookie klopt niet met wat er in de database staat of je account is niet geactiveerd. Mogelijk heb je je wachtwoord veranderd.<br />\nJe oude cookies zijn verwijderd.";
setcookie("user_id", "", time() - 3600);
setcookie("user_password", "", time() - 3600);
}
}else{
if(isset($_POST['submit'])) {
// Inloggen
$sql = "SELECT id,naam,wachtwoord,status,actief FROM gebruikers WHERE naam='".$_POST['user']."'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$dbpass = htmlspecialchars($rij->wachtwoord);
$userpass = md5($_POST['pass']);
$userid = htmlspecialchars($rij->id);
$userstatus = htmlspecialchars($rij->status);
$useractief = htmlspecialchars($rij->actief);
if($dbpass == $userpass) {
if($useractief == 1) {
$_SESSION['user_id'] = $userid;
$_SESSION['user_status'] = $userstatus;
if($_POST['cookie'] == "do") {
setcookie("user_id", $userid, time() + 365 * 86400);
setcookie("user_password", $dbpass, time() + 365 * 86400);
}
?>
Je bent succesvol ingelogd.<br />
Je wordt doorgestuurd, indien er niets gebeurd <a href="<?php echo $loginpage.'/'.$user ?>">klik dan hier</a>.
<script language="Javascript" type="text/javascript">
function login(){
location.href='<?php echo $loginpage.'/'.$user; ?>';
}
</script>
<?
}else{
echo "Je account is niet geactiveerd. Activeer deze, door op de link in de verzonden e-mail te klikken.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
echo "Het door jouw ingevoerd wachtwoord klopt niet voor de gebruiker '".$_POST['user']."'.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
// Inlogform
?>
<form method="post" action="inloggen.php">
<table>
<tr>
<td>Gebruikersnaam:</td><td><input type="text" name="user" /></td>
</tr>
<tr>
<td>Wachtwoord:</td><td><input type="password" name="pass" /></td>
</tr>
<tr>
<td align="right"><input type="checkbox" name="cookie" value="do" style="border: 0px;" /></td><td><small>Ingelogd blijven (cookie)</small></td>
</tr>
<tr>
<td></td><td><input type="submit" name="submit" value="Inloggen" /></td>
</tr>
</table>
<small><a href="forgotpass.php" title="Wachtwoord vergeten">Wachtwoord vergeten</a></small>
</form>
<?
}
}
}
include("htmlbottom.php");
?>
Ik heb even je code in code tags gezet, voor de leesbaarheid van toekomstige bezoekers. Graag in het vervolg even zelf aanpassen, tnx![/modedit]
Gewijzigd op 22/01/2012 16:03:22 door kees Schepers
Je ploft hier een zooi code neer, maar wat snap je niet?
Alleen....
$loginpage krijgt de waarde "http://www.factory6.nl/core/", daar zit die slash al in, dus die hoef je niet nog een keer te echoen.
En, waar komt $user vandaan. Ik heb die berg code doorgekeken, maar ik kom nergens anders een variabele met de naam $user tegen. Waar zet je dus de waarde in $user?
Tot slot, misschien handig, wat is de sourcecode in de browser nadat je het script runt? Zal vast niet zijn wat je verwacht.
Zal het de volgende keer netjes doen.
Als de gebruiker registreert, wordt er een mapje aangemaakt met de ingevulde naam.
Die naam komt uit het formfield die heet user.
Erik van Oosten op 22/01/2012 15:43:31:
Die naam komt uit het formfield die heet user.
Waar? Niet op een magische manier mag ik hopen, dus ergens moet dat in je code zijn terug te vinden.
Staat Gebruikersnaam. Wat er in dat form is ingevuld is de username.
Erik van Oosten op 22/01/2012 15:43:31:
Die naam komt uit het formfield die heet user.
Erik van Oosten op 22/01/2012 16:16:11:
Staat Gebruikersnaam. Wat er in dat form is ingevuld is de username.
Dat zijn al drie verschillende manieren van spellen. Welk is nu de enige echte die je gebruikt?
En ik geef je ook nogmaals de tip:
Quote:
Tot slot, misschien handig, wat is de sourcecode in de browser nadat je het script runt? Zal vast niet zijn wat je verwacht.
Dat heb je volgens mij ook nog niet gedaan, of wel?
Check het straks even.
Erg bedankt voor je hulp iig.
Toevoeging op 23/01/2012 10:42:50:
Beste Erwin H,
Thanks voor je hulp. Het is gelukt.
:D
Gewijzigd op 22/01/2012 16:29:07 door Erik van Oosten