Eredmény: 1 - 9 (9) összesen

Téma: Kohana Validate Form

  1. #1
    Szerkesztő djjean logója
    Csatlakozott
    11-10-15
    Hely
    Baja
    Hozzászólás
    210
    Begyűjtött 47 köszönetet
    43 hozzászólásával

    Alapbeállítás Kohana Validate Form

    Sziasztok!

    Elkezdtem ismerkedni a Kohana keretrendszerrel, de belefutottam egy problémába.

    Ezt a fejezetet kezdtem el tanulmányozni : User Guide-> Kohana-> Security-> Validation



    Viszont elakadtam, mindent beillesztettem a megfelelő helyre, de mégsem működik a dolog, mert ez a hibaüzenetet kapom:

    PHP kód:
    ErrorException [ Notice ]: Undefined variable: errors



    APPPATH\views\user\register.php [ 2 ]

    <?php echo Form::open() ?>
    <?php if ($errors): ?>
    3 <p class="message">Some errors were encountered, please check the details you entered.</p>
    4 <ul class="errors">
    <?php foreach ($errors as $message): ?>
    6     <li><?php echo $message ?></li>
    <?php endforeach ?>

    Valamit kihagytam? Vagy nem ennyiből áll a dolog?

    Köszi a segítséget előre is!



  2. #2
    Bölcs benedictus logója
    Csatlakozott
    10-04-23
    Hozzászólás
    1.574
    Begyűjtött 2 köszönetet
    2 hozzászólásával

    Alapbeállítás re: Kohana Validate Form

    PHP kód:
    <?php echo Form::open() ?>
     <?php if (isset($errors)): ?>
     <p class="message">Some errors were encountered, please check the details you entered.</p>
     <ul class="errors">
     <?php foreach ($errors as $message): ?>
         <li><?php echo $message ?></li>
    próbáld ezt
    <?php endforeach ?>



  3. #3
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.605
    Begyűjtött 1.332 köszönetet
    828 hozzászólásával

    Alapbeállítás re: Kohana Validate Form

    PHP kód:
    class Controller_User extends Controller {
     
        public function 
    action_register()
        {
            
    $user Model::factory('user');
     
            
    $post Validation::factory($_POST)
                ->
    rule('username''not_empty')
                ->
    rule('username''regex', array(':value''/^[a-z_.]++$/iD'))
                ->
    rule('username', array($user'unique_username'))
     
                ->
    rule('password''not_empty')
                ->
    rule('password''min_length', array(':value'6))
                ->
    rule('confirm',  'matches', array(':validation'':field''password'))
     
                ->
    rule('use_ssl''not_empty')
                ->
    rule('use_ssl''in_array', array(':value', array('yes''no')));
     
            if (
    $post->check())
            {
                
    // Data has been validated, register the user
                
    $user->register($post);
     
                
    // Always redirect after a successful POST to prevent refresh warnings
                
    $this->request->redirect('user/profile');
            }
     
            
    // Validation failed, collect the errors
            
    $errors $post->errors('user');
     
            
    // Display the registration form
            
    $this->response->body(View::factory('user/register'))
                ->
    bind('post'$post)
                ->
    bind('errors'$errors);
        }
     

    A controllered igy nez ki? Mert szerintem nem adod at a view-nak az errors valtozot es ezert kapod a hibat. Amit benedictus irt az felejtsd el, mert az nem megoldas a problemara ebben az esetben. Annak a valtozonak erteke kell hogy legyen.


    If debugging is the process of removing software bugs, then programming must be the process of putting them in.
    Github Rake tutorial
    Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime.
    Respect all, fear none

  4. #4
    Szerkesztő djjean logója
    Csatlakozott
    11-10-15
    Hely
    Baja
    Hozzászólás
    210
    Begyűjtött 47 köszönetet
    43 hozzászólásával

    Alapbeállítás re: Kohana Validate Form

    Complete sample szerint jártam el tehát így néz ki a dolog:

    Controller:
    user.php
    PHP kód:
    <?
    class Controller_User extends Controller {
     
        public function 
    action_register()
        {
            
    $user Model::factory('user');
     
            
    $post Validation::factory($_POST)
                ->
    rule('username''not_empty')
                ->
    rule('username''regex', array(':value''/^[a-z_.]++$/iD'))
     
                ->
    rule('password''not_empty')
                ->
    rule('password''min_length', array(':value'6))
                ->
    rule('confirm',  'matches', array(':validation'':field''password'))
     
                ->
    rule('use_ssl''not_empty')
                ->
    rule('use_ssl''in_array', array(':value', array('yes''no')));
     
            if (
    $post->check())
            {
                
    // Data has been validated, register the user
                
    $user->register($post);
     
                
    // Always redirect after a successful POST to prevent refresh warnings
                
    $this->request->redirect('user/profile');
            }
     
            
    // Validation failed, collect the errors
            
    $errors $post->errors('user');
     
            
    // Display the registration form
            
    $this->response->body(View::factory('user/register'))
                ->
    bind('post'$post)
                ->
    bind('errors'$errors);
        }
     
    }
    ?>
    model:

    user.php

    PHP kód:
    <?
    class Model_User extends Model {
     
        public function 
    register($array)
        {
            
    // Create a new user record in the database
            
    $id DB::insert(array_keys($array))
                ->
    values($array)
                ->
    execute();
     
            
    // Save the new user id to a cookie
            
    cookie::set('user'$id);
     
            return 
    $id;
        }
     
    }
    ?>
    és a view:
    user/register.php

    PHP kód:
    <?php echo Form::open() ?>
    <?php 
    if ($errors): ?>
    <p class="message">Some errors were encountered, please check the details you entered.</p>
    <ul class="errors">
    <?php foreach ($errors as $message): ?>
        <li><?php echo $message ?></li>
    <?php endforeach ?>
    <?php 
    endif ?>
     
    <dl>
        <dt><?php echo Form::label('username''Username'?></dt>
        <dd><?php echo Form::input('username'$post['username']) ?></dd>
     
        <dt><?php echo Form::label('password''Password'?></dt>
        <dd><?php echo Form::password('password'?></dd>
        <dd class="help">Passwords must be at least 6 characters long.</dd>
        <dt><?php echo Form::label('confirm''Confirm Password'?></dt>
        <dd><?php echo Form::password('confirm'?></dd>
     
        <dt><?php echo Form::label('use_ssl''Use extra security?'?></dt>
        <dd><?php echo Form::select('use_ssl', array('yes' => 'Always''no' => 'Only when necessary'), $post['use_ssl']) ?></dd>
        <dd class="help">For security, SSL is always used when making payments.</dd>
    </dl>
     
    <?php echo Form::submit(NULL'Sign Up'?>
    <?php 
    echo Form::close() ?>


    Ezért se értem, mi lehet a gond Eddig minden fejezetre rájöttem ha valami nem stimmelt, de itt nem értem miért nem jön át a változó.



  5. #5
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.605
    Begyűjtött 1.332 köszönetet
    828 hozzászólásával

    Alapbeállítás re: Kohana Validate Form

    Nem igazan ismerem a Kohanat, de ez az action ahogy latom akkor kell hogy meghivodjon amikor elkuldod a formot. Akkor jelentkezik a hiba, vagy akkor amikor csak megnyitod kitoltesre? Mert ha az utobbi, akkor annak csinalj egy kulon action-t a formnak es postold az action_register-re.

    Es en a helyedben dobnak a Kohanat, mert ha avalidalast a controllerben kell defininalni, akkor ez nem valami DRY megoldas. Helyette problad ki a Yii-t. Vagy ha megjobbat akarsz akkor Ruby es Rails .



  6. #6
    Szerkesztő djjean logója
    Csatlakozott
    11-10-15
    Hely
    Baja
    Hozzászólás
    210
    Begyűjtött 47 köszönetet
    43 hozzászólásával

    Alapbeállítás re: Kohana Validate Form

    Köszi! Kipróbálom! Csak gondoltam meg tanulok egy keretrendszert, mert ahogy olvastam könyebben lehet velük boldogulni. És ezt a kohanát ajánlatották a több helyen. Bár nem értem mit ronthattam el, elvileg úgy jártam el, ahogy a nagykönyvbe le van írva.

    Köszi a segítséget!



  7. #7
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.605
    Begyűjtött 1.332 köszönetet
    828 hozzászólásával

    Alapbeállítás re: Kohana Validate Form

    En meg nem probaltam a Kohanat, de ha a validalast a controller actionjeinel kell megadnod(en igy latom a peldanal), akkor ez azt jelenti, hogy a create es update metodusoknal ismetled valoszinuleg. Innentol a kodod tele lesz duplikaciokkal es ha kesobb modositani kell valamit, akkor az egy szivas lesz.
    Viszont a keretrendszer hasznalat mindenkeppen hasznos. Sok idot tud megsporolni.



  8. #8
    Szerkesztő djjean logója
    Csatlakozott
    11-10-15
    Hely
    Baja
    Hozzászólás
    210
    Begyűjtött 47 köszönetet
    43 hozzászólásával

    Alapbeállítás re: Kohana Validate Form

    Ez a yii egész jónak tűnik tényleg. Komplett teszt oldalakat is mellékel, amit lehet tanulmányozni. Na ilyen hiányzott nekem. Köszi mégegyszer!



  9. #9
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.605
    Begyűjtött 1.332 köszönetet
    828 hozzászólásával

    Alapbeállítás re: Kohana Validate Form

    szivesen. ha elakadsz, kerdezz nyugodtan.



Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •