Trying to Fix my old php/mysql login system [duplicate]












0
















This question already has an answer here:




  • How to change mysql to mysqli?

    9 answers



  • Can I mix MySQL APIs in PHP?

    4 answers



  • Why should I not use md5() for passwords? [duplicate]

    1 answer




I was trying to fix my old website again after a couple years.
But now i saw that my login system does'nt work anymore in this php version.



Because it runs on mysql. But i've searced on google en tried to repair it but without of luck. The can't connect to database error i've got fixed wit a new mysqli connection. but after that there keep getting error's.



So now im with my hands in my hair because my website runs on that system.



And please dont do hate comments with its crap and oldated. This was the first code i've used and learend from.



And sorry if ther was already a question about this but i am stuck and dont know how to fix it.



Ps. sorry for bad grammar.






<?php
// Een beveiliging om te voorkomen dat men in je header.php probeert te openen.
if(basename($_SERVER['PHP_SELF']) == "header.php") {
header("Location: index.php");
}

// Configuratie laden
include_once('config.php');

// We maken eerst een classe aan
class login {
// Variabelen
private $loginsessie = false;
public $fouten = "";
private $gebruikers_info = array();
public $database_velden = array();
private $recheck = 0;

// Deze functie wordt aangeroepen bij het laden van de classe
public function __construct() {
// maak verbinding met de database, als het niet lukt breek het af
$verbinding = mysqli_connect(mysql_host, mysql_user, mysql_password, mysql_database) or die(mysql_error());
// mysql_select_db(mysql_database, $verbinding) or die (mysql_error());

// Controlleren op een login sessie
$this->check_session();

// De loguit actie koppelen aan de end_session functie
if(isset($_GET['actie']) && $_GET['actie'] == 'uitloggen' && $this->loginsessie === true) {
$this->end_session();
}
}

// Init functie
public function init() {
// Controlleren op een POST request, wanneer er nog geen loginsessie is
if($_SERVER['REQUEST_METHOD'] == 'POST') { /* was eerst if($_SERVER['REQUEST_METHOD'] == 'POST' && $this->loginsessie===false) {*/
if(isset($_POST['actie'])) {
switch($_POST['actie']) {
case 'login': $this->controleer_gegevens(); break;
case 'registreer_gebruiker': $this->registreer_gebruiker(); break;
}
}
}
}

// Functie om het ip adres op te vragen
public function get_ip() {
if (isSet($_SERVER)) {
if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"])) {
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif (isSet($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
$realip = getenv( 'HTTP_X_FORWARDED_FOR' );
} elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
$realip = getenv( 'HTTP_CLIENT_IP' );
} else {
$realip = getenv( 'REMOTE_ADDR' );
}
}
return $realip;
}

private function registreer_gebruiker() {
if(isset($_POST['actie']) && $_POST['actie'] == 'registreer_gebruiker') {
$velden = array();

if(!is_array($this->database_velden) || !count($this->database_velden)) {
die("FOUT: Geen velden opgegeven.");
}

// Alle velden uit de array doorlopen
foreach($this->database_velden as $veld) {
$veld = split(':', $veld);
// Veldnaam
$veld_naam = $veld[0];
$velden[$veld_naam] = $_POST[$veld_naam];
// Veld instellingen
$veld_instellingen = split('|', $veld[1]);

foreach($veld_instellingen as $instelling) {
if($instelling == 'verplicht' && empty($velden[$veld_naam])) {
// Controlleer of het veld is ingevuld
$this->fouten .= "- Het veld '". $veld_naam ."' is verplicht<br />";
} elseif($instelling == 'md5') {
// Codeer naar md5
$velden[$veld_naam] = md5($velden[$veld_naam]);
} elseif(substr($instelling, 0, 3) == 'min') {
// Controlleer minimum stringlengte
if(strlen($velden[$veld_naam]) < (int) substr($instelling, 4)) {
$this->fouten .= "- Het veld '". $veld_naam ."' is te kort.<br />";
}
} elseif(substr($instelling, 0, 3) == 'max') {
// Controleer maximum stringlengte
if(strlen($velden[$veld_naam]) > (int) substr($instelling, 4)) {
$this->fouten .= "- Het veld '". $veld_naam ."' is te lang.<br />";
}
} elseif(substr($instelling, 0, 2) == "==") {
if($velden[$veld_naam] != $_POST[substr($instelling, 2)]) {
$this->fouten .= '- De velden '. $veld_naam .' en '. substr($instelling, 2) .' komen niet overeen.<br />';
}
} elseif($instelling == "avatar") {
$velden[$veld_naam] = ('http://habmoon.org/status/habbie?habbie='.$_POST["gebruikersnaam"].'&direction=4&head_direction=3&action=wlk&gesture=sml&size=b');
} elseif($instelling == 'uniek') {
$q = mysql_query("SELECT ". $veld_naam ." FROM gebruikers WHERE ". $veld_naam ." = '". mysql_real_escape_string($velden[$veld_naam]) ."' ");
if(!$q) {
$this->fouten .= '- Er is een MySQL fout opgetreden <br />';
} else {
if(mysql_num_rows($q)) {
$this->fouten .= 'De inhoud van veld '. $veld_naam .' bestaat al<br />';
}
}
} elseif($instelling == 'email') {
// Controleer email
if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $velden[$veld_naam])) {
$this->fouten .= "- Het email is incorrect.<br />";
}
}
}
}

if(!$this->fouten) {
// SQL genereren
$SQL = "INSERT INTO gebruikers ";
$SQL_TMP = "";

foreach($velden as $key=>$value) {
$SQL_TMP .= ", ". $key ." = '". mysql_real_escape_string($value) ."' ";
}

// Eerste komma weghalen
$SQL .= "SET ".preg_replace("#^,{0,1}#", '', $SQL_TMP);

if($SQL_TMP && mysql_query($SQL)) {
header("Location: ../index.php");
} else {
$this->fouten = "Er is een MySQL fout opgetreden.";
/*
om te debuggen gebruik:
die(mysql_error());
*/
}
}
}
}

// Functie om gegevens te controleren
private function controleer_gegevens() {
// Kijken of we het juiste formulier gebruiken
if(isset($_POST['actie']) && $_POST['actie'] == 'login') {
// Gegevens van formulier opvragen en escapen tegen mysql injectie
$gebruiker = mysql_real_escape_string($_POST['gebruikersnaam']);
$wachtwoord = mysql_real_escape_string($_POST['wachtwoord']);

// Kijken of we MD5 moeten gebruiken (zie configuratie bestand)
if(login_password_md5===true) {
$wachtwoord = md5($wachtwoord);
}

// Kijken of de gegevens correct zijn
$query = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '". $gebruiker ."' AND wachtwoord = '". $wachtwoord ."'");
if(mysql_num_rows($query)) {
// Array gebruikersinfo maken
$this->gebruikersinfo = array();
$this->gebruikersinfo['info'] = mysql_fetch_array($query);

// Start sessie
return $this->start_session();
} else {
// Kijken wat er mis ging:
if(mysql_error()) {
$this->fouten = "Er is een mysql fout opgetreden.";
} else {
$this->fouten = "Gebruiksnaam en/of wachtwoord is incorrect.";
}
}
}
}

// Functie om de sessie te controlleren
private function check_session() {
// Controleren op cookie
if($this->recheck>=3) {
$this->fouten = "Er is een ongeldige cookie sleutel gevonden die niet kon worden verwijderd.";
return false;
}
if(isset($_COOKIE['sid']) && !empty($_COOKIE['sid'])) {
// Er is een niet-lege cookie
$sid = mysql_real_escape_string($_COOKIE['sid']);

// Controleren of sleutel en ip aanwezig zijn in database
$query = mysql_query("SELECT * FROM logins WHERE sid = '". $sid ."' AND ip = '". $this->get_ip() ."'") or die("Er is een fout opgetreden.");
if(mysql_num_rows($query)) {
$f = mysql_fetch_array($query);

// Gegevens uit database ophalen
$query = mysql_query("SELECT * FROM gebruikers WHERE id = '". $f['uid'] ."' ");
if(mysql_num_rows($query)) {
$this->loginsessie = true;
$this->gebruikersinfo = array();
$this->gebruikersinfo['info'] = mysql_fetch_array($query);
}
}
} else {
// Er is een ongeldige sleutel gevonden, laten we die eens verwijderen
$secondes = login_session_time * 3600;
setcookie("sid", "", time()-$secondes, "/");
$this->recheck = $this->recheck + 1;
}
}

// De functie om de login sessie te starten
private function start_session() {
// Unieke sleutel maken
$this->gebruikersinfo['sleutel'] = md5(rand(0,99999999999).date("dmyhis"));

// Informatie invoegen in database
$info = $this->gebruikersinfo['info'];
$SQL = "INSERT INTO logins ";
$SQL .= "SET uid = '". mysql_real_escape_string($info['id']) ."' ";
$SQL .= ", sid = '". mysql_real_escape_string($this->gebruikersinfo['sleutel']) ."' ";
$SQL .= ", ip = '". mysql_real_escape_string($this->get_ip()) ."' ";
$SQL .= ", datum = NOW() ";
mysql_query($SQL) or die("Error: kon niet inloggen.");

// Secondes maken van uren, zie configuratie bestand
$secondes = login_session_time * 3600;
setcookie("sid", $this->gebruikersinfo['sleutel'], time()+$secondes, "/");

// Verversing
header("Location: ".$_SERVER['REQUEST_URI']);
}

private function end_session() {
// index.php?actie=uitloggen
// Verwijder sessie
mysql_query("DELETE FROM logins WHERE sid = '". $_COOKIE['sid'] ."' AND ip = '". $this->get_ip() ."'") or die("Er is een fout opgetreden.");

// verwijder cookie
$secondes = login_session_time * 3600;
setcookie("sid", "", time()-$secondes, "/");

// Redirect
$url = str_replace("actie=uitloggen", "", $_SERVER['REQUEST_URI']); // haal de actie weg
header("Location: ".$url);
}

// Functie om gegevens op te vragen
public function get_login_info($wat=false) {
// Is er iets aanwezig?
if(!$this->loginsessie || !count($this->gebruikersinfo)) {
return false;
} else {
if($wat==='alles') {
return $this->gebruikersinfo['info'];
} elseif(isset($this->gebruikersinfo['info'][$wat])) {
return $this->gebruikersinfo['info'][$wat];
} else {
return true;
}
}
}
}

// Class starten
$login = new login();
$login->database_velden = array(
/*
Velden waarvan de value in de database komt. Plaats die in de database en formulier.

Syntax: veldnaam:instellingen

Instellingen scheiden met '|'.

Instellingen:
'verplicht': [string] Verplicht veld.
'min=int': [int] Minimum aantal karakters dat is vereist.
'max=int': [int] Maximum aantal karakters dat is vereist.
'==veldnaam': [string] waarde van dit veld moet overeenkomen met 'veldnaam'.
'md5': [string] Codeer met md5. MOET als laatste.
*/
'gebruikersnaam:verplicht|uniek|min=3|max=15|',
'rank:max=15|',
'email:max=100|email|',
'avatar:max=100|avatar|',
'wachtwoord:verplicht|min=3|max=16|==wachtwoord2|md5|' /* was eerst 'wachtwoord:verplicht|min=3|max=16|==wachtwoord2'*/
);
$login->init();
?>





I've done what they said in the other post but still got these error's:



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 158



Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 158



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 159



Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 159



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 167



Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 167



Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:xampphtdocsAdminheader.php on line 168



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 177



Warning: mysqli_error() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 177










share|improve this question















marked as duplicate by mario php
Users with the  php badge can single-handedly close php questions as duplicates and reopen them as needed.

StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;

$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');

$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 14 '18 at 21:21


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.



















  • The code shown doesn't even include any calls to mysqli_real_escape_string() or mysqli_error()....we can't fix what we can't see. But the warnings are pretty obvious - you tried to pass a null variable into a function which doesn't expect it. So you need to check why that variable turned out to be null when it was supposed to be a mysqli connection object. Quite likely, I would guess, it's because your connection failed for some reason. Or you just gave the wrong variable name. hard to know, when we can't see the relevant code. But the duplicates explain most of what you need to know, anyhow

    – ADyson
    Nov 14 '18 at 23:16


















0
















This question already has an answer here:




  • How to change mysql to mysqli?

    9 answers



  • Can I mix MySQL APIs in PHP?

    4 answers



  • Why should I not use md5() for passwords? [duplicate]

    1 answer




I was trying to fix my old website again after a couple years.
But now i saw that my login system does'nt work anymore in this php version.



Because it runs on mysql. But i've searced on google en tried to repair it but without of luck. The can't connect to database error i've got fixed wit a new mysqli connection. but after that there keep getting error's.



So now im with my hands in my hair because my website runs on that system.



And please dont do hate comments with its crap and oldated. This was the first code i've used and learend from.



And sorry if ther was already a question about this but i am stuck and dont know how to fix it.



Ps. sorry for bad grammar.






<?php
// Een beveiliging om te voorkomen dat men in je header.php probeert te openen.
if(basename($_SERVER['PHP_SELF']) == "header.php") {
header("Location: index.php");
}

// Configuratie laden
include_once('config.php');

// We maken eerst een classe aan
class login {
// Variabelen
private $loginsessie = false;
public $fouten = "";
private $gebruikers_info = array();
public $database_velden = array();
private $recheck = 0;

// Deze functie wordt aangeroepen bij het laden van de classe
public function __construct() {
// maak verbinding met de database, als het niet lukt breek het af
$verbinding = mysqli_connect(mysql_host, mysql_user, mysql_password, mysql_database) or die(mysql_error());
// mysql_select_db(mysql_database, $verbinding) or die (mysql_error());

// Controlleren op een login sessie
$this->check_session();

// De loguit actie koppelen aan de end_session functie
if(isset($_GET['actie']) && $_GET['actie'] == 'uitloggen' && $this->loginsessie === true) {
$this->end_session();
}
}

// Init functie
public function init() {
// Controlleren op een POST request, wanneer er nog geen loginsessie is
if($_SERVER['REQUEST_METHOD'] == 'POST') { /* was eerst if($_SERVER['REQUEST_METHOD'] == 'POST' && $this->loginsessie===false) {*/
if(isset($_POST['actie'])) {
switch($_POST['actie']) {
case 'login': $this->controleer_gegevens(); break;
case 'registreer_gebruiker': $this->registreer_gebruiker(); break;
}
}
}
}

// Functie om het ip adres op te vragen
public function get_ip() {
if (isSet($_SERVER)) {
if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"])) {
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif (isSet($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
$realip = getenv( 'HTTP_X_FORWARDED_FOR' );
} elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
$realip = getenv( 'HTTP_CLIENT_IP' );
} else {
$realip = getenv( 'REMOTE_ADDR' );
}
}
return $realip;
}

private function registreer_gebruiker() {
if(isset($_POST['actie']) && $_POST['actie'] == 'registreer_gebruiker') {
$velden = array();

if(!is_array($this->database_velden) || !count($this->database_velden)) {
die("FOUT: Geen velden opgegeven.");
}

// Alle velden uit de array doorlopen
foreach($this->database_velden as $veld) {
$veld = split(':', $veld);
// Veldnaam
$veld_naam = $veld[0];
$velden[$veld_naam] = $_POST[$veld_naam];
// Veld instellingen
$veld_instellingen = split('|', $veld[1]);

foreach($veld_instellingen as $instelling) {
if($instelling == 'verplicht' && empty($velden[$veld_naam])) {
// Controlleer of het veld is ingevuld
$this->fouten .= "- Het veld '". $veld_naam ."' is verplicht<br />";
} elseif($instelling == 'md5') {
// Codeer naar md5
$velden[$veld_naam] = md5($velden[$veld_naam]);
} elseif(substr($instelling, 0, 3) == 'min') {
// Controlleer minimum stringlengte
if(strlen($velden[$veld_naam]) < (int) substr($instelling, 4)) {
$this->fouten .= "- Het veld '". $veld_naam ."' is te kort.<br />";
}
} elseif(substr($instelling, 0, 3) == 'max') {
// Controleer maximum stringlengte
if(strlen($velden[$veld_naam]) > (int) substr($instelling, 4)) {
$this->fouten .= "- Het veld '". $veld_naam ."' is te lang.<br />";
}
} elseif(substr($instelling, 0, 2) == "==") {
if($velden[$veld_naam] != $_POST[substr($instelling, 2)]) {
$this->fouten .= '- De velden '. $veld_naam .' en '. substr($instelling, 2) .' komen niet overeen.<br />';
}
} elseif($instelling == "avatar") {
$velden[$veld_naam] = ('http://habmoon.org/status/habbie?habbie='.$_POST["gebruikersnaam"].'&direction=4&head_direction=3&action=wlk&gesture=sml&size=b');
} elseif($instelling == 'uniek') {
$q = mysql_query("SELECT ". $veld_naam ." FROM gebruikers WHERE ". $veld_naam ." = '". mysql_real_escape_string($velden[$veld_naam]) ."' ");
if(!$q) {
$this->fouten .= '- Er is een MySQL fout opgetreden <br />';
} else {
if(mysql_num_rows($q)) {
$this->fouten .= 'De inhoud van veld '. $veld_naam .' bestaat al<br />';
}
}
} elseif($instelling == 'email') {
// Controleer email
if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $velden[$veld_naam])) {
$this->fouten .= "- Het email is incorrect.<br />";
}
}
}
}

if(!$this->fouten) {
// SQL genereren
$SQL = "INSERT INTO gebruikers ";
$SQL_TMP = "";

foreach($velden as $key=>$value) {
$SQL_TMP .= ", ". $key ." = '". mysql_real_escape_string($value) ."' ";
}

// Eerste komma weghalen
$SQL .= "SET ".preg_replace("#^,{0,1}#", '', $SQL_TMP);

if($SQL_TMP && mysql_query($SQL)) {
header("Location: ../index.php");
} else {
$this->fouten = "Er is een MySQL fout opgetreden.";
/*
om te debuggen gebruik:
die(mysql_error());
*/
}
}
}
}

// Functie om gegevens te controleren
private function controleer_gegevens() {
// Kijken of we het juiste formulier gebruiken
if(isset($_POST['actie']) && $_POST['actie'] == 'login') {
// Gegevens van formulier opvragen en escapen tegen mysql injectie
$gebruiker = mysql_real_escape_string($_POST['gebruikersnaam']);
$wachtwoord = mysql_real_escape_string($_POST['wachtwoord']);

// Kijken of we MD5 moeten gebruiken (zie configuratie bestand)
if(login_password_md5===true) {
$wachtwoord = md5($wachtwoord);
}

// Kijken of de gegevens correct zijn
$query = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '". $gebruiker ."' AND wachtwoord = '". $wachtwoord ."'");
if(mysql_num_rows($query)) {
// Array gebruikersinfo maken
$this->gebruikersinfo = array();
$this->gebruikersinfo['info'] = mysql_fetch_array($query);

// Start sessie
return $this->start_session();
} else {
// Kijken wat er mis ging:
if(mysql_error()) {
$this->fouten = "Er is een mysql fout opgetreden.";
} else {
$this->fouten = "Gebruiksnaam en/of wachtwoord is incorrect.";
}
}
}
}

// Functie om de sessie te controlleren
private function check_session() {
// Controleren op cookie
if($this->recheck>=3) {
$this->fouten = "Er is een ongeldige cookie sleutel gevonden die niet kon worden verwijderd.";
return false;
}
if(isset($_COOKIE['sid']) && !empty($_COOKIE['sid'])) {
// Er is een niet-lege cookie
$sid = mysql_real_escape_string($_COOKIE['sid']);

// Controleren of sleutel en ip aanwezig zijn in database
$query = mysql_query("SELECT * FROM logins WHERE sid = '". $sid ."' AND ip = '". $this->get_ip() ."'") or die("Er is een fout opgetreden.");
if(mysql_num_rows($query)) {
$f = mysql_fetch_array($query);

// Gegevens uit database ophalen
$query = mysql_query("SELECT * FROM gebruikers WHERE id = '". $f['uid'] ."' ");
if(mysql_num_rows($query)) {
$this->loginsessie = true;
$this->gebruikersinfo = array();
$this->gebruikersinfo['info'] = mysql_fetch_array($query);
}
}
} else {
// Er is een ongeldige sleutel gevonden, laten we die eens verwijderen
$secondes = login_session_time * 3600;
setcookie("sid", "", time()-$secondes, "/");
$this->recheck = $this->recheck + 1;
}
}

// De functie om de login sessie te starten
private function start_session() {
// Unieke sleutel maken
$this->gebruikersinfo['sleutel'] = md5(rand(0,99999999999).date("dmyhis"));

// Informatie invoegen in database
$info = $this->gebruikersinfo['info'];
$SQL = "INSERT INTO logins ";
$SQL .= "SET uid = '". mysql_real_escape_string($info['id']) ."' ";
$SQL .= ", sid = '". mysql_real_escape_string($this->gebruikersinfo['sleutel']) ."' ";
$SQL .= ", ip = '". mysql_real_escape_string($this->get_ip()) ."' ";
$SQL .= ", datum = NOW() ";
mysql_query($SQL) or die("Error: kon niet inloggen.");

// Secondes maken van uren, zie configuratie bestand
$secondes = login_session_time * 3600;
setcookie("sid", $this->gebruikersinfo['sleutel'], time()+$secondes, "/");

// Verversing
header("Location: ".$_SERVER['REQUEST_URI']);
}

private function end_session() {
// index.php?actie=uitloggen
// Verwijder sessie
mysql_query("DELETE FROM logins WHERE sid = '". $_COOKIE['sid'] ."' AND ip = '". $this->get_ip() ."'") or die("Er is een fout opgetreden.");

// verwijder cookie
$secondes = login_session_time * 3600;
setcookie("sid", "", time()-$secondes, "/");

// Redirect
$url = str_replace("actie=uitloggen", "", $_SERVER['REQUEST_URI']); // haal de actie weg
header("Location: ".$url);
}

// Functie om gegevens op te vragen
public function get_login_info($wat=false) {
// Is er iets aanwezig?
if(!$this->loginsessie || !count($this->gebruikersinfo)) {
return false;
} else {
if($wat==='alles') {
return $this->gebruikersinfo['info'];
} elseif(isset($this->gebruikersinfo['info'][$wat])) {
return $this->gebruikersinfo['info'][$wat];
} else {
return true;
}
}
}
}

// Class starten
$login = new login();
$login->database_velden = array(
/*
Velden waarvan de value in de database komt. Plaats die in de database en formulier.

Syntax: veldnaam:instellingen

Instellingen scheiden met '|'.

Instellingen:
'verplicht': [string] Verplicht veld.
'min=int': [int] Minimum aantal karakters dat is vereist.
'max=int': [int] Maximum aantal karakters dat is vereist.
'==veldnaam': [string] waarde van dit veld moet overeenkomen met 'veldnaam'.
'md5': [string] Codeer met md5. MOET als laatste.
*/
'gebruikersnaam:verplicht|uniek|min=3|max=15|',
'rank:max=15|',
'email:max=100|email|',
'avatar:max=100|avatar|',
'wachtwoord:verplicht|min=3|max=16|==wachtwoord2|md5|' /* was eerst 'wachtwoord:verplicht|min=3|max=16|==wachtwoord2'*/
);
$login->init();
?>





I've done what they said in the other post but still got these error's:



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 158



Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 158



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 159



Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 159



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 167



Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 167



Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:xampphtdocsAdminheader.php on line 168



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 177



Warning: mysqli_error() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 177










share|improve this question















marked as duplicate by mario php
Users with the  php badge can single-handedly close php questions as duplicates and reopen them as needed.

StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;

$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');

$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 14 '18 at 21:21


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.



















  • The code shown doesn't even include any calls to mysqli_real_escape_string() or mysqli_error()....we can't fix what we can't see. But the warnings are pretty obvious - you tried to pass a null variable into a function which doesn't expect it. So you need to check why that variable turned out to be null when it was supposed to be a mysqli connection object. Quite likely, I would guess, it's because your connection failed for some reason. Or you just gave the wrong variable name. hard to know, when we can't see the relevant code. But the duplicates explain most of what you need to know, anyhow

    – ADyson
    Nov 14 '18 at 23:16
















0












0








0









This question already has an answer here:




  • How to change mysql to mysqli?

    9 answers



  • Can I mix MySQL APIs in PHP?

    4 answers



  • Why should I not use md5() for passwords? [duplicate]

    1 answer




I was trying to fix my old website again after a couple years.
But now i saw that my login system does'nt work anymore in this php version.



Because it runs on mysql. But i've searced on google en tried to repair it but without of luck. The can't connect to database error i've got fixed wit a new mysqli connection. but after that there keep getting error's.



So now im with my hands in my hair because my website runs on that system.



And please dont do hate comments with its crap and oldated. This was the first code i've used and learend from.



And sorry if ther was already a question about this but i am stuck and dont know how to fix it.



Ps. sorry for bad grammar.






<?php
// Een beveiliging om te voorkomen dat men in je header.php probeert te openen.
if(basename($_SERVER['PHP_SELF']) == "header.php") {
header("Location: index.php");
}

// Configuratie laden
include_once('config.php');

// We maken eerst een classe aan
class login {
// Variabelen
private $loginsessie = false;
public $fouten = "";
private $gebruikers_info = array();
public $database_velden = array();
private $recheck = 0;

// Deze functie wordt aangeroepen bij het laden van de classe
public function __construct() {
// maak verbinding met de database, als het niet lukt breek het af
$verbinding = mysqli_connect(mysql_host, mysql_user, mysql_password, mysql_database) or die(mysql_error());
// mysql_select_db(mysql_database, $verbinding) or die (mysql_error());

// Controlleren op een login sessie
$this->check_session();

// De loguit actie koppelen aan de end_session functie
if(isset($_GET['actie']) && $_GET['actie'] == 'uitloggen' && $this->loginsessie === true) {
$this->end_session();
}
}

// Init functie
public function init() {
// Controlleren op een POST request, wanneer er nog geen loginsessie is
if($_SERVER['REQUEST_METHOD'] == 'POST') { /* was eerst if($_SERVER['REQUEST_METHOD'] == 'POST' && $this->loginsessie===false) {*/
if(isset($_POST['actie'])) {
switch($_POST['actie']) {
case 'login': $this->controleer_gegevens(); break;
case 'registreer_gebruiker': $this->registreer_gebruiker(); break;
}
}
}
}

// Functie om het ip adres op te vragen
public function get_ip() {
if (isSet($_SERVER)) {
if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"])) {
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif (isSet($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
$realip = getenv( 'HTTP_X_FORWARDED_FOR' );
} elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
$realip = getenv( 'HTTP_CLIENT_IP' );
} else {
$realip = getenv( 'REMOTE_ADDR' );
}
}
return $realip;
}

private function registreer_gebruiker() {
if(isset($_POST['actie']) && $_POST['actie'] == 'registreer_gebruiker') {
$velden = array();

if(!is_array($this->database_velden) || !count($this->database_velden)) {
die("FOUT: Geen velden opgegeven.");
}

// Alle velden uit de array doorlopen
foreach($this->database_velden as $veld) {
$veld = split(':', $veld);
// Veldnaam
$veld_naam = $veld[0];
$velden[$veld_naam] = $_POST[$veld_naam];
// Veld instellingen
$veld_instellingen = split('|', $veld[1]);

foreach($veld_instellingen as $instelling) {
if($instelling == 'verplicht' && empty($velden[$veld_naam])) {
// Controlleer of het veld is ingevuld
$this->fouten .= "- Het veld '". $veld_naam ."' is verplicht<br />";
} elseif($instelling == 'md5') {
// Codeer naar md5
$velden[$veld_naam] = md5($velden[$veld_naam]);
} elseif(substr($instelling, 0, 3) == 'min') {
// Controlleer minimum stringlengte
if(strlen($velden[$veld_naam]) < (int) substr($instelling, 4)) {
$this->fouten .= "- Het veld '". $veld_naam ."' is te kort.<br />";
}
} elseif(substr($instelling, 0, 3) == 'max') {
// Controleer maximum stringlengte
if(strlen($velden[$veld_naam]) > (int) substr($instelling, 4)) {
$this->fouten .= "- Het veld '". $veld_naam ."' is te lang.<br />";
}
} elseif(substr($instelling, 0, 2) == "==") {
if($velden[$veld_naam] != $_POST[substr($instelling, 2)]) {
$this->fouten .= '- De velden '. $veld_naam .' en '. substr($instelling, 2) .' komen niet overeen.<br />';
}
} elseif($instelling == "avatar") {
$velden[$veld_naam] = ('http://habmoon.org/status/habbie?habbie='.$_POST["gebruikersnaam"].'&direction=4&head_direction=3&action=wlk&gesture=sml&size=b');
} elseif($instelling == 'uniek') {
$q = mysql_query("SELECT ". $veld_naam ." FROM gebruikers WHERE ". $veld_naam ." = '". mysql_real_escape_string($velden[$veld_naam]) ."' ");
if(!$q) {
$this->fouten .= '- Er is een MySQL fout opgetreden <br />';
} else {
if(mysql_num_rows($q)) {
$this->fouten .= 'De inhoud van veld '. $veld_naam .' bestaat al<br />';
}
}
} elseif($instelling == 'email') {
// Controleer email
if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $velden[$veld_naam])) {
$this->fouten .= "- Het email is incorrect.<br />";
}
}
}
}

if(!$this->fouten) {
// SQL genereren
$SQL = "INSERT INTO gebruikers ";
$SQL_TMP = "";

foreach($velden as $key=>$value) {
$SQL_TMP .= ", ". $key ." = '". mysql_real_escape_string($value) ."' ";
}

// Eerste komma weghalen
$SQL .= "SET ".preg_replace("#^,{0,1}#", '', $SQL_TMP);

if($SQL_TMP && mysql_query($SQL)) {
header("Location: ../index.php");
} else {
$this->fouten = "Er is een MySQL fout opgetreden.";
/*
om te debuggen gebruik:
die(mysql_error());
*/
}
}
}
}

// Functie om gegevens te controleren
private function controleer_gegevens() {
// Kijken of we het juiste formulier gebruiken
if(isset($_POST['actie']) && $_POST['actie'] == 'login') {
// Gegevens van formulier opvragen en escapen tegen mysql injectie
$gebruiker = mysql_real_escape_string($_POST['gebruikersnaam']);
$wachtwoord = mysql_real_escape_string($_POST['wachtwoord']);

// Kijken of we MD5 moeten gebruiken (zie configuratie bestand)
if(login_password_md5===true) {
$wachtwoord = md5($wachtwoord);
}

// Kijken of de gegevens correct zijn
$query = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '". $gebruiker ."' AND wachtwoord = '". $wachtwoord ."'");
if(mysql_num_rows($query)) {
// Array gebruikersinfo maken
$this->gebruikersinfo = array();
$this->gebruikersinfo['info'] = mysql_fetch_array($query);

// Start sessie
return $this->start_session();
} else {
// Kijken wat er mis ging:
if(mysql_error()) {
$this->fouten = "Er is een mysql fout opgetreden.";
} else {
$this->fouten = "Gebruiksnaam en/of wachtwoord is incorrect.";
}
}
}
}

// Functie om de sessie te controlleren
private function check_session() {
// Controleren op cookie
if($this->recheck>=3) {
$this->fouten = "Er is een ongeldige cookie sleutel gevonden die niet kon worden verwijderd.";
return false;
}
if(isset($_COOKIE['sid']) && !empty($_COOKIE['sid'])) {
// Er is een niet-lege cookie
$sid = mysql_real_escape_string($_COOKIE['sid']);

// Controleren of sleutel en ip aanwezig zijn in database
$query = mysql_query("SELECT * FROM logins WHERE sid = '". $sid ."' AND ip = '". $this->get_ip() ."'") or die("Er is een fout opgetreden.");
if(mysql_num_rows($query)) {
$f = mysql_fetch_array($query);

// Gegevens uit database ophalen
$query = mysql_query("SELECT * FROM gebruikers WHERE id = '". $f['uid'] ."' ");
if(mysql_num_rows($query)) {
$this->loginsessie = true;
$this->gebruikersinfo = array();
$this->gebruikersinfo['info'] = mysql_fetch_array($query);
}
}
} else {
// Er is een ongeldige sleutel gevonden, laten we die eens verwijderen
$secondes = login_session_time * 3600;
setcookie("sid", "", time()-$secondes, "/");
$this->recheck = $this->recheck + 1;
}
}

// De functie om de login sessie te starten
private function start_session() {
// Unieke sleutel maken
$this->gebruikersinfo['sleutel'] = md5(rand(0,99999999999).date("dmyhis"));

// Informatie invoegen in database
$info = $this->gebruikersinfo['info'];
$SQL = "INSERT INTO logins ";
$SQL .= "SET uid = '". mysql_real_escape_string($info['id']) ."' ";
$SQL .= ", sid = '". mysql_real_escape_string($this->gebruikersinfo['sleutel']) ."' ";
$SQL .= ", ip = '". mysql_real_escape_string($this->get_ip()) ."' ";
$SQL .= ", datum = NOW() ";
mysql_query($SQL) or die("Error: kon niet inloggen.");

// Secondes maken van uren, zie configuratie bestand
$secondes = login_session_time * 3600;
setcookie("sid", $this->gebruikersinfo['sleutel'], time()+$secondes, "/");

// Verversing
header("Location: ".$_SERVER['REQUEST_URI']);
}

private function end_session() {
// index.php?actie=uitloggen
// Verwijder sessie
mysql_query("DELETE FROM logins WHERE sid = '". $_COOKIE['sid'] ."' AND ip = '". $this->get_ip() ."'") or die("Er is een fout opgetreden.");

// verwijder cookie
$secondes = login_session_time * 3600;
setcookie("sid", "", time()-$secondes, "/");

// Redirect
$url = str_replace("actie=uitloggen", "", $_SERVER['REQUEST_URI']); // haal de actie weg
header("Location: ".$url);
}

// Functie om gegevens op te vragen
public function get_login_info($wat=false) {
// Is er iets aanwezig?
if(!$this->loginsessie || !count($this->gebruikersinfo)) {
return false;
} else {
if($wat==='alles') {
return $this->gebruikersinfo['info'];
} elseif(isset($this->gebruikersinfo['info'][$wat])) {
return $this->gebruikersinfo['info'][$wat];
} else {
return true;
}
}
}
}

// Class starten
$login = new login();
$login->database_velden = array(
/*
Velden waarvan de value in de database komt. Plaats die in de database en formulier.

Syntax: veldnaam:instellingen

Instellingen scheiden met '|'.

Instellingen:
'verplicht': [string] Verplicht veld.
'min=int': [int] Minimum aantal karakters dat is vereist.
'max=int': [int] Maximum aantal karakters dat is vereist.
'==veldnaam': [string] waarde van dit veld moet overeenkomen met 'veldnaam'.
'md5': [string] Codeer met md5. MOET als laatste.
*/
'gebruikersnaam:verplicht|uniek|min=3|max=15|',
'rank:max=15|',
'email:max=100|email|',
'avatar:max=100|avatar|',
'wachtwoord:verplicht|min=3|max=16|==wachtwoord2|md5|' /* was eerst 'wachtwoord:verplicht|min=3|max=16|==wachtwoord2'*/
);
$login->init();
?>





I've done what they said in the other post but still got these error's:



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 158



Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 158



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 159



Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 159



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 167



Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 167



Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:xampphtdocsAdminheader.php on line 168



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 177



Warning: mysqli_error() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 177










share|improve this question

















This question already has an answer here:




  • How to change mysql to mysqli?

    9 answers



  • Can I mix MySQL APIs in PHP?

    4 answers



  • Why should I not use md5() for passwords? [duplicate]

    1 answer




I was trying to fix my old website again after a couple years.
But now i saw that my login system does'nt work anymore in this php version.



Because it runs on mysql. But i've searced on google en tried to repair it but without of luck. The can't connect to database error i've got fixed wit a new mysqli connection. but after that there keep getting error's.



So now im with my hands in my hair because my website runs on that system.



And please dont do hate comments with its crap and oldated. This was the first code i've used and learend from.



And sorry if ther was already a question about this but i am stuck and dont know how to fix it.



Ps. sorry for bad grammar.






<?php
// Een beveiliging om te voorkomen dat men in je header.php probeert te openen.
if(basename($_SERVER['PHP_SELF']) == "header.php") {
header("Location: index.php");
}

// Configuratie laden
include_once('config.php');

// We maken eerst een classe aan
class login {
// Variabelen
private $loginsessie = false;
public $fouten = "";
private $gebruikers_info = array();
public $database_velden = array();
private $recheck = 0;

// Deze functie wordt aangeroepen bij het laden van de classe
public function __construct() {
// maak verbinding met de database, als het niet lukt breek het af
$verbinding = mysqli_connect(mysql_host, mysql_user, mysql_password, mysql_database) or die(mysql_error());
// mysql_select_db(mysql_database, $verbinding) or die (mysql_error());

// Controlleren op een login sessie
$this->check_session();

// De loguit actie koppelen aan de end_session functie
if(isset($_GET['actie']) && $_GET['actie'] == 'uitloggen' && $this->loginsessie === true) {
$this->end_session();
}
}

// Init functie
public function init() {
// Controlleren op een POST request, wanneer er nog geen loginsessie is
if($_SERVER['REQUEST_METHOD'] == 'POST') { /* was eerst if($_SERVER['REQUEST_METHOD'] == 'POST' && $this->loginsessie===false) {*/
if(isset($_POST['actie'])) {
switch($_POST['actie']) {
case 'login': $this->controleer_gegevens(); break;
case 'registreer_gebruiker': $this->registreer_gebruiker(); break;
}
}
}
}

// Functie om het ip adres op te vragen
public function get_ip() {
if (isSet($_SERVER)) {
if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"])) {
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif (isSet($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
$realip = getenv( 'HTTP_X_FORWARDED_FOR' );
} elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
$realip = getenv( 'HTTP_CLIENT_IP' );
} else {
$realip = getenv( 'REMOTE_ADDR' );
}
}
return $realip;
}

private function registreer_gebruiker() {
if(isset($_POST['actie']) && $_POST['actie'] == 'registreer_gebruiker') {
$velden = array();

if(!is_array($this->database_velden) || !count($this->database_velden)) {
die("FOUT: Geen velden opgegeven.");
}

// Alle velden uit de array doorlopen
foreach($this->database_velden as $veld) {
$veld = split(':', $veld);
// Veldnaam
$veld_naam = $veld[0];
$velden[$veld_naam] = $_POST[$veld_naam];
// Veld instellingen
$veld_instellingen = split('|', $veld[1]);

foreach($veld_instellingen as $instelling) {
if($instelling == 'verplicht' && empty($velden[$veld_naam])) {
// Controlleer of het veld is ingevuld
$this->fouten .= "- Het veld '". $veld_naam ."' is verplicht<br />";
} elseif($instelling == 'md5') {
// Codeer naar md5
$velden[$veld_naam] = md5($velden[$veld_naam]);
} elseif(substr($instelling, 0, 3) == 'min') {
// Controlleer minimum stringlengte
if(strlen($velden[$veld_naam]) < (int) substr($instelling, 4)) {
$this->fouten .= "- Het veld '". $veld_naam ."' is te kort.<br />";
}
} elseif(substr($instelling, 0, 3) == 'max') {
// Controleer maximum stringlengte
if(strlen($velden[$veld_naam]) > (int) substr($instelling, 4)) {
$this->fouten .= "- Het veld '". $veld_naam ."' is te lang.<br />";
}
} elseif(substr($instelling, 0, 2) == "==") {
if($velden[$veld_naam] != $_POST[substr($instelling, 2)]) {
$this->fouten .= '- De velden '. $veld_naam .' en '. substr($instelling, 2) .' komen niet overeen.<br />';
}
} elseif($instelling == "avatar") {
$velden[$veld_naam] = ('http://habmoon.org/status/habbie?habbie='.$_POST["gebruikersnaam"].'&direction=4&head_direction=3&action=wlk&gesture=sml&size=b');
} elseif($instelling == 'uniek') {
$q = mysql_query("SELECT ". $veld_naam ." FROM gebruikers WHERE ". $veld_naam ." = '". mysql_real_escape_string($velden[$veld_naam]) ."' ");
if(!$q) {
$this->fouten .= '- Er is een MySQL fout opgetreden <br />';
} else {
if(mysql_num_rows($q)) {
$this->fouten .= 'De inhoud van veld '. $veld_naam .' bestaat al<br />';
}
}
} elseif($instelling == 'email') {
// Controleer email
if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $velden[$veld_naam])) {
$this->fouten .= "- Het email is incorrect.<br />";
}
}
}
}

if(!$this->fouten) {
// SQL genereren
$SQL = "INSERT INTO gebruikers ";
$SQL_TMP = "";

foreach($velden as $key=>$value) {
$SQL_TMP .= ", ". $key ." = '". mysql_real_escape_string($value) ."' ";
}

// Eerste komma weghalen
$SQL .= "SET ".preg_replace("#^,{0,1}#", '', $SQL_TMP);

if($SQL_TMP && mysql_query($SQL)) {
header("Location: ../index.php");
} else {
$this->fouten = "Er is een MySQL fout opgetreden.";
/*
om te debuggen gebruik:
die(mysql_error());
*/
}
}
}
}

// Functie om gegevens te controleren
private function controleer_gegevens() {
// Kijken of we het juiste formulier gebruiken
if(isset($_POST['actie']) && $_POST['actie'] == 'login') {
// Gegevens van formulier opvragen en escapen tegen mysql injectie
$gebruiker = mysql_real_escape_string($_POST['gebruikersnaam']);
$wachtwoord = mysql_real_escape_string($_POST['wachtwoord']);

// Kijken of we MD5 moeten gebruiken (zie configuratie bestand)
if(login_password_md5===true) {
$wachtwoord = md5($wachtwoord);
}

// Kijken of de gegevens correct zijn
$query = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '". $gebruiker ."' AND wachtwoord = '". $wachtwoord ."'");
if(mysql_num_rows($query)) {
// Array gebruikersinfo maken
$this->gebruikersinfo = array();
$this->gebruikersinfo['info'] = mysql_fetch_array($query);

// Start sessie
return $this->start_session();
} else {
// Kijken wat er mis ging:
if(mysql_error()) {
$this->fouten = "Er is een mysql fout opgetreden.";
} else {
$this->fouten = "Gebruiksnaam en/of wachtwoord is incorrect.";
}
}
}
}

// Functie om de sessie te controlleren
private function check_session() {
// Controleren op cookie
if($this->recheck>=3) {
$this->fouten = "Er is een ongeldige cookie sleutel gevonden die niet kon worden verwijderd.";
return false;
}
if(isset($_COOKIE['sid']) && !empty($_COOKIE['sid'])) {
// Er is een niet-lege cookie
$sid = mysql_real_escape_string($_COOKIE['sid']);

// Controleren of sleutel en ip aanwezig zijn in database
$query = mysql_query("SELECT * FROM logins WHERE sid = '". $sid ."' AND ip = '". $this->get_ip() ."'") or die("Er is een fout opgetreden.");
if(mysql_num_rows($query)) {
$f = mysql_fetch_array($query);

// Gegevens uit database ophalen
$query = mysql_query("SELECT * FROM gebruikers WHERE id = '". $f['uid'] ."' ");
if(mysql_num_rows($query)) {
$this->loginsessie = true;
$this->gebruikersinfo = array();
$this->gebruikersinfo['info'] = mysql_fetch_array($query);
}
}
} else {
// Er is een ongeldige sleutel gevonden, laten we die eens verwijderen
$secondes = login_session_time * 3600;
setcookie("sid", "", time()-$secondes, "/");
$this->recheck = $this->recheck + 1;
}
}

// De functie om de login sessie te starten
private function start_session() {
// Unieke sleutel maken
$this->gebruikersinfo['sleutel'] = md5(rand(0,99999999999).date("dmyhis"));

// Informatie invoegen in database
$info = $this->gebruikersinfo['info'];
$SQL = "INSERT INTO logins ";
$SQL .= "SET uid = '". mysql_real_escape_string($info['id']) ."' ";
$SQL .= ", sid = '". mysql_real_escape_string($this->gebruikersinfo['sleutel']) ."' ";
$SQL .= ", ip = '". mysql_real_escape_string($this->get_ip()) ."' ";
$SQL .= ", datum = NOW() ";
mysql_query($SQL) or die("Error: kon niet inloggen.");

// Secondes maken van uren, zie configuratie bestand
$secondes = login_session_time * 3600;
setcookie("sid", $this->gebruikersinfo['sleutel'], time()+$secondes, "/");

// Verversing
header("Location: ".$_SERVER['REQUEST_URI']);
}

private function end_session() {
// index.php?actie=uitloggen
// Verwijder sessie
mysql_query("DELETE FROM logins WHERE sid = '". $_COOKIE['sid'] ."' AND ip = '". $this->get_ip() ."'") or die("Er is een fout opgetreden.");

// verwijder cookie
$secondes = login_session_time * 3600;
setcookie("sid", "", time()-$secondes, "/");

// Redirect
$url = str_replace("actie=uitloggen", "", $_SERVER['REQUEST_URI']); // haal de actie weg
header("Location: ".$url);
}

// Functie om gegevens op te vragen
public function get_login_info($wat=false) {
// Is er iets aanwezig?
if(!$this->loginsessie || !count($this->gebruikersinfo)) {
return false;
} else {
if($wat==='alles') {
return $this->gebruikersinfo['info'];
} elseif(isset($this->gebruikersinfo['info'][$wat])) {
return $this->gebruikersinfo['info'][$wat];
} else {
return true;
}
}
}
}

// Class starten
$login = new login();
$login->database_velden = array(
/*
Velden waarvan de value in de database komt. Plaats die in de database en formulier.

Syntax: veldnaam:instellingen

Instellingen scheiden met '|'.

Instellingen:
'verplicht': [string] Verplicht veld.
'min=int': [int] Minimum aantal karakters dat is vereist.
'max=int': [int] Maximum aantal karakters dat is vereist.
'==veldnaam': [string] waarde van dit veld moet overeenkomen met 'veldnaam'.
'md5': [string] Codeer met md5. MOET als laatste.
*/
'gebruikersnaam:verplicht|uniek|min=3|max=15|',
'rank:max=15|',
'email:max=100|email|',
'avatar:max=100|avatar|',
'wachtwoord:verplicht|min=3|max=16|==wachtwoord2|md5|' /* was eerst 'wachtwoord:verplicht|min=3|max=16|==wachtwoord2'*/
);
$login->init();
?>





I've done what they said in the other post but still got these error's:



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 158



Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 158



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 159



Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 159



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 167



Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 167



Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:xampphtdocsAdminheader.php on line 168



Notice: Undefined variable: con in C:xampphtdocsAdminheader.php on line 177



Warning: mysqli_error() expects parameter 1 to be mysqli, null given in C:xampphtdocsAdminheader.php on line 177





This question already has an answer here:




  • How to change mysql to mysqli?

    9 answers



  • Can I mix MySQL APIs in PHP?

    4 answers



  • Why should I not use md5() for passwords? [duplicate]

    1 answer







<?php
// Een beveiliging om te voorkomen dat men in je header.php probeert te openen.
if(basename($_SERVER['PHP_SELF']) == "header.php") {
header("Location: index.php");
}

// Configuratie laden
include_once('config.php');

// We maken eerst een classe aan
class login {
// Variabelen
private $loginsessie = false;
public $fouten = "";
private $gebruikers_info = array();
public $database_velden = array();
private $recheck = 0;

// Deze functie wordt aangeroepen bij het laden van de classe
public function __construct() {
// maak verbinding met de database, als het niet lukt breek het af
$verbinding = mysqli_connect(mysql_host, mysql_user, mysql_password, mysql_database) or die(mysql_error());
// mysql_select_db(mysql_database, $verbinding) or die (mysql_error());

// Controlleren op een login sessie
$this->check_session();

// De loguit actie koppelen aan de end_session functie
if(isset($_GET['actie']) && $_GET['actie'] == 'uitloggen' && $this->loginsessie === true) {
$this->end_session();
}
}

// Init functie
public function init() {
// Controlleren op een POST request, wanneer er nog geen loginsessie is
if($_SERVER['REQUEST_METHOD'] == 'POST') { /* was eerst if($_SERVER['REQUEST_METHOD'] == 'POST' && $this->loginsessie===false) {*/
if(isset($_POST['actie'])) {
switch($_POST['actie']) {
case 'login': $this->controleer_gegevens(); break;
case 'registreer_gebruiker': $this->registreer_gebruiker(); break;
}
}
}
}

// Functie om het ip adres op te vragen
public function get_ip() {
if (isSet($_SERVER)) {
if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"])) {
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif (isSet($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
$realip = getenv( 'HTTP_X_FORWARDED_FOR' );
} elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
$realip = getenv( 'HTTP_CLIENT_IP' );
} else {
$realip = getenv( 'REMOTE_ADDR' );
}
}
return $realip;
}

private function registreer_gebruiker() {
if(isset($_POST['actie']) && $_POST['actie'] == 'registreer_gebruiker') {
$velden = array();

if(!is_array($this->database_velden) || !count($this->database_velden)) {
die("FOUT: Geen velden opgegeven.");
}

// Alle velden uit de array doorlopen
foreach($this->database_velden as $veld) {
$veld = split(':', $veld);
// Veldnaam
$veld_naam = $veld[0];
$velden[$veld_naam] = $_POST[$veld_naam];
// Veld instellingen
$veld_instellingen = split('|', $veld[1]);

foreach($veld_instellingen as $instelling) {
if($instelling == 'verplicht' && empty($velden[$veld_naam])) {
// Controlleer of het veld is ingevuld
$this->fouten .= "- Het veld '". $veld_naam ."' is verplicht<br />";
} elseif($instelling == 'md5') {
// Codeer naar md5
$velden[$veld_naam] = md5($velden[$veld_naam]);
} elseif(substr($instelling, 0, 3) == 'min') {
// Controlleer minimum stringlengte
if(strlen($velden[$veld_naam]) < (int) substr($instelling, 4)) {
$this->fouten .= "- Het veld '". $veld_naam ."' is te kort.<br />";
}
} elseif(substr($instelling, 0, 3) == 'max') {
// Controleer maximum stringlengte
if(strlen($velden[$veld_naam]) > (int) substr($instelling, 4)) {
$this->fouten .= "- Het veld '". $veld_naam ."' is te lang.<br />";
}
} elseif(substr($instelling, 0, 2) == "==") {
if($velden[$veld_naam] != $_POST[substr($instelling, 2)]) {
$this->fouten .= '- De velden '. $veld_naam .' en '. substr($instelling, 2) .' komen niet overeen.<br />';
}
} elseif($instelling == "avatar") {
$velden[$veld_naam] = ('http://habmoon.org/status/habbie?habbie='.$_POST["gebruikersnaam"].'&direction=4&head_direction=3&action=wlk&gesture=sml&size=b');
} elseif($instelling == 'uniek') {
$q = mysql_query("SELECT ". $veld_naam ." FROM gebruikers WHERE ". $veld_naam ." = '". mysql_real_escape_string($velden[$veld_naam]) ."' ");
if(!$q) {
$this->fouten .= '- Er is een MySQL fout opgetreden <br />';
} else {
if(mysql_num_rows($q)) {
$this->fouten .= 'De inhoud van veld '. $veld_naam .' bestaat al<br />';
}
}
} elseif($instelling == 'email') {
// Controleer email
if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $velden[$veld_naam])) {
$this->fouten .= "- Het email is incorrect.<br />";
}
}
}
}

if(!$this->fouten) {
// SQL genereren
$SQL = "INSERT INTO gebruikers ";
$SQL_TMP = "";

foreach($velden as $key=>$value) {
$SQL_TMP .= ", ". $key ." = '". mysql_real_escape_string($value) ."' ";
}

// Eerste komma weghalen
$SQL .= "SET ".preg_replace("#^,{0,1}#", '', $SQL_TMP);

if($SQL_TMP && mysql_query($SQL)) {
header("Location: ../index.php");
} else {
$this->fouten = "Er is een MySQL fout opgetreden.";
/*
om te debuggen gebruik:
die(mysql_error());
*/
}
}
}
}

// Functie om gegevens te controleren
private function controleer_gegevens() {
// Kijken of we het juiste formulier gebruiken
if(isset($_POST['actie']) && $_POST['actie'] == 'login') {
// Gegevens van formulier opvragen en escapen tegen mysql injectie
$gebruiker = mysql_real_escape_string($_POST['gebruikersnaam']);
$wachtwoord = mysql_real_escape_string($_POST['wachtwoord']);

// Kijken of we MD5 moeten gebruiken (zie configuratie bestand)
if(login_password_md5===true) {
$wachtwoord = md5($wachtwoord);
}

// Kijken of de gegevens correct zijn
$query = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '". $gebruiker ."' AND wachtwoord = '". $wachtwoord ."'");
if(mysql_num_rows($query)) {
// Array gebruikersinfo maken
$this->gebruikersinfo = array();
$this->gebruikersinfo['info'] = mysql_fetch_array($query);

// Start sessie
return $this->start_session();
} else {
// Kijken wat er mis ging:
if(mysql_error()) {
$this->fouten = "Er is een mysql fout opgetreden.";
} else {
$this->fouten = "Gebruiksnaam en/of wachtwoord is incorrect.";
}
}
}
}

// Functie om de sessie te controlleren
private function check_session() {
// Controleren op cookie
if($this->recheck>=3) {
$this->fouten = "Er is een ongeldige cookie sleutel gevonden die niet kon worden verwijderd.";
return false;
}
if(isset($_COOKIE['sid']) && !empty($_COOKIE['sid'])) {
// Er is een niet-lege cookie
$sid = mysql_real_escape_string($_COOKIE['sid']);

// Controleren of sleutel en ip aanwezig zijn in database
$query = mysql_query("SELECT * FROM logins WHERE sid = '". $sid ."' AND ip = '". $this->get_ip() ."'") or die("Er is een fout opgetreden.");
if(mysql_num_rows($query)) {
$f = mysql_fetch_array($query);

// Gegevens uit database ophalen
$query = mysql_query("SELECT * FROM gebruikers WHERE id = '". $f['uid'] ."' ");
if(mysql_num_rows($query)) {
$this->loginsessie = true;
$this->gebruikersinfo = array();
$this->gebruikersinfo['info'] = mysql_fetch_array($query);
}
}
} else {
// Er is een ongeldige sleutel gevonden, laten we die eens verwijderen
$secondes = login_session_time * 3600;
setcookie("sid", "", time()-$secondes, "/");
$this->recheck = $this->recheck + 1;
}
}

// De functie om de login sessie te starten
private function start_session() {
// Unieke sleutel maken
$this->gebruikersinfo['sleutel'] = md5(rand(0,99999999999).date("dmyhis"));

// Informatie invoegen in database
$info = $this->gebruikersinfo['info'];
$SQL = "INSERT INTO logins ";
$SQL .= "SET uid = '". mysql_real_escape_string($info['id']) ."' ";
$SQL .= ", sid = '". mysql_real_escape_string($this->gebruikersinfo['sleutel']) ."' ";
$SQL .= ", ip = '". mysql_real_escape_string($this->get_ip()) ."' ";
$SQL .= ", datum = NOW() ";
mysql_query($SQL) or die("Error: kon niet inloggen.");

// Secondes maken van uren, zie configuratie bestand
$secondes = login_session_time * 3600;
setcookie("sid", $this->gebruikersinfo['sleutel'], time()+$secondes, "/");

// Verversing
header("Location: ".$_SERVER['REQUEST_URI']);
}

private function end_session() {
// index.php?actie=uitloggen
// Verwijder sessie
mysql_query("DELETE FROM logins WHERE sid = '". $_COOKIE['sid'] ."' AND ip = '". $this->get_ip() ."'") or die("Er is een fout opgetreden.");

// verwijder cookie
$secondes = login_session_time * 3600;
setcookie("sid", "", time()-$secondes, "/");

// Redirect
$url = str_replace("actie=uitloggen", "", $_SERVER['REQUEST_URI']); // haal de actie weg
header("Location: ".$url);
}

// Functie om gegevens op te vragen
public function get_login_info($wat=false) {
// Is er iets aanwezig?
if(!$this->loginsessie || !count($this->gebruikersinfo)) {
return false;
} else {
if($wat==='alles') {
return $this->gebruikersinfo['info'];
} elseif(isset($this->gebruikersinfo['info'][$wat])) {
return $this->gebruikersinfo['info'][$wat];
} else {
return true;
}
}
}
}

// Class starten
$login = new login();
$login->database_velden = array(
/*
Velden waarvan de value in de database komt. Plaats die in de database en formulier.

Syntax: veldnaam:instellingen

Instellingen scheiden met '|'.

Instellingen:
'verplicht': [string] Verplicht veld.
'min=int': [int] Minimum aantal karakters dat is vereist.
'max=int': [int] Maximum aantal karakters dat is vereist.
'==veldnaam': [string] waarde van dit veld moet overeenkomen met 'veldnaam'.
'md5': [string] Codeer met md5. MOET als laatste.
*/
'gebruikersnaam:verplicht|uniek|min=3|max=15|',
'rank:max=15|',
'email:max=100|email|',
'avatar:max=100|avatar|',
'wachtwoord:verplicht|min=3|max=16|==wachtwoord2|md5|' /* was eerst 'wachtwoord:verplicht|min=3|max=16|==wachtwoord2'*/
);
$login->init();
?>





<?php
// Een beveiliging om te voorkomen dat men in je header.php probeert te openen.
if(basename($_SERVER['PHP_SELF']) == "header.php") {
header("Location: index.php");
}

// Configuratie laden
include_once('config.php');

// We maken eerst een classe aan
class login {
// Variabelen
private $loginsessie = false;
public $fouten = "";
private $gebruikers_info = array();
public $database_velden = array();
private $recheck = 0;

// Deze functie wordt aangeroepen bij het laden van de classe
public function __construct() {
// maak verbinding met de database, als het niet lukt breek het af
$verbinding = mysqli_connect(mysql_host, mysql_user, mysql_password, mysql_database) or die(mysql_error());
// mysql_select_db(mysql_database, $verbinding) or die (mysql_error());

// Controlleren op een login sessie
$this->check_session();

// De loguit actie koppelen aan de end_session functie
if(isset($_GET['actie']) && $_GET['actie'] == 'uitloggen' && $this->loginsessie === true) {
$this->end_session();
}
}

// Init functie
public function init() {
// Controlleren op een POST request, wanneer er nog geen loginsessie is
if($_SERVER['REQUEST_METHOD'] == 'POST') { /* was eerst if($_SERVER['REQUEST_METHOD'] == 'POST' && $this->loginsessie===false) {*/
if(isset($_POST['actie'])) {
switch($_POST['actie']) {
case 'login': $this->controleer_gegevens(); break;
case 'registreer_gebruiker': $this->registreer_gebruiker(); break;
}
}
}
}

// Functie om het ip adres op te vragen
public function get_ip() {
if (isSet($_SERVER)) {
if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"])) {
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} elseif (isSet($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
$realip = getenv( 'HTTP_X_FORWARDED_FOR' );
} elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
$realip = getenv( 'HTTP_CLIENT_IP' );
} else {
$realip = getenv( 'REMOTE_ADDR' );
}
}
return $realip;
}

private function registreer_gebruiker() {
if(isset($_POST['actie']) && $_POST['actie'] == 'registreer_gebruiker') {
$velden = array();

if(!is_array($this->database_velden) || !count($this->database_velden)) {
die("FOUT: Geen velden opgegeven.");
}

// Alle velden uit de array doorlopen
foreach($this->database_velden as $veld) {
$veld = split(':', $veld);
// Veldnaam
$veld_naam = $veld[0];
$velden[$veld_naam] = $_POST[$veld_naam];
// Veld instellingen
$veld_instellingen = split('|', $veld[1]);

foreach($veld_instellingen as $instelling) {
if($instelling == 'verplicht' && empty($velden[$veld_naam])) {
// Controlleer of het veld is ingevuld
$this->fouten .= "- Het veld '". $veld_naam ."' is verplicht<br />";
} elseif($instelling == 'md5') {
// Codeer naar md5
$velden[$veld_naam] = md5($velden[$veld_naam]);
} elseif(substr($instelling, 0, 3) == 'min') {
// Controlleer minimum stringlengte
if(strlen($velden[$veld_naam]) < (int) substr($instelling, 4)) {
$this->fouten .= "- Het veld '". $veld_naam ."' is te kort.<br />";
}
} elseif(substr($instelling, 0, 3) == 'max') {
// Controleer maximum stringlengte
if(strlen($velden[$veld_naam]) > (int) substr($instelling, 4)) {
$this->fouten .= "- Het veld '". $veld_naam ."' is te lang.<br />";
}
} elseif(substr($instelling, 0, 2) == "==") {
if($velden[$veld_naam] != $_POST[substr($instelling, 2)]) {
$this->fouten .= '- De velden '. $veld_naam .' en '. substr($instelling, 2) .' komen niet overeen.<br />';
}
} elseif($instelling == "avatar") {
$velden[$veld_naam] = ('http://habmoon.org/status/habbie?habbie='.$_POST["gebruikersnaam"].'&direction=4&head_direction=3&action=wlk&gesture=sml&size=b');
} elseif($instelling == 'uniek') {
$q = mysql_query("SELECT ". $veld_naam ." FROM gebruikers WHERE ". $veld_naam ." = '". mysql_real_escape_string($velden[$veld_naam]) ."' ");
if(!$q) {
$this->fouten .= '- Er is een MySQL fout opgetreden <br />';
} else {
if(mysql_num_rows($q)) {
$this->fouten .= 'De inhoud van veld '. $veld_naam .' bestaat al<br />';
}
}
} elseif($instelling == 'email') {
// Controleer email
if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $velden[$veld_naam])) {
$this->fouten .= "- Het email is incorrect.<br />";
}
}
}
}

if(!$this->fouten) {
// SQL genereren
$SQL = "INSERT INTO gebruikers ";
$SQL_TMP = "";

foreach($velden as $key=>$value) {
$SQL_TMP .= ", ". $key ." = '". mysql_real_escape_string($value) ."' ";
}

// Eerste komma weghalen
$SQL .= "SET ".preg_replace("#^,{0,1}#", '', $SQL_TMP);

if($SQL_TMP && mysql_query($SQL)) {
header("Location: ../index.php");
} else {
$this->fouten = "Er is een MySQL fout opgetreden.";
/*
om te debuggen gebruik:
die(mysql_error());
*/
}
}
}
}

// Functie om gegevens te controleren
private function controleer_gegevens() {
// Kijken of we het juiste formulier gebruiken
if(isset($_POST['actie']) && $_POST['actie'] == 'login') {
// Gegevens van formulier opvragen en escapen tegen mysql injectie
$gebruiker = mysql_real_escape_string($_POST['gebruikersnaam']);
$wachtwoord = mysql_real_escape_string($_POST['wachtwoord']);

// Kijken of we MD5 moeten gebruiken (zie configuratie bestand)
if(login_password_md5===true) {
$wachtwoord = md5($wachtwoord);
}

// Kijken of de gegevens correct zijn
$query = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam = '". $gebruiker ."' AND wachtwoord = '". $wachtwoord ."'");
if(mysql_num_rows($query)) {
// Array gebruikersinfo maken
$this->gebruikersinfo = array();
$this->gebruikersinfo['info'] = mysql_fetch_array($query);

// Start sessie
return $this->start_session();
} else {
// Kijken wat er mis ging:
if(mysql_error()) {
$this->fouten = "Er is een mysql fout opgetreden.";
} else {
$this->fouten = "Gebruiksnaam en/of wachtwoord is incorrect.";
}
}
}
}

// Functie om de sessie te controlleren
private function check_session() {
// Controleren op cookie
if($this->recheck>=3) {
$this->fouten = "Er is een ongeldige cookie sleutel gevonden die niet kon worden verwijderd.";
return false;
}
if(isset($_COOKIE['sid']) && !empty($_COOKIE['sid'])) {
// Er is een niet-lege cookie
$sid = mysql_real_escape_string($_COOKIE['sid']);

// Controleren of sleutel en ip aanwezig zijn in database
$query = mysql_query("SELECT * FROM logins WHERE sid = '". $sid ."' AND ip = '". $this->get_ip() ."'") or die("Er is een fout opgetreden.");
if(mysql_num_rows($query)) {
$f = mysql_fetch_array($query);

// Gegevens uit database ophalen
$query = mysql_query("SELECT * FROM gebruikers WHERE id = '". $f['uid'] ."' ");
if(mysql_num_rows($query)) {
$this->loginsessie = true;
$this->gebruikersinfo = array();
$this->gebruikersinfo['info'] = mysql_fetch_array($query);
}
}
} else {
// Er is een ongeldige sleutel gevonden, laten we die eens verwijderen
$secondes = login_session_time * 3600;
setcookie("sid", "", time()-$secondes, "/");
$this->recheck = $this->recheck + 1;
}
}

// De functie om de login sessie te starten
private function start_session() {
// Unieke sleutel maken
$this->gebruikersinfo['sleutel'] = md5(rand(0,99999999999).date("dmyhis"));

// Informatie invoegen in database
$info = $this->gebruikersinfo['info'];
$SQL = "INSERT INTO logins ";
$SQL .= "SET uid = '". mysql_real_escape_string($info['id']) ."' ";
$SQL .= ", sid = '". mysql_real_escape_string($this->gebruikersinfo['sleutel']) ."' ";
$SQL .= ", ip = '". mysql_real_escape_string($this->get_ip()) ."' ";
$SQL .= ", datum = NOW() ";
mysql_query($SQL) or die("Error: kon niet inloggen.");

// Secondes maken van uren, zie configuratie bestand
$secondes = login_session_time * 3600;
setcookie("sid", $this->gebruikersinfo['sleutel'], time()+$secondes, "/");

// Verversing
header("Location: ".$_SERVER['REQUEST_URI']);
}

private function end_session() {
// index.php?actie=uitloggen
// Verwijder sessie
mysql_query("DELETE FROM logins WHERE sid = '". $_COOKIE['sid'] ."' AND ip = '". $this->get_ip() ."'") or die("Er is een fout opgetreden.");

// verwijder cookie
$secondes = login_session_time * 3600;
setcookie("sid", "", time()-$secondes, "/");

// Redirect
$url = str_replace("actie=uitloggen", "", $_SERVER['REQUEST_URI']); // haal de actie weg
header("Location: ".$url);
}

// Functie om gegevens op te vragen
public function get_login_info($wat=false) {
// Is er iets aanwezig?
if(!$this->loginsessie || !count($this->gebruikersinfo)) {
return false;
} else {
if($wat==='alles') {
return $this->gebruikersinfo['info'];
} elseif(isset($this->gebruikersinfo['info'][$wat])) {
return $this->gebruikersinfo['info'][$wat];
} else {
return true;
}
}
}
}

// Class starten
$login = new login();
$login->database_velden = array(
/*
Velden waarvan de value in de database komt. Plaats die in de database en formulier.

Syntax: veldnaam:instellingen

Instellingen scheiden met '|'.

Instellingen:
'verplicht': [string] Verplicht veld.
'min=int': [int] Minimum aantal karakters dat is vereist.
'max=int': [int] Maximum aantal karakters dat is vereist.
'==veldnaam': [string] waarde van dit veld moet overeenkomen met 'veldnaam'.
'md5': [string] Codeer met md5. MOET als laatste.
*/
'gebruikersnaam:verplicht|uniek|min=3|max=15|',
'rank:max=15|',
'email:max=100|email|',
'avatar:max=100|avatar|',
'wachtwoord:verplicht|min=3|max=16|==wachtwoord2|md5|' /* was eerst 'wachtwoord:verplicht|min=3|max=16|==wachtwoord2'*/
);
$login->init();
?>






php mysql






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 14 '18 at 22:35







Giovanni

















asked Nov 14 '18 at 21:19









GiovanniGiovanni

165




165




marked as duplicate by mario php
Users with the  php badge can single-handedly close php questions as duplicates and reopen them as needed.

StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;

$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');

$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 14 '18 at 21:21


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.









marked as duplicate by mario php
Users with the  php badge can single-handedly close php questions as duplicates and reopen them as needed.

StackExchange.ready(function() {
if (StackExchange.options.isMobile) return;

$('.dupe-hammer-message-hover:not(.hover-bound)').each(function() {
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');

$hover.hover(
function() {
$hover.showInfoMessage('', {
messageElement: $msg.clone().show(),
transient: false,
position: { my: 'bottom left', at: 'top center', offsetTop: -7 },
dismissable: false,
relativeToBody: true
});
},
function() {
StackExchange.helpers.removeMessages();
}
);
});
});
Nov 14 '18 at 21:21


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.















  • The code shown doesn't even include any calls to mysqli_real_escape_string() or mysqli_error()....we can't fix what we can't see. But the warnings are pretty obvious - you tried to pass a null variable into a function which doesn't expect it. So you need to check why that variable turned out to be null when it was supposed to be a mysqli connection object. Quite likely, I would guess, it's because your connection failed for some reason. Or you just gave the wrong variable name. hard to know, when we can't see the relevant code. But the duplicates explain most of what you need to know, anyhow

    – ADyson
    Nov 14 '18 at 23:16





















  • The code shown doesn't even include any calls to mysqli_real_escape_string() or mysqli_error()....we can't fix what we can't see. But the warnings are pretty obvious - you tried to pass a null variable into a function which doesn't expect it. So you need to check why that variable turned out to be null when it was supposed to be a mysqli connection object. Quite likely, I would guess, it's because your connection failed for some reason. Or you just gave the wrong variable name. hard to know, when we can't see the relevant code. But the duplicates explain most of what you need to know, anyhow

    – ADyson
    Nov 14 '18 at 23:16



















The code shown doesn't even include any calls to mysqli_real_escape_string() or mysqli_error()....we can't fix what we can't see. But the warnings are pretty obvious - you tried to pass a null variable into a function which doesn't expect it. So you need to check why that variable turned out to be null when it was supposed to be a mysqli connection object. Quite likely, I would guess, it's because your connection failed for some reason. Or you just gave the wrong variable name. hard to know, when we can't see the relevant code. But the duplicates explain most of what you need to know, anyhow

– ADyson
Nov 14 '18 at 23:16







The code shown doesn't even include any calls to mysqli_real_escape_string() or mysqli_error()....we can't fix what we can't see. But the warnings are pretty obvious - you tried to pass a null variable into a function which doesn't expect it. So you need to check why that variable turned out to be null when it was supposed to be a mysqli connection object. Quite likely, I would guess, it's because your connection failed for some reason. Or you just gave the wrong variable name. hard to know, when we can't see the relevant code. But the duplicates explain most of what you need to know, anyhow

– ADyson
Nov 14 '18 at 23:16














0






active

oldest

votes

















0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes

這個網誌中的熱門文章

Hercules Kyvelos

Tangent Lines Diagram Along Smooth Curve

Yusuf al-Mu'taman ibn Hud