Autor | Zpráva | ||
---|---|---|---|
_fantomas Profil |
#1 · Zasláno: 1. 5. 2014, 22:35:18
Ahoj, mam tu menší problém, ak sa na svojom webe prihlásim tak to spraví menší preblik pretože sa stránka refreshne
funkcio location reload. Mne ale to preblikávanie dosť vadí a na všetkých iných weboch čo som pozeral tak im to ide plynule login.php // dalo by sa to spraviť iným spôsobom aby to nepreblikávalo? <? if($_GET['logout'] == "true"){ session_start(); session_destroy(); echo "<script>location.replace('http://minemad.eu');</script>"; } ?> <? session_start(); if(isset($_SESSION['prihlaseny'])){?> <div class="nazov-widget"> <h3><i class="icon-user"></i> <? echo $_SESSION['prihlaseny'] ?></h3> </div> <div class="widget"> <a class="default" href="#">Profil</a> <a class="default" href="#">Nastavenia</a> <a class="default" href="#">Technická podpora</a> <? if($_SESSION['prihlaseny'] == "_fantomas"){ ?> <a class="default" href="../admin">Administrácia</a> <? } ?> <a class="default" href="http://minemad.eu?logout=true">Odhlásiť sa</a> </div> <?} else { if($_SERVER['REQUEST_METHOD'] == "POST" && !empty($_POST['nick']) && !empty($_POST['pass'])){ $nick = preg_replace('/\s+/', '', $_POST['nick']); $heslo = preg_replace('/\s+/', '', $_POST['pass']); $mysqli = new mysqli("****", "****", "****", "****"); $result = mysqli_query($mysqli, "SELECT password FROM authme WHERE username='".$nick."'"); $vysledek = mysqli_fetch_assoc($result); if($vysledek['password'] == md5($heslo)){ session_start(); $_SESSION['prihlaseny'] = $nick; echo "<script>location.replace('http://minemad.eu');</script>"; } else { $chyba = "<center><div id='error-login-message'><i class='icon-warning-sign'></i> Zle heslo alebo meno</div></center>"; } } ?> <div class="nazov-widget"> <h3><i class="icon-lock"></i> Prihlásenie</h3> </div> <div class="widget"> <form action="" method="POST"> <?echo $chyba?> <br /> <input type="text" name="nick" class="textbox" style="width:160px;height:27px;" placeholder="Meno z hry"><br /> <br /> <input type="password" name="pass" class="textbox" style="width:160px;height:27px;" placeholder="Heslo z hry"><br /> <br /> <input type="submit" class="default" style="padding: 0px;" value="Prihlásiť"><br /> </form> </div> <? } ?> |
||
xROAL Profil |
#2 · Zasláno: 1. 5. 2014, 22:47:27
Použi na to PHP namiesto JavaScriptu:
header("Location: http://minemad.eu"); Pozor však na to, že header() musí byť pred akýmkoľvek výstupom (nesmie sa pred ním nič vypísať, teda žiadne echo ani čisté HTML). Budeš si tým pádom musieť trošku aj upraviť script a prihlasovanie kontrolovať už na jeho začiatku, nie až v strede.
Tak isto session_start(); by v scripte malo byť len raz a to rovnako na jeho začiatku.
|
||
_fantomas Profil |
#3 · Zasláno: 1. 5. 2014, 23:05:35
V PHP som veľký zažiatočník a moc toho ešte neviem, skript som upravil ale asi zle, bolo by lepšie ak by si mi pomohol a napísal mi to ako
to ma byť správne, rychlejšie sa to naučím používať :) Má to byť teda takto? <? session_start(); ("Location: http://minemad.eu"); if($_GET['logout'] == "true"){ session_destroy(); echo "<script>location.replace('http://minemad.eu');</script>"; } ?> <? if(isset($_SESSION['prihlaseny'])){?> <div class="nazov-widget"> <h3><i class="icon-user"></i> <? echo $_SESSION['prihlaseny'] ?></h3> </div> <div class="widget"> <a class="default" href="#">Profil</a> <a class="default" href="#">Nastavenia</a> <a class="default" href="#">Technická podpora</a> <? if($_SESSION['prihlaseny'] == "_fantomas"){ ?> <a class="default" href="../admin">Administrácia</a> <? } ?> <a class="default" href="http://minemad.eu?logout=true">Odhlásiť sa</a> </div> <?} else { if($_SERVER['REQUEST_METHOD'] == "POST" && !empty($_POST['nick']) && !empty($_POST['pass'])){ $nick = preg_replace('/\s+/', '', $_POST['nick']); $heslo = preg_replace('/\s+/', '', $_POST['pass']); $mysqli = new mysqli("****", "****", "****", "****"); $result = mysqli_query($mysqli, "SELECT password FROM authme WHERE username='".$nick."'"); $vysledek = mysqli_fetch_assoc($result); if($vysledek['password'] == md5($heslo)){ session_start(); $_SESSION['prihlaseny'] = $nick; echo "<script>location.replace('http://minemad.eu');</script>"; } else { $chyba = "<center><div id='error-login-message'><i class='icon-warning-sign'></i> Zle heslo alebo meno</div></center>"; } } ?> <div class="nazov-widget"> <h3><i class="icon-lock"></i> Prihlásenie</h3> </div> <div class="widget"> <form action="" method="POST"> <?echo $chyba?> <br /> <input type="text" name="nick" class="textbox" style="width:160px;height:27px;" placeholder="Meno z hry"><br /> <br /> <input type="password" name="pass" class="textbox" style="width:160px;height:27px;" placeholder="Heslo z hry"><br /> <br /> <input type="submit" class="default" style="padding: 0px;" value="Prihlásiť"><br /> </form> </div> <? } ?> |
||
lionel messi Profil |
_fantomas:
„ ("Location: ht>tp://minemad.eu"); “
Keď už tak, header("Location: minemad.eu"); ale aj tak je to volané na zlom mieste. Dal by som:
<?php session_start(); if($_GET['logout'] == "true"){ session_destroy(); header("Location: http://minemad.eu"); } ?> Ešte malá poznámka: PHP kód by som radšej začínal <?php miesto <? zaistí to totiž lepšiu prenositeľnosť. |
||
_fantomas Profil |
#5 · Zasláno: 2. 5. 2014, 12:04:20
Vyzkušam pohrajem sa a dám ešte vedieť. inač Dík :)
|
||
_fantomas Profil |
#6 · Zasláno: 3. 5. 2014, 21:20:45
Ahoj, no akosi som to zvládol, ale mám tu další problém,
do teraz keď som chcel zobrazovať adminovi zakázanú vec ktorú vidi len on tak som používal if($_SESSION['prihlaseny'] == "_fantomas"){ to mi ale robí veľký problém keď chcem mať napríklad viac adminov, preto som v tabuľke uzivatelia zaviedol stlpec permissions, ak sa niekto nový regne ma v permissions 0 ak však zmením niekomu permissions na 1 chcem aby všetko zakázané na stránke videl a nemusel by som používať už if($_SESSION['prihlaseny'] == "_fantomas"){ Lenže problém je v tom že neviem ako mám vytvoriť na takú vec podmienku, mohol by mi prosím s tím niekto pomôcť? Zdrojak login.php <?php if($_GET['logout'] == true){ session_destroy(); header("Location: http://minemad.eu/"); } ?> <?php if(isset($_SESSION['prihlaseny'])){ ?> <div class="nazov-widget"> <h3><i class="icon-user"></i> <?php echo $_SESSION['prihlaseny'] ?></h3> </div> <div class="widget"> <a class="default" href="#">Profil</a> <a class="default" href="#">Nastavenia</a> <a class="default" href="#">Technická podpora</a> <?php if($_SESSION['prihlaseny'] == "_fantomas"){ ?> <a class="default" href="../admin">Administrácia</a> <?php } ?> <a class="default" href="http://minemad.eu?logout=true">Odhlásiť sa</a> </div> <?php } else { if($_SERVER['REQUEST_METHOD'] == "POST" && !empty($_POST['nick']) && !empty($_POST['pass'])){ $nick = preg_replace('/\s+/', '', $_POST['nick']); $heslo = preg_replace('/\s+/', '', $_POST['pass']); $mysqli = new mysqli("alfa.fakaheda.eu", "******", "******", "******"); $result = mysqli_query($mysqli, "SELECT password FROM uzivatelia WHERE username='".$nick."'"); $vysledek = mysqli_fetch_assoc($result); if($vysledek['password'] == md5($heslo)){ session_start(); $_SESSION['prihlaseny'] = $nick; header("Location: http://minemad.eu/"); //echo "<script>location.replace('http://minemad.eu');</script>"; } else { $chyba = "<center><div id='error-login-message'><i class='icon-warning-sign'></i> Zle heslo alebo meno</div></center>"; } } ?> <div class="nazov-widget"> <h3><i class="icon-user"></i> Prihlásenie</h3> </div> <div class="widget"> <form action="" method="post"> <label for="meno"></label> <input style="margin-top: 15px; height: 27px; width: 185px;" class="textbox" type="text" id="nick" name="nick" size="24" placeholder="Meno"/><br /> <label for="heslo"></label> <input style="margin-bottom: 10px; margin-top: 15px; height: 27px; width: 185px;" class="textbox" type="password" id="pass" name="pass" size="24" placeholder="*****"/><br /> <a class=" default" style="width: 90px; height: 28px;" href="../page/register.php">Registrovať</a> <input style="padding: 0px; width: 75px;" name="prihlasit" type="submit" class="default" value="Prihlásiť"/> </form> </div> <?php } ?> |
||
karel S. Profil * |
#7 · Zasláno: 5. 5. 2014, 13:22:26 · Upravil/a: karel S.
_fantomas:
ten SQL dotaz pro přihlášení bude: SELECT permissions, [další sloupce] FROM uzivatelia WHERE username = '" . mysqli_real_escape_string($nick) . "' AND password = '" . md5($password) . "' LIMIT 1 Místo isset($_SESSION['prihlaseny']) pak budeš používat podmínku $_SESSION['permissions'] == 1 .A rozhodni se buď pro angličtinu, nebo slovenštinu. Tenhle mišmaš je otřesný. |
||
_fantomas Profil |
#8 · Zasláno: 5. 5. 2014, 15:08:33
karel S.: skúšal som to tam davať po svojom ale nejde mi to... nevieš mi to viac objasniť?
|
||
Časová prodleva: 10 let
|
0