Beste,
Excuus maar ik ben er weer.
Ik heb het hele internet afgezocht maar ik kan mijn fout niet vinden.
Ik heb een anti SQL injectie functie gemaakt in mijn inlog pagina.
Functie
Als ik deze toe pas in mijn inlog paginaPHP Code:
// Function: data
// Purpose: preventing SQL injections
function form($data) {
global $db_connect;
$data = ereg_replace("[\'\")(;|`,<>]", "", $data);
$newdata = mysql_real_escape_string(trim($data), $db_connect);
return stripslashes($newdata);
}
Login
dan krijg ik de volgende melding:PHP Code:
$query = mysql_query("SELECT * FROM `students` WHERE `schoolid` = '".$connector->form($username)."' AND `password` = '".$connector->form($password)."'") or die (mysql_error());
$insert = mysql_num_rows($query); // Checks to see if anything is in the db.
if ($insert == 1) { // There is something in the db. The username/password match up.
$qry_rank = mysql_query("SELECT rank FROM `students` WHERE `schoolid` = '".$username."'") or die (mysql_error());
$rst_rank = mysql_fetch_array($qry_rank);
$qry_id = mysql_query("SELECT firstname FROM `students` WHERE `schoolid` = '".$username."'") or die (mysql_error());
$rst_id = mysql_fetch_array($qry_id);
$_SESSION['rank'] = $rst_rank[0];
$_SESSION['logged'] = 1; // Sets the session.
$_SESSION['firstname'] = $qry_id[0];
header("Location: index2.php"); // Goes to main page.
}else{
$_SESSION['logerror'] = "Username or Password didn't match";
header("Location: index.php");
}
ik ben al flink wezen zoeken op het internet.Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in D:\xampp\htdocs\internship\includes\dbconnector.ph p on line 41
Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in D:\xampp\htdocs\internship\includes\dbconnector.ph p on line 41
In de meeste gevallen was het op een type fout of geen connectie met het database.
Maar dat is het niet volgens mij, ik heb het bestand na gekeken
- [PHP] Functie geeft een foutmelding terug
-
18-02-2011, 08:13 #1
- Berichten
- 133
- Lid sinds
- 14 Jaar
[PHP] Functie geeft een foutmelding terug
-
In de schijnwerper
Villaspot.nl: Premium website met sterke autoriteit in de vakantiehuizenbrancheWebsite te koopGezocht linkpartners en blogs DA20+ TF20+ | Ruil en Koop | Diverse branchesSEO/LinkbuildingDegelijke Affiliate Zorgverzekeringswebsite | Hoge commissie per saleWebsite te koopMeer volgers, likes & views nodig? Dit is wat je moet doen!Social media -
18-02-2011, 08:19 #2
- Berichten
- 169
- Lid sinds
- 15 Jaar
Re: [PHP] Functie geeft een foutmelding terug
Als je ook even aangeeft welke regel line 41 is in dbconnector.php dan kunnen we tenminste gericht zoeken...
-
18-02-2011, 08:22 #3
- Berichten
- 1.470
- Lid sinds
- 19 Jaar
Re: [PHP] Functie geeft een foutmelding terug
Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in D:\xampp\htdocs\internship\includes\dbconnector.php on line 41Warning: mysql_real_escape_string() expects parameter 2 to be resource, null given in D:\xampp\htdocs\internship\includes\dbconnector.ph p on line 41
......
-
18-02-2011, 08:30 #4
- Berichten
- 169
- Lid sinds
- 15 Jaar
Re: [PHP] Functie geeft een foutmelding terug
@I. van zon.. ja ik kan niet ruiken welke lines dat zijn hoor..
-
18-02-2011, 08:37 #5
- Berichten
- 133
- Lid sinds
- 14 Jaar
Re: [PHP] Functie geeft een foutmelding terug
Sorry ! mijn excuus mark !!
Volgens het bestand gaat het om de volgende regel in mijn functie
PHP Code:$newdata = mysql_real_escape_string(trim($data), $db_connect);
Ik kan alleen de fout in deze line niet vinden.
Sorry voor mijn onduidelijkheid
Hartelijk bedankt alvast voor de hulp!
-
18-02-2011, 08:48 #6
- Berichten
- 980
- Lid sinds
- 17 Jaar
Re: [PHP] Functie geeft een foutmelding terug
$db_connect is geen valide sql object ; de verbinding is van te voren nog niet gemaakt in die variabele, of die variabele is in deze pagina niet op te vragen ( geen globale variabele ).
$db_connect = mysql_connect();
-
18-02-2011, 08:51 #7
- Berichten
- 133
- Lid sinds
- 14 Jaar
Re: [PHP] Functie geeft een foutmelding terug
DBconnector
PHP Code:<?php
// Class: DbConnector
// Purpose: Connect to a database, MySQL version
require_once ('config.php');
class dbconnector extends config {
private $link;
// Function: DbConnector
// Purpose: Contect to the database
function dbconnector(){
// Load settings from parent class
$settings = Config::getSettings();
$db_host = $settings['dbhost'];// Server Hostname
$db_user = $settings['dbuser']; // Username
$db_pass = $settings['dbpass']; // Password
$db_database = $settings['dbname']; // Database Name
$db_connect = mysql_connect ($db_host, $db_user, $db_pass);
$db_select = mysql_select_db ($db_database); // Selects the database.
}
// Function: Close
// Purpose: Close the connection
function close() {
mysql_close();
}
// Function: data
// Purpose: preventing SQL injections
function form($data) {
global $db_connect;
$data = ereg_replace("[\'\")(;|`,<>]", "", $data);
$newdata = mysql_real_escape_string(trim($data), $db_connect);
return stripslashes($newdata);
}
}
?>
-
18-02-2011, 09:26 #8
- Berichten
- 554
- Lid sinds
- 15 Jaar
Re: [PHP] Functie geeft een foutmelding terug
Declareer $db_connect ook als instantie variabele. Dan moet het werken.
(het is nu namelijk een lokale variabele binnen de constructor, en dus niet leesbaar door de functie "form")
-
18-02-2011, 09:31 #9
- Berichten
- 1.263
- Lid sinds
- 16 Jaar
Re: [PHP] Functie geeft een foutmelding terug
Of zoiets
PHP Code:<?php
// Class: DbConnector
// Purpose: Connect to a database, MySQL version
require_once ('config.php');
class dbconnector extends config {
private $link;
// Function: DbConnector
// Purpose: Contect to the database
function dbconnector($returndbc = FALSE){
// Load settings from parent class
$settings = Config::getSettings();
$db_host = $settings['dbhost'];// Server Hostname
$db_user = $settings['dbuser']; // Username
$db_pass = $settings['dbpass']; // Password
$db_database = $settings['dbname']; // Database Name
$db_connect = mysql_connect ($db_host, $db_user, $db_pass);
$db_select = mysql_select_db ($db_database); // Selects the database.
if($returndbc == TRUE)
{
return $db_connect;
}
}
// Function: Close
// Purpose: Close the connection
function close() {
mysql_close();
}
// Function: data
// Purpose: preventing SQL injections
function form($data) {
global $db_connect;
$data = ereg_replace("[\'\")(;|`,<>]", "", $data);
$newdata = mysql_real_escape_string(trim($data), $this->dbconnector(TRUE));
return stripslashes($newdata);
}
}
?>
't is nog vroeg, k betwijfel zelf bij nader inzien of het werkt..
-
18-02-2011, 09:52 #10
- Berichten
- 91
- Lid sinds
- 18 Jaar
Re: [PHP] Functie geeft een foutmelding terug
Je zou van een class variable kunnen gebruiken. Deze kan je in de gehele class gebruiken en in de childeren classes. Deze class variable roep je aan door $this te gebruiken.
Dit ziet er dan zo uit:
PHP Code:<?php
// Class: DbConnector
// Purpose: Connect to a database, MySQL version
require_once ('config.php');
class dbconnector extends config {
private $link;
private $db_connect;
// Function: DbConnector
// Purpose: Contect to the database
function dbconnector(){
// Load settings from parent class
$settings = Config::getSettings();
$db_host = $settings['dbhost'];// Server Hostname
$db_user = $settings['dbuser']; // Username
$db_pass = $settings['dbpass']; // Password
$db_database = $settings['dbname']; // Database Name
$this->db_connect= mysql_connect ($db_host, $db_user, $db_pass);
$db_select = mysql_select_db ($db_database); // Selects the database.
}
// Function: Close
// Purpose: Close the connection
function close() {
mysql_close();
}
// Function: data
// Purpose: preventing SQL injections
function form($data) {
$data = ereg_replace("[\'\")(;|`,<>]", "", $data);
$newdata = mysql_real_escape_string(trim($data), $this->db_connect);
return stripslashes($newdata);
}
}
?>Laatst aangepast door Jorit Tijsen : 18-02-2011 om 10:00 Reden: Uitleg geplaatst over class variable
-
18-02-2011, 10:11 #11
- Berichten
- 133
- Lid sinds
- 14 Jaar
Re: [PHP] Functie geeft een foutmelding terug
Je zou van een class variable kunnen gebruiken. Deze kan je in de gehele class gebruiken en in de childeren classes. Deze class variable roep je aan door $this te gebruiken.
Dit ziet er dan zo uit:
PHP Code:<?php
// Class: DbConnector
// Purpose: Connect to a database, MySQL version
require_once ('config.php');
class dbconnector extends config {
private $link;
private $db_connect;
// Function: DbConnector
// Purpose: Contect to the database
function dbconnector(){
// Load settings from parent class
$settings = Config::getSettings();
$db_host = $settings['dbhost'];// Server Hostname
$db_user = $settings['dbuser']; // Username
$db_pass = $settings['dbpass']; // Password
$db_database = $settings['dbname']; // Database Name
$this->db_connect= mysql_connect ($db_host, $db_user, $db_pass);
$db_select = mysql_select_db ($db_database); // Selects the database.
}
// Function: Close
// Purpose: Close the connection
function close() {
mysql_close();
}
// Function: data
// Purpose: preventing SQL injections
function form($data) {
$data = ereg_replace("[\'\")(;|`,<>]", "", $data);
$newdata = mysql_real_escape_string(trim($data), $this->db_connect);
return stripslashes($newdata);
}
}
?>
Ik was zelf ookal bezig om iets dergelijks te realiseren alleen ik was de
"this-> "vergeten in te vullen!
PHP Code:$newdata = mysql_real_escape_string(trim($data), $this->db_connect);
Is dit nu genoeg beveilig om een SQL injectie te voorkomen ?
-
18-02-2011, 10:13 #12
- Berichten
- 1.263
- Lid sinds
- 16 Jaar
Re: [PHP] Functie geeft een foutmelding terug
Fijne gozer,
Ik was zelf ookal bezig om iets dergelijks te realiseren alleen ik was de
"this-> "vergeten in te vullen!
PHP Code:$newdata = mysql_real_escape_string(trim($data), $this->db_connect);
Is dit nu genoeg beveilig om een SQL injectie te voorkomen ?
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic