Just nu i M3-nätverket
Gå till innehåll

Mitt register script funkar inte som det ska


byllan1337

Rekommendera Poster

Hej, jag har precis jobbat med mitt register script i några dagar nu och börjar bli smått irriterad på att den kan visa errors men när jag fyller i allting rätt så ska det inte sparas i databasen och meddelandet kommer inte heller upp om det har sparats i databasen.
 
Ni har frågar.

1. Byllan ditt lösenord och vissa andra saker är inte säkra,.
Svar: Vet om detta med html_special_chars och password_hash osv ska lägga till det va inte orolig.
 
Script.
 

<?php
session_start();
 
if(isset($_POST['regbutton'])) {
 
$username = $_POST['username'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$mail = $_POST['mail'];
$regdate = date("Y-m-d");
$question = $_POST['question'];
$regbutton = $_POST['regbutton'];
}
 
$reg_error = array();
 
// Does the passwords match?
if ($_POST['password'] != $_POST['password2']) {$reg_error[0] = "Passwords do not match!<br>";}
 
// Any field empty?
if (empty($_POST['username']) or empty($_POST['password']) || 
   empty($_POST['password2']) || empty($_POST['mail']) or empty($_POST['question'])) {
$reg_error[1] = "You forgot to fill something!<br>"; 
}
 
// Does Username already exist in db?
 
$query = mysqli_query($connect, "SELECT * FROM users WHERE username = '$username'");
 
$result = mysqli_num_rows($query);
 
if ($result > 0) {
$reg_error[2] = "Username already exist!<br>";
}
 
 
// Does E-Mail already exist in db?
 
$secquery = mysqli_query($connect, "SELECT * FROM users WHERE email = '$mail'");
 
$result2 = mysqli_fetch_row($secquery);
 
if($result2 > 0){
$reg_error[3] = "Email already exist!<br>";
}
 
// Check Email
 
if(!preg_match("/.[@]./", $_POST['mail'])) {
$reg_error[4] = "You forgot @ in your Email<br>";
}
  
 
// Question is right?
 
if ($_POST['question'] != 14) {
$reg_error[5] = "The answer for the question is not right!<br />";
}
 
 
if(!isset($reg_error)) {
 
$query3 = ("INSERT INTO `users` (`username`, `password`, `email`, `register_date`) VALUES('$username', '$password', '$mail', '$regdate')");
mysqli_query($connect, $query3);
echo "The account has been registered!"; }
 
else {
 
 
foreach($reg_error as $values) {
print_r($values);}
 
}
 
 
?>
 
 
<form id="registerform" action = "?page=register" method = "post">
<table id="registertable">
<tr><td>Username</td>  <td> <input id="input" type="text" name="username" value="<?php if(isset($_POST['username'])) {echo $_POST['username'];} ?>"></td></tr>
<tr><td>Password</td>  <td> <input id="input" type="password" name = "password"></td></tr>
<tr><td>Password Again</td>  <td> <input id="input" type="password" name = "password2"></td></tr>
<tr><td>E-Mail</td>  <td> <input id="input" type="text" name = "mail" value="<?php if(isset($_POST['mail'])) {echo $_POST['mail'];} ?>"></td></tr>
<tr><td>What is 9 + 5</td>  <td> <input id="input" type="text" name = "question"></td></tr>
<tr> <td></td>  <td><input type="submit" name = "regbutton" value="Register"></td></tr>
</table>
 
</form>
Länk till kommentar
Dela på andra webbplatser

Jag hitta ett fel.

 

Du behöver.

require("config.php");

För att den ska hitta $connect så att den kan logga in till Mysql database men vet inte om du tog bort den kod raden.

 

Ps kör inte med MD5 hash du måste salt hash med så att det blir lite svåra att knäcka lösenordet.

 

Tar mig 15 minuter att knäcka lösenord som är 8 långt då har jag även provat med sha512 hash. Gör så att den kollar så att lösenordet är mer än 8 långt.

 

Har hitta felet =) och jag la till hash med =)

 

post-73763-0-21771900-1416889365_thumb.png

<?php
session_start();
 
$connect=mysqli_connect("127.0.0.1","test","test","test"); 
//$connect=mysqli_connect("localhost","my_user","my_password","my_db");
 
if(isset($_POST['regbutton'])) {
 
$username = $_POST['username'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$mail = $_POST['mail'];
$regdate = date("Y-m-d");
$question = $_POST['question'];
$regbutton = $_POST['regbutton'];

//echo $password;
$salt = hash('sha512', $username); //Salt
$password = hash('sha512', $salt.$password);
//echo $salt;
//echo $password;

}
 
$reg_error = array();
 
// Does the passwords match?
if ($_POST['password'] != $_POST['password2']) {$reg_error[0] = "Passwords do not match!<br>";}
 
// Any field empty?
if (empty($_POST['username']) or empty($_POST['password']) || 
   empty($_POST['password2']) || empty($_POST['mail']) or empty($_POST['question'])) {
$reg_error[1] = "You forgot to fill something!<br>"; 
}
 
// Does Username already exist in db?
 
$query = mysqli_query($connect, "SELECT * FROM users WHERE username = '$username'");
 
$result = mysqli_num_rows($query);
 
if ($result > 0) {
$reg_error[2] = "Username already exist!<br>";
}
 
 
// Does E-Mail already exist in db?
 
$secquery = mysqli_query($connect, "SELECT * FROM users WHERE email = '$mail'");
 
$result2 = mysqli_fetch_row($secquery);
 
if($result2 > 0){
$reg_error[3] = "Email already exist!<br>";
}
 
// Check Email
 
if(!preg_match("/.[@]./", $_POST['mail'])) {
$reg_error[4] = "You forgot @ in your Email<br>";
}
  
 
// Question is right?
 
if ($_POST['question'] != 14) {
$reg_error[5] = "The answer for the question is not right!<br />";
}
 
 
if(!isset($reg_error) || empty($reg_error)) {
 
$query3 = ("INSERT INTO `users` (`username`, `password`, `email`, `register_date`) VALUES('$username', '$password', '$mail', '$regdate')");
mysqli_query($connect, $query3);
echo "The account has been registered!"; }
 
else {
 
 
foreach($reg_error as $values) {
print_r($values);}
 
}
 
 
?>
 
 
<form id="registerform" action = "?page=register" method = "post">
<table id="registertable">
<tr><td>Username</td>  <td> <input id="input" type="text" name="username" value="<?php if(isset($_POST['username'])) {echo $_POST['username'];} ?>"></td></tr>
<tr><td>Password</td>  <td> <input id="input" type="password" name = "password"></td></tr>
<tr><td>Password Again</td>  <td> <input id="input" type="password" name = "password2"></td></tr>
<tr><td>E-Mail</td>  <td> <input id="input" type="text" name = "mail" value="<?php if(isset($_POST['mail'])) {echo $_POST['mail'];} ?>"></td></tr>
<tr><td>What is 9 + 5</td>  <td> <input id="input" type="text" name = "question"></td></tr>
<tr> <td></td>  <td><input type="submit" name = "regbutton" value="Register"></td></tr>
</table>
 
</form>
Länk till kommentar
Dela på andra webbplatser

 

Jag hitta ett fel.

 

Du behöver.

require("config.php");

För att den ska hitta $connect så att den kan logga in till Mysql database men vet inte om du tog bort den kod raden.

 

Ps kör inte med MD5 hash du måste salt hash med så att det blir lite svåra att knäcka lösenordet.

 

Tar mig 15 minuter att knäcka lösenord som är 8 långt då har jag även provat med sha512 hash. Gör så att den kollar så att lösenordet är mer än 8 långt.

 

Har hitta felet =) och jag la till hash med =)

 

attachicon.gifReggphpmysql.PNG

<?php
session_start();
 
$connect=mysqli_connect("127.0.0.1","test","test","test"); 
//$connect=mysqli_connect("localhost","my_user","my_password","my_db");
 
if(isset($_POST['regbutton'])) {
 
$username = $_POST['username'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$mail = $_POST['mail'];
$regdate = date("Y-m-d");
$question = $_POST['question'];
$regbutton = $_POST['regbutton'];

//echo $password;
$salt = hash('sha512', $username); //Salt
$password = hash('sha512', $salt.$password);
//echo $salt;
//echo $password;

}
 
$reg_error = array();
 
// Does the passwords match?
if ($_POST['password'] != $_POST['password2']) {$reg_error[0] = "Passwords do not match!<br>";}
 
// Any field empty?
if (empty($_POST['username']) or empty($_POST['password']) || 
   empty($_POST['password2']) || empty($_POST['mail']) or empty($_POST['question'])) {
$reg_error[1] = "You forgot to fill something!<br>"; 
}
 
// Does Username already exist in db?
 
$query = mysqli_query($connect, "SELECT * FROM users WHERE username = '$username'");
 
$result = mysqli_num_rows($query);
 
if ($result > 0) {
$reg_error[2] = "Username already exist!<br>";
}
 
 
// Does E-Mail already exist in db?
 
$secquery = mysqli_query($connect, "SELECT * FROM users WHERE email = '$mail'");
 
$result2 = mysqli_fetch_row($secquery);
 
if($result2 > 0){
$reg_error[3] = "Email already exist!<br>";
}
 
// Check Email
 
if(!preg_match("/.[@]./", $_POST['mail'])) {
$reg_error[4] = "You forgot @ in your Email<br>";
}
  
 
// Question is right?
 
if ($_POST['question'] != 14) {
$reg_error[5] = "The answer for the question is not right!<br />";
}
 
 
if(!isset($reg_error) || empty($reg_error)) {
 
$query3 = ("INSERT INTO `users` (`username`, `password`, `email`, `register_date`) VALUES('$username', '$password', '$mail', '$regdate')");
mysqli_query($connect, $query3);
echo "The account has been registered!"; }
 
else {
 
 
foreach($reg_error as $values) {
print_r($values);}
 
}
 
 
?>
 
 
<form id="registerform" action = "?page=register" method = "post">
<table id="registertable">
<tr><td>Username</td>  <td> <input id="input" type="text" name="username" value="<?php if(isset($_POST['username'])) {echo $_POST['username'];} ?>"></td></tr>
<tr><td>Password</td>  <td> <input id="input" type="password" name = "password"></td></tr>
<tr><td>Password Again</td>  <td> <input id="input" type="password" name = "password2"></td></tr>
<tr><td>E-Mail</td>  <td> <input id="input" type="text" name = "mail" value="<?php if(isset($_POST['mail'])) {echo $_POST['mail'];} ?>"></td></tr>
<tr><td>What is 9 + 5</td>  <td> <input id="input" type="text" name = "question"></td></tr>
<tr> <td></td>  <td><input type="submit" name = "regbutton" value="Register"></td></tr>
</table>
 
</form>

Nu har du nog svarat i fel thread skulle jag tro, kolla över allt igen. Har redan $connect och behöver absolut inte ta in config för ett register script och vem sa att jag använder md5 hash? Jag har inte ens det i scriptet så förstår inte vad du har fått det ifrån.

 

Min fråga var varför inte errors kommer upp och varför inget skickas till databasen. Det är de två sakerna som krånglar för mig och som jag vill fixa, nothing else! :D password_hash() har absolut inget med md5 att göra.

Länk till kommentar
Dela på andra webbplatser

 

 

Jag hitta ett fel.

 

Du behöver.

require("config.php");

För att den ska hitta $connect så att den kan logga in till Mysql database men vet inte om du tog bort den kod raden.

 

Ps kör inte med MD5 hash du måste salt hash med så att det blir lite svåra att knäcka lösenordet.

 

Tar mig 15 minuter att knäcka lösenord som är 8 långt då har jag även provat med sha512 hash. Gör så att den kollar så att lösenordet är mer än 8 långt.

 

Har hitta felet =) och jag la till hash med =)

 

attachicon.gifReggphpmysql.PNG

<?php
session_start();
 
$connect=mysqli_connect("127.0.0.1","test","test","test"); 
//$connect=mysqli_connect("localhost","my_user","my_password","my_db");
 
if(isset($_POST['regbutton'])) {
 
$username = $_POST['username'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$mail = $_POST['mail'];
$regdate = date("Y-m-d");
$question = $_POST['question'];
$regbutton = $_POST['regbutton'];

//echo $password;
$salt = hash('sha512', $username); //Salt
$password = hash('sha512', $salt.$password);
//echo $salt;
//echo $password;

}
 
$reg_error = array();
 
// Does the passwords match?
if ($_POST['password'] != $_POST['password2']) {$reg_error[0] = "Passwords do not match!<br>";}
 
// Any field empty?
if (empty($_POST['username']) or empty($_POST['password']) || 
   empty($_POST['password2']) || empty($_POST['mail']) or empty($_POST['question'])) {
$reg_error[1] = "You forgot to fill something!<br>"; 
}
 
// Does Username already exist in db?
 
$query = mysqli_query($connect, "SELECT * FROM users WHERE username = '$username'");
 
$result = mysqli_num_rows($query);
 
if ($result > 0) {
$reg_error[2] = "Username already exist!<br>";
}
 
 
// Does E-Mail already exist in db?
 
$secquery = mysqli_query($connect, "SELECT * FROM users WHERE email = '$mail'");
 
$result2 = mysqli_fetch_row($secquery);
 
if($result2 > 0){
$reg_error[3] = "Email already exist!<br>";
}
 
// Check Email
 
if(!preg_match("/.[@]./", $_POST['mail'])) {
$reg_error[4] = "You forgot @ in your Email<br>";
}
  
 
// Question is right?
 
if ($_POST['question'] != 14) {
$reg_error[5] = "The answer for the question is not right!<br />";
}
 
 
if(!isset($reg_error) || empty($reg_error)) {
 
$query3 = ("INSERT INTO `users` (`username`, `password`, `email`, `register_date`) VALUES('$username', '$password', '$mail', '$regdate')");
mysqli_query($connect, $query3);
echo "The account has been registered!"; }
 
else {
 
 
foreach($reg_error as $values) {
print_r($values);}
 
}
 
 
?>
 
 
<form id="registerform" action = "?page=register" method = "post">
<table id="registertable">
<tr><td>Username</td>  <td> <input id="input" type="text" name="username" value="<?php if(isset($_POST['username'])) {echo $_POST['username'];} ?>"></td></tr>
<tr><td>Password</td>  <td> <input id="input" type="password" name = "password"></td></tr>
<tr><td>Password Again</td>  <td> <input id="input" type="password" name = "password2"></td></tr>
<tr><td>E-Mail</td>  <td> <input id="input" type="text" name = "mail" value="<?php if(isset($_POST['mail'])) {echo $_POST['mail'];} ?>"></td></tr>
<tr><td>What is 9 + 5</td>  <td> <input id="input" type="text" name = "question"></td></tr>
<tr> <td></td>  <td><input type="submit" name = "regbutton" value="Register"></td></tr>
</table>
 
</form>

Nu har du nog svarat i fel thread skulle jag tro, kolla över allt igen. Har redan $connect och behöver absolut inte ta in config för ett register script och vem sa att jag använder md5 hash? Jag har inte ens det i scriptet så förstår inte vad du har fått det ifrån.

 

Min fråga var varför inte errors kommer upp och varför inget skickas till databasen. Det är de två sakerna som krånglar för mig och som jag vill fixa, nothing else! :D password_hash() har absolut inget med md5 att göra. Mysql connection funkar galant också, jag kör den via index.php så att det gäller på alla scripts.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...