mysql-fout???

Status
Niet open voor verdere reacties.

Tacconie

Gebruiker
Lid geworden
6 jan 2008
Berichten
48
Heey,

Ik ben sinds kort wat aan het oefenen met mysql, en heb een inlogscript gemaakt:

config.php
PHP:
<?php
$dbhost = 'localhost';
$dbuser = '***';
$dbpass = '***';
$dbname = '2f';
?>

index.php
PHP:
<?php
//session starten!!
session_start(); 

//databaseverinding maken
include('config.php');
$conn = mysql_connect($dbhost, $dbuser, $dbpass) 
	or die('Error connecting to mysql');
mysql_select_db($dbname);




//controleren of er al is ingelogd
if(isset($_SESSION['loggedin']) 
	&& isset($_SESSION['user'])
	&& isset($_SESSION['pass'])
	&& $_SESSION['loggedin'] == true){
	//er is al ingelogd, check de prioriteit.
	$user = $_SESSION['user'];
	$pass = $_SESSIOM['pass'];
	$prio =	"SELECT type FROM users WHERE pass = $pass AND user = '$user'";
	$type = mysql_query($prio) 
		or die('Query failed. ' . mysql_error());
	if ($type == 0){
		//Leerling
		header('Location: ./0/');
	}elseif ($type == 1){
		//Ouder
		header('Location: ./1/');
	}elseif ($type == 2){
		//Leeraar
		header('Location: ./2/');
	}elseif ($type == 3){
		//Admin
		header('Location: ./3/');
	}else{
		//Bestaad niet, echo een error
		echo 'De prioriteit is niet toepasbaar op deze website<BR>';
		echo $type;
	}
	exit;
}else{
	//er is nog niet ingelogd, controleer of er een POST is
	if(isset($_POST['user'])
		&& isset($_POST['pass'])){
		//alles ingevoerd, log in
		$user = $_POST['user'];
		$pass = $_POST['pass'];
		$sql = "SELECT type FROM users WHERE pass = $pass AND user = '$user'";
		$result = mysql_query($sql) 
			or die('Query failed. ' . mysql_error()); 
		if (mysql_num_rows($result) == 1) {
			//Combinatie klopt set de session's goed
			$_SESSION['loggedin'] = true;
			$_SESSION['user'] = $user;
			$_SESSION['pass'] = $pass;
			//session's goed geset, controleer de prioriteit
			
			$prio =	"SELECT type FROM users WHERE pass = $pass AND user = '$user'";
			$type = mysql_query($prio) 
				or die('Query failed. ' . mysql_error());
			if ($type == 0){
				//Leerling
				header('Location: ./0/');
			}elseif ($type == 1){
				//Ouder
				header('Location: ./1/');
			}elseif ($type == 2){
				//Leeraar
				header('Location: ./2/');
			}elseif ($type == 3){
				//Admin
				header('Location: ./3/');
			}else{
				//Bestaad niet, echo een error
			echo 'De prioriteit is niet toepasbaar op deze website<BR>';
			echo $type;
			}
		exit;
		}
	


}
// Geen post, laad de invoervelden
}

?>


 
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Login</title>
</head>

<body>
<div align="center">
  <table border="1" width="30%" bordercolor="#FF9933" bgcolor="#FF9933">
    <tr>
      <td>
      <p align="center"><b>Welkom op 2Fjoure.tk<br />
Nog geen account?<BR>
Mail naar: account@2fhavo.tk.<BR>
	  &nbsp;</b></td>
    </tr>
    <tr>
      <td>
<form action="" method="post">
<p align="center"><b>Username: <br />
</b> <input type="text" name="user"><br><br />
<b>Wachtwoord: <br></b> <input type="password" name="pass"><br /><br />
<input type="submit" value="Login"><br />
</form>
      </td>
    </tr>
  </table>
</div>
</body>

</html>
en natuurlijk een mysql database:
PHP:
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| user  | varchar(30) | NO   |     |         |                |
| pass  | varchar(30) | NO   |     |         |                |
| type  | varchar(30) | NO   |     |         |                |
+-------+-------------+------+-----+---------+----------------+
hij geeft een mysql error als ik de pagina open, maar ik kan hem niet vinden...

kan iemand helpen???
alvast bedankt
 
misschien wel handig als je de foutmelding zelf plaatst.
En ik zie al dat je iets met $pass en $user doet, waarom doe je dit in de query $pass zonder quotes en $user met quotes?

SELECT type FROM users WHERE pass = $pass AND user = '$user'";
 
foutmelding

HTML:
Query failed. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND user = 'dick'' at line 1

de foutmelding, ff vergeten:rolleyes:

en die quotes, dat was een test om te kijken of het daar iets mee te maken zou kunnen hebben.
moet het met of zonder...
 
Dit is de juiste syntax:

PHP:
$sQuery = "SELECT x FROM y WHERE password = '".mysql_real_escape_string($pass)."' AND user = '".mysql_real_escape_string($user)."'";

Wel even de juiste namen enzo neerzetten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan