[PHP/MySQL] Login systeem

Pagina: 1
Acties:
  • 80 views sinds 30-01-2008

  • TommyGun
  • Registratie: Mei 2004
  • Laatst online: 07-05 09:51

TommyGun

Stik er maar in!

Topicstarter
Heyz

Ik ben met een vriend bezig met een website en daarbij komt ook een registratie / login systeem. Ik heb een script gedownload van PHP Freakz en deze werktte perfect zonder website eromheen. Maar ik heb hem nu included in de rest van de website en dan neemt hij niks meer op in de database.

Ik heb de volgende SQL aangemaakt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CREATE TABLE leden (
  id int(200) NOT NULL auto_increment,
  naam varchar(255) NOT NULL default '',
  gebruikersnaam varchar(255) NOT NULL default '',
  wachtwoord varchar(255) NOT NULL default '',
  idatum varchar(255) NOT NULL default '',
  email varchar(255) NOT NULL default '',
  icq varchar(255) NOT NULL default '',
  msn varchar(255) NOT NULL default '',
  extra text NOT NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;
CREATE TABLE priveberichten (
  id int(11) unsigned NOT NULL auto_increment,
  onderwerp varchar(100) default '0',
  van varchar(255) default '0',
  naar varchar(255) default '0',
  datum varchar(22) default '0',
  bericht text,
  gelezen enum('ja','nee') default 'nee',
  PRIMARY KEY  (id)
) TYPE=MyISAM;


Mijn config tool staat ook goed. En al was dit niet zo dan zou die ook niet werken zonder website eromheen dus het ligt imho echt aan het includen. Maar wat kan er dan fout zijn met het includen? De page laat perfect maar hij neemt dus zoals ik al zei gewoon niks op in de database. Heb accountje aangemaakt maar dan krijg ik een error tijdens het inloggen en in de database staat het getal naast de users ook nog gewoon op 0.

Ik ben helemaal ten einde raad en ik zou niet weten wat er nou eigenlijk fout. Kom dus aub niet aan met dat ik niks geprobeerd hebt. Ik ben geen expert op PHP / MySQL gebied maar ik kan niks vinden over dit probleem. Voor de gene die het willen testen, ik heb het ff op een Lycos accountje draaien: http://members.lycos.nl/gamergun/. Aan de linkerkant zie je het Login / Aanmeld gedeelte.

B.v.d

Aanmelden.php
code:
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
<center>
<form method="post">
<table border="0" width="50%" cellspacing="0" cellpadding="0">
  <tr>
    <td width="50%">Naam</td>
    <td width="50%"><input type="text" name="naam"></td>
  </tr>
  <tr>
    <td width="50%">Email adres</td>
    <td width="50%"><input type="text" name="email"></td>
  </tr>
  <tr>
    <td width="50%">Gebruikersnaam</td>
    <td width="50%"><input type="text" name="gebruikersnaam"></td>
  </tr>
  <tr>
    <td width="50%">Wachtwoord</td>
    <td width="50%"><input type="password" name="wachtwoord1"></td>
  </tr>
  <tr>
    <td width="50%">Bevestiging</td>
    <td width="50%"><input type="password" name="wachtwoord2"></td>
  </tr>
  <tr>
    <td width="100%" colspan="2"><center><input type="submit" name="aanmelden" value="Aanmelden"></center></td>
  </tr>
</table>
</form>
</center>
<?
if( isset($_POST["aanmelden"]))
    {
        if($_POST["gebruikersnaam"] != "" && $_POST["email"] != "" && $_POST["naam"] != "" && $_POST["wachtwoord1"] != "")
            {
                $telgb = mysql_query("SELECT gebruikersnaam FROM leden WHERE gebruikersnaam='".$_POST["gebruikersnaam"]."'") or die($error[1]);
                $numgb = mysql_num_rows($telgb);
                if($numgb == "1")
                {
                    echo"<center>Deze gebruikersnaam bestaat al, je moet een andere gebruikersnaam nemen!</center>";
                }
                else
                {
                    if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $_POST["email"]))
                        {
                            echo"<center>Je moet een geldig email adres invullen!</center>";
                         }
                         else
                             {
                                if($_POST["wachtwoord1"] != $_POST["wachtwoord2"])
                                {
                                    echo "<center>U heeft niet de zelfde wachtwoorden ingegeven.</center>";
                                }
                                else
                                {
                                    echo"<center>U bent aangemeld.</center>";
                                    $wachtwoord = md5($wachtwoord1);
                                    mysql_query("insert into leden (naam,gebruikersnaam,wachtwoord,idatum,email) values ('".$_POST["naam"]."','".$_POST["gebruikersnaam"]."','".$wachtwoord."','".$datum."','".$_POST["email"]."')") or die(mysql_error());
                                }
                             }
                }
                }
                else
                {
                    echo "<center>U heeft iets niet ingevult.</center>";
                }
            }
?>


Login.php
code:
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
<center>
<form method="post">
<table border="0" width="30%" cellspacing="0" cellpadding="0">
  <tr>
    <td width="50%">Gebruikersnaam</td>
    <td width="50%"><input type="text" name="gebruikersnaam" value="Gebruikersnaam" onclick="gebruikersnaam.value=''" size="20"></td>
  </tr>
  <tr>
    <td width="50%">Wachtwoord</td>
    <td width="50%"><input type="password" name="wachtwoord" value="Wachtwoord" onclick="wachtwoord.value=''" size="20"></td>
  </tr>
  <tr>
    <td width="50%">Cookie</td>
    <td width="50%"><select size="1" name="dagen">
        <option selected value="1">1 Dag</option>
        <option value="2">2 Dagen</option>
        <option value="7">7 Dagen</option>
        <option value="14">2 Weken</option>
        <option value="28">1 Maand</option>
        <option value="178">6 Maand</option>
        <option value="356">1 Jaar</option>
      </select></td>
  </tr>
  <tr>
    <td width="100%" colspan="2"><input type="submit" name="login" value="Login"></td>
  </tr>
</table>
</form>
</center>
<?
if( isset($_POST["login"]))
{
    $query = mysql_query("select * from leden where gebruikersnaam='".$_POST["gebruikersnaam"]."'");
    $row = mysql_fetch_object($query);
    $wachtwoord1 = md5($_POST["wachtwoord"]);
    if($wachtwoord1 == $row->wachtwoord && $_POST["gebruikersnaam"] == $row->gebruikersnaam)
    {
        setcookie ("login", $_POST["gebruikersnaam"],time()+3600*$dagen);
        echo "U bent ingelogt.";
        echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=?p=home\">";
    }
    else
    {
        echo "Fout.";
    }
}
?>


Er zijn uiteraard wel wat meer files maar die zijn denk ik niet van toepassing bij dit probleem.

[ Voor 75% gewijzigd door TommyGun op 17-05-2005 14:10 ]

“In a world without walls and fences, who needs Windows and Gates".


Verwijderd

Kun je niet beter de auteur van het script (dus op phpfreakz) om hulp vragen?

Verwijderd

Ja, het is op GoT ook niet de bedoeling hulp te vragen over een script dat je van iemand "leent", aangezien je deze niet zelf gemaakt hebt gaat men er hier van uit dat je de werking ook niet snapt

  • TommyGun
  • Registratie: Mei 2004
  • Laatst online: 07-05 09:51

TommyGun

Stik er maar in!

Topicstarter
Verwijderd schreef op dinsdag 17 mei 2005 @ 14:08:
Kun je niet beter de auteur van het script (dus op phpfreakz) om hulp vragen?
Ik weet de auteur niet meer 8)7

“In a world without walls and fences, who needs Windows and Gates".


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 06-05 18:51

Creepy

Tactical Espionage Splatterer

TommyGun schreef op dinsdag 17 mei 2005 @ 14:07:

Ik ben helemaal ten einde raad en ik zou niet weten wat er nou eigenlijk fout. Kom dus aub niet aan met dat ik niks geprobeerd hebt. Ik ben geen expert op PHP / MySQL gebied maar ik kan niks vinden over dit probleem. Voor de gene die het willen testen, ik heb het ff op een Lycos accountje draaien: http://members.lycos.nl/gamergun/. Aan de linkerkant zie je het Login / Aanmeld gedeelte.
Je weet dus blijkbaar al dat het zo niet werkt hier :) Het is hier geen plek om je scripts te laten debuggen.

Je zou eens kunnen gaan beginnen met het controleren of de query wel wordt uitgevoerd en of MySQL een foutmelding teruggeeft. Dan weet je waarschijnlijk een stuk meer. Dat je geen expert bent geeft echt niet maar je zult je er toch een beetje in moeten verdiepen. Hoe je de eventuele foutmelding van MySQL kunt tonen wordt in nagoeg iedere MySQL tutorial wel uitgelegd.
Tip: || die (mysql_error());

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Dit topic is gesloten.