hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 21:30



Jelenlévő felhasználók

Jelenleg 214 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 214 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 6 hozzászólás ] 
Szerző Üzenet
HozzászólásElküldve: 2020.03.23. 21:33 
Offline
Tud valamit
Avatar

Csatlakozott: 2018.11.02. 12:23
Hozzászólások: 148
Megköszönt másnak: 2 alkalommal
Megköszönték neki: 19 alkalommal
Sziasztok!

Elakadtam egy kicsit ennél a pontnál. Azt szeretném megcsinálni, hogy mikor rányom a regisztrációra, ellenőrizze az adatbázisban lévő adatokat, és ha létezik a felhasználónév, akkor írja ki hogy "Ez a felhasználónév létezik."
Illetve, azt szeretném még megcsinálni, hogy csak felhasználónevet lehessen beírni, emailt ne, meg a jelszó mezőbe ellenőrizze a jelszót, pl 5-nél kevesebb karakter ne legyen, tartalmazzon kis és nagy betűket, valamint számot.

Köszönöm előre is!

  1. <?php
  2. session_start();
  3. require_once('dbconnection.php');
  4.  
  5. if(isset($_POST['signup']))
  6. {
  7.     $email=$_POST['email'];
  8.     $password=$_POST['password'];
  9.     $enc_password=$password;
  10.     $msg=mysqli_query($con,"insert into users(email,password) values('$email','$enc_password')");
  11. if($msg)
  12. {
  13. $extra="regisztracio.php";
  14. $_SESSION['login']=$_POST['email'];
  15. $_SESSION['id']=$num['id'];
  16. $_SESSION['name']=$num['fname'];
  17. $host=$_SERVER['HTTP_HOST'];
  18. $uri=rtrim(dirname($_SERVER['PHP_SELF']),'/\\');
  19. header("location:http://$host$uri/$extra");
  20. exit();
  21. }
  22. else
  23. {
  24. $_SESSION['action1']="*Ez a felhasználónév létezik.";
  25. $extra="regisztracio.php";
  26. echo "<script>window.location.href='".$extra."'</script>";
  27. $host  = $_SERVER['HTTP_HOST'];
  28. $uri  = rtrim(dirname($_SERVER['PHP_SELF']),'/\\');
  29. //header("location:http://$host$uri/$extra");
  30. exit();
  31. }
  32. }
  33.  
  34. ?>


  1. <form class="form-login" action="" method="post">
  2.                 <h2 class="form-login-heading">Regisztráció</h2>
  3.                   <p style="color:#F00; padding-top:20px;" align="center">
  4.                     <?php echo $_SESSION['action1'];?><?php echo $_SESSION['action1']="";?></p>
  5.                 <div class="login-wrap">
  6.                     Email cím <input type="text" name="email" class="form-control" placeholder="Email cím" autofocus>
  7.                     <br>
  8.                     Jelszó <input type="password" name="password" class="form-control" placeholder="Jelszó"><br >
  9.                     <div class="sign-up">
  10.                                     <input type="reset" value="Reset">
  11.                                     <input type="submit" name="signup"  value="Sign Up" >
  12.                                     <div class="clear"> </div>
  13.                                 </div>
  14.                  
  15.                 </div>
  16.               </form>

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2020.03.24. 17:07 
Offline
Félisten
Avatar

Csatlakozott: 2016.03.06. 14:20
Hozzászólások: 964
Megköszönt másnak: 102 alkalommal
Megköszönték neki: 134 alkalommal
*tOrNaDo írta:
Sziasztok!

Elakadtam egy kicsit ennél a pontnál. Azt szeretném megcsinálni, hogy mikor rányom a regisztrációra, ellenőrizze az adatbázisban lévő adatokat, és ha létezik a felhasználónév, akkor írja ki hogy "Ez a felhasználónév létezik."
Illetve, azt szeretném még megcsinálni, hogy csak felhasználónevet lehessen beírni, emailt ne, meg a jelszó mezőbe ellenőrizze a jelszót, pl 5-nél kevesebb karakter ne legyen, tartalmazzon kis és nagy betűket, valamint számot.

Köszönöm előre is!

  1. <?php
  2. session_start();
  3. require_once('dbconnection.php');
  4.  
  5. if(isset($_POST['signup']))
  6. {
  7.     $email=$_POST['email'];
  8.     $password=$_POST['password'];
  9.     $enc_password=$password;
  10.     $msg=mysqli_query($con,"insert into users(email,password) values('$email','$enc_password')");
  11. if($msg)
  12. {
  13. $extra="regisztracio.php";
  14. $_SESSION['login']=$_POST['email'];
  15. $_SESSION['id']=$num['id'];
  16. $_SESSION['name']=$num['fname'];
  17. $host=$_SERVER['HTTP_HOST'];
  18. $uri=rtrim(dirname($_SERVER['PHP_SELF']),'/\\');
  19. header("location:http://$host$uri/$extra");
  20. exit();
  21. }
  22. else
  23. {
  24. $_SESSION['action1']="*Ez a felhasználónév létezik.";
  25. $extra="regisztracio.php";
  26. echo "<script>window.location.href='".$extra."'</script>";
  27. $host  = $_SERVER['HTTP_HOST'];
  28. $uri  = rtrim(dirname($_SERVER['PHP_SELF']),'/\\');
  29. //header("location:http://$host$uri/$extra");
  30. exit();
  31. }
  32. }
  33.  
  34. ?>


  1. <form class="form-login" action="" method="post">
  2.                 <h2 class="form-login-heading">Regisztráció</h2>
  3.                   <p style="color:#F00; padding-top:20px;" align="center">
  4.                     <?php echo $_SESSION['action1'];?><?php echo $_SESSION['action1']="";?></p>
  5.                 <div class="login-wrap">
  6.                     Email cím <input type="text" name="email" class="form-control" placeholder="Email cím" autofocus>
  7.                     <br>
  8.                     Jelszó <input type="password" name="password" class="form-control" placeholder="Jelszó"><br >
  9.                     <div class="sign-up">
  10.                                     <input type="reset" value="Reset">
  11.                                     <input type="submit" name="signup"  value="Sign Up" >
  12.                                     <div class="clear"> </div>
  13.                                 </div>
  14.                  
  15.                 </div>
  16.               </form>


A felhasználó cucc meg ott van az else nel. :O

Strlen (olvass utána, azzal tudnád szerintem a karakter szamot)
If(strlen($jelszo) < 5);

_________________
 ! Moderátori megjegyzés (kiki):
Kérlek csekkold az aláírásra vonatkozó szabályokat!


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2020.03.24. 18:39 
Offline
Tud valamit
Avatar

Csatlakozott: 2018.11.02. 12:23
Hozzászólások: 148
Megköszönt másnak: 2 alkalommal
Megköszönték neki: 19 alkalommal
Most sikerült azt elérnem, hogy regisztrációnál semmit nem ír be a MySQL adatbázisba. Valami nem jó de nem jövök rá hogy mi.

  1. <?php
  2. session_start();
  3. require_once('dbconnection.php');
  4.  
  5. if(isset($_POST['signup']))
  6. if($msg)
  7. {
  8. $extra="regisztracio.php";
  9. $_SESSION['login']=$_POST['username'];
  10. $_SESSION['id']=$num['id'];
  11. $host=$_SERVER['HTTP_HOST'];
  12. $uri=rtrim(dirname($_SERVER['PHP_SELF']),'/\\');
  13. header("location:http://$host$uri/$extra");
  14. exit();
  15. }
  16. else
  17. {
  18. $_SESSION['action1']="*Helytelen Felhasználónév vagy Jelszó";
  19. $extra="regisztracio.php";
  20. echo "<script>window.location.href='".$extra."'</script>";
  21. $host  = $_SERVER['HTTP_HOST'];
  22. $uri  = rtrim(dirname($_SERVER['PHP_SELF']),'/\\');
  23. //header("location:http://$host$uri/$extra");
  24. exit();
  25. }
  26. {
  27.     if($_POST['password'] != $_POST['conf_pass']){
  28.         echo '<b>A két jelszó nem egyezik.</b>';
  29.     }else{
  30.  
  31.         $dup = mysqli_query("SELECT username FROM users WHERE username='".$_POST['username']."'");
  32.         if(mysqli_num_rows($dup) >0){
  33.             echo '<b>Ezt a felhasználónevet, valaki már használja!</b>';
  34.         }
  35.         else{
  36.  
  37.             $sql = mysqli_query("INSERT INTO users VALUES(NULL, '$_POST[username]', '$_POST[password]')");    
  38.             if($sql){
  39.                  echo '<b>Sikeresen regisztráltál!</b>';
  40.             }
  41.             else{
  42.                 echo '<b>Sikertelen regisztráció.</b>';
  43.             }
  44.         }
  45.     }
  46. }
  47. ?>


  1. <div class="login-wrap">
  2.                     Email cím <input type="text" id="username" name="username" class="form-control" placeholder="Email cím" autofocus>
  3.                     <br>
  4.                     Jelszó <input type="password" name="password" class="form-control" placeholder="Jelszó"><br >
  5.                     Jelszó újra <input type="password" name="conf_pass" class="form-control" placeholder="Jelszó újra"><br >
  6.                     <div class="sign-up">
  7.                                     <input type="reset" value="Reset">
  8.                                     <input type="submit" name="signup"  value="Sign Up" >
  9.                                     <div class="clear"> </div>
  10.                                 </div>

Eredmény:
Kép


The Peace írta:

A felhasználó cucc meg ott van az else nel. :O

Strlen (olvass utána, azzal tudnád szerintem a karakter szamot)
If(strlen($jelszo) < 5);

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2020.03.24. 18:46 
Offline
Félisten
Avatar

Csatlakozott: 2016.03.06. 14:20
Hozzászólások: 964
Megköszönt másnak: 102 alkalommal
Megköszönték neki: 134 alkalommal
Nézd ki ebből, nem tudom nekem elég fura a te kódod. :D



  1. <?php
  2.  
  3. //Register process
  4. $submit = $_POST['submit'];
  5.  
  6. //form data
  7. $name            = strip_tags($_POST['name']);
  8. $username        = strip_tags($_POST['username']);
  9. $password        = md5(strip_tags($_POST['password']));
  10. $confirmpassword = strip_tags($_POST['confirmpassword']);
  11. $date            = date("Y-m-d");
  12.  
  13. if ($submit) {
  14.  
  15.     if ($username && $password && $confirmpassword) { //encrypt password
  16.         $password        = md5($password);
  17.         $confirmpassword = md5($confirmpassword);
  18.         if ($password == $confirmpassword) {
  19.             //check character length            
  20.             if (strlen($username) > 25 || strlen($name) > 25) {
  21.                 echo  "length of Username or Name is too long";
  22.             } else {
  23.                 //checks password length
  24.                 if (strlen($password) > 20 || strlen($password) < 5) {
  25.                     echo "password must be between 5 and 20 characters";
  26.                 } else {
  27.                     //registers user
  28.                 }
  29.             }
  30.         } else {
  31.             echo "Your passwords to not match!";
  32.         }
  33.  
  34.     } else {
  35.         echo "Please fill in <b>all</b> feidls!";
  36.     }
  37. } // end if submit
  38.  
  39. ?>
  40.  
  41. <html>
  42.     <body>
  43.         <form action='register.php' method='POST'>
  44.             <table>
  45.                 <tr>
  46.                     <td> Your full Name:</td>
  47.                     <td><input type='text' name='name'></td>
  48.                 </tr>
  49.                 <tr>
  50.                     <td> Choose a Username:</td>
  51.                     <td><input type='text' name='username'></td>
  52.                 </tr>
  53.                 <tr>
  54.                     <td> Choose a Password:</td>
  55.                     <td><input type='password' name='password'></td>
  56.                 </tr>
  57.                 <tr>
  58.                     <td> Confirm your Password:</td>
  59.                     <td><input type='password' name='confirmpassword'></td>
  60.                 </tr>
  61.             </table>
  62.             <p><input type="button" onclick="window.location.href='member.php'" value="Register"></p>
  63.         </form>
  64.     </body>
  65. </html>

_________________
 ! Moderátori megjegyzés (kiki):
Kérlek csekkold az aláírásra vonatkozó szabályokat!


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2020.03.28. 13:48 
Offline
SM Fejlesztő
Avatar

Csatlakozott: 2012.10.18. 15:58
Hozzászólások: 2486
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 132 alkalommal
viewtopic.php?f=114&t=30179

Továbbá

regex + preg_match()-el megoldható. Ha nem sikerülne segítek még.

_________________
www.akosvagyok.hu

Ők köszönték meg Maxi nek ezt a hozzászólást: *tOrNaDo (2020.03.30. 17:22)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2020.03.30. 17:21 
Offline
Tud valamit
Avatar

Csatlakozott: 2018.11.02. 12:23
Hozzászólások: 148
Megköszönt másnak: 2 alkalommal
Megköszönték neki: 19 alkalommal
Sikerült mindent megcsinálni, kivéve azt, hogy ha az illető Admin, akkor egy teljesen más oldalra irányítsa.
Nekiláttam, de sajnos sikertelenül. Elakadtam annál a résznél, ahol ellenőrzi bejelentkezéskor, hogy Admin vagy sem.

Tehát, adott egy bejelentkezes.php:
  1. <?php
  2. //Konfig fájl betöltése
  3. require_once('includes/config.php');
  4.  
  5. // Ellenőrizzük, hogy be van e lépve. Ha igen, átirányítjuk a Vezérlőpult oldalra.
  6. if( $user->is_logged_in() ){ header('Location: vezerlopult'); exit(); }
  7.  
  8. // Bejelentkezési Form(Submit)
  9. if(isset($_POST['submit'])){
  10.  
  11.     if (! isset($_POST['username'])) {
  12.         $error[] = "Az összes mező kitöltése kötelező.";
  13.     }
  14.  
  15.     if (! isset($_POST['password'])) {
  16.         $error[] = "Az összes mező kitöltése kötelező.";
  17.     }
  18.  
  19.     $username = $_POST['username'];
  20.     if ($user->isValidUsername($username)){
  21.         if (! isset($_POST['password'])){
  22.             $error[] = 'Kérlek írj be egy jelszót.';
  23.         }
  24.  
  25.         $password = $_POST['password'];
  26.  
  27.         if ($user->login($username, $password)){
  28.             $_SESSION['username'] = $username;
  29.             header('Location: vezerlopult');
  30.             exit;
  31.  
  32.         } else {
  33.             $error[] = 'Hibás Felhasználónév/Jelszó vagy nem lett Aktiválva a Felhasználói fiók.';
  34.         }
  35.     }else{
  36.         $error[] = 'Usernames are required to be Alphanumeric, and between 3-16 characters long';
  37.     }
  38.  
  39. }//Bejelentkezési Form vége
  40.  
  41. //Definiáljuk az oldal leírását.
  42. $title = 'Bejelentkezés';
  43.  
  44. //Betöltjük a fejlécet
  45. require('layout/newheader.php');
  46. ?>
  47.  
  48. <div class="container-fluid h-100 bg-light text-dark">
  49.   <div class="row justify-content-center align-items-center">
  50.     <h1>Bejelentkezés</h1>    
  51.   </div>
  52.   <hr/>
  53.   <div class="row justify-content-center align-items-center h-100">
  54.     <div class="col col-sm-6 col-md-6 col-lg-4 col-xl-3">
  55.             <form role="form" method="post" action="" autocomplete="off">
  56.                 <p><a href="./" type="button" class="badge badge-danger">Vissza a főoldalra</a></p>
  57.                 <?php
  58.                 //Ellenőrizzük a hibákat, hogy vannak e.
  59.                 if (isset($error)){
  60.                     foreach ($error as $error){
  61.                         echo '<p class="bg-danger">'.$error.'</p>';
  62.                     }
  63.                 }
  64.  
  65.                 if (isset($_GET['action'])){
  66.  
  67.                     //Ha minden rendben van, kiírjuk a felhasználónak az adott üzenetet.
  68.                     switch ($_GET['action']) {
  69.                         case 'active':
  70.                             echo "<h2 class='bg-success'>Fiókod sikeresen aktiválva lett! Most már bejelentkezhetsz.</h2>";
  71.                             break;
  72.                         case 'reset':
  73.                             echo "<h2 class='bg-success'>Jelszavadat visszaállításához, elküldtük a linket. Kérlek nézd meg az email fiókodat.</h2>";
  74.                             break;
  75.                         case 'resetAccount':
  76.                             echo "<h2 class='bg-success'>Jelszavad sikeresen módosítva lett. Most már bejelentkezhetsz.</h2>";
  77.                             break;
  78.                     }
  79.  
  80.                 }
  81.  
  82.                
  83.                 ?>
  84.                 <div class="form-group">
  85.                     <input type="text" name="username" id="username" class="form-control input-lg" placeholder="Felhasználónév" value="<?php if(isset($error)){ echo htmlspecialchars($_POST['username'], ENT_QUOTES); } ?>" tabindex="1">
  86.                 </div>
  87.  
  88.                 <div class="form-group">
  89.                     <input type="password" name="password" id="password" class="form-control input-lg" placeholder="Jelszó" tabindex="3">
  90.                 </div>
  91.                
  92.                 <div class="row">
  93.                     <div class="col-xs-9 col-sm-9 col-md-9">
  94.                          <p>Elfelejtetted a jelszavad? <a href="reset" type="button" class="badge badge-warning">Jelszó visszaállítása</a></p>
  95.                     </div>
  96.                 </div>
  97.                
  98.                 <hr>
  99.                 <div class="form-group">
  100.           <div class="container">
  101.             <div class="row">
  102.               <div class="col"><input type="submit" name="submit" value="Bejelentkezés" class="btn btn-primary" tabindex="5"></div>
  103.               <div class="col"><a href="regisztracio" type="button" class="btn btn-primary">Regisztráció</a></div>
  104.             </div>
  105.           </div>
  106.         </div>
  107.             </form>
  108.     </div>
  109. </div>
  110. </div>
  111. <?php
  112. //Betöltjük a Láblécet
  113. require('layout/footer.php');
  114. ?>


Ebbe kellene beleírni, hogy bejelentkezéskor, ellenőrizze hogy a felhasználó Admin, vagy sem.
Az adatbázis jelenleg így néz ki:
Kép
Nagyobb méret: https://gyazo.com/fc599363c6d3a0ef5cea17627efdb4b5
A user_type MySQL oszlopot kellene lekérni, hogy user vagy admin.

Próbálkozásaim:

  1. if (mysqli_num_rows($results) == 1) { // Felhasználó megtalálva.
  2.                 // Ellenőrzi, hogy Admin vagy Felhasználó
  3.                 $logged_in_user = mysqli_fetch_assoc($results);
  4.                 if ($logged_in_user['user_type'] == 'admin') {
  5.  
  6.                     $_SESSION['user'] = $logged_in_user;
  7.                     $_SESSION['success']  = "Bejelentkeztél, mint Admin!";
  8.                     header('location: admin/home.php');      
  9.                 }else{
  10.                     $_SESSION['user'] = $logged_in_user;
  11.                     $_SESSION['success']  = "Bejelentkeztél, mint Felhasználó!";
  12.  
  13.                     header('location: vezerlopult.php');
  14.                 }
  15.             }

Arra gondoltam, egyszerű logikával, hogy lekérem adatbázisból a user_type -ot, és ha admin az érték, akkor átirányítom az admin/home.php oldalra. Ha nem admin az illető, tehát a user_type érték lekérésekor user-t dob vissza, akkor a vezerlopult.php-ba irányítom át.
True vagy False értéket ad vissza(Ha az illető admin akkor True, ha nem akkor False, és ugyan ez userként is.):
  1. function isLoggedIn()
  2.     {
  3.         if (isset($_SESSION['user'])) {
  4.             return true;
  5.         }else{
  6.             return false;
  7.         }
  8.     }
  9.  
  10.     function isAdmin()
  11.     {
  12.         if (isset($_SESSION['user']) && $_SESSION['user']['user_type'] == 'admin' ) {
  13.             return true;
  14.         }else{
  15.             return false;
  16.         }
  17.     }

Nyilván, amit csak Adminisztrátor láthat oldal, az egyszerű. Lekérem hogy Admin-e az illető vagy sem. Ha admin, megnézheti az admin/home.php tartalmát, ha nem admin, átirányítom.
  1. <?php
  2.     include('../functions.php');
  3.     // Ellenőrzi hogy admin, vagy nem.
  4.     if (!isAdmin()) {
  5.         $_SESSION['msg'] = "You must log in first";
  6.         header('location: ../login.php');
  7.     }
  8.  
  9. ?>
  10. <!DOCTYPE html>
  11. <html>
  12. <head>
  13.     <title>Teszt oldal</title>
  14.     <link rel="stylesheet" type="text/css" href="../style.css">
  15.     <style>
  16.     .header {
  17.         background: #003366;
  18.     }
  19.     button[name=register_btn] {
  20.         background: #003366;
  21.     }
  22.     </style>
  23. </head>
  24. <body>
  25.     <div class="header">
  26.         <h2>Admin - Kezdőlap</h2>
  27.     </div>
  28.     <div class="content">
  29.         <!-- Értesítési üzenetek -->
  30.         <?php if (isset($_SESSION['success'])) : ?>
  31.             <div class="error success" >
  32.                 <h3>
  33.                     <?php
  34.                         echo $_SESSION['success'];
  35.                         unset($_SESSION['success']);
  36.                     ?>
  37.                 </h3>
  38.             </div>
  39.         <?php endif ?>
  40.  
  41.         <!-- Bejelentkezett Adminnak az információi -->
  42.         <div class="profile_info">
  43.             <img src="../images/admin_profile.png"  >
  44.  
  45.             <div>
  46.                 <?php  if (isset($_SESSION['user'])) : ?>
  47.                     <strong><?php echo $_SESSION['user']['username']; ?></strong>
  48.  
  49.                     <small>
  50.                         <i  style="color: #888;">(<?php echo ucfirst($_SESSION['user']['user_type']); ?>)</i>
  51.                         <br>
  52.                         <a href="home.php?logout='1'" style="color: red;">Kijelentkezés</a>
  53.                         &nbsp;
  54.                     </small>
  55.  
  56.                 <?php endif ?>
  57.             </div>
  58.         </div>
  59.  
  60.  
  61.  
  62.     </div>
  63.        
  64. </body>
  65. </html>



Maxi írta:
viewtopic.php?f=114&t=30179

Továbbá

regex + preg_match()-el megoldható. Ha nem sikerülne segítek még.

_________________
****


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 6 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 3 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole