Permalänk

php inloggning broken links

Hej, försöker sätta upp en inloggning men när jag visas sidan så får jag massa koder/broken links i fönstret. Tänkte om ni kunde kolla på koden och se om ni hittar felet

login.php:

<!DOCTYPE html> <html lang="sv"> <head> <title> TheFamily</title> <link href="css/style.css" rel="stylesheet" type="text/css" > <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="description" content="En sida om Familjen Jansson"> <meta name="keywords" content="Bilder Videon Blogg"> <meta charset="utf-8" /> </head> <body> <?php require("common.php"); $submitted_username = ''; if(!empty($_POST)) { $query = " SELECT id, username, password, salt, email FROM users WHERE username = :username "; $query_params = array( ':username' => $_POST['username'] ); try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } $login_ok = false; $row = $stmt->fetch(); if($row) { $check_password = hash('sha256', $_POST['password'] . $row['salt']); for($round = 0; $round < 65536; $round++) { $check_password = hash('sha256', $check_password . $row['salt']); } if($check_password === $row['password']) { $login_ok = true; } } if($login_ok) { unset($row['salt']); unset($row['password']); $_SESSION['user'] = $row; header("Location: private.php"); die("Redirecting to: private.php"); } else { print("Login Failed."); $submitted_username = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8'); } } ?> <?php if (isset($_POST['submit'])) { $username = strip_tags($_POST['username']); $password = strip_tags($_POST['password']); $rememberMe = strip_tags($_POST['rememberMe']); if ($username == "me" && $password == "123") { if ($rememberMe) { setcookie("loggedIn", "yes", time()+3600); } echo "You are Logged in!<hr />"; } else { echo "Username and/or password is incorrect."; } } if ($_COOKIE['loggedIn'] == "yes") { echo "You are Still Logged In due to the Cookie!<hr />"; die(); } ?> <form id="login"><input type="username" placeholder="Användarnamn" required=""><input type="password" placeholder="Lösenord" required=""> Remember Me: <input type="checkbox" name="rememberMe" /><br/><button type="submit">Logga in</button></form> </body> </html>

register.php:

<!DOCTYPE html> <html lang="sv"> <head> <title> TheFamily</title> <link href="css/style.css" rel="stylesheet" type="text/css" > <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="description" content="En sida om Familjen Jansson"> <meta name="keywords" content="Bilder Videon Blogg"> <meta charset="utf-8" /> </head> <body> <?php require("common.php"); if(!empty($_POST)) { if(empty($_POST['username'])) { die("Måste Skriva Användarnamnet.."); } if(empty($_POST['password'])) { die("Måste skriva lösenordet.."); } if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { die("ogiltlig E-Mail Address"); } $query = " SELECT 1 FROM users WHERE username = :username "; $query_params = array( ':username' => $_POST['username'] ) try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } $row = $stmt->fetch(); if($row) { die("Användarnamnet finns redan."); } $query = " SELECT 1 FROM users WHERE email = :email "; $query_params = array( ':email' => $_POST['email'] ); try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } $row = $stmt->fetch(); if($row) { die("E-mail addressen finns redan. "); } $query = " INSERT INTO users ( username, password, salt, email ) VALUES ( :username, :password, :salt, :email ) "; $salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647)); $password = hash('sha256', $_POST['password'] . $salt); for($round = 0; $round < 65536; $round++) { $password = hash('sha256', $password . $salt); } $query_params = array( ':username' => $_POST['username'], ':password' => $password, ':salt' => $salt, ':email' => $_POST['email'] ); try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } header("Location: login.php"); die("Redirecting to login.php"); } ?> <form id="signup"> <input type="username" placeholder="Välj ett användarnamn" required=""> <input type="email" placeholder="E-mail" required=""> <input type="password" placeholder="Välj ett lösenord" required=""> <input type="password" placeholder="Välj ett lösenord" required=""> <button type="submit">Registrera!</button> </form> </body> </html>

Permalänk
Medlem

Fixa din CODE tagg.

Vilka felmeddelanden får du?
Broken link låter son.. en trasig länk?

Visa signatur

Canon 70D | 2x Dell Ultrasharp 24" | Ryzen 3700X | 32B | GTX 1080Ti

Permalänk
Skrivet av FlorrpaN:

Fixa din CODE tagg.

Vilka felmeddelanden får du?
Broken link låter son.. en trasig länk?

Den här får jag på login.php:

$_POST['username'] ); try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } $login_ok = false; $row = $stmt->fetch(); if($row) { $check_password = hash('sha256', $_POST['password'] . $row['salt']); for($round = 0; $round < 65536; $round++) { $check_password = hash('sha256', $check_password . $row['salt']); } if($check_password === $row['password']) { $login_ok = true; } } if($login_ok) { unset($row['salt']); unset($row['password']); $_SESSION['user'] = $row; header("Location: private.php"); die("Redirecting to: private.php"); } else { print("Login Failed."); $submitted_username = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8'); } } ?> "; } else { echo "Username and/or password is incorrect."; } } if ($_COOKIE['loggedIn'] == "yes") { echo "You are Still Logged In due to the Cookie! "; die(); } ?>

Det här får jag på register.php

$_POST['username'] ) try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } $row = $stmt->fetch(); if($row) { die("Användarnamnet finns redan."); } $query = " SELECT 1 FROM users WHERE email = :email "; $query_params = array( ':email' => $_POST['email'] ); try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } $row = $stmt->fetch(); if($row) { die("E-mail addressen finns redan. "); } $query = " INSERT INTO users ( username, password, salt, email ) VALUES ( :username, :password, :salt, :email ) "; $salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647)); $password = hash('sha256', $_POST['password'] . $salt); for($round = 0; $round < 65536; $round++) { $password = hash('sha256', $password . $salt); } $query_params = array( ':username' => $_POST['username'], ':password' => $password, ':salt' => $salt, ':email' => $_POST['email'] ); try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } header("Location: login.php"); die("Redirecting to login.php"); } ?>

Permalänk
Medlem

':username' => $_POST['username']

Inte stängd med semicolon ;

Använd [PHP] taggen för att få det lite mer tydligare.

Visa signatur

Canon 70D | 2x Dell Ultrasharp 24" | Ryzen 3700X | 32B | GTX 1080Ti

Permalänk
Skrivet av FlorrpaN:

':username' => $_POST['username']

Inte stängd med semicolon ;

Använd [PHP] taggen för att få det lite mer tydligare.

är det jag som är dum, men är det inte korrekt stängd? eftersom han s lutar med ett ;

$query_params = array( ':username' => $_POST['username'] );

Permalänk
Medlem

Kolla din php/apache logg och visa felmeddelanden.

Visa signatur

AW3423DW QD-OLED - Ryzen 5800x - MSI Gaming Trio X 3090 - 64GB 3600@cl16 - Samsung 980 Pro 2TB/WD Black SN850 2TB

Permalänk
Skrivet av celoz:

Kolla din php/apache logg och visa felmeddelanden.

hur hittar jag en sådan?

Permalänk
Medlem
Skrivet av Jansson200:

hur hittar jag en sådan?

/var/log/apache/error.log

på Windows om du kör xampp så ligger den väl i C:\xampp\php\logs

Visa signatur

AW3423DW QD-OLED - Ryzen 5800x - MSI Gaming Trio X 3090 - 64GB 3600@cl16 - Samsung 980 Pro 2TB/WD Black SN850 2TB

Permalänk
Medlem
Skrivet av celoz:

/var/log/apache/error.log

på Windows om du kör xampp så ligger den väl i C:\xampp\php\logs

...och om det är en vanlig installation ligger loggarna i C:\Program Files (x86)\Apache Group\Apache <version>\logs om jag inte har fel för mig.

Visa signatur

11600K@5.1 GHz + 32GB Corsair Vengeance RGB PRO 3200@3400 MHz + MSI RTX 2080 Super Gaming X Trio +
WDC Blue SN550 1TB + Black OEM SN730 500GB + Kingston A1000 480GB + A2000 500GB + NV2 1TB + 2TB R10 + RGB most of THE THINGS! + Corsair 4000D Airflow + 2*ZyXEL NSA326 2*3TB @ R1 + Netgear RN2100 4*3TB @ R10 + RN204 4*4TB @ R5 + Synology DS216j 2*4TB @ SHR R1 + DS418 4*8TB @ SHR R6

Permalänk
Inaktiv
Skrivet av Jansson200:

Den här får jag på login.php:

$_POST['username'] ); try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } $login_ok = false; $row = $stmt->fetch(); if($row) { $check_password = hash('sha256', $_POST['password'] . $row['salt']); for($round = 0; $round < 65536; $round++) { $check_password = hash('sha256', $check_password . $row['salt']); } if($check_password === $row['password']) { $login_ok = true; } } if($login_ok) { unset($row['salt']); unset($row['password']); $_SESSION['user'] = $row; header("Location: private.php"); die("Redirecting to: private.php"); } else { print("Login Failed."); $submitted_username = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8'); } } ?> "; } else { echo "Username and/or password is incorrect."; } } if ($_COOKIE['loggedIn'] == "yes") { echo "You are Still Logged In due to the Cookie! "; die(); } ?>

Det här får jag på register.php

$_POST['username'] ) try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } $row = $stmt->fetch(); if($row) { die("Användarnamnet finns redan."); } $query = " SELECT 1 FROM users WHERE email = :email "; $query_params = array( ':email' => $_POST['email'] ); try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } $row = $stmt->fetch(); if($row) { die("E-mail addressen finns redan. "); } $query = " INSERT INTO users ( username, password, salt, email ) VALUES ( :username, :password, :salt, :email ) "; $salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647)); $password = hash('sha256', $_POST['password'] . $salt); for($round = 0; $round < 65536; $round++) { $password = hash('sha256', $password . $salt); } $query_params = array( ':username' => $_POST['username'], ':password' => $password, ':salt' => $salt, ':email' => $_POST['email'] ); try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } header("Location: login.php"); die("Redirecting to login.php"); } ?>

Är det detta som kommer upp när du går in på sidan i din webbläsare? Det finns inga konstiga radbrytningar vid $_POST['username'] ); och $_POST['username'] ) respektive? (Klicka på ¶ i Notepad++ så får du upp CR och LF. Kolla om det ser annorlunda ut vid dessa ställen).

Permalänk
Medlem
Skrivet av Jansson200:

Den här får jag på login.php:

$_POST['username'] ); try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } $login_ok = false; $row = $stmt->fetch(); if($row) { $check_password = hash('sha256', $_POST['password'] . $row['salt']); for($round = 0; $round < 65536; $round++) { $check_password = hash('sha256', $check_password . $row['salt']); } if($check_password === $row['password']) { $login_ok = true; } } if($login_ok) { unset($row['salt']); unset($row['password']); $_SESSION['user'] = $row; header("Location: private.php"); die("Redirecting to: private.php"); } else { print("Login Failed."); $submitted_username = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8'); } } ?> "; } else { echo "Username and/or password is incorrect."; } } if ($_COOKIE['loggedIn'] == "yes") { echo "You are Still Logged In due to the Cookie! "; die(); } ?>

Det här får jag på register.php

$_POST['username'] ) try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } $row = $stmt->fetch(); if($row) { die("Användarnamnet finns redan."); } $query = " SELECT 1 FROM users WHERE email = :email "; $query_params = array( ':email' => $_POST['email'] ); try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } $row = $stmt->fetch(); if($row) { die("E-mail addressen finns redan. "); } $query = " INSERT INTO users ( username, password, salt, email ) VALUES ( :username, :password, :salt, :email ) "; $salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647)); $password = hash('sha256', $_POST['password'] . $salt); for($round = 0; $round < 65536; $round++) { $password = hash('sha256', $password . $salt); } $query_params = array( ':username' => $_POST['username'], ':password' => $password, ':salt' => $salt, ':email' => $_POST['email'] ); try { $stmt = $db->prepare($query); $result = $stmt->execute($query_params); } catch(PDOException $ex) { die("Failed to run query: " . $ex->getMessage()); } header("Location: login.php"); die("Redirecting to login.php"); } ?>

I register.php så är denna inte korrekt stängd.
Det saknas ett semikolon efter denna array, vet inte om den försvann när du kopierade eller om den inte finns i koden.
Ser inget fel i login.php i övrigt.

$query_params = array( ':username' => $_POST['username'] )

Permalänk

Tack för hjälpen!