File not found und Probleme mit Groß-Klein-Schreibung in Dateinamen

Status
Für weitere Antworten geschlossen.

TheChris1310

Benutzer
Mitglied seit
17. Apr 2015
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo Forum,

ich bin neue hier und möchte mich kurz vorstellen: Ich war lange Sysadmin und habe nebenher Webanwendungen entwickelt. Nach 15 Jahren EDV wurde es mir langweilig und ich hatte keine Lust mehr auf den User-Support. So habe ich mich selbständig gemacht, und biete nun Teamtrainings und Outdoor-Trainings an. Krasser wechsle, aber wie ihr schon merkt, werde ich die EDV wohl nie ganz los :-)

Zu meinem Problem. Ich habe die Webservices installiert und das läuft eigentlich auch ganz prima. Komme bisher auf alle Verzeichnisse per http und https und einem DDNS drauf. Nun entwickle ich eine recht umfangreiche Webseite zur Verwaltung unserer Events und Co. Immer wieder hatte ich das Problem, dass CamelCase-Dateinamen nicht richtig gefunden wurden. Habe also irgendwo im Netz einen Workaround gefunden um Apache zu sagen sagen, dass er nach den Dateien suchen soll. So findet er nun wenigstens mal wenn ich mich im Quellcode verschreibe die Datei, auch wenn die Groß-Klein-Schreibung nicht passt.

Was aber total nervt ist, dass wenn ich einige meiner Funktionen/hilfsscripte aufrufe (hauptsächlich über AJAX) die Meldung zurückgegeben wird, dass die Datei nicht gefunden werden kann.

Ich mache ein Beispiel:
In dem Formular zum erstellen neuer Events drücke ich auf speichern und ein José string wird per ajax an eine php gesendet, die dann den Datenbankeintrag speichert. Auf meinem MacBook klappt das wunderbar (lokal installierter Apache). Auf der Synologie bekomme ich die Meldung: File not found. Die Datei ist aber da! Die Rechte passe auch. Rufe ich die Datei direkt auf, findet der Webserver sie auch nicht -> File not found. Lasse ich einen Teil des Dateinamens weg, findet mir der apache natürlich über die oben genante Änderung alles Dateien die so ähnlich sind und liste mir diese auf. Und siehe da, auch meine gesuchte ist dabei. Klicke ich auf den link dieser Datei....ratet mal....file not found..... Ich weise mich gleich selber ein. Woran kann das liegen??

So sieht es aus:
Rich (BBCode):
Multiple Choices

The document name you requested (/test/inc/func/func.php) could not be found on this server. However, we found documents with names similar to the one you requested.
Available documents:

/test/inc/func/func.getQueryJsArray.php (common basename)
/test/inc/func/func.groupListAdmin.php (common basename)
/test/inc/func/func.saveArbeitszeit.php (common basename)
/test/inc/func/func.saveDocx.php (common basename)
/test/inc/func/func.saveEditable.php (common basename)
/test/inc/func/func.saveEventDetail.php (common basename)
/test/inc/func/func.saveNewEvent.php (common basename)
/test/inc/func/func.savePwd.php (common basename)
/test/inc/func/func.session.php (common basename)
/test/inc/func/func.time.php (common basename)
/test/inc/func/func.userListAdmin.php (common basename)
/test/inc/func/func.userSetStatus.php (common basename)

und das ist der Quellcode der func.saveNewEvent.php
PHP:
<?php 

// Einbinden aller wichtigen Basissystemdateien
require_once "../../common.php";


// Datenbankverbindung aufbauen
$pdo = new System\Database\PDO('mysql:host='.DB_SERVER.';port='.DB_PORT.';dbname='.DB_NAME,DB_USER,DB_PASSWORD);

$jsonData 		= "php://input";
$phpJsonString 	= file_get_contents( $jsonData );
$data 			= json_decode( $phpJsonString , true);


$eid 						= (isset($data['eid'])) ? $data['eid'] : NULL; 
$Titel 						= $data['event_name']; 
$AnfangsDatum 				= $data['startdatum']; 
$StartZeit 					= $data['startzeit']; 
$EndDatum 					= $data['enddatum']; 
$EndZeit 					= $data['endzeit']; 
$Ort 						= $data['event_ort']; 
$Beschreibung 				= $data['event_title']; 
$ToDoBemerkung 				= $data['bemerkung']; 
$Anlagen 					= 'NULL'; //$data['Anlagen']; 
$Teilnehmer 				= $data['tn_summe']; 
$Teilnehmer_Bemerkung 		= $data['tn_bemerkung']; 
$Boote 						= $data['anz_kanus']; 
$Deadline 					= $data['deadline']; 
$Preis_netto 				= $data['preis_netto']; 
$Preis_brutto 				= $data['preis_brutto']; 
$Preis 						= $data['re_summe']; 
$Preis_Bemerkung 			= $data['preis_bemerkung']; 
$Kunde 						= $data['kunde']; 
$Institution 				= $data['institution']; 
$Kunden_Adresse 			= $data['adresse']; 
$Kanal 						= 'NULL'; //$data['Kanal']; 
$Wer_machts 				= $data['wer_machts']; 
$Angebot 					= $data['angebot']; 
$Angebot_Bemerkung 			= $data['angebot_bemerkung']; 
$Angebot_Datei 				= $data['angebot_datei']; 
$Gebucht 					= 'NULL'; //$data['Gebucht']; 
$Auftrag_bestaetigt 		= $data['bestaetigung']; 
$Auftrag_bestaetigt_Datei 	= $data['bestaetigung_datei']; 
$Rechnung 					= $data['rechnung']; 
$Rechnung_Datei 			= $data['rechnung_datei']; 
$Mahnung 					= $data['mahnung']; 
$Mahnung_Datei 				= $data['mahnung_datei']; 
$Trainer_angefragt 			= 'NULL'; //$data['Trainer_angefragt']; 
$Trainer_zugesagt 			= 'NULL'; //$data['Trainer_zugesagt']; 
$Trainer_bezahlt 			= 'NULL'; //$data['Trainer_bezahlt']; 
$Trainer_im_Einsatz 		= 'NULL'; //$data['Trainer_im_Einsatz']; 
$Catering 					= 'NULL'; //$data['Catering']; 
$Haus_DWgebucht 			= 'NULL'; //$data['Haus_DW-gebucht']; 
$Material_angefragt 		= 'NULL'; //$data['Material_angefragt']; 
$Eintritte_Rappenwört 		= 'NULL'; //$data['Eintritte_Rappenwört']; 
$Grund_Absage 				= (isset($data['grund_absage'])) ? $data['grund_absage'] : 'NULL';




