Autor Zpráva
kulisek9871
Profil
Dobrý večer.

Potřeboval bych najít chybu ve zdrojovém kódu přihlášení, které mi nefunguje. Následně jak bude fungovat vytvořit odhlášení a tyto dvě funkce nějak vytvořit na více stránek, tedy tak, aby to fungovalo tak, že když se přihlásím na jedné budu přihlášen na všech a to stejné s ohlášením. Níže dávám zdrojový kód přihlášení. Děkuji všem za rady a pomoc. Je to velký projekt a jediné co chybí je rpávě tohle.

Toto je zdrojový kód přihlášení:

<?php
        if(isset($_POST["tlacitko"])){
        $tlacitko = $_POST["tlacitko"];
        if($tlacitko){
                
        
         $prihlasovaci_jmeno = $_POST["prihlasovaci_jmeno"];
          $prihlasovaci_heslo = $_POST["prihlasovaci_heslo"];
          $prihlasovaci_heslo = md5(md5($prihlasovaci_heslo));
          include "config.php"
          mysql_connect("localhost", "root", "");
          mysql_select_db("databaze");
          $dotaz = mysql_query("SELECT * FROM klienti WHERE prihlasovaci_jmeno='".mysql_real_escape_string($prihlasovaci_jmeno)."' AND prihlasovaci_heslo='$prihlasovaci_heslo' ;");
                            while($vystup = mysql_fetch_object($dotaz))
                            {
                              $id = $vystup->id;
                              $prihlasovaci_jmenoDB = $vystup->prihlasovaci_jmeno;
                              $prihlasovaci_hesloDB = $vystup->prihlasovaci_heslo;
                              $email = $vystup->email;
                            }
          if($prihlasovaci_jmeno == $prihlasovaci_jmenoDB AND $prihlasovaci_heslo == $prihlasovaci_hesloDB){
            $_SESSION["id"] = $id;
            $_SESSION["prihlasovaci_jmeno"] = $prihlasovaci_jmeno;
            $_SESSION["prihlasovaci_heslo"] = $prihlasovaci_heslo;
            echo "Byl jsi přihlášen jako $prihlasovaci_jmeno";        
          }
              else {echo "Zadali jste nesprávné heslo nebo jméno";}
        }
       } 
      ?>
      
<?php if($_SESSION["id"]) {


$session_id = $_SESSION["id"];
echo $session_id;

mysql_connect("localhost", "root", "");
mysql_select_db("databaze");
mysql_query("SET NAMES UTF-8");
$riadok2 = mysql_query("SELECT * FROM klienti WHERE `id` ='".$session_id."'");
$riadok = mysql_fetch_array($riadok2);
?>


Toto je zdrojový kód tabulky přihlášen jako:

<table width="200" height="80" align="left" bgcolor="#FFFF00" style="border-radius:40px" >

<tr><td><font color="#FFFF00">__</font>Přihlášen jako:</td><td><?=$riadok["prihlasovaci_jmeno"]?></td></tr>
<tr><td><a href="*.php">*</a></td></tr>
<tr><td><a href="*.php">*</a></td></tr>
<tr><td colspan="2" align="right"><input type="submit" name="tlacitko" value="Odhlásit" /></td></tr>

</table>

Tabulka přihlášení:

     <p>
        <form action="" method="POST">  
          <table width="50" height="10" align="left" border="" bgcolor="#FFFF00" style="border-radius:10px" >
            <tr><td colspan="2">Přihlašovací jméno:</td></tr>
            <tr><td colspan="2"><input type="text" name="prihlasovaci_jmeno" /></td></tr>
            <tr><td colspan="2">Heslo:</td></tr>
            <tr><td colspan="2"><input type="password" name="prihlasovaci_heslo" /></td></tr>
            <tr><td><p><center><a href="Registrace.html"><input type="submit" name="tlacitko" value="Registrace" /></a></center></p></td><td><center><input type="submit" name="tlacitko" value="Přihlásit se" /></td></tr>
          </table>
        </form>
      </p>


Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
kulisek9871
Profil
Omlouvám se. Divil jsem se proč mi to píše tka jak to napsalo.
Alphard
Profil
Kontrolu jména a hesla není třeba duplikovat. Máte to v SQL dotazu, když vám databáze vrátí záznam, uživatel existuje a použil správné heslo. Tak si z db jen vemte jeho id, mysql_fetch_object() lze volat i mimo cyklus, ten while je úplně zbytečný.
Detailně jsem to nečetl, v principu to vypadá dobře, jen tam postrádám session_start(). K identifikaci chyby by mělo stačit pár testovacích výpisů. Ještě jsem zapomněl, že v sessions byste neměl potřebovat ani hash hesla.
kulisek9871
Profil
Tento zdrojový kód mi nefunguje poradíte mi kde je chyba a vyřešit tento problém? Děkuji je to pro mě důležité
Alphard
Profil
Poradil jsem vám, jak hledat chybu.
Připojíte se správně k db? – Jestli je povolen výpis chyb a žádnou to nepíše, je to ok.
Co vám vrátí databázový dotaz na 13. řádku? – var_dump($vystup);
A podobně pokračovat. Vy si napíšete, že to „nefunguje“ bez bližšího popisu a čekáte radu, ale tak jednoduché to není. Na první pohled prostě žádnou chybu nevidím. Je třeba to otestovat naznačeným stylem.
kulisek9871
Profil
MŮŽETE TOTO TÉMA SMAZAT. PROBLÉMY JSOU JIŽ VYŘEŠENY. DĚKUJI
lionel messi
Profil
kulisek9871:
PROBLÉMY JSOU JIŽ VYŘEŠENY
A AKO SÚ VYRIEŠENÉ?
kulisek9871
Profil
Chybělo tam pár věcí, ale už to funguje jak má. Děkuji všem.


Můžete toto téma smazat už je zbytečné. Děkuji
lionel messi
Profil
kulisek9871:
Chybělo tam pár věcí, ale už to funguje jak má.
Tých pár vecí, čo poradil [#3] Alphard? Niekedy treba formulovať príspevok konkrétnejšie než áno/nie/zmazať.


kulisek9871:
Můžete toto téma smazat už je zbytečné. Děkuji
Čo súdruhovi prekáža na jeho vlastných vláknach? Prečo by mali byť zmazané, keď neporušujú pravidlá? Ak by sa tu mazali vyriešené problémy, potom by toto najlepšie fórum CZ+SK internetu stratilo zmysel. Témy sa tu nemažú a bežne ani nelockujú.
kulisek9871
Profil
Takže to je vyřešené. Poradíte mi jak napsat odhlášení když výše vidíte přihlášení i dvě tabulky prosím vás? Děkuji
shaggy
Profil
kulisek9871:
Ty píšeš, že nikto nie je ochotný ti poradiť (aj keď je to obyčajné klamstvo).
Naša ochota poradiť ti je priamo úmerná tvojej ochote urobiť čokoľvek (zatiaľ som z tvojej strany nevidel žiadnu iniciatívu, nemám pocit, že by si si niečo sám vyhľadal, nemám pocit, že by si sám napísal čo i len riadok kódu).

Prečo musím ja namiesto teba použiť vyhľadávanie na tomto webe a nájsť správnu odpoveď v prvej téme, ktorú mi nájde?
Prečo si nepozrieš tému Nejčastější potíže s PHP (FAQ), kde to máš pekne vysvetlené? Ponúka ti ju priamo pri písaní príspevku.
Buď si lenivý a potom si našu radu nezaslúžiš, alebo natoľko neschopný, že proste na programovanie nemáš.
Petr ZZZ
Profil
kulisek9871:
Takže to je vyřešené.
Jak?! Co na tomhle nechápeš?

Pravidla diskuse JPW a doporučení » 8. Snažte se zajistit, aby po vyřešení vašeho problému bylo z diskuse zřejmé, jak byl vyřešen.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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