Ocena wątku:
- 0 głosów - średnia: 0
- 1
- 2
- 3
- 4
- 5
problem Fatal error: Cannot redeclare class
|
Liczba postów: 15
Liczba wątków: 7
Dołączył: 19-12-2008
Reputacja:
0
Witam serdecznie
Otóż mam taki problem że wyświetla mi się błąd
Kod: Fatal error: Cannot redeclare class InvalidArgumentException in E:\xampplite\htdocs\tomasz\KURSY\PHP\PHP_i_MySQL_APLIKACJE\rozdzial_20\errors.inc on line 10
serwer jest na localhoscie i tak się właśnie zastanawiam czy nie powinno się w jakiś sposób skonfigurować plik php.ini
dodam że przy includowaniu używam require_once('nazwa_pliku');
podwójnie zdeklarowanej klasy też nie mam
z góry dziękuję za odp
Liczba postów: 938
Liczba wątków: 22
Dołączył: 21-01-2009
Reputacja:
23
10-07-2009, 17:15
(Ten post był ostatnio modyfikowany: 10-07-2009, 17:15 przez dziamber.)
Taki sam problem miałem ostatnio ale miałem zadeklarowaną dwa razy tą samą klasę, więc sprawdz dokładnie jeszcze raz  I pokaż nam ten kod
Liczba postów: 15
Liczba wątków: 7
Dołączył: 19-12-2008
Reputacja:
0
Wydaje mi się że nie mam zadeklarowanej dwa razy tej samej klasy. Otóż jest to kod formularza w jednym pliku mam kod klasy
Kod: <?php
require_once('dbinfo.inc');
require_once('errors.inc');
class UserManager
{
public function isValidUserName($in_user_name)
{
if($in_user_name =='' or ereg('[^[:alnum:] _-]', $in_user_name)===TRUE)
return FALSE;
else
return TRUE;
}
public function createAccount($in_uname,$in_pw,$in_fname,$in_email,$in_year,$in_month,$in_day)
{
if($in_pw =='' or $in_fname=='' or !$this->isValidUserName($in_uname))
{
throw new InvalidArgumentException();
}
$conn=$this->getConnection();
try
{
$exists=False;
$exists=$this->userNameExists($in_uname,$conn);
if($exists===true)
throw new UserAlreadyExistsException();
$uname=$this->super_escape_string($in_uname,$conn);
$fname=$this->super_escape_string($in_fname,$conn);
$email=$this->super_escape_string($in_email,$conn);
$pw = md5($in_pw);
$qstr= <<<OEM
INSERT INTO Users(user_name,full_name,user_email,birthdate,password) VALUES
('$uname', '$fname','$email', '$in_year-$in_month-$inday','$pw')
OEM;
$result=@$conn->query($qstr);
if($result===FALSE)
{
throw new DatabaseErrorException($conn->error);
}
$user_id=$conn->insert_id;
}
catch(Exception $e)
{
if(isset($conn))
$conn->close();
throw $e;
}
$conn->close();
return $user_id;
}
public function userNameExists($in_uname,$in_db_conn=NULL)
{
if($in_uname=='')
{
throw new InvalidArgumentException();
}
if($in_db_conn===NULL)
$conn=$this->getConnection();
else
$conn=$in_db_conn;
try
{
$name=$this->super_escape_string($in_uname,$conn);
$qstr= <<<EOM
SELECT user_name FROM Users WHERE user_name='$name'
EOM;
$result=$conn->query($qstr);
if($result ===FALSE)
{
throw new DatabaseErrorException($conn->error);
}
$user_exists=False;
while(($row=@$result->fetch_assoc()) !== NULL )
{
if($row['user_name']==$in_uname )
{
$user_exists=TRUE;
break;
}
}
}
catch(Exception $e)
{
if($in_db_conn===NULL and isset($conn))
$conn->close();
throw $e;
}
$result->close();
if($in_db_conn===NULL)
$conn->close();
return $user_exists;
}
# PRIVATE FUNCTIONS
private function getConnection()
{
$conn= new mysqli(DB_SERVER,DB_USER,DB_PW,DB_DB);
if(mysqli_connect_errno() != 0)
{
throw new DatabaseErrorException(mysqli_connect_error());
}
return $conn;
}
private function super_escape_string($in_string,$in_conn,$in_removePct=False)
{
$str=$in_super_escape_string($in_string);
if($in_reomve_Pct)
$str=ereg_replace('([%;])','\\\1', $str);
return $str;
}
}
?>
a w innym tworzenie uzytkownika
Kod: <?php
require_once('UserManager.inc');
require_once('errors.inc');
session_start();
$uname=isset($_POST['username']) ? $_POST['username']:'';
$pw1=isset($_POSt['password1']) ? $_POST['password1']:'';
$pw2=isset($_POST['password2']) ? $_POST['password2']:'';
$fname=isset($_POST['fullname']) ? $_POST['fullname']:'';
$email=isset($_POST['emailaddr']) ? $_POST['emailaddr']:'';
$year=isset($_POST['year']) ? intval($_POST['year']):0;
$month=isset($_POST['month']) ? intval($_POST['month']):0;
$day=isset($_POST['day']) ? intval($_POST['day']):0;
if($uname == '' or $fname == '' or $pw1 == '' or $pwd2 == '')
{
throw new InvalidInputException();
}
$usermgr= new UserManager();
$result= $usermgr->isValidUserName($uname);
if($result !== TRUE)
{
throw new InvalidInputException();
}
if($pw1!= $pw2)
{
throw new InvalidInputException();
}
if(!checkdate($month,$day, $year))
{
throw new InvalidInputException();
}
$usermgr->createAccount($uname,$pw1,$fname,$email,$year, $month,$day); // tworzy konto
header('Location: logowanie.php');
?>
no i do tego plik z klasami błędów
Kod: <?php
class InvalidArgumentException extends Exception
{
public function __construct()
{
parent::__construct('Wywołanie funkcji z nieprawidłowym parametrem');
}
}
class UserAlreadyExistsException extends Exception
{
public function __construct()
{
parent::__construct('Użytkownik o takiej nazwie już istnieje.');
}
}
class NoSuchUserException extends Exception
{
public function __construct()
{
parent::__construct('Nie ma takiego użytkownika w systemie');
}
}
class InvalidLoginException extends Exception
{
public function __construct()
{
parent::__construct('Przesłana hasła login/hasło jest nieprawidłowa.');
}
}
class DatabaseErrorException extends Exception
{
public function __construct($in_msg)
{
parent::__construct('Wystąpił błąd bazy danych: '
. $in_msg);
}
}
class InvalidInputException extends Exception
{
public function __construct()
{
parent::__construct('Treść formularza była nieprawidłowa');
}
}
?>
Liczba postów: 263
Liczba wątków: 63
Dołączył: 25-03-2008
Reputacja:
1
A pokaż 9, 10, 11 linie w errors.inc
Liczba postów: 15
Liczba wątków: 7
Dołączył: 19-12-2008
Reputacja:
0
11-07-2009, 02:21
(Ten post był ostatnio modyfikowany: 11-07-2009, 02:22 przez zoom24.)
errors.inc wygląda tak
Kod PHP: <?php
class InvalidArgumentException extends Exception { public function __construct() { parent::__construct('Wywołanie funkcji z nieprawidłowym parametrem'); } } // tu gdzies sie zaczyna 9 10 linia
class UserAlreadyExistsException extends Exception { public function __construct() { parent::__construct('Użytkownik o takiej nazwie już istnieje.'); } }
class NoSuchUserException extends Exception { public function __construct() { parent::__construct('Nie ma takiego użytkownika w systemie'); } }
class InvalidLoginException extends Exception { public function __construct() { parent::__construct('Przesłana hasła login/hasło jest nieprawidłowa.'); } }
class DatabaseErrorException extends Exception { public function __construct($in_msg) { parent::__construct('Wystąpił błąd bazy danych: ' . $in_msg); } }
class InvalidInputException extends Exception { public function __construct() { parent::__construct('Treść formularza była nieprawidłowa'); } }
?>
chodzi mi bardziej o to czy ustawienia serwera mają coś do generowania tego typu błędów  pozdrawiam
Liczba postów: 38
Liczba wątków: 0
Dołączył: 10-07-2009
Reputacja:
0
Wydaje mi się, że 2 razy includujesz errors.inc. Raz w kodzie klasy a drugi w miejscu gdzie tworzysz formularz. Chodzi o: Kod: require_once('errors.inc');
Liczba postów: 15
Liczba wątków: 7
Dołączył: 19-12-2008
Reputacja:
0
w sumie racja  wykasowałem ale błąd dalej został dziś jeszcze zainstaluje osobno Apache mysql i php poprostu nie bawiąc się w żadne krasnale xamppy itp  pozdrawiam
Liczba postów: 38
Liczba wątków: 0
Dołączył: 10-07-2009
Reputacja:
0
Ja tam polecam Ci WebServ ;] U mnie sprawuje się dobrze.
Liczba postów: 15
Liczba wątków: 7
Dołączył: 19-12-2008
Reputacja:
0
Dzięki wielkie za pomoc Sajam no widzisz a u mnie czy to krasnal, xampp, webserv to zawsze z czymś miałem problem  dlatego dość już ich mam
3m się
dziękuję wszystkim udzielającym się pozdrawiam
|
Użytkownicy przeglądający ten wątek:
|
|
Sponsorzy i przyjaciele
|
|
|