Fatal error na toepassen intval & mres
Pagina: « vorige 1 2 3 volgende »
Het is niet echt een fout het is een notice (een waarschuwing)...
als je de:
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:
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
39
40
41
42
43
44
45
46
47
48
49
50
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
39
40
41
42
43
44
45
46
47
48
49
50
<?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;
?>
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;
?>
Gewijzigd op 17/11/2012 17:54:07 door Marco PHPJunky
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
Gewijzigd op 17/11/2012 18:06:03 door Peter Overdam
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
Gewijzigd op 17/11/2012 18:05:48 door Peter Overdam
Weer Ge-update...
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
Gewijzigd op 17/11/2012 18:05:31 door Peter Overdam
oeps sorry mijn fout had nog 1 ding niet goed staan nu wel :P
Krijg nu geen fout meldingen meer maar wel de volgende regel.
Verkeerde activatie gegevens, controleer de url in uw activatie mail.
is de url die je gebruikt wel correct ?
Want hij kan niks vinden in de database...
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]', '');
welke link staat er in de mail en welke code...
welk resultaat krijg je uit je array die je had als je op de pagina komt vanuit de email...
krijg je nog overige meldingen ?
Bij het maken van een account geeft hij netjes aan dat hij is aangemaakt in de DB wordt het account ook correct ingevoerd in mijn mail krijg ik de volgende url.
http://www.mijndomein.nl/account-activeren/90/I7GcDnFiHEMhJd043OAgBP6akpNClKmeoL9f1jb285
En de pagina zelf geeft de volgende gegevens door:
Array
(
[page] => account-activeren
[id] => 90
[serial] => I7GcDnFiHEMhJd043OAgBP6akpNClKmeoL9f1jb285
)
Verkeerde activatie gegevens, controleer de url in uw activatie mail.
Voor de rest krijg ik geen overige meldingen
Greetz
Peter
Maar ik heb de code hierboven weer aangepast want we moeten even kijken of die query goed gaat...
Array
(
[page] => account-activeren
[id] => 90
[serial] => I7GcDnFiHEMhJd043OAgBP6akpNClKmeoL9f1jb285
)
bool(false)
Verkeerde activatie gegevens, controleer de url in uw activatie mail.
Quote:
@Bart v B,
Heb je ooit is in een framework/classes gekeken ?!? (denk het niet, en anders niet echt goed waarscheinlijk)
want daar worden/kunnen ook functies door andere functies en in functies aangeroepen worden en gebruikt worden.
En Classes nemen andere classes hun eigenschappen over en functies.
En nee dat is niet 1 spijker met 2 hamers slaan!
Heb je ooit is in een framework/classes gekeken ?!? (denk het niet, en anders niet echt goed waarscheinlijk)
want daar worden/kunnen ook functies door andere functies en in functies aangeroepen worden en gebruikt worden.
En Classes nemen andere classes hun eigenschappen over en functies.
En nee dat is niet 1 spijker met 2 hamers slaan!
Ehm.., even denken...
Jij begint even hier over frameworks/classes en doet een aanname dat ik daar waarschijnlijk niets vanaf weet.
Als we het dan toch over classes/frameworks hebben, dan kan ik je vertellen dat ik daar redelijk in thuis ben.
De function zoals de TS het hier in dit topic heeft staan is totaal irrelevant want zoals ik het nu zie staat het niet in een framework. En als dat al zo is, dan is het nog een nutteloze.
We hebben het over een _escape_string() funtction die niet eens gebruikt moet worden in zijn probleem, laat staan dat deze dan zoals bedoeld gebruikt word.
Een class is uitbreidbaar, niet bedoeld voor een ding.
In dit geval gaat het over een funtction escapen dan moet het dus een systeem zijn die dus gebruikt kan worden voor meerdere types b.v. mysql/postgress/mssql/sqllite e.d..
In het geval van de TS is het alleen een mysql dus een totale nutteloze function en kan hij het beter doen rechtstreeks in de query.
Dus zoals hij het nu heeft staan is denk ik beter dan wat het was.
Dat hij van mij nog niet helemaal klopt is true, had even niet verder gekeken hoe het verder geïmplementeerd moest worden, maar dacht dat ik al voldoende hints had gegeven om hem verder te helpen.
Helaas had ik even geen tijd meer om hem verder te helpen. Dus vandaar dat het lijkt op een wilde gok. ;)
Database object is aangemaakt je ziet het niet in het script maar hij wordt wel geinclude in de website.
Code (php)
1
2
3
2
3
<?php
$check_result = $mysqli->query("select id, serial from companion where id = ". intval($_GET['id']) . " and serial = '".$serial_data. "' limit 1");
?>
$check_result = $mysqli->query("select id, serial from companion where id = ". intval($_GET['id']) . " and serial = '".$serial_data. "' limit 1");
?>
Gewijzigd op 17/11/2012 18:57:52 door Ger van Steenderen
vervang:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$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;
?>
$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;
?>
eens met:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$check_result = $mysqli->query('select count(*) from companion');
$row = $check_result->fetch_row();
echo '#: ', $row[0];
?>
$check_result = $mysqli->query('select count(*) from companion');
$row = $check_result->fetch_row();
echo '#: ', $row[0];
?>
om even te kijken of we er wat uit kunnen krijgen...
Even ter controle script ziet er nu als volgt uit:
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
39
40
41
42
43
44
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
39
40
41
42
43
44
<?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 count(*) from companion');
$row = $check_result->fetch_row();
echo '#: ', $row[0];
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;
?>
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 count(*) from companion');
$row = $check_result->fetch_row();
echo '#: ', $row[0];
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;
?>
En ik krijg de volgende gegevens eruit:
Array
(
[page] => account-activeren
[id] => 90
[serial] => I7GcDnFiHEMhJd043OAgBP6akpNClKmeoL9f1jb285
)
#: 2
object(mysqli_result)#2 (5) {
["current_field"]=>
int(0)
["field_count"]=>
int(1)
["lengths"]=>
array(1) {
[0]=>
int(1)
}
["num_rows"]=>
int(1)
["type"]=>
int(0)
}
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 28