28. februar 2019 - 09:35
Der er
19 kommentarer og 2 løsninger
Login
Jeg har et udfordring med denne. Da denne side var færdig så skulle den indputte brugernavn og password i dB men den fejler at den ikke kan finde signup.php. Der hvor den virker er til hvor den skal tjekke user navn og mail derefter kan jeg ikke se fejlen. Er der nogle kan se fejle <?php if(isset($_POST['signup-submit'])){ require 'dbh.inc.php'; $username = $_POST['uid']; $email = $_POST['mail']; $password = $_POST['pwd']; $passwordRepeat = $_POST['pwd-repeat']; if(empty($username) || empty($email) || empty($password) || empty($passwordRepeat)){ header("Location: ../signup.php?error=emtyfields&uid=".$username. "&mail=".$email); exit(); } else if(!filter_var($email, FILTER_VALIDATE_EMAIL) && !preg_match("/^[a-zA-Z0-9]*$/", $username)){ header("Location: ../signup.php?error=invalidmailuid"); exit(); } else if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { header("Location: ../signup.php?error=invalidmail&uid=".$username); exit(); } else if (!preg_match("/^[a-zA-Z0-9]*$/", $username)) { header("Location: ../signup.php?error=invaliduid&mail=".$email); exit(); } else if(password !== $passwordRepeat){ header("Location: ../signup.php?error=passwordcheckuid=".$username. "&mail=".$email); exit(); } else { $sql = "SELECT uidUsers FROM users WHERE uidUsers=?"; $stmt = mysqli_stmt_init($conn); if (!mysql_stmt_prepare($stmt, $sql)){ header("Location: ../signup.php?error=sqlerror"); exit(); } else { mysqli_stmt_bind_param($stmt, "s", $username); mysqli_stmt_execute($stmt); mysqli_stmt_store_result($stmt); $resultCheck = mysqli_stmt_num_rows($stmt); if ($resultCheck > 0){ header("Location: ../signup.php?error=usertaken&mail=" .$email); exit(); } else { $sql = "INSERT INTO users (uidUsers, emailUsers, pwdUsers) VALUES (?, ?, ?)"; $stmt = mysqli_stmt_init($conn); if (!mysql_stmt_prepare($stmt, $sql)){ header("Location: ../signup.php?error=sqlerror"); exit(); } else{ $hashedPwd = password_hash($password, PASSWORD_DEFAULT); mysqli_stmt_bind_param($stmt, "sss", $username, $email, $hashedPwd); mysqli_stmt_execute($stmt); header("Location: ../signup.php?signup=success"); exit(); } } } } mysqli_stmt_close($stmt); musqli_close($conn); } else{ header("Location: ../signup.php"); exit(); }
Annonceindlæg fra Computerworld it-jobbank
Ansøgningen burde være død og begravet!
Debatten bringes på banen efter et LinkedIn-opslag med titlen 'Ansøgningen burde for længst være død og begravet', som virkelig fået opmærksomhed.
6. februar 2024
28. februar 2019 - 09:39
#1
Jeg antager at signup ligger i samme mappe som den fil der? I så fald skal alle dine header kald ændres til stien ./signup.php fremfor ../signup.php
Synes godt om
1 synes godt om dette
28. februar 2019 - 10:05
#2
slå debug info til hvor langt kommer du i coden ?? (lav nogle test udskrifter i coden) >$sql = "SELECT uidUsers FROM users WHERE uidUsers=?"; hvad er meningen med dette ??, hvorfor selecte noget du har allerede >I så fald skal alle dine header kald ændres til stien ./signup.php fremfor ../signup.php man kunne også overveje at bruge absolute stier, istedet for relative, kig på $_SERVER['DOCUMENT_ROOT']
28. februar 2019 - 10:29
#3
Filen signup.inc.php ligger i includes og filen signup.php ligger i robot. Ved at undlader at indtaste user og mail men taster kode in så fejler den i browseren men i taster jeg det hele korrekt så kommer den frem med at den ikke kan finde url. sign up,php
28. februar 2019 - 10:42
#4
Hvad mener du med denne >$sql = "SELECT uidUsers FROM users WHERE uidUsers=?"; Den skal vel vide hvor den skal hente den fra Detter er vel afslutningen du mener $_SERVER['DOCUMENT_ROOT']
28. februar 2019 - 10:56
#5
Prøv at sammenligne din url hvis du går ind på siden signup manuelt, samt hvis du bliver redirectet af dit script. Hvordan ser begge ud?
28. februar 2019 - 12:35
#6
Nu har jeg lagt den online på webcopenhagen.dk i menuen login og derefter tryk på signup og tast et eller andet in så ser i resultatet
28. februar 2019 - 13:55
#7
omkring ln 14 >else if (password !== $passwordRepeat) { mon ikke du har en fejl her, der mangler vel et $ foran password altså else if ($password !== $passwordRepeat) {
28. februar 2019 - 14:47
#8
Desværre virker den stadigvæk ikke. Den fejler vedr linje 11
28. februar 2019 - 14:55
#9
Jeg vil tro det er et eller andet med password at gøre. Hvis du undlader user navn og Emil så fejler den i browseren og det er rigtigt. Udfylder du så med password så fejlet den i linje 11 forbindelse med emty Stack trace: #0 {main} at den prøver at udføre noget som den ikke kan klare
28. februar 2019 - 15:59
#10
ln 30, 44 >if (!mysql_stmt_prepare($stmt, $sql)) { mangler der ikke et i mysql_stmt_ if (!mysqli_stmt_prepare($stmt, $sql)) { ln 58 musqli_close($conn); tastebøf muyqli_close($conn);
28. februar 2019 - 18:07
#11
jeg har prøvet coden fra #0 med de rettelser jeg har fundes undervejs, og den kan godt oprette en bruger.
<?php if (isset($_POST['signup-submit'])) { require 'dbh.inc.php'; $username = $_POST['uid']; $email = $_POST['mail']; $password = $_POST['pwd']; $passwordRepeat = $_POST['pwd-repeat']; if (empty($username) || empty($email) || empty($password) || empty($passwordRepeat)) { header("Location: ../signup.php?error=emtyfields&uid=" . $username . "&mail=" . $email); exit(); } else if (!filter_var($email, FILTER_VALIDATE_EMAIL) && !preg_match("/^[a-zA-Z0-9]*$/", $username)) { header("Location: ../signup.php?error=invalidmailuid"); exit(); } else if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { header("Location: ../signup.php?error=invalidmail&uid=" . $username); exit(); } else if (!preg_match("/^[a-zA-Z0-9]*$/", $username)) { header("Location: ../signup.php?error=invaliduid&mail=" . $email); exit(); } else if ($password !== $passwordRepeat) { header("Location: ../signup.php?error=passwordcheckuid=" . $username . "&mail=" . $email); exit(); } else { $sql = "SELECT uidUsers FROM users WHERE uidUsers=?"; $stmt = mysqli_stmt_init($conn); if (!mysqli_stmt_prepare($stmt, $sql)) { header("Location: ../signup.php?error=sqlerror"); exit(); } else { mysqli_stmt_bind_param($stmt, "s", $username); mysqli_stmt_execute($stmt); mysqli_stmt_store_result($stmt); $resultCheck = mysqli_stmt_num_rows($stmt); if ($resultCheck > 0) { header("Location: ../signup.php?error=usertaken&mail=" . $email); exit(); } else { $sql = "INSERT INTO users (uidUsers, emailUsers, pwdUsers) VALUES (?, ?, ?)"; $stmt = mysqli_stmt_init($conn); if (!mysqli_stmt_prepare($stmt, $sql)) { header("Location: ../signup.php?error=sqlerror"); exit(); } else { $hashedPwd = password_hash($password, PASSWORD_DEFAULT); mysqli_stmt_bind_param($stmt, "sss", $username, $email, $hashedPwd); mysqli_stmt_execute($stmt); header("Location: ../signup.php?signup=success"); exit(); } } } } mysqli_stmt_close($stmt); mysqli_close($conn); } else { header("Location: ../signup.php"); exit(); }
28. februar 2019 - 18:53
#12
Jeg takker, hos mig fandt vi fejlen ved empty $email men viste ikke hvor den førte hen. Hvor fandt du den henne
28. februar 2019 - 19:16
#13
#12 >hos mig fandt vi fejlen ved empty $email den fejlede ikke ved mig. de fejl jeg beskrev i: #7, #10
01. marts 2019 - 00:26
#14
Jeg har et lille problem . Det er at alt virker bortset fra den siger i browseren at jeg er logget in men der er ikke sket noget på den side som det skulle stå du er logget på ,der skulle jeg kunne trykke på logud knap Her kommer login.inc.php <?php if (isset($_POST['login-submit'])){ require 'dbh.inc.php'; $mailuid = $_POST['mailuid']; $password = $_POST['pwd']; if (empty($mailuid) || empty($password)){ header("Location: ../index.php?error=emptyfields"); exit(); } else{ $sql = "SELECT * FROM users WHERE uidusers=? OR emailUsers=?;"; $stmt = mysqli_stmt_init($conn); if (!mysqli_stmt_prepare($stmt, $sql)){ header("Location: ../index.php?error=sqlerror"); exit(); } else{ mysqli_stmt_bind_param($stmt, "ss", $mailuid, $mailuid); mysqli_stmt_execute($stmt); $result = mysqli_stmt_get_result($stmt); if ($row = mysqli_fetch_assoc($result)){ $pwdCheck = password_verify($password, $row['pwdUsers']); if ($pwdCheck == false) { header("Location: ../index.php?error=wrongpwd"); exit(); } else if ($pwdCheck == true){ session_start(); $_SESSION['userid'] = $row['idUsers']; $_SESSION['userUid'] = $row['uidUsers']; header("Location: ../index.php?login=success"); exit(); } else { header("Location: ../index.php?error=wrongpwd"); exit(); } } else { header("Location: ../index.php?error=nouser"); exit(); } } } } else { header("Location: ../index.php"); exit(); } Her kommer den index.php som der bliver logget in på <?php require "header.php"; ?> <main> <div class="wrapper-main"> <section class="section-default"> <?php if (isset($_SESSION['userId'])){ echo '<p class="login-status">You are logged in!</p>'; } else { echo '<p class="login-status">you are logged out!</p>'; } ?> </section> </main> <?php require "footer.php"; ?>
01. marts 2019 - 06:57
#15
jeg har lavet en test log in som er bruger: Test kode: 123456 så kan du se hvad det sker
01. marts 2019 - 07:10
#16
Når man er logged in så skal man ikke kunne se login knap og heller ikke signup så skal det komme en knap som står logud på :-((
01. marts 2019 - 07:29
#17
hvor har du din session_start ??, enhver side der anvender sessions skal have session_start liggende i toppen af siden, dvs
før noget html
http://php.net/session_start
01. marts 2019 - 07:38
#18
jeg har den i header.php som ser sådan ud <?php session_start(); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" type="text/css" media="screen" href="style.css" /> <title>Testlogin</title> </head> <style> .logo src="logo.jpg"]{ height: 120px; width:80px; } </style> <body> <header> <nav> <a href="#"> <img src="img/logo.jpg" alt="logo" width: 80px; height=120px;> </a> <ul> <li><a href="index.php">home</a></li> <li><a href="#">Ommig</a></li> <li><a href="#">Kontakt</a></li> <li><a href="#">Watever</a></li> </ul> <div class="header-login"> <?php if (isset($_SESSION['userId'])){ echo '<form action="includs/logout.inc.php" method="post"> <button type="submit" name="logout-submit">Logout</button> </form>'; } else { echo ' <form action="includes/login.inc.php" method="post"> <input type="text" name="mailuid" placeholder="username/E-mail..."> <input type="password" name="pwd" placeholder="password..."> <button type="submit" name="login-submit">Login</button> </form> <a href="signup.php">Signup</a>'; } ?> </div> </nav> </header> </body> </html>
01. marts 2019 - 09:02
#19
Jeg har slået fejlmedelse til og den fejler med at i header linje 2 så kan den ikke slå session til når den allerede er sendt ind
01. marts 2019 - 13:27
#20
jeg gætter på fejlen er noget med header already sendt on line 2. du har sendt noget html til skærmen før din første php det kunne være BOM det kunne være mellemrum / linjeskift før <?php
Synes godt om
1 synes godt om dette
01. marts 2019 - 14:09
#21
Det var en stort > I < hvor der skulle være et lille i. Jeg takker for din store hjælp