Beste Mensen,

Ik ben momenteel bezig om mijn scripts te beveiligen tegen SQL injection en dit is is allemaal vrij nieuw voor mij, echter krijg ik telkens een fatal error en ik zie niet direct waar de fout zit. Ik krijg de volgende melding.

Fatal error: Call to undefined function mres() in /var/www/vhosts/7/125190/webspace/httpdocs/mijndomein.nl/modules/account/activate-account.php on line 17

Line 17 is hieronder afgebeeld:

<?php
$check_sql = "SELECT id, serial FROM companion WHERE id=". intval($_GET['id']) ." AND serial='". mres($_GET['serial']) ."' ";
?>

Hoop dat iemand mij hiermee verder kan helpen.

Greetz
Peter
oke dan,
Het is niet echt een fout het is een notice (een waarschuwing)...
als je de:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>
weg haalt is die ook weg maar het is niet netjes...
Maar laat hem voor nu nog maar even staan en probeer het eens zo:

<?php

echo '<pre>'.print_r($_GET, true).'<pre>';
// dit stukje weg halen of uit zetten als je hem online/'live' zet...
error_reporting(E_ALL);
ini_set('display_errors', 1);

// Get the needed data
if( isset($_GET['id']) && isset($_GET['serial']) ):

if ( is_numeric($_GET['id']) && !is_null($_GET['id']) && (int)$_GET['id'] && !empty($_GET['id']) && !is_null($_GET['serial']) && !empty($_GET['serial']) && is_string($_GET['serial']) ):
// contoleer de serial...
$serial_data = $mysqli->real_escape_string($_GET['serial']);

$check_result = $mysqli->query('select id, serial from companion where id = '. intval($_GET['id']) .' and serial = '.$serial_data.' limit 1');
if( $check_result ):
// Cycle through results
while ( $row = $check_result->fetch_object() ):
echo '<pre>';
echo var_dump($row);
echo '</pre>';
endwhile;
endif;

echo '<pre>';
echo var_dump($check_result);
echo '</pre>';

if( $check_result ):

$sql = 'update companion set active = 1 where id = '.(int)$_GET['id'].' limit 1';
$result = $mysqli->query($sql);

if ( $mysqli->affected_rows() == 1 ):

echo 'Uw account is geactiveerd';
else: // else als er niks is bijgewerkt in de database...
echo 'Er ging is verkeerd tijdens het updata van de database, probeer het opnieuw a.u.b';
endif;
else: // else als er iets verkeerds is met de activatie serial...
echo 'Verkeerde activatie gegevens, controleer de url in uw activatie mail.';
endif;
else: // else if het id en/of de serial zijn niet correct...
echo 'Een van de mee gegeven data is incorrect, controlleer uw invoer!.';
endif;
else: // else als er geen id of serial gevonden word...
echo 'Er is iets niet goed gegaan neem contact op met de webmaster';
endif;

?>
@Marco
Krijg dit keer wel een echte error

Fatal error: Call to a member function execute() on a non-object in /var/www/vhosts/7/125190/webspace/httpdocs/mijndomein.nl/modules/account/activate-account.php on line 15
heb me post ge-update...

Weer Ge-update
Krijg nog steeds een Fatal Error

Fatal error: Call to a member function execute() on a non-object in /var/www/vhosts/7/125190/webspace/httpdocs/mijndomein.nl/modules/account/activate-account.php on line 15
Krijg nu een waarschuwing en een error

Notice: Undefined variable: db in /var/www/vhosts/7/125190/webspace/httpdocs/mijdomein.nl/modules/account/activate-account.php on line 15

Fatal error: Call to a member function query() on a non-object in /var/www/vhosts/7/125190/webspace/httpdocs/mijndomein.nl/modules/account/activate-account.php on line 15
oeps sorry mijn fout had nog 1 ding niet goed staan nu wel :P
@Marco
Krijg nu geen fout meldingen meer maar wel de volgende regel.

Verkeerde activatie gegevens, controleer de url in uw activatie mail.
mmm staat er wel wat in de database waarmee je test ?
is de url die je gebruikt wel correct ?

Want hij kan niks vinden in de database...
@Marco
Er staat zeker wat in de DB heb voor de zekerheid een nieuw accountje aangemaakt om te testen.

--
-- Tabel structuur voor tabel `companion`
--

CREATE TABLE IF NOT EXISTS `companion` (
`id` int(11) NOT NULL auto_increment,
`active` int(1) NOT NULL,
`ipadres` varchar(100) NOT NULL,
`password` varchar(2000) NOT NULL,
`serial` varchar(255) NOT NULL,
`gender` varchar(10) NOT NULL,
`stagename` varchar(100) NOT NULL,
`dateofbirth` varchar(100) NOT NULL,
`phonenumber` varchar(100) NOT NULL,
`emailadress` varchar(100) NOT NULL,
`website` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=91 ;

--
-- Gegevens worden uitgevoerd voor tabel `companion`
--

INSERT INTO `companion` (`id`, `active`, `ipadres`, `password`, `serial`, `gender`, `stagename`, `dateofbirth`, `phonenumber`, `emailadress`, `website`) VALUES
(90, 0, '83.84.1.245', '5886ecc83e86994b2ac6bb54d64b7fbe', 'I7GcDnFiHEMhJd043OAgBP6akpNClKmeoL9f1jb285', 'Dhr', 'Peter Overdam', '10 December 1979', '09000538', '[email protected]', '');

Reageren