hlmod.hu

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



Jelenlévő felhasználók

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

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

Regisztrált felhasználók: Google [Bot] 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  [ 13 hozzászólás ]  Oldal 1 2 Következő
Szerző Üzenet
HozzászólásElküldve: 2016.08.15. 20:57 
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
Sziasztok,
ebben a tutorialban megmutatom, hogy hogyan tudtok egy olyan form-ot irni, ahol regisztrálni, és bejelentkezni is tudtok. (MySQL segitségével.)
Kezdjünk hozzá.
A mi esetünkben 3 file-ra lesz szükségünk: [index.php;connect.php;action.php]

Mindenek előtt szükségünk lesz egy MySQL táblára. Amint belépsz a phpmyadmin-ba fölül látsz egy menüpontot elnevezve 'Adatbázisok'-nak

Hozz létre egy adatbázis-t, egy tetszőleges néven. (Jelen esetben tutorial)

Ha készen vagyunk, ugyancsak fölül találsz egy 'SQL' Menüpontot. Elvileg egy szövegirásra alkalmas felület tárult eléd.

Ide hozzunk létre 3 oszlopot e segitségével!
Kód:
CREATE TABLE user (
   id int(11) not null PRIMARY KEY AUTO_INCREMENT, /*Egy szimpla id oszlop, későbbiekben a sessiont fogja segiteni, AUTOMATIKUS értékkel ruházzuk fel, és nem lehet nulla az értéke.*/
   username varchar(128) not null, /*username nevű tábla -> 128 karakter, üres nem lehet.*/
   password varchar(999) not null /*password nevű tábla -> 999 karakter, üres nem lehet.*/
);

Még egy lépés van, mielőtt hozzákezdhetnénk nyugodtszivvel az űrlap megirásához, elsőnek megirjuk gyorsan a connect.php-t.
  1. <?php
  2.     $conn = mysqli_connect("localhost"/*vagy 127.0.0.1*/,"root","","tutorial"); //jelenlegi adatok. Általában localhostra irányitunk.
  3. ?>

Ez egy sort vett igénybe.


Kezdjük el az index.php megirását.

  1. <html>
  2. <body>
  3.  
  4. <form action="action.php" method="POST"> <!----- Megnyitjuk a formot, adunk neki egy methodot, legyen POST.
  5. Annyit tesz konyhanyelven, hogy ezzel elküldjük egy másik fájlnak.
  6. Jelen esetben: action.php---->
  7.     <input type="text" name="felh_nev" placeholder="Felhasználónév"/><br/> <!--- Beirjuk a szükséges inputokat, felhasznalonev, es jelszó. + Egy elküldő gomb.--->
  8.     <input type="password" name="j_sz" placeholder="Jelszó"/><br/>
  9.     <input type="submit" name="submit1" value="Regisztráció"/> <!--- Ezzel küldjük tovább az action.php-hoz az adatokat.--->
  10. </form>
  11. </body>
  12. </html>


Nézzük azt az action.php-t: Valahogy igy kell kinéznie.
  1. <?php
  2.     include('connect.php'); //hozzárendeljük a connect.php-t
  3.     $felh_nev = $_POST['felh_nev']; // Az előbbi form-ban megirt inputok lekérése. name-t kérjük le.
  4.     $j_sz = $_POST['j_sz'];
  5.     if(isset($_POST['submit1'])) //HA megnyomta az elküldő gombot (Regisztráció){
  6.         $sql = "INSERT INTO user (username,password) VALUES ('$felh_nev', '$j_sz')"; //Akkor beilleszti a username táblába a $felh_nev-et, és a password-ba a $j_sz-et.
  7. /* Valahogy igy:
  8. * $felh_nev -> username
  9. * $j_sz -> password
  10. * !!Az id helyét nem kell félteni, mivel autómatikusan kitölti, ahogy megadtuk a tábla kreálásakor!!
  11. */
  12.         $result = mysqli_query($conn,$sql); // és végül 'beletöltjük'
  13.         header("Location: index.php"); //Majd visszatéritjük a kezdőlapra.
  14.         die(); //kilépünk, hogy biztos legyen.
  15.     }
  16. }


Ha minden igaz, megkellett hogy jelenjen végre egy sor az oszlopunkban, ha kipróbáltuk.

A regisztrációval kész is lennénk, persze ez egy nagyon egyszerű példa, lehet ezzel játszadozni éjjeleken át. (Vezetéknév, keresztnév, e-mail formátumok, jelszó formátum/erősség etc.)

Jöjjön a login.
Én ugyan úgy az index.php-ba irom,s ugyanazokkal az adatokkal.
  1. <form action="action.php" method="POST">
  2.     <input type="text" name="felh_nev" placeholder="Felhasználónév"/><br/>
  3.     <input type="password" name="j_sz" placeholder="Jelszó"/><br/>
  4.     <input type="submit" name="submit1" value="Regisztráció"/>
  5. </form>
  6. <hr/>
  7. <form action="action.php" method="POST"> //ugyan ugy az action.php-ra iranyitjuk.
  8.     <input type="text" name="felh_nev" placeholder="Felhasználónév"/><br/>
  9.     <input type="password" name="j_sz" placeholder="Jelszó"/><br/>
  10.     <input type="submit" name="submit2" value="Bejelentkezés"/> // FONTOS: Itt a name="submit2" !!
  11. </form>


Jelenleg igy néz ki az oldalunk.

Folytatjuk az action.php-t ezzel:
  1. else if(isset($_POST['submit2'])) //VAGY HA a submit2-t nyomja meg(Bejelentkezés) {
  2.         $sql = "SELECT * FROM user WHERE username='$felh_nev' AND password='$j_sz'"; // AKKOR KIVÁLASZTJUK az összeset (*) a user táblából, AHOL username=$felh_nev és password=$j_sz.
  3.         $result = mysqli_query($conn,$sql); //Majd végrehajtjuk
  4.         if(!$row=mysqli_fetch_assoc($result)) echo 'Nemjo'; //Ha nem jó, akkor kiiratjuk.
  5.         else {
  6.          /*HA JÓ, és itt kezdődik az érdekes része*/
  7.             $_SESSION['id'] = $row['id']; //inditunk egy sessiont.
  8.             header("Location: index.php"); //visszaküldjük a kezdőlapra.
  9.         }
  10.     }

Egyenlőre még semmi változást nem tapasztalunk, hisz a session nem fut le az indexen.
Nincs más dolgunk mint, hogy egy
session_start(); -ot irunk mind a két fájl tetejére, persze php részbe.

TESZTELJÜK:

index.php teteje:
  1. <?php
  2.     session_start();
  3.     if(isset($_SESSION['id'])) {
  4.         echo 'Be vagy jelentkezve. ID: '.$_SESSION['id'];
  5.     }
  6. ?>


Ha bejelentkeztél, s az oldal tetején kiirja Hogy: Be vagy jelentkezve. ID: 1
Akkor tökéletesen működik, innentől kezdve csak kreativitás az egész.

LINKEK:

DEMO: http://users.atw.hu/b20/demo1
Letöltés:
Csatolmány:
indexconnectaction_24.zip [1.23 KiB]
Letöltve 355 alkalommal.


Remélem segitettem!

Üdv, maxi.

_________________
www.akosvagyok.hu

Ők köszönték meg Maxi nek ezt a hozzászólást: Uber (2016.08.17. 11:16)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2016.08.15. 21:04 
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
Szevasz! biztos jó kis reg and login cuccos lehet csak hát a Demó az nem megy :$

_________________
 ! 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: 2016.08.15. 21:06 
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
Szia, mostmár megy. A demon csak a külalakját látod az elkészült formnak.
Nem működik, nem kötöttem sql-re.

_________________
www.akosvagyok.hu


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2017.03.17. 17:54 
Offline
Signore Senior
Avatar

Csatlakozott: 2011.09.09. 17:39
Hozzászólások: 4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
Csak titkosítanám azt a jelszót, mert ez így jópár szabványnak nem felelne meg, ha éles oldal lenne.

+ MariaDB-t is egyre ritkábban használnak már, de hozzá procedurális mysql kapcsolódást php-ban mégkevésbé.


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2017.03.17. 22:25 
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
Nyilván jelszavakat látni picikét illegális.
Sőt, ajánlott is titkosítani a tutorial értelme nem az volt. Annyit mindenki hozzá tud tenni, hogy $newpw = md5($pw)

A legegyszerűbb módját mutattam meg egy ilyennek. Ettől persze, hogy vannak kulturáltabb verziók, s felhasználóbarátabb megoldások.
Silent írta:
Csak titkosítanám azt a jelszót, mert ez így jópár szabványnak nem felelne meg, ha éles oldal lenne.

+ MariaDB-t is egyre ritkábban használnak már, de hozzá procedurális mysql kapcsolódást php-ban mégkevésbé.

_________________
www.akosvagyok.hu


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2017.03.28. 19:10 
Offline
Signore Senior
Avatar

Csatlakozott: 2011.09.09. 17:39
Hozzászólások: 4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
Te..

És ha én a nevem helyére ezt írom?
Kód:
trololo'); DROP TABLE user;--


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2017.04.17. 00:20 
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
Maxi írta:
A legegyszerűbb módját mutattam meg egy ilyennek.


  1. $query = "INSERT INTO db(u,p) VALUES( ";
  2. $query .= "'".$vu."',";
  3. $query .= "'".$vp."'";
  4. $query .= ")";
  5. $sqlvariable->query($query); //->

_________________
www.akosvagyok.hu


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2017.04.17. 12:48 
Offline
Signore Senior
Avatar

Csatlakozott: 2011.09.09. 17:39
Hozzászólások: 4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
Ez mi? xd


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2017.11.28. 11:12 
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
Átírtam SQLi-ről SQL-re de hiába, amikor belépnék semmit nem ír csak újra frissít a web :o , miért lehet ?


Action.php


  1. <?php
  2.     session_start();
  3.     include('connect.php');
  4.     $felh_nev = $_POST['felh_nev'];
  5.     $j_sz = $_POST['j_sz'];
  6.    
  7.     if(isset($_POST["submit2"]))
  8.     {
  9.         $sql = "SELECT * FROM habile_deathrun WHERE Felhasznalonev='$felh_nev' AND Jelszo='$j_sz'";  
  10.         $result = mysql_query("select * from habile_deathrun");
  11.          
  12.          
  13.         if($row = mysql_fetch_assoc($result))  echo "Nemjo";
  14.         }else
  15.         {
  16.             $_SESSION['id'] = $row['id'];  
  17.             header("Location: index.php");
  18.         }
  19. ?>



Index.php


  1. <?php
  2.     session_start();
  3.     if(isset($_SESSION["id"]))
  4.     {
  5.         echo 'Be vagy jelentkezve. ID: '.$_SESSION['id'];
  6.     }
  7. ?>
  8. <html>
  9. <body>
  10.  
  11.  
  12. <form action="action.php" method="POST">
  13.     <input type="text" name="felh_nev" placeholder="Felhasználónév"/><br/>
  14.     <input type="password" name="j_sz" placeholder="Jelszó"/><br/>
  15.     <input type="submit" name="submit2" value="Bejelentkezés"/>
  16. </form>
  17.  
  18. </body>
  19. </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: 2017.11.29. 13:14 
Offline
Signore Senior
Avatar

Csatlakozott: 2011.09.09. 17:39
Hozzászólások: 4020
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 139 alkalommal
Van baj bőven. Kérdezem, hogy az a $sql változó ott minek, ha nem is használod?

Ez a script egyelőre annyira jó, hogy ha a `habile_deathrun` tábládban van minimum egy sor, akkor printel egy 'Nemjo'-t.


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  [ 13 hozzászólás ]  Oldal 1 2 Következő


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 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