Forum » Server-Side scripting » Login foutje niet te vinden
Berichten: 2177
avatar
Offline Stuur privebericht
Hoi,
Nu ik verdienlocatie 99% heb afgerond wil ik weer even verder gaan met 123portfolio, maar er is een foutje met het login systeem dat ik niet vind.
Als ik inlog dan maakt die geen session / cookie aan. Als ik een 2e keer inlog doet hij dit wel en werkt het gewoon.

Stukje header.php
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
/* Voor het login systeem */

$IP   $_SERVER['REMOTE_ADDR'];
$code rand(100000,999999);

  
$tUpd1 time();
      
      
$q1 mysql_query("SELECT * FROM onthoud WHERE ip = '"$_SERVER['REMOTE_ADDR'] ."' AND tijd > "$tUpd1 ." ORDER BY id DESC LIMIT 1");
      
      if(
mysql_num_rows($q1))
      {
        
$klogin mysql_fetch_assoc($q1);
        
        
$_SESSION['login'] = htmlspecialchars(mysql_real_escape_string(trim(stripslashes($klogin['username']))));
        
$_SESSION['port']  = $klogin['portfolionaam'];
        echo 
'<meta http-equiv="refresh" content="0;URL=$domein/account/" />';
        
      }
?>


En het login gedeelte :
Code | Selecteer Alles
minimaliseren
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
<?php
if(!isset($_POST['submit']))
{
?>
<p>Log-in op je account om je portfolio te wijzigen</p>
<form action="" method="post">
  <table border="0">
    <tr><td>Gebruikersnaam:</td><td><input type="text" class="box" name="username" /></td></tr>
    <tr><td>Wachtwoord:</td><td><input type="password" class="box" name="password" /></td></tr>
    <tr><td>Onthoud mij <a href="#" onclick="alert('Hier word je ip adres 2 weken in onze database opgeslagen. Dit is op geen enkele manier te veranderen en als je in deze twee weken op login klikt zul je automatisch worden ingelogd!');">?</a></td><td><input type="checkbox" name="koekje" /></td></tr>
    <tr><td> </td><td><input type="submit" name="submit" class="button" value="" /></td></tr>
  </table>
  <a href="/pwvergeten/" title="Wachtwoord vergeten">Wachtwoord vergeten?</a>
  <a href="/registreer/" title="Registreren">Nog geen account? Maak er hier een aan!</a>
</form> 

<?php
}
else
{
  
$username htmlspecialchars(mysql_real_escape_string(trim($_POST['username'])));
  
$password htmlspecialchars(mysql_real_escape_string(md5($_POST['password'])));
      
$querya mysql_query("SELECT activated FROM users WHERE username = '"$username ."' AND password = '"$password ."' LIMIT 1") or die(Mysql_error());
    
$activated mysql_fetch_object($querya);
  
  
$query['select']['valide'] = mysql_query("SELECT * FROM users WHERE username = '"$username ."' AND password = '"$password ."' LIMIT 1") or die(Mysql_error());
  if(
Mysql_num_rows($query['select']['valide']))  {
    
$query['select']['ban'] = mysql_query("SELECT * FROM users WHERE username = '"$username ."' AND password = '"$password ."' AND actief = '0' LIMIT 1") or die(Mysql_error());
    if(
mysql_num_rows($query['select']['ban']) > 0)
    {
      echo 
'<h2>Account uitgeschakeld</h2>
      
        <p>De beheerder heeft er voor gekozen dit account (permanent) te blokkeren. Je kunt niet meer inloggen.</p>'
;
      echo 
'';
      
    }
    elseif(
$activated->activated == 0) {
          echo 
'<h2>Account niet geactiveerd</h2>
      
        <p>Jouw account is nog niet geactiveerd, je dient je account eerst te activeren voordat je kunt inloggen.</p>'
;
    }
    else {
    
// Ingelogd...
    
$_SESSION['login'] = $username;
    if(@ 
$_POST['koekje'])
    {
      
      
$q11 mysql_query("SELECT * FROM onthoud WHERE ip = '"$_SERVER['REMOTE_ADDR'] ."' AND username = '"$username ."' ORDER BY id DESC LIMIT 1");
        
$xtijdnieuw time() + 3600*24*14// 2 weken (de laatste 2 cijfers zijn het aantal dagen)
      
if(mysql_num_rows($q11))
      {
        
mysql_query("UPDATE onthoud SET tijd=tijd+".$xtijdnieuw." WHERE ip = '"$_SERVER['REMOTE_ADDR'] ."' AND username = '"$username ."'") or die(Mysql_error());
      }
      else
      {
        
mysql_query("INSERT INTO onthoud (username, ip, tijd) VALUES ('"$username ."','"$_SERVER['REMOTE_ADDR'] ."','"$xtijdnieuw ."')");
        
        echo 
'<script>alert("Beste '$username .',nnU heeft de functie 'onthoud mij' ingeschakeld. Met deze functie blijft u 2 weken ingelogd, op basis van ip-adres. U kunt uw cookies dus verwijderen zonder dat er problemen optreden.nnDit bericht verschijnt slechts eenmalig.nn123Portfolio.nl");</script>';
      }
    }
    
    
    echo 
'<p>U bent ingelogd! Een moment geduld a.u.b.</p>';
    }
  }
  else
  {
    echo 
'<p>Er zijn foute inloggegevens ontvangen. Probeert u het opnieuw.Klik <a href="../login/">hier</a>.</p>';
  }
}
?>


Weet jij wat hier de oplossing van is, ik zit al sinds 14.00 te zoeken.

Robin
12-07-2010 19:29
Dit topic is 81 keer bekeken door 21 verschillende leden
Reacties op: "Login foutje niet te vinden"
1
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
Kan het zijn dat je van subdomein verwisseld?
Dus dat je van http://www.bla.nl/blabla naar bla.nl/albalb gaat?
PHP zet de cookies voor een van beide, als je wilt dat het voor beide werkt zul je met session_set_cookie_params het domein naar .bla.nl moeten veranderen.
12-07-2010 19:46
Berichten: 2177
avatar
Offline Stuur privébericht
Hoi,
Dit hier gaat van http://www.123portfolio.nl/ dus geen subdomeinen.
Ook doe ik via htaccess http:// overzetten naar http://www.
12-07-2010 20:01
Reageer op: "Login foutje niet te vinden"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden