PDO, server crash
Hoi,
Ik had een membersysteem ergens gevonden, maar er zit een fout in. Het gaat mis met het stukje PDO, waar ik weinig tot geen verstand van heb. Vandaar dit topic.
Hier gaat het fout:
Want namelijk als ik dan de pagina open, vliegt mijn lokale server er uit.
Als ik het laatste stukje weghaal: dbname=membersystem; blijft de server er wel in, alleen is er dan natuurlijk geen db geselecteerd, dus dat schiet ook niet echt op.
Roept u maar, als er meer code moet komen, ik heb geen idee...
Ik had een membersysteem ergens gevonden, maar er zit een fout in. Het gaat mis met het stukje PDO, waar ik weinig tot geen verstand van heb. Vandaar dit topic.
Hier gaat het fout:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$db = array(
'connection_string' => 'mysql:host=localhost;port=3306;dbname=membersystem;',
'user' => 'root',
'pass' => '*****
);
?>
$db = array(
'connection_string' => 'mysql:host=localhost;port=3306;dbname=membersystem;',
'user' => 'root',
'pass' => '*****
);
?>
Want namelijk als ik dan de pagina open, vliegt mijn lokale server er uit.
Als ik het laatste stukje weghaal: dbname=membersystem; blijft de server er wel in, alleen is er dan natuurlijk geen db geselecteerd, dus dat schiet ook niet echt op.
Roept u maar, als er meer code moet komen, ik heb geen idee...
Dat is natuurlijk flauwe kul.
Je maakt enkel een array aan..
Daar kan je server helemaal niet van crashen.
Enigste opmerking is bij pass, daar staat een string niet tussen quotes.
Je maakt enkel een array aan..
Daar kan je server helemaal niet van crashen.
Enigste opmerking is bij pass, daar staat een string niet tussen quotes.
Nee, daar heb ik net even sterretjes heen gezet...
Als ik dat er weg haal, gaat het wel goed... Waar kan dat anders in zitten?
Dit is de rest van die code...
Als ik dat er weg haal, gaat het wel goed... Waar kan dat anders in zitten?
Dit is de rest van die code...
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
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
<?php
/**
* Start session
*/
if( !isset($_SESSION) )
{
session_start();
}
/**
* Database info
* @see http://www.php.net/PDO
mysql:host=localhost;port=3306;dbname=membersystem;
*/
$db = array(
'connection_string' => 'mysql:host=localhost;port=3306;dbname=membersystem;',
'user' => 'root',
'pass' => '0611491115'
);
/**
* Used for cookie setting
*/
$domain_name = $_SERVER['SERVER_NAME'];
$script_path = str_replace($_SERVER['DOCUMENT_ROOT'], '', substr(dirname(__FILE__), 0, strrpos(dirname(__FILE__), DIRECTORY_SEPARATOR)));
if($script_path[0] != DIRECTORY_SEPARATOR)
{
$script_path = DIRECTORY_SEPARATOR.$script_path;
}
if(substr($script_path, -1) != DIRECTORY_SEPARATOR)
{
$script_path .= DIRECTORY_SEPARATOR;
}
?>
/**
* Start session
*/
if( !isset($_SESSION) )
{
session_start();
}
/**
* Database info
* @see http://www.php.net/PDO
mysql:host=localhost;port=3306;dbname=membersystem;
*/
$db = array(
'connection_string' => 'mysql:host=localhost;port=3306;dbname=membersystem;',
'user' => 'root',
'pass' => '0611491115'
);
/**
* Used for cookie setting
*/
$domain_name = $_SERVER['SERVER_NAME'];
$script_path = str_replace($_SERVER['DOCUMENT_ROOT'], '', substr(dirname(__FILE__), 0, strrpos(dirname(__FILE__), DIRECTORY_SEPARATOR)));
if($script_path[0] != DIRECTORY_SEPARATOR)
{
$script_path = DIRECTORY_SEPARATOR.$script_path;
}
if(substr($script_path, -1) != DIRECTORY_SEPARATOR)
{
$script_path .= DIRECTORY_SEPARATOR;
}
?>
Dit is nog steeds een stukje code die enkel maar wat variabelen aanmaakt. Deze code voert nog niets uit.
Wat bedoel je trouwens met "vliegt mijn lokale server eruit"? Ik heb nog nooit een vliegende server gezien. Misschien mis ik wel iets.
En je vermeldt in je titel PDO. Ik heb je nog nergens PDO zien gebruiken.
Wat bedoel je trouwens met "vliegt mijn lokale server eruit"? Ik heb nog nooit een vliegende server gezien. Misschien mis ik wel iets.
En je vermeldt in je titel PDO. Ik heb je nog nergens PDO zien gebruiken.
Sorry, volgens mij heb ik iets belangrijks niet laten zien...
Hier de code van het bestand 'start.php', waar de databaseconnectie wordt gemaakt. En met dat vliegen bedoel ik dat Apache er mee stopt, werkt niet meer, breekt af, alles behalve gewoon zijn werk.
Volgens mij gaat het mis op regel 39.
Hier de code van het bestand 'start.php', waar de databaseconnectie wordt gemaakt. En met dat vliegen bedoel ik dat Apache er mee stopt, werkt niet meer, breekt af, alles behalve gewoon zijn werk.
Volgens mij gaat het mis op regel 39.
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
// ------------------------------------------------------------------------
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 'On');
function __autoload($classname)
{
if(file_exists('classes/'.strtolower($classname).'.class.php'))
{
require_once 'classes/'.strtolower($classname).'.class.php';
}
}
/**
* Include classes
*/
require_once 'inc/config.inc.php';
require_once 'classes/exceptions.php';
require_once 'classes/template_lite/class.template.php';
require_once 'classes/template_lite/class.compiler.php';
require_once 'classes/template_lite/class.config.php';
// Create Registry class
$registry = Registry::GetInstance();
$registry -> script_path = $script_path;
$registry -> domain_name = $domain_name;
// Set timezone
date_default_timezone_set('Europe/Amsterdam');
/**
* PDO connection to database (here: mysql)
*/
try
{
$registry -> connection = new PDO($db['connection_string'], $db['user'], $db['pass']);
$registry -> connection -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// The MySQL Driver for PDO is far from perfect
if($registry -> connection -> getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql')
{
$registry -> connection -> setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
$registry -> connection -> setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
}
/**
* Start the user session
*/
$manager = new SessionManager($script_path, $domain_name);
$registry -> session = $manager -> startSession();
}
catch(PDOException $e)
{
die('Could not connect to database: '. $e->getMessage());
}
catch(Exception $e)
{
die('Errors creating session:'. $e->getMessage());
}
// Init template
$registry -> template = new Template_Lite();
$registry -> template -> config_class = 'TplConfig';
$registry -> template -> template_dir = 'template';
$session_data = $registry -> session -> session_data;
$session_data['user'] = $registry -> session -> user -> userdata;
$registry -> template -> assign('session', $session_data);
?>
// ------------------------------------------------------------------------
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 'On');
function __autoload($classname)
{
if(file_exists('classes/'.strtolower($classname).'.class.php'))
{
require_once 'classes/'.strtolower($classname).'.class.php';
}
}
/**
* Include classes
*/
require_once 'inc/config.inc.php';
require_once 'classes/exceptions.php';
require_once 'classes/template_lite/class.template.php';
require_once 'classes/template_lite/class.compiler.php';
require_once 'classes/template_lite/class.config.php';
// Create Registry class
$registry = Registry::GetInstance();
$registry -> script_path = $script_path;
$registry -> domain_name = $domain_name;
// Set timezone
date_default_timezone_set('Europe/Amsterdam');
/**
* PDO connection to database (here: mysql)
*/
try
{
$registry -> connection = new PDO($db['connection_string'], $db['user'], $db['pass']);
$registry -> connection -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// The MySQL Driver for PDO is far from perfect
if($registry -> connection -> getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql')
{
$registry -> connection -> setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
$registry -> connection -> setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
}
/**
* Start the user session
*/
$manager = new SessionManager($script_path, $domain_name);
$registry -> session = $manager -> startSession();
}
catch(PDOException $e)
{
die('Could not connect to database: '. $e->getMessage());
}
catch(Exception $e)
{
die('Errors creating session:'. $e->getMessage());
}
// Init template
$registry -> template = new Template_Lite();
$registry -> template -> config_class = 'TplConfig';
$registry -> template -> template_dir = 'template';
$session_data = $registry -> session -> session_data;
$session_data['user'] = $registry -> session -> user -> userdata;
$registry -> template -> assign('session', $session_data);
?>
Gewijzigd op 01/01/1970 01:00:00 door mark moes
PDO en crashes.. gebruik je XAMPP? Zoja dan, is het volgende misschien je probleem: http://www.apachefriends.org/f/viewtopic.php?f=16&t=34352
hm van wat ik er zo gauw van snap ligt het dus aan een bug in xampp.... Die gebruik ik ja. Met vista, en ik krijg al foutmeldingen bij het openen van de mysql admin.
EDIT
Ik heb de tut gevolgd, en de bestanden gewijzigd, maar t mag geen verschil maken. Heb je nog meer nieuws m.b.t. xampp, pdo en vista? :P
EDIT
Ik heb de tut gevolgd, en de bestanden gewijzigd, maar t mag geen verschil maken. Heb je nog meer nieuws m.b.t. xampp, pdo en vista? :P
Gewijzigd op 01/01/1970 01:00:00 door mark moes
BUMP
Het is nog niet op gelost. Heeft iemand hier verder nog ervaring mee? Xampp en PDO?
Het is nog niet op gelost. Heeft iemand hier verder nog ervaring mee? Xampp en PDO?
ik denk dat je iets veranderd hebt wat je niet mocht veranderen.. Als ik het goed heb is dat het oop membersysteem van phpfreakz?
je kan toch gwn opnieuw mysql er opzetten? of een versie van Xampp pakken die dit niet heeft.
Gewijzigd op 01/01/1970 01:00:00 door Daniel H
nee een battle op webmastercity... Zag er wel goed uit, was benieuwd hoe het werkte, kan ik altijd weer van leren... :D Ik zal xampp 1 dezer dagen wel even op nieuw installeren, wie weet wordt het daar beter van.
Zijn er verder nog problemen bekend van xampp vs. vista?
Zijn er verder nog problemen bekend van xampp vs. vista?
Wamp werkt iig correct icm Vista/ 7
apache//php error logs gecontroleerd? :P
'Marcel:
Wamp werkt iig correct icm Vista/ 7
xampp werkt op windows 7 en vista ook prima
Ok. Heb verder nooit Xampp gebruikt dus. Waar staat die X en die laatste P voor dan? Bij Wamp is het: Windows Apache MySQL, PHP toch?
XAMPP is een open-source project van ApacheFriends en bestaat onder andere uit de Apache-webserver, MySQL, PHP en Perl. XAMPP staat bekend om de eenvoudige installatie en de uitgebreide documentatie.
XAMPP bestaat al sinds 2002 komt voort uit het vroegere WAMPP (voor Windows) en LAMPP (voor Linux). XAMPP is inmiddels beschikbaar voor Linux, Windows, MacOS X en Solaris. Om deze reden is ook de naam gewijzigd van WAMPP/LAMPP naar XAMPP om de uitwisselbaarheid tussen de diverse platformen te benadrukken.
Bron: http://nl.wikipedia.org/wiki/XAMPP
XAMPP bestaat al sinds 2002 komt voort uit het vroegere WAMPP (voor Windows) en LAMPP (voor Linux). XAMPP is inmiddels beschikbaar voor Linux, Windows, MacOS X en Solaris. Om deze reden is ook de naam gewijzigd van WAMPP/LAMPP naar XAMPP om de uitwisselbaarheid tussen de diverse platformen te benadrukken.
Bron: http://nl.wikipedia.org/wiki/XAMPP
Ah oke;)
@ daniel,
welke versie heeft hier geen last van dan? volgens mij heb ik de nieuwste..
Maar ik zal m een dezer dagen even opnieuw installeren. Wie weet gaat het dan weer beter...
welke versie heeft hier geen last van dan? volgens mij heb ik de nieuwste..
Maar ik zal m een dezer dagen even opnieuw installeren. Wie weet gaat het dan weer beter...
Toch wel zonde, dat er nog steeds niet vermeld is wat de error zijn in apache errorlog. Want je zegt server vliegt eruit, maar dat weet je niet eens, misschien wordt er wel een fatal gegooid, wat veel waarschijnlijker is, dan een seg fault op je apache.
Dus kijk in je error log, voordat je een configuratie van een server gaat aanpassen. Tis een beetje omgekeerde wereld, je config tunen om je script werkend te krijgen.
Dus kijk in je error log, voordat je een configuratie van een server gaat aanpassen. Tis een beetje omgekeerde wereld, je config tunen om je script werkend te krijgen.
Nou, hier dan de log van vandaag, zelfde handelingen als anders...
Ik open de eerder geposte index, dat is de eerste regel in de log, dan start ik de server handmatig op via Services van windows, en dan volgen dus de rest van de regels...
Ik kan er niet uit wijs worden...
Ik open de eerder geposte index, dat is de eerste regel in de log, dan start ik de server handmatig op via Services van windows, en dan volgen dus de rest van de regels...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Tue May 26 17:42:40 2009] [notice] Parent: child process exited with status 255 -- Restarting.
[Tue May 26 17:46:21 2009] [warn] pid file C:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Tue May 26 17:46:21 2009] [notice] Digest: generating secret for digest authentication ...
[Tue May 26 17:46:21 2009] [notice] Digest: done
[Tue May 26 17:46:23 2009] [notice] Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.8 configured -- resuming normal operations
[Tue May 26 17:46:23 2009] [notice] Server built: Dec 10 2008 00:10:06
[Tue May 26 17:46:23 2009] [notice] Parent: Created child process 6244
[Tue May 26 17:46:24 2009] [notice] Digest: generating secret for digest authentication ...
[Tue May 26 17:46:24 2009] [notice] Digest: done
[Tue May 26 17:46:25 2009] [notice] Child 6244: Child process is running
[Tue May 26 17:46:25 2009] [notice] Child 6244: Acquired the start mutex.
[Tue May 26 17:46:25 2009] [notice] Child 6244: Starting 250 worker threads.
[Tue May 26 17:46:25 2009] [notice] Child 6244: Starting thread to listen on port 443.
[Tue May 26 17:46:25 2009] [notice] Child 6244: Starting thread to listen on port 80.
[Tue May 26 17:46:37 2009] [notice] Parent: child process exited with status 255 -- Restarting.
[Tue May 26 17:46:21 2009] [warn] pid file C:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Tue May 26 17:46:21 2009] [notice] Digest: generating secret for digest authentication ...
[Tue May 26 17:46:21 2009] [notice] Digest: done
[Tue May 26 17:46:23 2009] [notice] Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.8 configured -- resuming normal operations
[Tue May 26 17:46:23 2009] [notice] Server built: Dec 10 2008 00:10:06
[Tue May 26 17:46:23 2009] [notice] Parent: Created child process 6244
[Tue May 26 17:46:24 2009] [notice] Digest: generating secret for digest authentication ...
[Tue May 26 17:46:24 2009] [notice] Digest: done
[Tue May 26 17:46:25 2009] [notice] Child 6244: Child process is running
[Tue May 26 17:46:25 2009] [notice] Child 6244: Acquired the start mutex.
[Tue May 26 17:46:25 2009] [notice] Child 6244: Starting 250 worker threads.
[Tue May 26 17:46:25 2009] [notice] Child 6244: Starting thread to listen on port 443.
[Tue May 26 17:46:25 2009] [notice] Child 6244: Starting thread to listen on port 80.
[Tue May 26 17:46:37 2009] [notice] Parent: child process exited with status 255 -- Restarting.
Ik kan er niet uit wijs worden...
Dit is een application log, waarin staat dat het process er vandoor is gegaan, dus een segfault.
Er moet ook nog een error.log zijn daar staat in wat er fout ging. En anders een test scriptje maken, met slecht de opbouw van je PDO object, kijken wat dat doet.
Er moet ook nog een error.log zijn daar staat in wat er fout ging. En anders een test scriptje maken, met slecht de opbouw van je PDO object, kijken wat dat doet.




