Echo username probleem
Ik heb een tutorial gevolgd over het bouwen van een inlogsysteem van Nettuts.
http://net.tutsplus.com/articles/news/how-to-build-a-login-system-for-a-simple-website/
Deze zit momenteel geimplementeerd in mijn project. Nu ondervind ik een probleem.
Ik probeer de username te echo'en, maar die krijg ik op geen enkele manier werkend.
mijn code:
membership.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
require 'Mysql.php';
class Membership {
function validate_user($username, $password) {
$mysql = New Mysql();
$ensure_credentials = $mysql->verify_Username_and_Pass($username, $password);
if($ensure_credentials) {
$_SESSION['status'] = 'authorized';
header("location: index.php");
}
else return "Please enter a correct username and password";
if($mysql) {
$_SESSION['status'] = 'authorized';
header("location: index.php");
}
else return "Please enter a correct username and password";
}
function log_User_Out() {
if(isset($_SESSION['status'])) {
unset($_SESSION['status']);
if(isset($_COOKIE[session_name()]))
setcookie(session_name(), '', time() - 1000);
session_destroy();
}
}
function confirm_Member() {
session_start();
if($_SESSION['status'] !='authorized') header("location: login.php");
}
}?>
require 'Mysql.php';
class Membership {
function validate_user($username, $password) {
$mysql = New Mysql();
$ensure_credentials = $mysql->verify_Username_and_Pass($username, $password);
if($ensure_credentials) {
$_SESSION['status'] = 'authorized';
header("location: index.php");
}
else return "Please enter a correct username and password";
if($mysql) {
$_SESSION['status'] = 'authorized';
header("location: index.php");
}
else return "Please enter a correct username and password";
}
function log_User_Out() {
if(isset($_SESSION['status'])) {
unset($_SESSION['status']);
if(isset($_COOKIE[session_name()]))
setcookie(session_name(), '', time() - 1000);
session_destroy();
}
}
function confirm_Member() {
session_start();
if($_SESSION['status'] !='authorized') header("location: login.php");
}
}?>
Mysql.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
require_once 'includes/constants.php';
class Mysql {
private $conn;
function __construct() {
$this->conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or
die('There was a problem connecting to the database.');
}
function verify_Username_and_Pass($username, $password) {
$query = "SELECT *
FROM users
WHERE username = ? AND password = ?
LIMIT 1";
if($stmt = $this->conn->prepare($query)) {
$stmt->bind_param('ss', $username, $password);
$stmt->execute();
if($stmt->fetch()) {
$stmt->close();
return true;
}
}
}
}
?>
require_once 'includes/constants.php';
class Mysql {
private $conn;
function __construct() {
$this->conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or
die('There was a problem connecting to the database.');
}
function verify_Username_and_Pass($username, $password) {
$query = "SELECT *
FROM users
WHERE username = ? AND password = ?
LIMIT 1";
if($stmt = $this->conn->prepare($query)) {
$stmt->bind_param('ss', $username, $password);
$stmt->execute();
if($stmt->fetch()) {
$stmt->close();
return true;
}
}
}
}
?>
Verder worden er in de constants.php alleen de database gegevens gedefinieerd.
Momenteel probeer ik op deze manier mijn username te laten zien:
echo $_SESSION['username'];
Helaas werkt het niet ^^
Iemand een idee hoe ik deze werkend kan krijgen?
Gewijzigd op 23/11/2012 12:22:52 door Max -
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$sql = "SELECT * FROM users WHERE email LIKE '$test'";
$result = mysql_query($sql, $connection)
or die ("niet gelukt om de query:
$sql uit te voeren op $connection");
while($row = mysql_fetch_array($result))
{
echo '<b>Name: </b>'.$row['voornaam'].'
}
?>
$sql = "SELECT * FROM users WHERE email LIKE '$test'";
$result = mysql_query($sql, $connection)
or die ("niet gelukt om de query:
$sql uit te voeren op $connection");
while($row = mysql_fetch_array($result))
{
echo '<b>Name: </b>'.$row['voornaam'].'
}
?>
- Marco - op 23/11/2012 12:21:10:
ff heel letterlijk hoe ik het op mijn site echo :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$sql = "SELECT * FROM users WHERE email LIKE '$test'";
$result = mysql_query($sql, $connection)
or die ("niet gelukt om de query:
$sql uit te voeren op $connection");
while($row = mysql_fetch_array($result))
{
echo '<b>Name: </b>'.$row['voornaam'].'
}
?>
$sql = "SELECT * FROM users WHERE email LIKE '$test'";
$result = mysql_query($sql, $connection)
or die ("niet gelukt om de query:
$sql uit te voeren op $connection");
while($row = mysql_fetch_array($result))
{
echo '<b>Name: </b>'.$row['voornaam'].'
}
?>
Bedankt voor je snelle reactie :)
Ik ben nog een beetje nieuw met PHP, wat zou de code voor mij moeten zijn?
zoiets?
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php $sql = "SELECT * FROM users";
$result = mysql_query($sql, $conn)
or die ("niet gelukt om de query:
$sql uit te voeren op $conn");
while($row = mysql_fetch_array($result))
{
echo $row['username'];
}
?>
$result = mysql_query($sql, $conn)
or die ("niet gelukt om de query:
$sql uit te voeren op $conn");
while($row = mysql_fetch_array($result))
{
echo $row['username'];
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
//Zorg er wel voor dat de SQL verbinding actief is.
$sql = "SELECT * FROM users";
$result = mysql_query($sql)
or die ('niet gelukt om de query: '. $sql .' uit te voeren');
while($row = mysql_fetch_assoc($result))
{
echo $row['username'];
}
?>
//Zorg er wel voor dat de SQL verbinding actief is.
$sql = "SELECT * FROM users";
$result = mysql_query($sql)
or die ('niet gelukt om de query: '. $sql .' uit te voeren');
while($row = mysql_fetch_assoc($result))
{
echo $row['username'];
}
?>
In regel 6 moet je vooral opletten dat je de variabel buiten je quotes doet!
query's kunnen gelogd worden door derden heb ik gehoord,
dus je moet je foutmelding alleen op je testserver
afwerken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$sql = "SELECT
username
From
users
Where
login = '" . mysql_real_escape_string($_SESSION['login'] . "'";
$rResult = mysql_query($sql);
if (false === $rResult) {
define('ENABLE_DEBUG', true); // zet op false wanneer online
if (defined('ENABLE_DEBUG') and ENABLE_DEBUG) {
echo 'Er ging iets fout met de query (1) op de pagina inloggen.php:' . mysql_error($connection) . '(' . $sSQL . ')';
} else {
echo 'Er is een fout opgetreden probeer het later opnieuw';
}
} else {
// Controleren hoeveel resultaten er zijn
if (1 == mysql_num_rows($rResult)) {
// Er is één resultaat gevonden, dus gegevens fetchen
$row = mysql_fetch_array($rResult);
echo $row['username'];
?>
$sql = "SELECT
username
From
users
Where
login = '" . mysql_real_escape_string($_SESSION['login'] . "'";
$rResult = mysql_query($sql);
if (false === $rResult) {
define('ENABLE_DEBUG', true); // zet op false wanneer online
if (defined('ENABLE_DEBUG') and ENABLE_DEBUG) {
echo 'Er ging iets fout met de query (1) op de pagina inloggen.php:' . mysql_error($connection) . '(' . $sSQL . ')';
} else {
echo 'Er is een fout opgetreden probeer het later opnieuw';
}
} else {
// Controleren hoeveel resultaten er zijn
if (1 == mysql_num_rows($rResult)) {
// Er is één resultaat gevonden, dus gegevens fetchen
$row = mysql_fetch_array($rResult);
echo $row['username'];
?>
Gewijzigd op 23/11/2012 20:02:35 door jacco Laan
eerst een paar dingen op een rijtje zetten. je weet dat je nu met classes aan het werk bent? wat je dus meestal doet met OOP ( Object Orienterend Programmeren )
een van de dingen die er met OOP gelden is dat een classe niets mag echoen dus het is niet meer dan logisch dat je dat niet in bovenstaande bestanden die je hebt ingevoegd terugziet. ik zou beginnen met een login systeem met gewone PHP. dus niet OO.. pas als je dat onder de knie hebt zou ik OO gaan doen.
Koen Hollander op 23/11/2012 17:53:57:
Nee, deze code zal wel een paar foutmeldingen opleveren. Ik zal hem voor je verbeteren
In regel 6 moet je vooral opletten dat je de variabel buiten je quotes doet!
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
//Zorg er wel voor dat de SQL verbinding actief is.
$sql = "SELECT * FROM users";
$result = mysql_query($sql)
or die ('niet gelukt om de query: '. $sql .' uit te voeren');
while($row = mysql_fetch_assoc($result))
{
echo $row['username'];
}
?>
//Zorg er wel voor dat de SQL verbinding actief is.
$sql = "SELECT * FROM users";
$result = mysql_query($sql)
or die ('niet gelukt om de query: '. $sql .' uit te voeren');
while($row = mysql_fetch_assoc($result))
{
echo $row['username'];
}
?>
In regel 6 moet je vooral opletten dat je de variabel buiten je quotes doet!
Helaas geeft deze code ook een foutmelding bij mij
Anon Anoniem op 26/11/2012 09:18:28:
Helaas geeft deze code ook een foutmelding bij mij
Welke?
- SanThe - op 26/11/2012 10:34:01:
Welke?
Anon Anoniem op 26/11/2012 09:18:28:
Helaas geeft deze code ook een foutmelding bij mij
Welke?
De code van Koen Hollander, niet gelukt om de query: SELECT * FROM users uit te voeren
En wat is nou de 'echte' mysql_error(), want dit zegt niets.
- SanThe - op 26/11/2012 11:55:02:
En wat is nou de 'echte' mysql_error(), want dit zegt niets.
Krijg geen 'echte' error, ook niet met
aan.
Anon Anoniem op 26/11/2012 13:29:35:
Krijg geen 'echte' error, ook niet met
aan.
aan.
Dat is voor PHP.
De mysql error krijg je door:
echo mysql_error();
Ik kreeg in eerste instantie een connectie error, dit veranderde toen ik dit als code had:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php echo
require 'classes/Mysql.php';
mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME);
$sql = "SELECT * FROM users";
$result = mysql_query($sql)
or die (mysql_error());
while($row = mysql_fetch_assoc($result))
{
echo $row['username'];
}
?>
require 'classes/Mysql.php';
mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME);
$sql = "SELECT * FROM users";
$result = mysql_query($sql)
or die (mysql_error());
while($row = mysql_fetch_assoc($result))
{
echo $row['username'];
}
?>
Ik krijg nu:
Fatal error: Cannot redeclare class Mysql in --/--/classes/Mysql.php on line 5
Toevoeging op 26/11/2012 16:15:02:
En met
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php mysql_connect('localhost', 'root','test','membership');
$sql = "SELECT * FROM users";
$result = mysql_query($sql)
or die (mysql_error());
while($row = mysql_fetch_assoc($result))
{
echo $row['username'];
}
?>
$sql = "SELECT * FROM users";
$result = mysql_query($sql)
or die (mysql_error());
while($row = mysql_fetch_assoc($result))
{
echo $row['username'];
}
?>
Krijg ik "No database selected"
Toevoeging op 27/11/2012 10:04:41:
Bump