POSLEDNÍ ŠANCE: Pracuj až o 60 % rychleji díky akreditovanému kurzu Specialista na AI. Nyní již od 0 Kč. Zjisti více:

Diskuze – Lekce 3 - Formulář a výpis dat z databáze do tabulky v PHP

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
petr.lhota
Člen
Avatar
petr.lhota:10.6.2015 12:04

Tak uz rozumim, dekuju. Nastavil jsem "null" v databazi, vse bezi... Petr.

Odpovědět
10.6.2015 12:04
At uz peklo bylo nebo nebylo, vymysleno bylo dobre.
Avatar
petr.lhota
Člen
Avatar
petr.lhota:10.6.2015 12:49

po stisknuti klavesy F5 se mi plni databaze poslednim zadavanym uzivatel - kam mohu v kodu dopsat funkci header pro procisteni? Petr

Odpovědět
10.6.2015 12:49
At uz peklo bylo nebo nebylo, vymysleno bylo dobre.
Avatar
Milan Martinek:23.7.2015 16:36

zdravim,

snazim se napsat jednoduchou ukazkovou aplikaci, ktera bude zranitelna na sql injection. je to kvuli nejakemu pseudo skoleni at jen nemluvim abstraktne, chtel bych i neco malo skutecneho ukazat.

vzal jsem si tady formular a prepsal to na stary zpusob pripojeni do databaze pres mysql_query, nikde neni nic filtrovane, nikde nejsou prepared statements, nikde neni nic escapovane. proste co prijde v $_POST to se preda primo sql dotazu, nebo aspon tak chapu veskere upozorneni tady v clanku, ze takhle se to delat nema protoze to je zranitelne.

funguje v tom

' or 'x'='x

coz vypise vsechny zaznamy tabulky, jak je ocekavane.

pokud tam ale zadam vys uvadene delete, to jest pisu tam

'; delete from uzivatele;") --

dostavam pak odpoved Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in ...

co jsem procetl tak bude problem prave v pouziti mysql_fetch_array ktere nezpracuje 2 prikazy po sobe.

ale uz nemuzu nikde dohledat co a jak pouzit misto toho nebo jak postavit dotaz aby se smazaly polozky v tabulce.

dekuju predem za pomoc.

jedna se o nasledujici kod:

<html>
<body>

<?php
    $server='127.0.0.1';
    $username='root';
    $password='';
    $database_name='databaze_pro_web';

    mysql_connect($server, $username, $password);
    mysql_select_db($database_name);

    if ($_POST)
    {
    $iduz=$_POST['iduzivatele']; --z formulare prijde iduzivatele, napriklad 1 nebo 3 nebo 5
    echo($iduz); --pro kontrolu vypise co prislo z formulare a co presne se zpracovava dal

    $dotaz=mysql_query("SELECT * FROM uzivatele WHERE uzivatele_id='$iduz';");
    while ($zaznam=  mysql_fetch_array($dotaz))
    {
        echo('<table border=1>');
        echo('  <tr>');
        echo('      <td>'.$zaznam['jmeno'].'</td>');
        echo('      <td>'.$zaznam['prijmeni'].'</td>');
        echo('      <td>'.$zaznam['datum_narozeni'].'</td>');
        echo('      <td>'.$zaznam['pocet_clanku'].'</td>');
        echo('  </tr>');
        echo('</table>');
    }}
?>

<form method="post">
    ID uzivatele:<br />
    <input type="text" name="iduzivatele" /><br />
    <input type="submit" value="Vyhledat" />
</form>
</body>
</html>
Editováno 23.7.2015 16:39
 
Odpovědět
23.7.2015 16:36
Avatar
Ficek
Člen
Avatar
Ficek:3.8.2015 15:54

Zdravíčko,

mám prosbu, snažím se si do školy připravit nějaký projekt a rád bych využil web a databázi :) Když si zkouším příklady zde, tak mi to pochopitelně funguje, ovšem když si je začnu upravovat, tak v tom mám chybu .. :(

bohužel nemám ve svém okolí nikoho s kým bych to mohl konzultovat a pak bych chtěl poprosit jestli by se mi někdo nepodíval na zdrojový kód a nenasměřoval mě kde bych mohl mít chybu :)

<!DOCTYPE html>
<html lang="cs-cz">

        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
                <title>Registrace evakuovaných osob</title>
        </head>

        <body>

                <!DOCTYPE html>
<html lang="cs-cz">

        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
                <title>Registrace evakuovaných osob</title>
        </head>

        <body>

                <h1>Registrace evakuovaných osob</h1>

                <?php

                /*
                 *             __          __                __
                 *        ____/ /__ _   __/ /_  ____  ____  / /__ _________
                 *       / __  / _ \ | / / __ \/ __ \/ __ \/ //_// ___/_  /
                 *      / /_/ /  __/ |/ / /_/ / /_/ / /_/ / ,< _/ /__  / /_
                 *      \__,_/\___/|___/_.___/\____/\____/_/|_(_)___/ /___/
                 *
                 *
                 *      TUTORIÁLY  <>  DISKUZE  <>  KOMUNITA  <>  SOFTWARE
                 *
                 *      Tento zdrojový kód je součástí tutoriálů na programátorské
                 *      sociální síti WWW.DEVBOOK.CZ
                 *
                 *      Kód můžete upravovat jak chcete, jen zmiňte odkaz
                 *      na www.devbook.cz :-)
                 */

                require_once('Db.php');
                Db::connect('127.0.0.1', 'eva', 'root', '123');

                if ($_POST)
                {
                        $datum = date("Y-m-d H:i:s", strtotime($_POST['datum_narozeni']));
                        Db::query('
                                INSERT INTO os (jmeno, prijmeni, titul, pohlavi, datum_narozeni, kraj, orp, mesto, psc, ulice, cp, kontakt, zamestani, leky, strava, ubytovani, zapsal, poznamky)
                                VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
                        ', $_POST['jmeno'], $_POST['prijmeni'], $_POST['titul'], $_POST['pohlavi'], $datum, $_POST['kraj'], $_POST['orp'], $_POST['mesto'], $_POST['psc'], $_POST['ulice'], $_POST['cp'], $_POST['kontakt'], $_POST['zamestanani'], $_POST['leky'], $_POST['strava'], $_POST['ubytovani'], $_POST['zapsal'], $_POST['poznamky']);
                        echo('<p>Zapsání proběhlo ússpěšně.</p>');
                }
                ?>

                <h2>Nový uživatel</h2>
                <form method="post">
                        Jméno:<br />
                        <input type="text" name="jmeno" /><br />
                        Příjmení:<br />
                        <input type="text" name="prijmeni" /><br />
                        Titul:<br />
                        <input type="text" name="titul" /><br />
                        Pohlaví:<br />
                        <input type="text" name="pohlavi" /><br />
                        Datum narození:<br />
                        <input type="text" name="datum_narozeni" /><br />
                        Kraj:<br />
                        <input type="text" name="kraj" /><br />
                        Obec s rozšířenou působností:<br />
                        <input type="text" name="orp" /><br />
                        Město:<br />
                        <input type="text" name="mesto" /><br />
                        Poštovní smětovací číslo:<br />
                        <input type="text" name="psc" /><br />
                        Ulice:<br />
                        <input type="text" name="ulice" /><br />
                        Číslo popisné:<br />
                        <input type="text" name="cp" /><br />
                        Kontakt:<br />
                        <input type="text" name="kontakt" /><br />
                        Zaměstnání:<br />
                        <input type="text" name="zamestnani" /><br />
                        Užívané léka, onemocnění:<br />
                        <input type="text" name="leky" /><br />
                        Stravovací návyky:<br />
                        <input type="text" name="strava" /><br />
                        Místo nouzového ubytování:<br />
                        <input type="text" name="ubytovani" /><br />
                        Zapsal/a:<br />
                        <input type="text" name="zapsal" /><br />
                        Poznámky:<br />
                        <input type="text" name="poznamky" /><br />
                        <input type="submit" value="Registrovat" />
                </form>

        </body>
</html>

Formulář funguje, ale když jej odešlu pouze mě to vypíše nadpis (ten první co je mezi <h1></h1>) ale data na server mi to neuloží. Myslel jsme, že mám špatně nastavené připojení k serveru, ale po kontrole jsme přesvědčen, že je nastaveno dobře.

Prosím o radu.
Fica

 
Odpovědět
3.8.2015 15:54
Avatar
Ficek
Člen
Avatar
Ficek:3.8.2015 15:57

Omlouvám se hlavička je tam omylem 2x. To v normálním kódu není.

 
Odpovědět
3.8.2015 15:57
Avatar
Ficek
Člen
Avatar
Odpovídá na Ficek
Ficek:11.8.2015 8:11

Tak již jsem to vyřešil :)

 
Odpovědět
11.8.2015 8:11
Avatar
pavlikt
Člen
Avatar
pavlikt:16.8.2015 16:53

Jsem na vážkách, že zruším předplatné lynda a teamtreehouse a začnu se naplno věnovat tutoriálům zde, jsou opravdu velmi dobře zpracovány. Neuvažujete i o videotutoriálech?

 
Odpovědět
16.8.2015 16:53
Avatar
Tomík
Člen
Avatar
Tomík:25.8.2015 14:26

Vysvětlil by mi pls někdo: $datum = date("Y-m-d H:i:s", strtotime($_POS­T['datum_naro­zeni']));

 
Odpovědět
25.8.2015 14:26
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na Tomík
Jan Lupčík:25.8.2015 14:32
Y Rok (Year)
m Měsíc (month)
d Den (day)
h Hodiny (hour)
i Minuty
s Sekundy
<?php
echo date("Y-m-d H:i:s");
?>

Výsledek:

2015-08-25 14:32:05
Odpovědět
25.8.2015 14:32
TruckersMP vývojář
Avatar
Tomík
Člen
Avatar
Tomík:25.8.2015 14:34

dik IT Man

 
Odpovědět
25.8.2015 14:34
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 104.