Autor | Zpráva | ||
---|---|---|---|
andy_99 Profil |
#1 · Zasláno: 2. 7. 2014, 17:52:56
ahoj chcel by som sa vás spýtať pár veci týkajúce sa väčšieho projektu ...
1. Aký postup zvoliť pri vytváraní stránok pre registrovaných používateľov? .. neviem si predstaviť štruktúru stránok a pýtať sa vždy či je používateľ registrovaný alebo nie vedel by mi dať niekto v krátkosti napísať nejaký príklad? 2. chcem si vytvoriť nejakú mini triedu poprípade funkciu .. no žiaľ nenapadlo ma zatiaľ ako by som to spravil napr pri niektorých veciach ako je registrovanie. TO by v zásade malo vypľuť iba TRUE alebo FALS ale ako dostať to že o akú chybu išlo ak to bol false .. snáď som sa vyjadril jasne a bude to pochopiteľné .. Díky. |
||
juriad Profil |
#2 · Zasláno: 2. 7. 2014, 17:59:19
1. Při přihlášení uživateli vytvoříš session a do její identifikátor předáš uživateli. Tímto identifikátorem se příště bude prokazovat. V PHP toto celé spočívá v zavolání funkce session_start na začátku skriptu.
2. Samotná funkce nebude vracet nic. Pokud se zdařila, pokračuje skript normálně. Pokud dojde k chybě, funkce vyhodí výjimku takového typu, který indikuje příčinu. V kódu, který funkci volá tuto výjimku odchytíš a zařídíš se podle ní. |
||
andy_99 Profil |
#3 · Zasláno: 2. 7. 2014, 18:06:20
1. to mi je jasne ako funguje session len mi divne stále volať funkciu vždy pri zmene adresy a pozerať ci session existuje.. ale asi iné riešienie nie je ..
2. tu dvojku moc nechápem popravde .. mohol by si napísať prosím nejaký krátky príklad? |
||
tazatel Profil * |
#4 · Zasláno: 2. 7. 2014, 19:19:17
andy_99:
„1. to mi je jasne ako funguje session len mi divne stále volať funkciu vždy pri zmene adresy a pozerať ci session existuje.. ale asi iné riešienie nie je ..“ if (isset($_SESSION["ID"])) { |
||
Marti_n Profil |
#5 · Zasláno: 2. 7. 2014, 19:55:04
Podľa mňa je to úplne jednoduchý systém
session_start(); // ZAVOLANIE SESSIONS if (isset($_SESSION["id"])) { // UZIVATEL JE PRIHLASENI $User_ID = $_SESSION["id"]; // MAS IDENTIFIKOVANEHO UZIVATELA A PODLA NEHO BEZI DALSIA LOGIKA... } else { // SESSION NEEXISTUJE, BUDE PRESMERUJES NA HLAVNU STRANKU ALEBO ZOBRAZIS OBSAH PRE NEPRIHLASENYCH } |
||
andy_99 Profil |
#6 · Zasláno: 2. 7. 2014, 20:35:30
druhy krát píšem, že viem ako session funguje .. mňa by však zaujímala ta druha otázka .. diky :)
|
||
juriad Profil |
#7 · Zasláno: 2. 7. 2014, 20:49:47
Něco v tomto stylu, ale je to jen ukázka, takže to ber s rezervou. Většinu těch kontrol chceš v praxi provést dříve než zavoláš tuto funkci.
function registerUser($name, $pass1, $pass2) { if (empty($name)) { throw new ValidationException('empty', 'name'); } if (empty($pass1)) { throw new ValidationException('empty', 'pass'); } if ($pass1 != $pass2) { throw new ValidationException('not equal', 'pass'); } try { $res = $db->query('INSERT INTO users (name, password) VALUES (?, ?)', $name, $pass1); } catch (DBExceptionn $e) { if ($e->errorCode == 1169) { # Message: Can't write, because of unique constraint, to table '%s' throw new ValidationException('exists', 'name'); } else { throw $e; } } return $res->insertedId; } |
||
Marti_n Profil |
#8 · Zasláno: 2. 7. 2014, 21:26:04
Príklad:
class Users { private $parameter; // Array public function __construct($parameter) { $this->parameter = $parameter; } public function register() { // REGISTRACIA UZIVATELOV $parameter = $this->parameter; $Username = $parameter[0]; $Password = $parameter[1]; $Mail = $parameter[2]; $Control = 2; // DAJME TOMU ZE ZNAMENA ERROR ..... // KONTROLA UDAJOV KED SU V PORIADKU PRACA S DB $Control = 1; // AK JE KONTROLA USPESNA ZMENI SA PARAMETER NA 1, BUDE TO ZNAMENAT ZE VSETKO PREBEHLO SPRAVNE ...... return $Control; } } // POUZITIE $Users = new Users(array($Osetrene_Meno,$Osetrene_Heslo,$Osetreny_Mail)); $Register = $Users->register(); // JE HODNOTA PREMENNEJ CONTROL if ($Register==1) { echo "Registrácia úspešná"; } else { echo "Registrácia neúspešná"; } |
||
andy_99 Profil |
#9 · Zasláno: 3. 7. 2014, 01:56:27
juriad:
lenže pokiaľ sa nemýlim tak už pri prvom prázdnom poli by mu to hodilo chybu.. co je v poriadku no lenže môže nasledovať ďalších 50 polí, ktoré sú prázdne tak skončí už pri prvom poli .. a ked dorplni aj druhé pole až potom zistí že nemá vyplnené ani tretie pole.. či mýlim sa? |
||
juriad Profil |
#10 · Zasláno: 3. 7. 2014, 10:49:59
andy_99:
Proto píšu, že je to ukázka, kontrola vstupu od uživatele se provádí mnohem dříve, sem jsem to napsal, aby tam bylo alespoň něco. Ono se dost blbě píše příklad, když vůbec netuším, co vše umíš a používáš. Znáš MVC a objektové programování? Pokud ne, přečti o tom něco, třeba ti to odpoví na (nepoložené) otázky. |
||
Časová prodleva: 3 dny
|
|||
andy_99 Profil |
#11 · Zasláno: 6. 7. 2014, 10:57:46
MVC poznám ale toto je projekt kde som začal úplne od nuly. Všetko čo použijem chcem aby bolo vlastné.
Snažím sa len prísť na nejaký vhodný spôsob spravovania chýb no zatiaľ ma nič normálne nenapadlo.. |
||
Časová prodleva: 10 let
|
0