Gegevens controleren in database

Status
Niet open voor verdere reacties.

wouter54321

Gebruiker
Lid geworden
24 mei 2008
Berichten
218
Ik heb een registratie script dat naam, wachtwoord en email opslaat in een database.
Bij het inlogformulier moeten die gegevens gecontroleerd worden.
Hoe doe je dit?
 
Wil je nou een script voor een inlogformulier?

Je maakt een simpel formulier (inloggen.html):

HTML:
<form name="login" action="login.php" method="post">
<table>
  <tr>
    <td>Naam:</td>
    <td><input type="text" name="name" /></td>
  </tr>
  <tr>
    <td>Wachtwoord:</td>
    <td><input type="password" name="pass" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="submit" value="Login" />
  </tr>
</table>
</form>

Vervolgens maak je PHP-pagina login.php:

PHP:
if($_SERVER['REQUEST_METHOD'] == 'POST'){
session_start();
$sql = "SELECT naam, wachtwoord FROM table_met_gebruikers WHERE naam = '" . $_POST['name'] . "'AND wachtwoord = '" . $_POST['pass'] . "'";         

$result = mysql_query($sql, $connection);
if(mysql_num_rows($result) > 0){
  // Doe wat er moet gebeuren als iemand inlogt
  $_SESSION['ingelogd'] = true;
} else {
  // Doe wat er moet gebeuren bij foute inloggegevens
  header('Location: ' . $_SERVER['HTTP_REFERER']);
  exit;
}
}

Ik hoop dat je hier wat aan hebt, als het niet begrijpt zal ik (of een van de medeforummers het je wel uitleggen. Het is nog niet echt veilig, je zult waarschijnlijk mysql_real_escape_string() nog willen gebruiken, maar zo heb je een idee.
 
Laatst bewerkt:
Ik weet het het is veel gevraagd, maar zou jij de login verwerking niet kunnen aanpassen aan de rest van het script dat je hieronder vind?
Ik geraak er namelijk niet aan uit.
Alvast bedankt moest je het willen doen!
De tabel is membersysteem.


config.php
PHP:
<?php

$siteadmin = "";
$adminpas = "";

$mysqlhost = "localhost";
$mysqluser = "";
$mysqlpas = "";
$db = "membersysteem";

?>

login.php
PHP:
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form name="" method="post" action=""> 
Naam: <br><input name="Naam" type="text" value""> 
<br> 
Wachtwoord: <br><input name="Wachtwoord" type="text" value=""> 
<br> 
<input type="submit" name="Submit" value="Login"> 
</form>
 </body>
</html>

registreer.php
PHP:
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form name="registreren" method="post" action="regverwerk.php"> 
Naam: <br><input name="naam" type="text" value""> 
<br> 
Wachtwoord: <br><input name="wachtwoord" type="password" value=""> 
<br> 
E-mail: <br><input name="email" type="text" value=""> 
<br> 
<input type="submit" name="submit" value="Verzenden"> 
</form>
</body>
</html>
regverwerk.php
PHP:
<?php	   
include('config.php');

$naam = $_POST['naam'];
$wachtwoord = $_POST['wachtwoord'];
$email = $_POST['email'];

if ( $naam == "" ) {

echo "U hebt geen naam ingevuld !";

} elseif ($wachtwoord == "" ) {

echo "U hebt geen wachtwoord ingevuld !";

} elseif ($email == "" ) {

echo "U hebt geen e-mail ingevuld !" ; 

} else {


$sql="INSERT INTO leden (gebruikersnaam, wachtwoord, email)
VALUES
('$_POST['naam']','$_POST['wachtwoord']','$_POST['email']')";

mysql_connect($mysqlhost, $mysqluser, $mysqlpas);  
mysql_select_db($db);
mysql_query($sql);

}

?>
 
First of all, de database is 'membersysteem', er is wel een verschil tussen een database en een tabel, maar dat was neem ik aan een slordigheidsfoutje. De tabel is in dit geval 'leden'.

HTML:
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form name="" method="post" action="login_verwerking.php"> 
Naam: <br><input name="Naam" type="text" value""> 
<br> 
Wachtwoord: <br><input name="Wachtwoord" type="text" value=""> 
<br> 
<input type="submit" name="Submit" value="Login"> 
</form>
 </body>
</html>

PHP:
include('config.php');
if($connection = mysql_connect($mysqlhost, $mysqluser, $mysqlpas)){
 // do nothing
} else {
 echo "Er was een probleem met het verbinden met de MySQL-server";
}

if($select = mysql_select_db($db, $connection)){
 // do nothing
} else {
 echo "Er was een probleem bij het selecteren van de database";
}

$sql = "SELECT gebruikersnaam, wachtwoord FROM leden WHERE gebruikersnaam = '" . mysql_real_escape_string($_POST['Naam']) . "' AND wachtwoord = '" . mysql_real_escape_string($_POST['Wachtwoord']) . "'";

$result = mysql_query($sql, $connection);
$count = mysql_num_rows($result);
if($count > 0){
 session_start();
 $_SESSION['registered'] = true;
 $_SESSION['username'] = $_POST['Naam'];
} else {
 echo "Je hebt geen juiste gegevens ingevuld.";
 echo "<br /><a href=\"login.php\"><button>Probeer het nog een maal</button></a>";
}
 
Als ik mijn gebruikersnaam en paswoord juist ingeef dan geeft hij aan dat het fout is.
 
Oké, ik zal 't nog even nalopen.

Geeft ie aan dat je de verkeerde gegevens hebt ingevuld, of dat de connectie mislukt is?
 
PHP:
include('config.php');
if($connection = mysql_connect($mysqlhost, $mysqluser, $mysqlpas)){
 // do nothing
} else {
 echo "Er was een probleem met het verbinden met de MySQL-server";
}

if($select = mysql_select_db($db, $connection)){
 // do nothing
} else {
 echo "Er was een probleem bij het selecteren van de database";
}

$sql = "SELECT gebruikersnaam, wachtwoord FROM leden WHERE gebruikersnaam = '" . mysql_real_escape_string($_POST['Naam']) . "' AND wachtwoord = '" . mysql_real_escape_string($_POST['Wachtwoord']) . "'";

$result = mysql_query($sql, $connection);
$count = mysql_num_rows($result);
/*if($count > 0){
 session_start();
 $_SESSION['registered'] = true;
 $_SESSION['username'] = $_POST['Naam'];
} else {
 echo "Je hebt geen juiste gegevens ingevuld.";
 echo "<br /><a href=\"login.php\"><button>Probeer het nog een maal</button></a>";*/

print_r($_POST);
echo "<BR />"
echo $sql;
echo "<BR />"
echo $count;

}

