Mám problémi s přihlášením pomocí sessions
7 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Ahoj, Potřebval bych pomoc s přihlašováním pomocí sessions. Problém je v tom, že když se přihlásím hodímě to zpět na přihlašovací formular a kdyz to skusim znovu tak je to ok viz kód dole. Index.php (slouží jako přihlašovací formulář) <?php @session_start(); $idss1=$_SESSION["idss2"]; include("config.php"); $link=mysql_pconnect($hostitel,$jmeno, $heslo); mysql_select_db($jmeno_db, $link); $pp=MySQL_Query("SELECT * FROM registrace WHERE id='".$idss1."'"); $aa=MySQL_Fetch_Array($pp); $time=time(); $kontrola=$time-$aa[time]; MySQL_Query("UPDATE registrace SET time='$time' WHERE id='".$idss1."'"); if ($aa[id]==$idss1 and $kontrola<="300"): ?> <form action="prihlaseni/login.php" method="GET"> <input type="hidden" name="prihlaseni" value="ano"> <input type="hidden" name="url" value="<?php echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>"> Nick:<br> <input type="text" name="nick1" size="40" maxlength="40"><br> Heslo<br> <input type="text" name="heslo1" size="40" maxlength="40"><br> <a href="registrace.php">Registrace</a> <input type="submit" value="Registrovat se"> </form> <?php else: ?> Jste přihlášeni <a href="logout.php">Odhlásit se</a> Login.php (zapíše se zároveň do databáze) <?php include("../config.php"); $link=mysql_pconnect($host,$jmeno, $heslo); mysql_select_db($jmeno_db, $link); if($prihlaseni=="ano") { $pp=MySQL_Query("SELECT * FROM registrace WHERE nick='$nick1'"); $aa=MySQL_Fetch_Array($pp); if($aa[heslo]==$heslo1 and $aa[ban]=="0") { $time=time(); $IP=$REMOTE_ADDR; $id=MD5($time.$IP); MySQL_Query("UPDATE registrace SET ip='$IP', time='$time', id='$id' WHERE nick='$nick1'"); session_start(); session_register("idss2"); if(!isset($_SESSION["idss2"])) $_SESSION["idss2"]=$id; header("Location: $url"); } else { if ($aa[ban]=="1") { Header("Location:$url?co=ban"); } else { Header("Location:$url?co=ne"); }}} ?> Pls pomoc. <?php endif; ?>
-
Takový univerzální řešení může být třeba tohle: <?php session_start(); if(!isset($_SESSION[$_SERVER{'REMOTE_ADDR'}]) && empty($_POST)) { function login_form(); } elseif(!empty($_POST)) { function login_control(); } else { Header("HTTP/1.1 301 Moved Permanently"); Header("Location: account.php"); exit; } ?> No a ve funkci login_form() budeš zobrazovat formulář, případně i kontrolovat jestli se ti tam někdo nesnaží nabourat, atd ... A ve funkci login_control() budeš kontrolovat, jestli bylo zadáno správné jméno / heslo a pokud ne, zavolat login_form(), pokud jo, zavolat Header pro přechod do account.php .
-
No díky, ale já se ptám na to co je špatně v to mím zdrojáku. Z formuláře se odesílají data na login gde se šifrují a vkladají se do proměnné id, která pak letí na sessions a za pomocí headeru se to odkáže na předešlou stránku .. viz kód. Na indexu je problém, že se mi nic nenačte z sessions a na if() mě to zase hodí na formulář a když se to udělá podruhy funguje to. Potřebuji s tím pomoc, už tady mlátím hlavou do klávesnice ... :-D
-
Nemáš zač. V tvÝm zdrojáku je toho z mýho podhledu špatně trochu víc, ale to sem teď nepatří. Ono kdyby sis porovnal můj a svůj kód, tak by jsi na to určitě přišel (a neporadím, přímo, to sem svině, co?) ...
-
Já vím, že je tam toho hafo špatnýho, já bych spíš potřeboval nějakej návod jak na sessions pro lami jako jsem já, jinak já se na tom učím a jde mi spíš o funkčnost než o správnost zápisu zdrojvého kódu.
-
Tak využij toho, co jsem ti napsal. Ulož si to jako index.php a před konec souboru (před ?>) napiš něco jako: function login_form() { echo 'Přihlašovací formulář'; } function login_control() { include '../config.php'; $link=mysql_pconnect($host,$jmeno, $heslo); mysql_select_db($jmeno_db); if(!$query = MySQL_Query("SELECT `heslo`,`ban` FROM registrace WHERE nick='$nick1'")) { echo 'Chyba DB!'; } else { $q = MySQL_Fetch_Assoc($query); if($q['heslo'] == $_POST['heslo'] && !$q['ban']) { .... přihlášení .... } else { echo 'Ban!'; } } } a budeš to mít jednak líp a jednak funkční. Nechce se mi to celý přepisovat, takže si to snad dpolnit už zvládneš, ne? Jo a návody najdeš třeba na tady google://php přihlašování pomocí session
-
Jo díky celý to překopu a dám tam ti funkce jak tady píšeš díky