Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> fatal error: Cannot redeclare
RAM
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 7.10.2008

Ostrzeżenie: (0%)
-----


Dzień dobry,
Mam błąd: "Cannot redeclare openDatabase()". Mój skrypt zaczyna się tak:

<?php
require_once 'include/common.inc.php';
require_once 'include/functions.inc.php';
require_once 'include/database.inc.php';
require_once 'include/announcement.inc.php';
require_once 'include/Captcha.php';
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
error(ERRMSG_POST_ALLOWED_ONLY);
}
sessionBegin();
savePostInSession();
if (!openDatabase()) {
error(ERRMSG_DATABASE_ACCESS_PROBLEM);

}

gdzie database.inc.php zawiera pojedynczą definicję funkcji openDatabase():

<?php
require_once 'common.inc.php';
if (!isset($db)) {
$db = null;
}
$inTransaction = false;
$regions = array();
$estateTypes = array();
$ownership = array();
$standards = array();
$furnitureTypes = array();
$offerTypes = array();
$currencies = array();
$agencies = array();
$priceFor = array();
$units = array('M2' => 'm<sup>2<\/sup>', 'HA' => 'ha (hektarów)');
$vulgar = array();
function openDatabase() {
global $db;
try {
$db = new PDO('mysql:host=' . MYSQL_SERVER . ';dbname=' .
MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD);
$db->exec('SET NAMES latin2');
$db->exec('SET CHARACTER SET latin2 COLLATE latin2_general_ci');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
register_shutdown_function('closeDatabase');
} catch (PDOException $e) {
return false;
}
return true;
}

Pozostałe inkludowane pliki nie zawierają funkcji openDatabase().
Polecenie:
robert@pecet:~/public_html$ find . -exec grep -H -n 'function openDatabase' {} \;
zwraca:
./include/database.inc.php:25:function openDatabase() {
więc w całej aplikacji jest tylko jedno wystąpienie definicji openDatabase().
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Proszę wstawić BBCODE


--------------------
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Proszę nauczyć się też korzystać z Google'a: http://www.google.com/search?client=opera&...-8&oe=utf-8
Go to the top of the page
+Quote Post
RAM
post
Post #4





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 7.10.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2. require_once 'include/common.inc.php';
  3. require_once 'include/functions.inc.php';
  4. require_once 'include/database.inc.php';
  5. require_once 'include/announcement.inc.php';
  6. require_once 'include/Captcha.php';
  7. if ($_SERVER['REQUEST_METHOD'] != 'POST') {
  8. error(ERRMSG_POST_ALLOWED_ONLY);
  9. }
  10. sessionBegin();
  11. savePostInSession();
  12. if (!openDatabase()) {
  13. error(ERRMSG_DATABASE_ACCESS_PROBLEM);
  14. }


gdzie database.inc.php zawiera pojedynczą definicję funkcji openDatabase():

  1. <?php
  2. require_once 'common.inc.php';
  3. if (!isset($db)) {
  4. $db = null;
  5. }
  6. $inTransaction = false;
  7. $regions = array();
  8. $estateTypes = array();
  9. $ownership = array();
  10. $standards = array();
  11. $furnitureTypes = array();
  12. $offerTypes = array();
  13. $currencies = array();
  14. $agencies = array();
  15. $priceFor = array();
  16. $units = array('M2' => 'm<sup>2<\/sup>', 'HA' => 'ha (hektarów)');
  17. $vulgar = array();
  18.  
  19. function openDatabase() {
  20. global $db;
  21. try {
  22. $db = new PDO('mysql:host=' . MYSQL_SERVER . ';dbname=' .
  23. MYSQL_DATABASE, MYSQL_USER, MYSQL_PASSWORD);
  24. $db->exec('SET NAMES latin2');
  25. $db->exec('SET CHARACTER SET latin2 COLLATE latin2_general_ci');
  26. $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  27. register_shutdown_function('closeDatabase');
  28. } catch (PDOException $e) {
  29. return false;
  30. }
  31. return true;
  32. }


Z Google potrafię korzystać.
A w czym twój link miałby pomóc?

Dodam, że problemu nie było przez długi czas. W pewnym momencie wyskoczył ten błąd, mimo że nie przypominam sobie żebym coś zmieniał w kodzie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 23:09