Multidesk.be » Forums » PHP » Login / registreer probleem

  • Pagina
  • 1 van 1
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door BoeMan op maandag 30 november 2009 om 19:31:21.
BoeMan heeft nog geen avatar toegevoegd
Multiviteit: 154
Hey allemaal,
tot voor kort werkte mijn registreer script perfect, de gegevens werden weggeschreven, alle foutmeldingen werkten enzo.
Nu namiddag had ik een login script gemaakt en nu begonnen de problemen.
Als ik naar mijn registreer pagina wil gaan word automatisch doorgelinkt naar mijn login pagina. Terwijl er nergens in mijn registreer script een link of verwijzing staat naar login.
Ik kan nu simpelweg niet meer aan mijn registreerscript.
Zou het kunnen doordat mijn vertificatiecode werkt met sessies en mijn login ook? Dat deze verward geraken ofzo? Ik zou het niet weten.

register.php
PHP
  1.  
  2. <?php
  3. $Act = $_GET['act'];
  4. if($Act == "newuser"){
  5.  
  6. if($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['btnRegister']){
  7.  
  8.         $Username         = addslashes($_POST['txtUsername']);
  9.         $Email     = addslashes($_POST['txtEmail']);
  10.         $Password1        = addslashes($_POST['Password1']);
  11.         $Password2    = addslashes($_POST['Password2']);
  12.         $Verify           = addslashes($_POST['txtVerify']);
  13.         $Joindate         = date("m.d.y");
  14.  
  15.  
  16.         $Error = "";
  17.         $err = false;
  18.        
  19.         //username
  20.         if(empty($Username))    { $Error .= "Geef aub een gebruikersnaam op.<br>"; $err=true; }
  21.         $GetUser = @mysql_query("select `id` from {$Prefix}users where username='$Username'");
  22.         $GetUser2 = @mysql_num_rows($GetUser);
  23.         if($GetUser2 != 0){ $Error .= "Username is al in gebruik, kies een andere.<br>"; $err=true; }
  24.         if (preg_match("/ /i", $Username)) { $Error .= "Uw gebruikersnaam mag enkel de tekens a-z,A-Z,0-9 bevatten."; $err=true; }
  25.         if (strlen($Username)>18 or strlen($Username)<3 ) { $Error .= "Uw gebruikersnaam moet minimum 3 en maximum 18 karakters bevatten."; $err=true; }       
  26.        
  27.         //email
  28.         if(empty($Email))              { $Error .= "Geef aub uw E-mail adres op."; $err=true; }
  29.         $GetEmail = @mysql_query("select `id` from {$Prefix}users where email='$Email'");
  30.         $GetEmail2 = @mysql_num_rows($GetEmail);
  31.         if($GetEmail2 != 0){ $Error .= "E-mailadres is al geregistreerd.<br>"; $err=true; }
  32.         if (!preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$/is', $Email)){ $Error .= "Vul aub een geldig E-mail adres in."; $err=true; }
  33.        
  34.         //wachtwoord
  35.         if(empty($Password1))   { $Error .= "Geef aub uw wachtwoord nogmaals op.<br>"; $err=true; }
  36.         if(empty($Password2))   { $Error .= "Bevestig aub uw wachtwoord.<br>"; $err=true; }
  37.         if($Password1 != $Password2) {$Error .= "Geef aub 2 dezelfde paswoorden op.<br>"; $err=true; }
  38.         if(strlen($Password1) <5) { $Error .= "Je paswoord moet minstens 5 characters bevatten<br>"; $err=true; }
  39.         $Password3 = sha1($Password1);
  40.        
  41.         // Vertificatie
  42.         if(sha1($Verify) != $_SESSION['image_random_value']){ $Error .= "Je vertificatie code was verkeerd. Probeer opnieuw."; $err=true; }
  43.  
  44.         //activatiecode
  45.         $code = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
  46.         $code2 = substr(str_shuffle($code), 0, 20);
  47.        
  48.        
  49.        
  50.  
  51.         //if($varRegistraties != 1){  $msg = "Registreren is op het moment niet mogelijk. Dit is een beslissing van het website beheer team. Probeer later nogmaals."; $err=true; }
  52.         //if(isset($_COOKIE["xUser"])){ $msg = "Je bent reeds ingelogd en mag geen account meer registreren."; $err=true; }
  53.  
  54.                
  55.                 $_SESSION['image_random_value'] = '';   
  56.                 if($err == false){
  57.                 $InsertUser = mysql_query("insert into {$Prefix}users (username,email,password,joined, activation) values ('$Username', '$Email', '$Password3','$Joindate', '$code2')");
  58.                 $msg = "Je bent succesvol geregistreerd.";
  59.                
  60.                 $Subject = $varWebName;
  61.                 $Headers  = 'MIME-Version: 1.0' . "\r\n";
  62.                 $Headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
  63.                 $Headers .= 'From: noreply@onzewebsite.be' . "\r\n";
  64.                 $Message = "Welkom bij $varWebName,<br>
  65.                                         je kan voortaan bij ons inloggen met volgende gegevens:<br><br>
  66.                                         Gebruikersnaam: $Username<br>
  67.                                         Wachtwoord: $Password1<br>
  68.                                         Gelieve je account activeren door op deze link te klikken $code2 !<br><br>
  69.                                        
  70.                                         We hopen je vaak op onze site terug te vinden <br>
  71.                                         en wensen je er veel plezier!<br><br>
  72.                                         Groeten,<br>
  73.                                         Het $varWebName Team<br>
  74.                                         <a href='$varWebURL'>$varWebURL</a><br>[ Dit is een automatische E-mail. Gelieve hier niet op te antwoorden. ]";
  75.  
  76.                 mail($Email,$Subject,$Message,$Headers);               
  77.                 }
  78.         }       
  79. }
  80. ?>
  81.  
  82.  
  83. <div class='titel'>Register.</div>
  84. <div class='SeperateBar'></div>
  85. <? echo("<font color='red'>$Error</font><font color='green'>$msg</font>"); ?>
  86. <table border="0" cellpadding="0" cellspacing="0">
  87.         <tr valign="top">
  88.         <td>To become a Member of Mydream.com you will have
  89.             to make an account.
  90.             <br />
  91.             <br />
  92.             Registration is absolutely free and only takes a few moments. All you need to do
  93.             is<br />
  94.                         <strong>1.</strong> Register,<br />
  95.                         <strong>2.</strong> Activate your account (to do this you will need to click the
  96.             link in the confirmation email that will be sent to you once you complete step 1)
  97.             <br />
  98.                         <strong>3.</strong> Login!
  99.             <br />
  100.  
  101.             <br />
  102.             <strong>Our promise to you</strong><br />We'll keep your personal details safe and secure. We'll only use your email address to send you information
  103.             you've asked.
  104.             <br />
  105.             <br />
  106.             <strong>Newsletter</strong><br />As a member we'd like to send you our Membership newsletter. It is full
  107.             with the latest news about Mydream.com.
  108.             <br />
  109.             <br />
  110.             Please click the box if you would like to have the members Newsletter.
  111.         </td>
  112.                 <td>
  113.                 </td>
  114.                 <td style="width:580px;">
  115.         <form name="frmRegister" method="post" action="?page=register&act=newuser">
  116.             <table cellpadding="4" cellspacing="1" border="0">
  117.               <tr bgcolor="#f1f0ef">
  118.                 <td>Gebruikersnaam:</td>
  119.                 <td><input name="txtUsername" type="text" value="<?php echo $_POST['txtUsername'] ;?>" style="width: 200px;" /></td>
  120.               </tr>
  121.               <tr bgcolor="#e9e8e7">
  122.                 <td>Paswoord:</td>
  123.                 <td><input name="Password1" type="password" style="width: 200px;" /></td>
  124.               </tr>
  125.               <tr bgcolor="#f1f0ef">
  126.                 <td>Herhaal paswoord:</td>
  127.                 <td><input name="Password2"     type="password" style="width: 200px;" /></td>
  128.               </tr>
  129.               <tr bgcolor="#e9e8e7">
  130.                 <td>E-mail:</td>
  131.                 <td><input name="txtEmail"      type="text" value="<?php echo $_POST['txtEmail'] ;?>" style="width: 200px;" /></td>
  132.               </tr>
  133.               <tr>
  134.                 <td colspan="2" style="padding: 0px;"><div class='SeperateBar2'></div></td>
  135.               </tr>
  136.               <tr bgcolor="#f1f0ef">
  137.                 <td>Vertificatie: </td>
  138.                 <td align="left"><img src="RandPic.php"></td>
  139.               </tr>
  140.               <tr bgcolor="#e9e8e7">
  141.                 <td>&nbsp;</td>
  142.                 <td align="left"><input type='text' name='txtVerify' value='' style="width: 200px;" /></td>
  143.               </tr>     
  144.               <tr bgcolor="#f1f0ef">
  145.                 <td></td>
  146.                 <td align="right"><input type='submit' name='btnRegister' value='Register'/>   </td>
  147.               </tr>     
  148.             </table>       
  149.         </form>
  150.                 </td>
  151.         </tr>
  152. </table>
  153.  


login.php
PHP
  1.  
  2. <?php
  3.  
  4.  
  5.  
  6.  
  7.  
  8. require_once("includes/inc_database.php");
  9.  
  10. require_once("includes/functions.php");
  11.  
  12. ?>
  13.  
  14. <title>Mydream.com - login</title>
  15.  
  16. <?php
  17.  
  18. if (logged_in()) {
  19.  
  20.  
  21.  
  22. echo "Welkom, ".$_SESSION['username'];
  23.  
  24. echo "<br /><br /><a href='logout.php'>Uitloggen</a>";
  25.  
  26.  
  27.  
  28. } else {
  29.  
  30.  
  31.  
  32. $Error = "";
  33.  
  34.  
  35.  
  36. if ($_POST['submit']) {
  37.  
  38.  
  39.  
  40. $username = $_POST['username'];
  41.  
  42. $password = sha1($_POST['password']);
  43.  
  44.  
  45.  
  46.  
  47.  
  48. $check = mysql_query("SELECT * FROM ".$Prefix."users WHERE username='".$username."' AND password='".$password."'") or die(mysql_error());
  49.  
  50. if(mysql_num_rows($check) < 1) {
  51.  
  52.  
  53.  
  54. $Error .= "This combination of username password doesn't exist in our database.";
  55.  
  56.  
  57.  
  58. }
  59.  
  60.  
  61.  
  62. if($Error == ""){
  63.  
  64.                                 $object = mysql_fetch_object($check);
  65.  
  66.                                 $_SESSION['username']=$username;
  67.  
  68.                                 $_SESSION['activation']=$object->activation;
  69.  
  70.                             $_SESSION['hash']=(sha1($_SESSION['username'].$_SESSION['activation']));
  71.  
  72.                                 header("location: login.php");
  73.  
  74.  
  75.  
  76. } else {
  77.  
  78.  
  79.  
  80. echo $Error;
  81.  
  82. ?>
  83.  
  84. <br /><br />
  85.  
  86.                                           
  87.  
  88. <form name="loginform" method="post" action="login.php">
  89.  
  90.   <table width="300" border="0" cellpadding="0" cellspacing="0">
  91.  
  92.     <tr>
  93.  
  94.       <td width="210">Username:</td>
  95.  
  96.       <td>
  97.  
  98.         <input name="username" type="text" id="username"></td></tr>
  99.  
  100.     <tr>
  101.  
  102.       <td>&nbsp;</td>
  103.  
  104.       <td>&nbsp;</td>
  105.  
  106.     </tr>
  107.  
  108.     <tr>
  109.  
  110.       <td>Password:</td>
  111.  
  112.       <td>
  113.  
  114.         <input name="password" type="password" id="password"></td></tr>
  115.  
  116.     <tr>
  117.  
  118.       <td>&nbsp;</td>
  119.  
  120.       <td>&nbsp;</td>
  121.  
  122.     </tr>
  123.  
  124.     <tr>
  125.  
  126.       <td>&nbsp;</td>
  127.  
  128.       <td>
  129.  
  130.         <input type="submit" name="submit" value="Login" /></td>
  131.  
  132.     </tr>
  133.  
  134.   </table>
  135.  
  136. </form>
  137.  
  138. <?php
  139.  
  140. }
  141.  
  142.  
  143.  
  144. } else {
  145.  
  146.  
  147.  
  148. ?>
  149.  
  150. <form name="loginform" method="post" action="login.php">
  151.  
  152.   <table width="300" border="0" cellpadding="0" cellspacing="0">
  153.  
  154.     <tr>
  155.  
  156.       <td width="210">Username:</td>
  157.  
  158.       <td>
  159.  
  160.         <input name="username" type="text" id="username"></td></tr>
  161.  
  162.     <tr>
  163.  
  164.       <td>&nbsp;</td>
  165.  
  166.       <td>&nbsp;</td>
  167.  
  168.     </tr>
  169.  
  170.     <tr>
  171.  
  172.       <td>Password:</td>
  173.  
  174.       <td>
  175.  
  176.         <input name="password" type="password" id="password"></td></tr>
  177.  
  178.     <tr>
  179.  
  180.       <td>&nbsp;</td>
  181.  
  182.       <td>&nbsp;</td>
  183.  
  184.     </tr>
  185.  
  186.     <tr>
  187.  
  188.       <td>&nbsp;</td>
  189.  
  190.       <td>
  191.  
  192.         <input type="submit" name="submit" value="Login" /></td>
  193.  
  194.     </tr>
  195.  
  196.   </table>
  197.  
  198. </form>
  199.  
  200. <?php
  201.  
  202. }
  203.  
  204. }
  205.  
  206. ?>
  207.  


functions.php
PHP
  1.  
  2. <?php
  3.  
  4. function logged_in(){
  5.  
  6. global $_SESSION;
  7.         if ($_SESSION['hash'] && $_SESSION['username'] && $_SESSION['activation']) {
  8.                         if ($_SESSION['hash'] == (sha1($_SESSION['username'].$_SESSION['activation']))) {
  9.                                 return true;
  10.                         } else {
  11.                                 return false;
  12.                         }
  13.         } else {
  14.                 return false;
  15.         }
  16. }
  17. //////////////////////////////////////////////////////////////////////////////////////////////////
  18. function check_login() {
  19.  
  20.         global $_SESSION;
  21.         if (!logged_in()) {
  22.                 header("location: login.php")
  23.         }
  24. }
  25. //////////////////////////////////////////////////////////////////////////////////////////////////
  26. ?>
  27.  


Mvg Gijs
^ Reactie #1 geschreven door Martijn op dinsdag 1 december 2009 om 20:18:36.
Martijn heeft nog geen avatar toegevoegd
Multiviteit: 13785
Beheerder
Wordt er nog code uitgevoerd alvorens de code uit register pagina wordt aangeroepen?
Met vriendelijke groeten,
Martijn Wouters
^ Reactie #2 geschreven door BoeMan op woensdag 2 december 2009 om 14:33:52.
BoeMan heeft nog geen avatar toegevoegd
Multiviteit: 154
Het werkt nu, maar ik zou niet weten waar de fout zat, ik denk ergens fout doorgelinkt ofzo :)
Martijn of iemand anders, zou je dit login script eens willen beoordelen op veiligheid?
  • Pagina
  • 1 van 1

Snel-antwoordformulier
Toon uitgebreid antwoordformulier Bericht nalezen Bericht plaatsen