Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 5. diel - Ners - Registrácia užívateľov v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Josef Kuchař - Pepa489:30.3.2014 20:46
Vítejte v administraci, jste přihlášeni jako admin
Nemáte administrátorská oprávnění, požádejte administrátora webu, aby vám je přidělil.
:D
Odpovedať
2x piš, jednou debuguj
Avatar
Jiří Jeřábek (thechorcheecz):13.4.2014 22:57

Zdravím, mám tu problém s vypsání chybové hlášky jako je

'Chybně vyplněný antispam.'

a

'Hesla nesouhlasí'

prostě se to nevypíše, když to zadám naschvál špatně. Zkoušel jsem to vypsat přes echo, ale taky nefungovalo. Při zadání správně tak funguje. Díky

Avatar
Odpovedá na Jiří Jeřábek (thechorcheecz)
Neaktivní uživatel:14.4.2014 20:59

Tak nám ukaž tvůj php kód, tenhle z devbooku totiž funguje úplně normálně.

Odpovedať
Neaktivní uživatelský účet
Avatar
Jiří Jeřábek (thechorcheecz):16.4.2014 20:48

PHP kód mám odsud, úplně stejnej tak nevím, nic jsem neměnil.

<?php
session_start();
require('Db.php');
Db::connect('127.0.0.1', 'ners_db', 'root', '');

if ($_POST)
{
        if ($_POST['rok'] != date('Y'))
                $zprava = 'Chybně vyplněný antispam.';
        else if ($_POST['heslo'] != $_POST['heslo_znovu'])
                $zprava = 'Hesla nesouhlasí';
        else
        {
                $existuje = Db::querySingle('
                        SELECT COUNT(*)
                        FROM uzivatele
                        WHERE jmeno=?
                        LIMIT 1
                ', $_POST['jmeno']);
                if ($existuje)
                        $zprava = 'Uživatel s touto přezdívkou je již v databázi obsažen.';
                else
                {
                        Db::query('
                                INSERT INTO uzivatele (jmeno, heslo)
                                VALUES (?, SHA1(?))
                        ', $_POST['jmeno'], $_POST['heslo'] . "t&#ssdf54gh");
                        $_SESSION['uzivatel_id'] = Db::getLastId();
                        $_SESSION['uzivatel_jmeno'] = $_POST['jmeno'];
                        $_SESSION['uzivatel_admin'] = 0;
                        header('Location: administrace.php');
                        exit();
                }
        }
}
?>
Avatar
Mazwor
Člen
Avatar
Mazwor:18.7.2014 22:49

Ahoj,
nerad bych otravoval zbytečnostmi (a drobnostmi), ale rád bych si ujasnil, zda dané problematice rozumím.
Bylo by možné poslední PHP kód napsat v opačném pořadí, a díky tomu do druhé podmínky už zadat pouze session_destro­y();? Myslím to tak, že by se u první podmínky (v případě cíleného odhlášení) vymazala data ze $_SESSION, tudíž by odhlášení způsobila přímo druhá podmínka, říkám to správně?
Předem díky za odpovědi a za pomoc :).

Ten myšlený kód bych zapsal takto:

<?php
session_start();
if (isset($_GET['odhlasit']))
{
        session_destroy();
}
if (!isset($_SESSION['uzivatel_id']))
{
        header('Location: prihlaseni.php');
        exit();
}
?>
Editované
Odpovedať
Pořádek je pro blbce, inteligent ovládá chaos. :D
Avatar
mmartinssedlacek:24.8.2014 12:08

pozri sa, ci mas spravne nastavene vypisanie if(isset($sprava)) echo($sprava);

Avatar
N-nojmi
Člen
Avatar
Odpovedá na Jiří Jeřábek (thechorcheecz)
N-nojmi:18.9.2014 15:33

Mám stejný problém, jak si to vyřešil?

Odpovedať
Není hloupých lidí, jen lidí co málo používají google...
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovedá na N-nojmi
Jan Lupčík:18.9.2014 15:50

Zadáváš tam

require('Db.php');

?

Odpovedať
TruckersMP vývojář
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovedá na N-nojmi
Jan Lupčík:18.9.2014 15:50

Omlouvám se za double post. Ještě mě napadá - nezapomněl jsi tam napsat

echo $zprava;

?

Editované
Odpovedať
TruckersMP vývojář
Avatar
N-nojmi
Člen
Avatar
Odpovedá na Jan Lupčík
N-nojmi:18.9.2014 16:12

Tohle je můj kód:

<?php
            session_start();
            require('Db.php');
            Db::connect('127.0.0.1', 'redakcni_system_db', 'root', '');

            if ($_POST)
            {
                    if ($_POST['rok'] != date('Y'))
                            $zprava = 'Chybně vyplněný antispam.';
                    else if ($_POST['heslo'] != $_POST['heslo_znovu'])
                            $zprava = 'Hesla nesouhlasí';
                    else
                    {
                            $existuje = Db::querySingle('
                                    SELECT COUNT(*)
                                    FROM uzivatele
                                    WHERE jmeno=?
                                    LIMIT 1
                            ', $_POST['jmeno']);
                            if ($existuje)
                                    $zprava = 'Uživatel s touto přezdívkou je již v databázi obsažen.';
                            else
                            {
                                    Db::query('
                                            INSERT INTO uzivatele (jmeno, heslo)
                                            VALUES (?, SHA1(?))
                                    ', $_POST['jmeno'], $_POST['heslo'] . "t&#ssdf54gh");
                                    $_SESSION['uzivatel_id'] = Db::getLastId();
                                    $_SESSION['uzivatel_jmeno'] = $_POST['jmeno'];
                                    $_SESSION['uzivatel_admin'] = 0;
                                    header('Location: administrace.php');
                                    exit();
                            }
                    }
            }
            ?>
Odpovedať
Není hloupých lidí, jen lidí co málo používají google...
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 138.