Hallo,
ik ben echt al een aantal dagen bezig met een login systeem en wat ik ook doe telkens krijg ik weer een andere error! Nu ben ik zover dat ik geen errors meer krijg maar ik kan ook niet inloggen. Het maakt niet uit of ik het juiste wacht woord invul hij knalt hem telkens naar wrong pass or user.
Ik wordt er debiel van
<?php
include_once("connect.php") ;
// username and password sent from form
$username=$_POST['username'];
$password=$_POST['password'];
// To protect MySQL injection (more detail about MySQL injection)
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$sql="SELECT * FROM admis WHERE username='$username' and password='$password'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("username");
session_register("password");
header("location:admin.php");
}
else {
echo "Wrong Username or Password";
}
?>
Ja ik zal voortaan een betere titel verzinnen mijn excuses waren de frustraties=S
En weet iemand misschien of ik nogwat aan mijn script moet veranderen als ik mijn password md5 incrypted wegschrijf?
script:
<?php
include_once("connect.php") ;
$sql="SELECT * FROM admis WHERE username='" . $_POST['username'] . "' and password='" . $_POST['password'] . "'";
$result=mysql_query($sql) or die ("De query is mislukt $query. ".mysql_error());
/* Query uitvoeren. */
$sql =
"
SELECT
ID
FROM
admis
WHERE
username = '".$Username."'
AND
password = '".$Password."'
";
/* Resultaat van de query. */
$result = mysql_query($sql);
/* Kijken of de query is gelukt. */
if(!$result)
{
echo 'Foutje met de query, Query: '.$sql.'';
}
else
{
/* Kijken of er een resultaat is. */
if(mysql_num_rows($result) == 0)
{
/* Geen resultaat in de database. */
echo 'Geen gebruiker gevonden met deze combinatie.';
}
else
{
/* Sessie aanmaken en doorsturen. */
$Rij = mysql_fetch_assoc($result);
En als ik dit gebruik moet ik natuurlijk ook iets anders zetten boven mijn paginas die beveiligd zijn en niet
<?
session_start();
if(!session_is_registered(username)){
header("location:index.php");
}else{
?>
Ligt het nou aan mij, of is de toepassing van stripslashes in combinatie met mysql_real_escape_string in de posts hierboven een beetje vreemd. Bij het registratie formulier zorg je altijd eerst dat eventuele slashes toegevoegd door magic quotes worden weggehaald, dmv stripslashes, daarna pas je mysql_real_escape_string toe, en díe waarde wordt toegevoegd in de database. Bij het controleren zou je dus eerst moeten controleren of magic quotes aanstaan, evt. stripslashes toepassen, en dán mysql_real_escape string.
Inderdaad is session register middeleeuws, dus maak gewoon gebruik van de $_SESSION global.
En lees nog even wat tutorials door over foutafhandeling.
edit: Om mijn verhaal te verduidelijken en bevestigen, zie "example 3" van [php]mysql_real_escape_string[/php] en zie bij de notes:
Note: If magic_quotes_gpc is enabled, first apply stripslashes() to the data. Using this function on data which has already been escaped will escape the data twice.
Ik hou van de middeleeuwen, toen hadden ze tenminste nog lijfstraffen en dergelijke. Niet dat ik graag toen leefde maar Mijn vraag is of het BETER functioneerd. Waarom iets werkends vervangen met iets waarvan je het voordeel niet in ziet.
Ik hou van de middeleeuwen, toen hadden ze tenminste nog lijfstraffen en dergelijke. Niet dat ik graag toen leefde maar Mijn vraag is of het BETER functioneerd. Waarom iets werkends vervangen met iets waarvan je het voordeel niet in ziet.
Omdat het enorme veiligheidslekken met zich meebrengt: