Admin v php databázi + seance? – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Admin v php databázi + seance? – MySQL – Fórum – Programujte.comAdmin v php databázi + seance? – MySQL – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Luda1230
Duch
5. 3. 2014   #1
-
0
-

Ahoj, našel jsem scriptík, který kontroluje, zda je uživatel, který vstupuje na stránky, přihlášený nebo ne ... zda jde o admina nebo ne. Zajímaly by mě jen nějaké info.

<?php
session_start();
     /*include databáze*/


if(isset($_SESSION["login"])){     /*kontroluje zda vstupujme na stránky s jako registrovaný a přihlášený uživatel*/
  if($_SESSION["login"]>0){
    $nick = "";                      /*vytvořím si prázdnou proměnou $nick*/
    $sql = "SELECT username FROM uzivatele WHERE id=$_SESSION[login]";   /*...*/
    if($link = mysql_query($sql)){
      while ($info = mysql_fetch_array($link)){     /*Zde v databázy najdu jméno přihlášeného uživatele a uložím do proměné $nick*/
        $nick = $info["username"];                                    /*...*/
      }
    }
    $admin = false;       /*Promenou $admin nastavím jako false*/
    if($_SESSION["login"] == 1 or $_SESSION["login"] == 2)$admin = true;     /*pokud se příhlasí admin tak se změní na true*/   
    
    include("menu.php");    
  }
}

?>

Jak se zjistí, který uživatel je admin? if($_SESSION["login"] == 1 or $_SESSION["login"] == 2)$admin = true; ... co mi tohle říká?

if(isset($_SESSION["login"])) - SESSION "login" je nějaká specifická seance? Nebo to odkazuje na nějaký atribut ve formuláři eventuelně na atribut v tabulce (databáze)?

Díky moc!

Nahlásit jako SPAM
IP: 2001:718:1c01:166:1e7:b98...–
Reklama
Reklama
z
~ Anonymní uživatel
268 příspěvků
6. 3. 2014   #2
-
+1
-
Zajímavé

Zřejmě se po přihlášení nastaví $_SESSION["login"] na uživatelovo id z tabulky uživatelů. S tím, že id s hodnotou 1 nebo 2 jsou vyhrazeny pro admina.

Nahlásit jako SPAM
IP: 88.101.8.–
peter
~ Anonymní uživatel
2551 příspěvků
6. 3. 2014   #3
-
+1
-
Zajímavé

<a rel="nofollow" href="?login=1">Prihlasit moderatora</a>
<a rel="nofollow" href="?login=2">Prihlasit admina</a>
Ja si myslim, ze to funguje nejak takhle a ze ti tam cast kodu schazi. takze si najdi vsechno, co se pred tim vklada (include, require).
Pripadne to funguje tak, ze bez session ani tuk. Nezatezuje se kontrolovanim vuci db, jen ho zajimaji prave nastavene session. Coz je sice cool zjednoduseni, nicmene snadno hacknutelne.
Ja bych do toho dotazu doplnil krom jmena, aby zjistil i typ uzivatele. On to tak ma mozna zamerne udelane, aby si mohl prohlizet na jednoho uzivatele, jak to vypada jako admin a jak bez.

Nahlásit jako SPAM
IP: 2001:718:2601:400:0:5efe:...–
Luda1230
Duch
6. 3. 2014   #4
-
0
-

#2 z
Je to tak, další uživatel (tedy s id > 3) už nemá všechna práva. (tedy alespoň se to nevypisuje). Díky moc.

Nahlásit jako SPAM
IP: 2001:718:1c01:166:c127:a0...–
Luda1230
Duch
9. 3. 2014   #5
-
0
-

Ještě otázečka - nevíte proč mi tohle hlásí "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in"?

<?php
include 'config.php'; //načteme soubor s údaji pro připojení k db
            mysql_connect($dbserver, $dblogin, $dbheslo); // připojíme se k db
            mysql_select_db($dbnazev); // vybereme db 
            mysql_query("SET NAMES 'cp1250'"); // nastavíme kódování
?>
        <form action="" method="get">
            <label for="search-q">Vyhledat:</label>
            <input type="text" name="search" id="search-q" value="minimálně 4 znaky" onfocus="if(this.value=='minimálně 4 znaky') this.value=''" />
            <button type="submit" class="button">Hledat</button>
        </form>

<?php
$search = htmlspecialchars($_GET['search']); //při odeslání formuláře se nebezpečné znaky změní na entity
if($search) // pokud je formulář odeslán
        {
        $sql = mysql_query("SELECT * FROM aktuality WHERE MATCH(text) AGAINST('+".$search."' IN BOOLEAN MODE) ORDER by id desc"); // vyhledá se v DB
        $search_pocet = mysql_num_rows($sql); // spočítá pkolik je výsledků
        echo "<strong>Hledaný výraz:</strong> ".$search."<br />\n"; // vypíše se hledaný výraz
        echo "<strong>Nalezeno výsledků:</strong> <b>".$search_pocet."</b>\n"; // vypíše se počet vyhledaných záznamů
        }

// výpis položek hledání
echo '
    <hr /> 
<table class="kosik_uvod">
    ';
while($data= mysql_fetch_array($sql)) // začátek cyklu pro zobrazení vyhledané položky
{
    /* pro lepší orientaci je dobré si vytvořit výsledný kód jak by měl vypadat po vyhledání a 
        hledané položky teprve pak převést na skutečné data. Více je to zřejmé z dalšího kódu
    */
      
$vypis='
    <tr>
        <td>
            <h2>{nadpis}</h2>
            <p>{text}</p>
            <hr />         
        </td>
    </tr>
    ';
    $vypis=str_replace('{nadpis}',$data['nadpis'],$vypis); // položka {nadpis} se změní na skutečnou položku v DB
    $vypis=str_replace('{text}',$data['text'],$vypis); // položka {text} se změní na skutečnou položku v DB
    $vypis=str_replace('\n','<br />',$vypis); // pokud je text v DB odřádkovaný převede se toto odřádkování i do výpisu
    echo $vypis; // vypíše složený celý text 
}
echo "
</table>\n";
?>

Nahlásit jako SPAM
IP: 2001:718:1c01:166:1c5e:4e...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

Podobná vlákna

Admin čte PM ? — založil Trubad

Ako na admin rozhranie — založil w3q

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý