Door
Peter Overdam
op 17-11-2012 11:36
gewijzigd op 17-11-2012 18:06
4.625 views
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']) ."' ";
?>
affected_rows moet zonder de haakjes.
Maar waarom heb je mijn advies niet gewoon opgevolgd, de fout was duidelijk: serial is een varchar en de waarde moet dus tussen ''
@Bart
Als jij op "" doelt dat heb ik al geprobeerd ik hoop meer eigenlijk dat me server in de fik vliegt.
Begin een beetje gefrusteerd te raken hier met al die ERRORS voor me neus.
Er is zoveel in het script veranderd en aangepast dat ik hem nauwelijks nog begrijp en weet echt niet waar ik zoeken moet voor een fout.
Fatal error: Call to undefined method mysqli::affected_rows() in /var/www/vhosts/7/125190/webspace/httpdocs/mijndomein.nl/modules/account/activate-account.php on line 34
Damm dat ga je niet menen heb ik daar overheen gekeken jo..
Thnx Ger.. (schaamte dat ik daar overheen kijk)
<?php
// dit stukje weg halen of uit zetten als je hem online/'live' zet...
echo '<pre>'.print_r($_GET, true).'<pre>';
error_reporting(E_ALL);
ini_set('display_errors', 1);
// Get the needed data
if( isset($_GET['id']) && isset($_GET['serial']) ):
$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 update 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;
Damm dat ga je niet menen heb ik daar overheen gekeken jo..
Thnx Ger.. (schaamte dat ik daar overheen kijk)
<?php
// dit stukje weg halen of uit zetten als je hem online/'live' zet...
echo '<pre>'.print_r($_GET, true).'<pre>';
error_reporting(E_ALL);
ini_set('display_errors', 1);
// Get the needed data
if( isset($_GET['id']) && isset($_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 ):
$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;
?>
Hey Marco dit script hierboven bevat een fout dit geeft hij al aan in Dreamweaver en als ik hem toch upload en uitprobeer dan doet hij helemaal niks zelfs geen foutmelding.
@Marco
Krijg geen foutmelding meer, maar krijg wel de melding dat bij het updaten iets verkeerd is gegaan
Array
(
[page] => account-activeren
[id] => 90
[serial] => I7GcDnFiHEMhJd043OAgBP6akpNClKmeoL9f1jb285
)
Er ging is verkeerd tijdens het updata van de database, probeer het opnieuw