Wil je deze code even gebruiken en dan de volledige inhoud van je scherm in een reactie kopiëren? (Wel even met foute gegevens inloggen, zodat je hier niet je inloggegevens post.
 
Wil je nou een script voor een inlogformulier?

Je maakt een simpel formulier (inloggen.html):

HTML:
<form name="login" action="login.php" method="post">
<table>
  <tr>
    <td>Naam:</td>
    <td><input type="text" name="name" /></td>
  </tr>
  <tr>
    <td>Wachtwoord:</td>
    <td><input type="password" name="pass" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" name="submit" value="Login" />
  </tr>
</table>
</form>

Vervolgens maak je PHP-pagina login.php:

PHP:
if($_SERVER['REQUEST_METHOD'] == 'POST'){
session_start();
$sql = "SELECT naam, wachtwoord FROM table_met_gebruikers WHERE naam = '" . $_POST['name'] . "'AND wachtwoord = '" . $_POST['pass'] . "'";         

$result = mysql_query($sql, $connection);
if(mysql_num_rows($result) > 0){
  // Doe wat er moet gebeuren als iemand inlogt
  $_SESSION['ingelogd'] = true;
} else {
  // Doe wat er moet gebeuren bij foute inloggegevens
  header('Location: ' . $_SERVER['HTTP_REFERER']);
  exit;
}
}

Ik hoop dat je hier wat aan hebt, als het niet begrijpt zal ik (of een van de medeforummers het je wel uitleggen. Het is nog niet echt veilig, je zult waarschijnlijk mysql_real_escape_string() nog willen gebruiken, maar zo heb je een idee.
Hoe kan je die sessions weer ophalen/opvragen?
 
gewoon met $_SESSION['session_inhoud'];

Als je hem wilt echoën, doe je dat net als met een andere variabele.
 
gewoon met $_SESSION['session_inhoud'];

Als je hem wilt echoën, doe je dat net als met een andere variabele.
ok
dus je behandelt een variable net ongevveer zo het zelfde als een session, maar een session is op meerdere plaatsen van een website 'hetzelfde'...?
 
@ErikBooy007:
Bij het 2e bericht van dit topic heb je een code gegeven alleen werkt die code niet hoofdletter gevoelig helaas, weet iemand hoe dit wel kan?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan