Login Script Revisited id meesturen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Michel

Michel

05/02/2007 09:21:00
Quote Anchor link
Hallo php'ers,

Ik heb even een klein vraagje over het login script van Jan Koehoorn. http://www.phphulp.nl/php/tutorials/10/415/920/

Ik zal even kort uitleggen waar ik het login script voor gebruik. Ik ben bezig met een klantenbeheersysteem. Daar kan ik als admin gebruikers aan toevoegen, medewerkers toevoegen en problemen toevoegen. Als de klant inlogt moet hij/zij ook een probleem kunnen toevoegen. en op dat punt gaat het mis! Ik wil namelijk er voor zorgen dat de klant alleen zichzelf kan selecteren bij het toevoegen van een klacht en niet alle klanten die in de database staan. Hieronder staat het stukje code dat ik gebruik om de klanten te selecteren. Ik wil er voor zorgen dat ik een klantID meestuur naar dit stuk zodat alleen de juiste klant geselecteerd word.
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
<tr>
<td>    
<I>Selecteer Klant:</I><BR>
<BR>
  <select name="klant">
  <option SIZE="30" value=""> Selecteer uw naam </option>
  <?php
  
  $klanten
= "SELECT KlantID, Klantnaam FROM klanten WHERE Klantid = '".$_GET['id']."';";
  $klant = MYSQL_QUERY($klanten);
  
  while($klantnaam = MYSQL_FETCH_ARRAY($klant))
  {

  ?>

 
    <option SIZE="30" value="<?php echo $klantnaam['KlantID']; ?>"><?php echo $klantnaam['Klantnaam']; ?></option>
    
  <?
  }
  ?>

  </select>
</td>
</tr>

Dat KlantID wil ik meesturen vanaf de hoofdpage.php waar een link staat naar de klachttoevoegen.php pagina. Dit ziet er als volgt uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?
    
    
    echo "&nbsp;<a href='klachttoevoegen.php?id=$res->KlantID'><img src='vraag.jpg' alt='Klik hier om uw probleem toe te voegen' border='0'></a>";
    echo "<br>";
    echo "Klik op het uitroepteken om uw probleem toe te voegen!";
    ?>


Maar op een of andere manier pakt ie dat KlantID nog niet. Ik dacht/denk zelf persoonlijk dat ik die wel uit authenticatie.php kon pakken omdat ik hem in de hoofdpage.php require.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
    require 'authenticatie.php';
?>


De authenticatie.php pagina ziet er als volgt uit:

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
<?php
    session_start ();

    // de gegevens voor de DB connectie
    require 'connect2.php';
    
    // terug naar de loginpagina. Met sleep bouwen we een pauze in tegen brute-forcen
    function to_login () {
        sleep (3);
        header ('Location: http://80.57.15.215/Klantenbeheer/');  // NIET VERGETEN AAN TE PASSEN!!!
    }
    
    function
check_login ($username, $password) {
        // query opstellen
        // je tabel kan er heel simpel uitzien:
        // id INT(11) auto_increment
        // username VARCHAR 64
        // password VARCHAR 64. Het password sla je op in je DB met een SHA1 hash
        // daarom staat SHA1 dus ook in de query

        $sql = "
            SELECT KlantID
            FROM klanten
            WHERE Username = '"
. mysql_real_escape_string ($username) . "'
            AND Password = '"
. mysql_real_escape_string ($password) . "'
            "
;
        if ($res = mysql_query ($sql)) {
            if (mysql_num_rows ($res) == 1) {
                // de query is gelukt en we hebben 1 resultaat
                $row = mysql_fetch_assoc ($res);
                $_SESSION['id'] = $row['id'];
                $_SESSION['logged_in'] = true;
            }

            else {
                to_login ();
            }
        }

        else {
            to_login ();
        }
    }

    
    // eerst maar eens kijken of $_SESSION['logged_in'] bestaat
    if (!isset ($_SESSION['logged_in'])) {
        // nog niet eerder ingelogd, maar misschien heeft iemand net het loginformulier ingevuld?
        if (isset ($_POST['username'], $_POST['password'])) {
            check_login ($_POST['username'], $_POST['password']);
        }

        else {
            to_login ();
        }
    }

?>
Gewijzigd op 01/01/1970 01:00:00 door Michel
 
PHP hulp

PHP hulp

28/04/2024 00:43:27
 
- wes  -

- wes -

05/02/2007 09:45:00
Quote Anchor link
verder niets met je vraag te maken maar doe jezelf een plezier en hou al je variabelennamen, tabelnamen, veldnamen allemaal met kleine letters. hoofdletters gaat vroeg of laat iedereen wel eens mee de mist in
 
Michel

Michel

05/02/2007 15:21:00
Quote Anchor link
thnx wes!:) zal er zeker op letten!:)

Heeft er verder iemand een oplossing op mijn probleem?

Groetjes
Michel
 



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.