Avatar billede tjodense Mester
10. februar 2022 - 12:58 Der er 4 kommentarer og
1 løsning

Registreringsform php Mysql

Hej eksperter,
Skulle lave en test med en simpel registreringsform mod Mysql.
Har oprettet databasen og en tabel med felterne.
ID, Navn, password
Når jeg udfylder username og password og klikker SEND/submit
fejler registration.php med "Denne side virker ikke HTTP error500"

Nogen der lige kan se hvad der fejler eller har en kode for det.
Det er til test, så den behøver ikke tjekke for om brugeren er oprettet i forvejen eller lign.
------------------------------ registrer.html:---------------------------------------
<html>
<head>
<title>REGISTRERINGS FORMULAR</title>
<body>
<form name="registration" method="post" action="registration.php">
USERNAME:<input type="text" name="name" value=""></br>
PASSWORD:<input type="text" name="password" value=""></br>
<input type="submit" name="submit" value="submit">
</form>

</body>
</head>
</html>

---------------------------------------------registration.php---------------------------
<?php 
Include('connect.php')
//if submit is not blanked i.e. it is clicked.
If(isset($_REQUEST['submit'])!='')
{
If($_REQUEST['name']=='' || $_REQUEST['password']=='')
{
Echo "please fill the empty field.";
}
Else
{
$sql="insert into brugere(name,password) values('".$_REQUEST['name']."', '".$_REQUEST['password']."')";
$res=mysql_query($sql);
If($res)
{
Echo "Alt ok";
}
Else
{
Echo "Fejl";
}

}
}

?>

---------------------------CONNECT.PHP---------------------------------------
<?php         

//Skab forbindelse til server

$host = "localhost";
$username = "eksperten";
$pass = "XXXXXX";
$database="Database1";
$conn = mysqli_connect("$host","$username","$Pass", "$database", "brugere");
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
mysql_select_db($database,$con);
?>
----------------------------------------------------------------------------
Avatar billede jakobdo Ekspert
10. februar 2022 - 13:13 #1
Det her tjek ser lidt underligt ud:

If(isset($_REQUEST['submit'])!='')

Du kan enten tjekke om submit er "sat":
If(isset($_REQUEST['submit']))

eller se om submit er forskellig fra "" (ingenting):

If($_REQUEST['submit'] != '')

Start med at ret den og se om det får dig videre.
Avatar billede tjodense Mester
10. februar 2022 - 13:25 #2
Jaaaaaaaaa. Tak det hjalp..
1000 Tak.
Avatar billede jakobdo Ekspert
10. februar 2022 - 13:52 #3
En anden god ide, er at skifte $_REQUEST til $_POST eller $_GET.

I dette tilfælde laver du en POST fra din formular, så det korrekte vil være: $_POST

$_REQUEST vil supportere både GET og POST. Men her ved du jo at der altid vil være tale om en POST.
Avatar billede arne_v Ekspert
10. februar 2022 - 14:39 #4
Og så er koden pivåben for SQL injection.

Og jeg undrer mig over om der er i eller ikke i:

mysqli_connect
mysqli_connect_error
mysql_select_db
mysql_query
Avatar billede jakobdo Ekspert
10. februar 2022 - 15:06 #5
Som Arne siger, så bør du bruge mysqli
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester