Indeling van login script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mik PHP

Mik PHP

04/02/2011 17:53:45
Quote Anchor link
Hey allemaal!

Sommigen van jullie hebben mijn vorige vraag vast gelezen
over dat mijn cookies het niet in elke map deden. Nu heb
ik dankzij een aantal mensen de oplossing gevonden. Dit was
simpelweg de cookie aan laten maken boven de <html> tags.

Echter loop ik een beetje vast hoe ik dan het hele script moet indelen.

Wat ik nu heb is de index.php waarin login.php word geinclude.
In login.php staat het formulier:

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
<div class="user_content">
  <div class="user_content_header"></div>
  <div class="user_content_mid">
  <?php
  if(loggedIn()) {
      echo"Welkom!";
  }
else {
      if(isset($_POST['login'])) {
          if(!empty($_POST['gebruikersnaam'])) {
              if(!empty($_POST['password'])) {
                  $leden->login($_POST['gebruikersnaam'], $_POST['password'], $_POST['onthouden']);
              }
else {
                  melding_negatief_klein("Vul een wachtwoord in.");
              }
          }
else {
              melding_negatief_klein("Vul een gebruikersnaam in.");
          }
      }
else {
          melding_centraal_klein("Geen habbowachtwoord");
      }

      echo"
      <form method=\"post\" autocomplete=\"off\" action=\""
.$_SERVER['PHP_SELF']."\">
      <div id=\"login_container\"><input class=\"loginfield\" type=\"text\" value=\"Gebruikersnaam\" name=\"gebruikersnaam\" onFocus=\"clearText(this)\" onBlur=\"clearText(this)\" /><br>
      <input class=\"loginfield\" type=\"password\" value=\"wachtwoord\" name=\"password\" onFocus=\"clearText(this)\" onBlur=\"clearText(this)\" />
      <table width=\"100%\" cellpadding=\"2\" cellspacing=\"0\">
      <tr>
          <td height=\"16\"><input type=\"checkbox\" checked=\"checked\" name=\"onthouden\" id=\"onthouden\" value=\"ja\" /></td>
        <td><label for=\"onthouden\">Onthouden?</label></td>
      </tr>
      <tr>
          <td><img src=\"images/icons/icon_myhabbo.gif\" width=\"13\" height=\"13\" /></td>
        <td><a href=\"#\">Registreren</a></td>
      </tr>
      <tr>
          <td><img src=\"images/icons/new_16.gif\" width=\"16\" height=\"12\" /></td>
        <td><a href=\"#\">Wachtwoord vergeten</a></td>
      </tr>
      </table>
      <input type=\"submit\" name=\"login\" class=\"submitbut1\" value=\"Inloggen\" /></div>
      </form>"
;
  }

  ?>

  </div>
  <div class="user_content_footer"></div>
</div>


Zoals je ziet word er als alle velden ingevuld zijn de functie login aangeroepen. Echter word
dus dus binnen de html tags gedaan en worden de cookies dus ook binnen de html tags
aangemaakt. Alleen als ik die boven de html tags zou laten doen heb ik geen idee hoe ik dan
in het zelfde veld waar het formulier staat een tekst kan laten verschijnen zoals: Je bent ingelogd, je word doorgestuurd, het wachtwoord klopt niet. Zoiets.

Wie kan mij een beetje een beeld geven van hoe ik dit het beste kan inrichten?
Ik ben je erg dankbaar, want ik loop een beetje vast zo.

Groetjes,
Mik
 
PHP hulp

PHP hulp

14/07/2024 09:40:25
 
Noppes Homeland

Noppes Homeland

04/02/2011 17:59:12
Quote Anchor link
Als je nu eerst eens leert om op 1 manier te quoten, dan hoef je ook niet meer zo onnodig te escapen.


Het voorbeeld waar je om gevraagd hebt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<div>'.$melding.'</div>';
?>
Gewijzigd op 04/02/2011 17:59:25 door Noppes Homeland
 
Maarten PHP

Maarten PHP

04/02/2011 18:00:52
Quote Anchor link
je gaat zeker een retrohotel maken tjonge niet de eerste op phphulp
 
Mik PHP

Mik PHP

04/02/2011 18:10:35
Quote Anchor link
dus wat jij bedoelt is dus ongeveer dit:
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
<?php

if($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Hier dan die login functie
    if($wachtwoord = $rij[wachtwoord]) {
        $melding = 'Je bent ingelogd en word doorgestuurd';
    }
else {
        $melding = 'Naam klopt niet';
    }
}

header("location: index.php");
?>

En dan login.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if(loggedIn()) {
    echo"welkom";
}
else {
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    echo $melding;
}

echo'<form method="post" target="inloggen.php">';
//formulier
echo'</form>';
}

?>


Zon ongeveer even snel getypt

Toevoeging op 04/02/2011 18:15:41:

PHPer PHPer op 04/02/2011 18:00:52:
je gaat zeker een retrohotel maken tjonge niet de eerste op phphulp

