Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP Exception arbeitet nicht korrekt ?!?

Frage Entwicklung PHP

Mitglied: r.nahm

r.nahm (Level 1) - Jetzt verbinden

15.12.2013, aktualisiert 20:37 Uhr, 1630 Aufrufe, 7 Kommentare

Hallo Admins,

habe eine Klasse in der sich seltsames abspielt.

habe eine AuthException Klasse welche bei einem Aufruf aus der Klasse XYZ folgendes Resultat bringt: $e->getMessage() == null
rufe ich die AuthException aus dem namespace / auf funktioniert alles wunderbar. Method-Call ist korrekt nur hängt es irgendwie bei der message Variable.

EDIT: das wirklich skurile ist, die ausgabe von $e->getCode(); läuft in beiden fällen korrekt ab... also code wird immer übernommen.

EDIT2: Exceptions werden bei mir folgendermaßen abgefangen:

01.
<?php 
02.
	function ExceptionHandler($e
03.
04.
		global $output
05.
		if((get_class($e) == "OAuthResponse") OR (get_class($e) == "Response")) 
06.
07.
			$output->set($e->getData(), $e->getHeader()); 
08.
		}else
09.
			$output->set(array("error" => array
10.
						"message" 	=> $e->getMessage(), 
11.
						"type"		=> get_class($e), 
12.
						"code"		=> $e->getCode()))); 
13.
14.
		$output->close(); 
15.
16.
	set_exception_handler("ExceptionHandler"); 
17.
 
18.
?> 
19.
 
EDIT3: selbes spiel bei einer normalen Exception (standard).

wer weis was da los is?

LG
Richi

EDIT: kommentare sind aktueller als das hier....


ES SIND DIE UMLAUTE!!!! wer kann helfen? :D
Mitglied: r.nahm
15.12.2013 um 18:19 Uhr
Zum besseren Verständnis, mehr code:

01.
	$classes = array
02.
		'Output' => '/Output.php'
03.
		'AuthException' => '/AuthException.php'
04.
		'ExceptionHandler' => '/ExceptionHandler.php'
05.
		 
06.
		... 
07.
 
08.
	); 
09.
 
10.
	foreach($classes as $key => $value){ 
11.
		require_once($libDir . $value); 
12.
13.
	$output = new Output();
01.
$server = new AuthServer();
01.
Class AuthServer extends AuthCommon 
02.
03.
 
04.
	function __construct() 
05.
06.
		return $this->handleRequest(); 
07.
08.
 
09.
	public function handleRequest() 
10.
11.
 
12.
		if(!isset($f['signature'])) 
13.
14.
			throw new Exception("Anfrage enthält keine Signatur.", 123); 
15.
16.
 
17.
18.
</php>
Bitte warten ..
Mitglied: r.nahm
15.12.2013 um 18:21 Uhr
$output gibt dann folgendes aus
01.
{"error":{"message":null,"type":"Exception","code":123}}
Bitte warten ..
Mitglied: r.nahm
15.12.2013 um 18:57 Uhr
Okay sorry,
alles Bullshit da oben:

die Exceptions lassen sich generell schonmal aus der AuthCommon Klasse aus werfen.

wenn ich über /index.php die /inc/init.php lade läuft alles.

hole ich mir die selbe /inc/init.php aus /auth/index.php heraus dann spackt $e->message() herum und ich weiß nicht woran es liegen könnte...

/index.php:
01.
 
02.
<?php 
03.
	require_once("inc/init.php"); 
04.
//	throw new Response(array('test' => 'response'), array('X-Debug' => 'it works')); 
05.
	$auth = new AuthCommon(); 
06.
	$auth->setParam(array('test' => 'abcd', 'test2' => '1234')); 
07.
	$auth->setSignatureMethod('none'); 
08.
	//print_r($auth); 
09.
?>
/auth/index.php:
01.
<? 
02.
require_once('../inc/init.php'); 
03.
$server = new AuthServer(); 
04.
 
05.
	throw new AuthException('Anfrage enthält keine Signatur.', 123); 
06.
$server->setConsumer(md5('1234567880'), md5('abcdefghi')); 
07.
print_r($server->request); 
08.
?> 
09.
 
jetzt weis ich noch weniger woran was wie und wo liegen könnte...

*needhelp*
Bitte warten ..
Mitglied: r.nahm
15.12.2013 um 19:02 Uhr
01.
	// set_exception_handler("ExceptionHandler");
verrät mir dass irgendetwas mit dem Handler nicht läuft...da die ausgabe ohne Handler folgende ist:

01.
Fatal error: Uncaught exception 'AuthException' with message 'Anfrage enthält keine Signatur.' in ***/httpdocs/auth/index.php:5 Stack trace: #0 {main} thrown in ***/httpdocs/auth/index.php on line 5 
Siehe da, $msg ist da...
Bitte warten ..
Mitglied: r.nahm
15.12.2013 um 19:04 Uhr
selbes spiel bei einem Wurf aus der Klasse heraus:
01.
Fatal error: Uncaught exception 'AuthException' with message 'Anfrage enthält keine Signatur.' in ***/httpdocs/library/AuthServer.php:20 Stack trace: #0 ***/httpdocs/library/AuthServer.php(10): AuthServer->handleRequest() #1 ***/httpdocs/auth/index.php(3): AuthServer->__construct() #2 {main} thrown in ***/httpdocs/library/AuthServer.php on line 20 
Bitte warten ..
Mitglied: r.nahm
LÖSUNG 15.12.2013, aktualisiert 16.12.2013
das ist jetzt mal richtig KLEINLICH was da nicht stimmte...anscheinend hat eclipse bei dem String für diese eine Exception irgendetwas nicht korrekt kodiert....den throw auskommentieren, neue Zeile, exakt die selbe anweisung nochmal darunter schreiben und es läuft????

ich verstehe es nicht aber es funktioniert....

Problem /Symtom behoben aber hätte nun doch gerne eure Meinung zu diesem Phänomen...


LG
Bitte warten ..
Mitglied: 106543
16.12.2013 um 10:18 Uhr
Hi,

ich hab zwar wenig Ahnung von PHP, aber könntest du den Artikel bitte umbenennen in "Das Tagebuch des r.nahm" Äußerst unterhaltsam zu lesen. Wirklich :D

Mit freundlichen und leicht ironischen Grüßen
Exze
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (29)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...