Username in URL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Erik van Oosten

Erik van Oosten

22/01/2012 13:32:53
Quote Anchor link
Voor een inlogsysteem wil ik dat de inlogger naar zijn/haar eigen map gaat.

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='
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?= $loginpage/$naam ?>
';
</script>

Hoe krijg ik dit wel werkend???
 
PHP hulp

PHP hulp

22/12/2024 08:09:00
 
Bas IJzelendoorn

Bas IJzelendoorn

22/01/2012 13:36:23
Quote Anchor link
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?
 

22/01/2012 13:38:13
Quote Anchor link
Zoals Bas al zei zou ik gewoon voor een database gaan! Dat is veel gemakkelijker in gebruik dan een mapje enzovoort.

Maar misschien werkt dit (het is PHP en niet JavaScript):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php

    header('Location: '.$loginpage.$naam);
    # Niet altijd nodig (i.v.m. de server):
    ob_flush(); flush();
    # Wel altijd nodig
    # (zorgt dat de pagina niet verder laad):

    exit();
    
?>
Gewijzigd op 22/01/2012 13:49:20 door
 
Erik van Oosten

Erik van Oosten

22/01/2012 13:38:44
Quote Anchor link
Omdat de XML (die in de usermap staat) per persoon aangepast moet kunnen worden die vervolgens in een Flashmovie ingelezen wordt...
 
ScrapZz nl

ScrapZz nl

22/01/2012 14:04:03
Quote Anchor link
Zal het niet zo moeten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<script language="Javascript" type="text/javascript">
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
 
Erik van Oosten

Erik van Oosten

22/01/2012 15:02:25
Quote Anchor link
Ik snap er echt helemaal niets meer van...

config.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
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";
    }
?>


En het inloggen.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
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()\">&laquo; Ga terug</a>";
    }  
   }
else{
    echo "Het door jouw ingevoerd wachtwoord klopt niet voor de gebruiker '".$_POST['user']."'.<br />\n<a href=\"javascript:history.back()\">&laquo; 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
 
Obelix Idefix

Obelix Idefix

22/01/2012 15:24:00
Quote Anchor link
code graag tussen code-tags, zodat het duidelijk is/leesbaar is.

Je ploft hier een zooi code neer, maar wat snap je niet?
 
Erwin H

Erwin H

22/01/2012 15:30:56
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $loginpage.'/'.$user; ?>

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.
 
Erik van Oosten

Erik van Oosten

22/01/2012 15:43:31
Quote Anchor link
Excuus voor de code...

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.
 
Erwin H

Erwin H

22/01/2012 16:00:57
Quote Anchor link
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.
 
Erik van Oosten

Erik van Oosten

22/01/2012 16:16:11
Quote Anchor link
Onder //Inlogform

Staat Gebruikersnaam. Wat er in dat form is ingevuld is de username.
 
- SanThe -

- SanThe -

22/01/2012 16:20:41
Quote Anchor link
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?
 
Erwin H

Erwin H

22/01/2012 16:20:47
Quote Anchor link
Ok, laatste keer dat ik het vraag, daarna mag je zelf verder zoeken.... WAAR in je code wordt de gebruikersnaam in de variabele $user gestopt? Ik zie het nergens, dus of je laat niet de hele code zien, of het gebeurt gewoon niet. Aan jou om het uit te zoeken.

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?
 
Erik van Oosten

Erik van Oosten

22/01/2012 16:27:25
Quote Anchor link
Ik ben nu niet thuis.

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
 



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.