Nee.. Ik maak geen retro hotel. Ik ben zelf vroeg begonnen met habbofansites
maken enzo, maar webdesign en interactive media is nu mijn opleiding/werk.

Ik ben bezig met een admin paneel die in eerste instantie voor habbofansites was,
maar ik bouw hem langzamerhand om voor gebruik op non-habbo sites.

En oja, bedankt voor het vooroordeel he! Staat je goed.
Gewijzigd op 04/02/2011 18:16:54 door Mik PHP
 
Noppes Homeland

Noppes Homeland

04/02/2011 18:29:53
Quote Anchor link
Nee, zo bedoel ik het dus niet. Want je behoort toch wel te weten dat php variabelen niet meegenomen worden door de redirect.

m.a.w. wat je nu bedacht hebt gaat dus niet werken.

En je moet 1 echo gebruiken voor 1 html blok(je).

Toevoeging op 04/02/2011 18:29:54:

Nee, zo bedoel ik het dus niet. Want je behoort toch wel te weten dat php variabelen niet meegenomen worden door de redirect.

m.a.w. wat je nu bedacht hebt gaat dus niet werken.

En je moet 1 echo gebruiken voor 1 html blok(je).
 
Mik PHP

Mik PHP

04/02/2011 19:05:19
Quote Anchor link
Oke, waaruit baseer jij dat je dit 'hoort' te weten? Ik heb nog nooit met deze rederects gewerkt.. En het voorbeeldje dat ik gaf dat is heel snel getypt.. Maar goed, veel vooroordelen en meningen, maar ik ben nog steeds bij het begin
Gewijzigd op 04/02/2011 19:06:50 door Mik PHP
 
Jasper DS

Jasper DS

04/02/2011 19:35:24
Quote Anchor link
Noppes Homeland op 04/02/2011 18:29:53:
En je moet 1 echo gebruiken voor 1 html blok(je).


Dat is gewoon je eigen stijl he noppes.
 
Mik PHP

Mik PHP

04/02/2011 19:40:24
Quote Anchor link
PHP Jasper op 04/02/2011 19:35:24:
Noppes Homeland op 04/02/2011 18:29:53:
En je moet 1 echo gebruiken voor 1 html blok(je).


Dat is gewoon je eigen stijl he noppes.


idd, normaalgesproken doe ik het ook, maar moest even snel een voorbeeld verzinnen ;)

Maar even on-topic aub!
 
Noppes Homeland

Noppes Homeland

04/02/2011 20:13:45
Quote Anchor link
Wat is er nu dan nog niet duidelijk?
 
Mik PHP

Mik PHP

05/02/2011 04:57:57
Quote Anchor link
Alles, hoe ik dit kan oplossen..
 
Milo S

Milo S

05/02/2011 08:54:04
Quote Anchor link
Tja, nou eigenlijk lijkt het meest logische al, begin met je php boven html schrijven. Werk met 2 variabelen; 1 om errors op te vangen, 1 om content in weer te geven.

Ik heb een klein stukje code geschreven, je zult verder nog wel query's en andere zaken moeten maken...

Voorbeeld:
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
<?php
# Sessies starten
session_start();

# DB connectie maken
include('config.php');


# Arrays decladeren
$errors = array();
$conent = array();

# Als er gepost is
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{

    # Geen username
    if( !isset( $_POST['username'] ) )
    {

        $errors[] = 'U bent vergeten een gebruikersnaam in te vullen.';
    }

    
    # Geen password
    if( !isset( $_POST['password'] ) )
    {

        $errors[] = 'U bent vergeten een wachtwoord in te vullen.';
    }

    
    # Geen errors
    if( empty( $errors ) )
    {

    
        /*
        Hier moet je dan nog:
            - SQL uitvoeren
            - SQL Afhandelen
            - Header doorsturen, met een refresh zodat je eerst nog tekst in het $content var kan lezen
            - $content[] vullen met succesvol ingelogt / $error vullen met fout bij inloggen e.d.
        */

    }
    else
    {
        # Errors weergeven
        foreach( $errors as $error )
        {

            echo $error.'<br />';    
        }
    }
}

else
{
    $content[] = '
    <form action="" method="post">
        <label></label>
        <input name="username" type="text" />
        
        <label></label>
        <input name="password" type="password" />
        
        <input type="submit" value="Inloggen" />
    '
;
}

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Naamloos document</title>
    </head>
    
    <body>
        <?php
        if( empty( $errors ) )
        {

            # Content weergeven
            foreach( $content as $line )
            {

                echo $line;    
            }
        }

        else
        {
            # Errirs weergeven
            foreach( $errors as $error )
            {

                echo $error;    
            }    
        }

        ?>

    </body>
</html>
Gewijzigd op 05/02/2011 08:56:17 door Milo S
 
Mik PHP

Mik PHP

05/02/2011 17:01:20
Quote Anchor link
Oke, kijk is aan dit zal me zeker verder helpen! Bedankt Milo!
 



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.