Opeens doet die het niet meer!!!
weer eens zo'n apart probleem... Ik zet ergens een echo in het script (onderaan de pagina) en daarna werkt een classe structureel niet meer!
Heb alle wijzigingen ongedaan gemaakt, maar hij blijft weigeren.. Heel frustrerend :P
De foutmelding die ik krijg:
Fatal error: Cannot redeclare class config in /usr/home/deb27179/domains/bobe-multimedia.nl/public_html/cms/derhollander/config.inc.php on line 3
Hier de gebruikte bestanden:
index.php
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
// taal selecteren
// Dit wordt als eerste weergegeven. IN dit bestand word de taal geselecteerd, en daarna doorgestuurd naar index2.php.
// Momenteel dus nog NIET in gebruik
?>
// taal selecteren
// Dit wordt als eerste weergegeven. IN dit bestand word de taal geselecteerd, en daarna doorgestuurd naar index2.php.
// Momenteel dus nog NIET in gebruik
?>
index2.php
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
/*
- cookie maken
- Classes aanmaken
- install.php
- is er een GET url aanwezig?
- pagina uit database halen
- pagina aanmaak includen
- smarty template weergeven
- afsluiten
*/
// classes includen
require_once('cms/config.inc.php');
require_once('cms/classes.php');
require_once('smarty/Smarty.class.php');
// classesn aanmaken
$config = new config;
$functions = new functions;
$sql = new mysql($config->mysql_host, $config->mysql_user, $config->mysql_pass, $config->mysql_data);
$smarty = new Smarty;
// bestaat install.php
if (file_exists($config->base_dir . 'cms/install.php')) {
header ('Location: ' . $config->base_dir . 'cms/install.php');
exit;
}
// cookie maken
if ($_SERVER['REQUEST_URI'] == $config->base_uri . 'index.php') {
$lang_explode = explode('/', $_SERVER['REQUEST_URI']);
$lang = $lang_explode['0'];
if ($lang == $config->base_uri) {
$lang = $lang_explode['1'];
}
setcookie('lang', $lang);
}
// bestaat de GET 'url'
if (!isset($_GET['url'])) {
exit('Er is een fout opgetreden bij het aanvragen van deze pagina. Probeer het opnieuw: <a href="?url=/">Klik hier</a>');
}
// paginagegevens ophalen en type bepalen
$query = "SELECT `template` FROM `paginas` WHERE `url` = '$_GET]'";
$result = $sql->executeAndFetch($query);
// Standaard variabelen
$jquiry = "<script type=\"text/javascript\">
$(document).ready(
function(){
$('#fotos').innerfade({
speed: 'slow',
timeout: 4000,
type: 'sequence',
containerheight: '220px'
});
}
);
</script>";
$smarty->assign("root",$config->base_url);
$smarty->assign("domain",$config->site_domain);
$smarty->assign("template",$result['template'] . '.tpl');
$smarty->assign("jquiry", $jquiry);
// content genereren
require_once($config->base_dir . 'layout/' . $result['template'] . '.php');
// content weergeven
$smarty->display('index.tpl');
// afsluiten
$sql->close();
// visit aan database toevoegen
// ...........................................
echo $lang;
?>
/*
- cookie maken
- Classes aanmaken
- install.php
- is er een GET url aanwezig?
- pagina uit database halen
- pagina aanmaak includen
- smarty template weergeven
- afsluiten
*/
// classes includen
require_once('cms/config.inc.php');
require_once('cms/classes.php');
require_once('smarty/Smarty.class.php');
// classesn aanmaken
$config = new config;
$functions = new functions;
$sql = new mysql($config->mysql_host, $config->mysql_user, $config->mysql_pass, $config->mysql_data);
$smarty = new Smarty;
// bestaat install.php
if (file_exists($config->base_dir . 'cms/install.php')) {
header ('Location: ' . $config->base_dir . 'cms/install.php');
exit;
}
// cookie maken
if ($_SERVER['REQUEST_URI'] == $config->base_uri . 'index.php') {
$lang_explode = explode('/', $_SERVER['REQUEST_URI']);
$lang = $lang_explode['0'];
if ($lang == $config->base_uri) {
$lang = $lang_explode['1'];
}
setcookie('lang', $lang);
}
// bestaat de GET 'url'
if (!isset($_GET['url'])) {
exit('Er is een fout opgetreden bij het aanvragen van deze pagina. Probeer het opnieuw: <a href="?url=/">Klik hier</a>');
}
// paginagegevens ophalen en type bepalen
$query = "SELECT `template` FROM `paginas` WHERE `url` = '$_GET]'";
$result = $sql->executeAndFetch($query);
// Standaard variabelen
$jquiry = "<script type=\"text/javascript\">
$(document).ready(
function(){
$('#fotos').innerfade({
speed: 'slow',
timeout: 4000,
type: 'sequence',
containerheight: '220px'
});
}
);
</script>";
$smarty->assign("root",$config->base_url);
$smarty->assign("domain",$config->site_domain);
$smarty->assign("template",$result['template'] . '.tpl');
$smarty->assign("jquiry", $jquiry);
// content genereren
require_once($config->base_dir . 'layout/' . $result['template'] . '.php');
// content weergeven
$smarty->display('index.tpl');
// afsluiten
$sql->close();
// visit aan database toevoegen
// ...........................................
echo $lang;
?>
config.inc.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
class config {
/* directory */
var $base_url = 'http://cms.bobe-multimedia.nl/derhollander/';
var $base_dir = '/usr/home/deb27179/domains/bobe-multimedia.nl/public_html/cms/derhollander/';
var $base_uri = '/derhollander/';
/* names etc. */
var $site_name = 'BoBe Multimedia';
var $site_domain = 'bobe-multimedia.nl';
/* database */
var $mysql_host = 'localhost';
var $mysql_user = '********';
var $mysql_pass = '********';
var $mysql_data = '********';
}
?>
class config {
/* directory */
var $base_url = 'http://cms.bobe-multimedia.nl/derhollander/';
var $base_dir = '/usr/home/deb27179/domains/bobe-multimedia.nl/public_html/cms/derhollander/';
var $base_uri = '/derhollander/';
/* names etc. */
var $site_name = 'BoBe Multimedia';
var $site_domain = 'bobe-multimedia.nl';
/* database */
var $mysql_host = 'localhost';
var $mysql_user = '********';
var $mysql_pass = '********';
var $mysql_data = '********';
}
?>
.htaccess
RewriteEngine On
RewriteRule ^(!cms|!media|index.php|nl)/(.*) index2.php?lang=nl&url=/$2
RewriteRule ^(!cms|!media|index.php|de)/(.*) index2.php?lang=de&url=/$2
Snapt iemand wat er hier nu fout gaat?
Alvast heeeel erg bedankt!!!
Gewijzigd op 21/07/2010 22:06:24 door George Boot
misschien zinvol om je db/username/password te vullen met sterretjes!
Erg bedankt voor die opmerking!
Al iemand die een oplossing ziet?
Met de PHP code is niks mis.
Typo op jouw site:
http://bobe-multimedia.nl/webdesign/cms/
Voor een online demo kunt u contact met ons opnamen via het contactformulier.
Gewijzigd op 21/07/2010 21:31:19 door P Lekensteyn
Bedankt voor de spelfout, inmiddels aangepast..
Ik heb er wel een .htaccess aanhangen, maar die heeft de volgende inhoud:
RewriteEngine On
RewriteRule ^(!cms|!media|index.php|nl)/(.*) index2.php?lang=nl&url=/$2
RewriteRule ^(!cms|!media|index.php|de)/(.*) index2.php?lang=de&url=/$2
Daar zal het dus niet aan liggen...
Het aparte van alles is: het werkte, ik pas 2 dingen aan en het werkt niet meer. Zet alles in oorspronkelijke staat terug (zover ik weet), en het werkt nog steeds niet.. In de code zit geen fout, maar toch werkt het niet...
Programmeren, altijd leuk :D
Want wat houdt die foutmelding precies in? Dat die de classe niet kan 'openen' toch?
debug_backtrace() uitvinden op welke regel deze melding ontstaat?
Waarschijnlijk include je het bestand dubbel. Kan je niet met Bekijk mijn eerste post nog eens, daar staat alle gebruikte code in.
regel 20 index2.php, maak daar van $config = new config(); evenals alle andere classes waar je objecten van maakt. Op het moment heb je een config class (Waarom?), Ik denk dat het een beter idee is om je configuratie wat platter te zetten, zoals in een ini. Een hele class maken, en dan 'var' gebruiken ook nog is niet zo mooi. En dan te denken, dat je dit pakket verkoopt... En je moet je eigen code nog maar eens goed doorbladeren, want class config word aangemaakt voor de include. Je krijgt die error namelijk op de tweede class die je aanroept, niet op de eerste. 'redeclare'.
Als laatste raad ik je aan om hard weg te rennen van smarty. Daar wil je niks mee te maken hebben. Je zou eens kunnen kijken naar phptal. Al vind ik al die 'html parsers' vrij nutteloos.
Gewijzigd op 22/07/2010 07:49:36 door wesley Overdijk
Gebruik je toevallig firefox met fireftp?
waarom staat er op die site "een van onze ..." terwijl je er vervolgens 3 laat zien? 1 en 3.. beetje vreemd in mijn ogen?
En wat is verder het probleem als ik mijn config in een class zet? Naar mijn mening werkt dat juist wel lekker. Wesley, kun je mij zeggen wat daar dan zo verkeerd aan is?
Verder zal ik even die classen aanvragen aanpassen zoals jij zegt.
En smarty vind ik prima werken.. Het zal dan vast niet de beste en snelste zijn, maar voor mijn doeleinde is het voorlopig goed genoeg denk ik! Of hebben jullie daar een andere mening over?
Terwijl op de andere pagina's het gewoon ZONDER dit ook werkt. Zit daar een duidelijke rede achter?
Dit is trouwens Bobe CMS 2; nog in ontwikkeling ;). Ben bezig met allerlei proefscripts etc.
George Boot op 22/07/2010 12:04:28:
Verrek zeg, nu doet hij het opeens weer! Alleen die () achter de declaraties van de classen...
Terwijl op de andere pagina's het gewoon ZONDER dit ook werkt. Zit daar een duidelijke rede achter?
Dit is trouwens Bobe CMS 2; nog in ontwikkeling ;). Ben bezig met allerlei proefscripts etc.
Terwijl op de andere pagina's het gewoon ZONDER dit ook werkt. Zit daar een duidelijke rede achter?
Dit is trouwens Bobe CMS 2; nog in ontwikkeling ;). Ben bezig met allerlei proefscripts etc.
Like i said. Step your game up, je script in php 4 modus, en zelfs dat die je minder. de haken zijn er om de constructor waardes mee te geven, doe je dit niet, ziet de php parser alleen een class die word aangemaakt. Graag gedaan. :p
en de config in de classes vind ik mja... 'lelijk'. Erg onhandig. Ik heb nog wel wat tips voor je, zal je een bericht sturen.
Gewijzigd op 22/07/2010 17:08:39 door wesley Overdijk
Okee, ik wacht je bericht af!
Post die "tips" dan hier zodat iedereen er wat aan heeft..