Autor Zpráva
andy_99
Profil
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
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
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 *
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"])) {
Jak by sis představoval jednodušší řešení?
Marti_n
Profil
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
druhy krát píšem, že viem ako session funguje .. mňa by však zaujímala ta druha otázka .. diky :)
juriad
Profil
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
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
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
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.
andy_99
Profil
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..

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0