Autor Zpráva
fifa
Profil
Dobrý den mám vytvořený přihlašovací script propojený s mysql databází n amém server a chtěl bych se zeptat jak udělat php kod aby četl data z databáze zde přikládám php kody celého systému

config.php
    <?php
        define('SQL_HOST', 'localhost'); // obvykle localhost
        define('SQL_UZIVATEL', 'uživatel'); // přihlašovací jméno do mysql
        define('SQL_HESLO', 'heslo'); // heslo do mysql
        define('SQL_DATABAZE', 'databáze'); // databáze mysql
        define('WEB_START', 'jsemPrihlasen.php'); // startovní stránka po přihlášení
    ?>

registrace.php
    <?php
        session_start();
        //Pokud uživatel nějaké políčko nevyplnil, sdělíme mu to
        if( isset($_SESSION['ERROR_ZPRAVA']) && is_array($_SESSION['ERROR_ZPRAVA']) && count($_SESSION['ERROR_ZPRAVA']) >0 ) {
            echo '<ul type="I">';
            foreach($_SESSION['ERROR_ZPRAVA'] as $zpr) {
                echo '<li>',$zpr,'</li>'; 
            }
            echo '</ul>';
            unset($_SESSION['ERROR_ZPRAVA']);
        }
    ?>
    <form action="zregistrace.php" method="post">
    <table>
    <tr>
      <td>Nick: </td><td><input type="text" name="nick"></td>
    </tr>
    <tr>
      <td>Heslo: </td><td><input type="password" name="heslo"></td>
    </tr>
    <tr>
      <td>Heslo znovu: </td><td><input type="password" name="zheslo"></td>
    </tr>
    <tr>
      <td>&nbsp;</td><td align="right"><input type="submit" name="Submit" value="Registrovat"></td>
    </tr>
    </table>
    </form>

zregistrace.php
    <?php
        //Nastartování session
        session_start();
        //Vložení config.php
        require_once('config.php');
        $error_zprava = array();
        //Validace pro errory
        $error = false;
        //Připojení k mysql serveru
        $link = mysql_connect(SQL_HOST, SQL_UZIVATEL, SQL_HESLO);
        if(!$link) {
            die('Nelze se připojit: ' . mysql_error());
        }
        //Zvolíme databázi
        $db = mysql_select_db(SQL_DATABAZE);
        if(!$db) {
            die("Databáze nenalezena");
        }
        //Zabráníme sql injekci
        function clean($str) {
            $str = @trim($str);
            if(get_magic_quotes_gpc()) {
                $str = stripslashes($str);
            }
            return mysql_real_escape_string($str);
        }
        //Vyčistíme přijaté hodnoty
        $nick = htmlspecialchars(clean($_POST['nick']));
        $heslo = htmlspecialchars(clean($_POST['heslo']));
        $zheslo = clean($_POST['zheslo']);
        $ip = $_SERVER["REMOTE_ADDR"];
        //Kontrolujeme, zda uživatel vyplnil všechna pole
          //Kontrola nicku
        if($nick == '') {
            $error_zprava[] = 'Vyplň nick!';
            $error = true;
        }
          //Kontrola hesla
        if($heslo == '') {
            $error_zprava[] = 'Vyplň heslo!';
            $error = true;
        }
          //Kontrola zopakovaného hesla
        if($zheslo == '') {
            $error_zprava[] = 'Vyplň kontrolu hesla!';
            $error = true;
        }
          //Porovnání zadatných hesel
        if( strcmp($heslo, $zheslo) != 0 ) {
            $error_zprava[] = 'Hesla nesouhlasí!';
            $error = true;
        }
        //Zkontrolujeme, zda již někdo pod tímto nickem není zaregistrován
        if($nick != '') {
            $dotaz = "SELECT * FROM uzivatele WHERE nick='$nick'";
            $pdotaz = mysql_query($dotaz);
            if($pdotaz) {
                if(mysql_num_rows($pdotaz) > 0) {
                    $error_zprava[] = 'Nick je již zabrán!';
                    $error = true;
                }
                @mysql_free_result($pdotaz);
            }
            else {
                die("Selhání dotazu č1");
            }
        }
        //Pokud je chyba v políčkách, vrátíme uživatele zpět a sdělíme co neměl vyplněno
        if($error) {
            $_SESSION['ERROR_ZPRAVA'] = $error_zprava;
            session_write_close();
            header("location: registrace.php");
            exit();
        }
        //Vytvoříme sql dotaz
        $dotaz = "INSERT INTO uzivatele(nick, heslo, ip) VALUES('$nick','".md5($_POST['heslo'])."','$ip')";
        mysql_query("SET character_set_client=utf8");
        mysql_query("SET character_set_connection=utf8");
        mysql_query("SET character_set_results=utf8");
        //Provedeme sql dotaz
        $pdotaz = @mysql_query($dotaz);
        //Při úspěšné registraci hodíme uživatele na prihlaseni.php?z=registrace-uspesna
        if($pdotaz) {
            header("location: prihlaseni.php?z=registrace-uspesna");
            exit();
        }else {
            die("Selhání dotazu č2");
        }
    ?>

prihlaseni.php
    <?php
        //Pokud uživatel nějaké políčko nevyplnil, sdělíme mu to
        if( isset($_SESSION['ERROR_ZPRAVA']) && is_array($_SESSION['ERROR_ZPRAVA']) && count($_SESSION['ERROR_ZPRAVA']) >0 ) {
            echo '<ul type="I">';
            foreach($_SESSION['ERROR_ZPRAVA'] as $zpr) {
                echo '<li>',$zpr,'</li>'; 
            }
            echo '</ul>';
            unset($_SESSION['ERROR_ZPRAVA']);
        }
        
        
        //Registrace úspěšná a ostatní
        $zpr = array('registrace-uspesna' => 'Byl/a jsi úspěšně zaregisrován/a. Nyní se můžeš pihlásit.',
        'prihlaseni-selhalo' => 'Přihlášení selhalo. Prosím, zkontroluj zadané údaje.',
        'automaticke-odhlaseni' => 'Byl/a jsi neaktivní déle jak 30 minut. Byl/a jsi automaticky odhlášen/a.',);
        //Jestliže jseme dostali "z" tak řekneme obsah arraye
        if($_GET['z']){
         echo "".$zpr[$_GET['z']]."";
        }else{
         echo "";
        }
    ?>
    <form action="zprihlaseni.php" method="post">
    <table>
    <tr>
      <td>Nick: </td><td><input type="text" name="nick"></td>
    </tr>
    <tr>
      <td>Heslo: </td><td><input type="password" name="heslo"></td>
    </tr>
    <tr>
      <td>&nbsp;</td><td align="right"><input type="submit" name="Submit" value="Přihlásit se"></td>
    </tr>
    </table>
    </form>

zprihlaseni.php
    <?php
        //Nastartování session
        session_start();
        //Vložení config.php
        require_once('config.php');
        $error_zprava = array();
        //Validace pro errory
        $error = false;
        //Připojení k mysql serveru
        $link = mysql_connect(SQL_HOST, SQL_UZIVATEL, SQL_HESLO);
        if(!$link) {
            die('Nelze se připojit: ' . mysql_error());
        }
        //Zvolíme databázi
        $db = mysql_select_db(SQL_DATABAZE);
        if(!$db) {
            die("Databáze nenalezena");
        }
        //Zabráníme sql injekci
        function clean($str) {
            $str = @trim($str);
            if(get_magic_quotes_gpc()) {
                $str = stripslashes($str);
            }
            return mysql_real_escape_string($str);
        }
        //Vyčistíme přijaté hodnoty
        $nick = clean($_POST['nick']);
        $heslo = clean($_POST['heslo']);
        //Kontrolujeme, zda uživatel vyplnil všechna pole
          //Kontrola nicku
        if($nick == '') {
            $error_zprava[] = 'Vlož nick!';
            $error = true;
        }
          //Kontrola hesla
        if($heslo == '') {
            $error_zprava[] = 'Vlož heslo!';
            $error = true;
        }
        //Pokud je chyba v políčkách, vrátíme uživatele zpět a sdělíme co neměl vyplněno
        if($error) {
            $_SESSION['ERROR_ZPRAVA'] = $error_zprava;
            session_write_close();
            header("location: prihlaseni.php?z=prihlaseni-selhalo");
            exit();
        }
        //Vytvoříme sql dotaz
        $dotaz="SELECT * FROM uzivatele WHERE nick='$nick' AND heslo='".md5($_POST['heslo'])."'";
        mysql_query("SET character_set_client=utf8");
        mysql_query("SET character_set_connection=utf8");
        mysql_query("SET character_set_results=utf8");
        //Provedeme sql dotaz
        $pdotaz=mysql_query($dotaz);
        
        //Pokud dosud bylo vše úspěšné, zapíšeme údaje do session
        if($pdotaz) {
            if(mysql_num_rows($pdotaz) == 1) {
                session_regenerate_id();
                $uzivatel = mysql_fetch_assoc($pdotaz);
                //Zapisování údajů do session
                $_SESSION['ID'] = $uzivatel['id'];
                $_SESSION['NICK'] = $uzivatel['nick'];
                $_SESSION['HESLO'] = $uzivatel['heslo'];
                session_write_close();
                header("location: ".WEB_START."");
                exit();
            }else {
                //Vše bylo neůspěšné. Přihlášení se nezdařilo
                header("location: prihlaseni.php?z=prihlaseni-selhalo");
                exit();
            }
        }else {
            die("Selhání dotazu");
        }
    ?>

autentizace.php
    <?php
        //Nastartování session
        session_start();
        //Jestliže není zadaný v session id hodí vás to na prihlaseni.php 
        if(!isset($_SESSION['ID']) || (trim($_SESSION['ID']) == '')) {
            header("location: prihlaseni.php?z=automaticke-odhlaseni");
            exit();
        }
    ?>

jsemPrihlasen.php
    <?require_once('autentizace.php'); //Velice důležité (kdyby to tu nebylo, mohl by sem nepřihlášený uživatel)?>
    <h1>Stránka, kam se dostanou jen přihlášení uživatelé</h1>
    <p>Vítej <b><?echo $_SESSION['NICK']?></b></p>
    A tady dále pokračuje stránka....
    <a href="odhlasit.php">Odhlásit</a>
lionel messi
Profil
fifa:
chtěl bych se zeptat jak udělat php kod aby četl data z databáze
Čo konkrétne? Napíš sem názvy predmetných tabuliek, uveď štruktúru (čiže hlavne názvy stĺpcov, dátové typy nemusia byť) a špecifikuj, čo potrebuješ vytiahnuť, uvedené kódy nie sú v tomto prípade celkom relevantné, týkajú sa výlučne zápisu do db, nie výpisu z nej.

Všeobecný postup, možno ti trochu pomôže:
1. Musíš sa samozrejme pripojiť k databáze.
2. Zostavíš SQL dotaz, v tomto prípade klasický SELECT (česky + česky o zoraďovaní a limite).
3. Dotaz normálne prevedieš pomocou $result = mysql_query($query); (v prípade použitia užívateľského vstupu nezabudni na escapovanie).
4. Na vypísanie dát si vytvoríš cyklus (ak vypisuješ jeden riadok, nebudeš ho potrebovať) asi takto:
while ($row = mysql_fetch_assoc($result)) {
//tu bude vypisovanie dát
}
5. Dáta nájdeš v poli $row pod textovými indexmi zodpovedajúcimi názvu príslušného databázového stĺpca (prípadne jeho aliasu, ak ho použiješ v dotaze).

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0