// nur ausführen wenn eine EventID übergeben wurde
if(empty($eid)) {
   
	$sql = " INSERT INTO 
		`Ereignisse` (  
			`ID`,
			`Titel`,
			`AnfangsDatum`,
			`StartZeit`,
			`EndDatum`,
			`EndZeit`,
			`Ort`,
			`Beschreibung`,
			`ToDo-Bemerkung`,
			`Anlagen`,
			`Teilnehmer`,
			`Teilnehmer_Bemerkung`,
			`Boote`,
			`Deadline`,
			`Preis_netto`,
			`Preis_brutto`,
			`Preis`,
			`Preis_Bemerkung`,
			`Kunde`,
			`Institution`,
			`Kunden_Adresse`,
			`Kanal`,
			`Wer_machts`,
			`Angebot`,
			`Angebot_Bemerkung`,
			`Angebot_Datei`,
			`Gebucht`,
			`Auftrag_bestaetigt`,
			`Auftrag_bestaetigt_Datei`,
			`Rechnung`,
			`Rechnung_Datei`,
			`Mahnung`,
			`Mahnung_Datei`,
			`Trainer_angefragt`,
			`Trainer_zugesagt`,
			`Trainer_bezahlt`,
			`Trainer_im_Einsatz`,
			`Catering`,
			`Haus_DW-gebucht`,
			`Material_angefragt`,
			`Eintritte_Rappenwört`,
			`Grund_Absage`
		)
	VALUES (
			'NULL',
			'$Titel', 
			'$AnfangsDatum', 
			'$StartZeit', 
			'$EndDatum', 
			'$EndZeit', 
			'$Ort', 
			'$Beschreibung', 
			'$ToDoBemerkung', 
			'$Anlagen', 
			'$Teilnehmer', 
			'$Teilnehmer_Bemerkung', 
			'$Boote', 
			'$Deadline', 
			'$Preis_netto', 
			'$Preis_brutto', 
			'$Preis', 
			'$Preis_Bemerkung', 
			'$Kunde', 
			'$Institution', 
			'$Kunden_Adresse', 
			'$Kanal', 
			'$Wer_machts', 
			'$Angebot', 
			'$Angebot_Bemerkung', 
			'$Angebot_Datei', 
			'$Gebucht', 
			'$Auftrag_bestaetigt', 
			'$Auftrag_bestaetigt_Datei',
			'$Rechnung', 
			'$Rechnung_Datei', 
			'$Mahnung', 
			'$Mahnung_Datei', 
			'$Trainer_angefragt',
			'$Trainer_zugesagt',
			'$Trainer_bezahlt',
			'$Trainer_im_Einsatz',
			'$Catering',
			'$Haus_DWgebucht',
			'$Material_angefragt',
			'$Eintritte_Rappenwört',
			'$Grund_Absage'
		) "; 
	
	
	$pdo->prepareStatement($sql);
	// Parameter vorbereiten und Statement ausführen
	$parms  = array();
	$result = $pdo->execute($parms);
	
	$err = $result;
	
	// JSON Kodierung der Zurückgebeneden Daten
	//echo json_encode($data);
} else {
    /* 
    In case of incorrect value or error you should return HTTP status != 200. 
    Response body will be shown as error message in editable form.
    */
	$err = '{"errors": {"Fehler": "Es wurde eine Event ID übergeben. Nicht möglich wenn ein neues Event gespeichert werden soll."} }';
    
	//echo "This field is required! ";
}

if($err != false)
{
	header('HTTP 400 Bad Request', true, 400);
	//header('HTTP 200 OK', true, 200);
	echo $err;
}
else
{
	header('HTTP 200 OK', true, 200);
}

//echo $sql;
?>


Ich hoffe Ihr könnt mir ein paar Tips geben. Es ist übrigens nicht die einzige Datei in diesem Verzeichnis die sich so verhält. es gibt noch 2-3 andere mit dem selben Problem. Aber es gibt auch einige, die ohne Probleme funktionieren. Sowohl über Anja, als auch beim direkten Aufruf.

Grüße, Chris
 
Hat keiner eine Idee?? Oder habe ich mein Problem nicht gut genug beschrieben?

Grüße Chris
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat