Autor | Zpráva | ||
---|---|---|---|
McBOY Profil |
Ahoj potřebuji pomoc s tímhle
Tohle je skript na lognuti. <form method='post'> <input type="text" name='nick' placeholder="Nick"><br /> <input type="password" name='heslo' placeholder="Heslo"><br /> <button type="submit">Přihlásit!</button><br /> </form> <?php /////////////// // NASTAVENI // /////////////// $db_host = "93.91.250.137"; // Zde zadej hostitele $db_uzivatel = "148***_mysql_db"; // Zde uživatelské jméno $db_heslo = "******"; // Zde heslo $db_databaze = "148***_mysql_db"; // Zde jméno databáze $db_tabulka = "authme_administrace"; // Zde zadej jméno AuthMe tabulky $hash = "SHA256"; // Zde zadej typ šifrování /////////////// // SKRIPT // /////////////// if(isset($_SESSION['uzivatel'])) { echo "<a href='?odhlasit=true'><button>Odhlásit</button>"; if(isset($_GET['odhlasit']) && $_GET['odhlasit']==true) session_destroy(); } else { $mysqli = new mysqli($db_host, $db_uzivatel, $db_heslo, $db_databaze); if ($mysqli->connect_errno) { echo "Failed to connect to MySQL: " . $mysqli->connect_error; exit(); } if (isset($_POST['nick']) && isset($_POST['heslo'])) { if (!empty($_POST['nick']) && !empty($_POST['heslo'])) { //Ochrana a tvorba variablů $nick = preg_replace('/\s+/', '', $_POST['nick']); $heslo = preg_replace('/\s+/', '', $_POST['heslo']); $result = $mysqli->query("SELECT password FROM ".$db_tabulka." WHERE username = '".$nick."'"); $row = $result->fetch_assoc(); switch ($hash) { case 'MD5': $heslicko = hash('md5', $heslo) === $row['password']; break; case 'SHA1': $heslicko = hash('sha1', $heslo) === $row['password']; break; case 'SHA256': $userPasswordField = explode('$', $row['password']); $heslo = hash('sha256', $heslo); $heslo .= $userPasswordField[2]; $heslo = '$SHA$' . $userPasswordField[2] . '$' . hash('sha256', $heslo); $heslicko = $heslo === $row['password']; break; } $ip = $_SERVER['REMOTE_ADDR']; //Ověření nicku $query_nick = mysqli_query($mysqli, "SELECT username FROM ".$db_tabulka." WHERE username = '".$nick."'"); if ($data_nick = mysqli_fetch_array($query_nick)) { //Ověření hesla if ($heslicko) { $_SESSION['uzivatel'] = $nick; //Úspěšné přihlášení header ("Location: admin.php"); } else { //Neúspěšné přihlášení echo "<div style='color: red;'><strong>Toto heslo není správné.</strong></div>"; } } else { //Neexistující přezdívka echo "<div style='color: red;'><strong>Tato přezdívka nebyla nalezena.</strong></div>"; } } } } //Obnova hesla if(isset($_GET['action'])) { if($_GET['action'] == "newpassword") { echo "<form method='post'><input type='text' name='udaj' placeholder='Přezdívka'><button type='submit'>Zaslat heslo!</button></form>"; if(isset($_POST['udaj'])) { if(!empty($_POST['udaj'])) { function random_pwd($length) { $rangeMin = pow(36, $length-1); $rangeMax = pow(36, $length)-1; $base10Rand = mt_rand($rangeMin, $rangeMax); $newRand = base_convert($base10Rand, 10, 36); return $newRand; } $new_query_email = mysqli_query($mysqli, "SELECT email FROM ".$db_tabulka." WHERE username = '".$_POST['udaj']."'"); $new_query_data = mysqli_fetch_array($new_query_email); $random_pw = random_pwd(10); $random_pw_md = md5($random_pw); $message = "Tvoje nove heslo pro jmeno ".$_POST['udaj']." je " . $random_pw; ini_set("SMTP","ssl://smtp.gmail.com"); ini_set("smtp_port","587"); mail($new_query_data['email'], 'New Password', $message); $query = mysqli_query($mysqli, "UPDATE ".$db_tabulka." SET password = '".$random_pw_md."' WHERE username = '".$_POST['udaj']."'"); echo "Tvé heslo bylo změněno! Zkontroluj svoji e-mailovou schránku."; } } } } ?> $_SESSION['uzivatel'] = $nick; //Úspěšné přihlášení header ("Location: admin.php"); } Html kód na přidání příspěvku <form action="script.php" method="post"> <h3>Název článku:</h3> <input type="text" id="nazev" name="nazev" /><br /> <h3>Obsah článku:</h3> <textarea id="text" name="text"></textarea> <h3>Autor:</h3> <input type="text" id="autor" name="autor"> <input type="submit" value="Odeslat!" /> </form> Díky McBOY |
||
karel S. Profil * |
#2 · Zasláno: 5. 5. 2014, 13:24:10
McBOY:
kontroluj, jestli existuje $_SESSION['uzivatel'] a vypisuj příslušný formulář. |
||
Časová prodleva: 10 let
|
0