Autor Zpráva
_fantomas
Profil
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
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
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: http://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
Vyzkušam pohrajem sa a dám ešte vedieť. inač Dík :)
_fantomas
Profil
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 *
_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
karel S.: skúšal som to tam davať po svojom ale nejde mi to... nevieš mi to viac objasniť?

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: