Top-Themen

Aktuelle Themen (A bis Z)

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 Saubere URL

Mitglied: pcguy

pcguy (Level 1) - Jetzt verbinden

16.03.2016, aktualisiert 17:09 Uhr, 1345 Aufrufe, 4 Kommentare

Hallo zusammen, ich verwende in einer kleinen Webseite folgenden Code um den Seiteninhalt hinzuzufügen

01.
<?php
02.
		
03.
			// if the GET var isn't set, we default the file name to the home file
04.
			if(!isset($_GET['page'])) {
05.
				$file = 'home.php'; 
06.
				
07.
							
08.
			// otherwise, we set the filename to the GET var value    
09.
			} else {
10.
			
11.
				$file = $_GET['page'] . '.php';
12.
			}
13.
			
14.
			// Here we set the absolute path to the file so we can check if it exists
15.
			$filepath = dirname(__FILE__) . '/content/' . $file;
16.
			
17.
			// if the file doesn't exist, echo an error message
18.
			if(!file_exists($filepath)) {
19.
				
20.
				include("content/error.php");
21.
			
22.
			// otherwise, include the file & we're done!    
23.
			} else {
24.
			
25.
				include($filepath);
26.
			}
27.
			 
28.
        ?>
Damit die URL besser lesbar für die Suma ist, verwende ich eine .htaccess mit dem Inhalt:

01.
RewriteEngine on
02.
RewriteBase /www
03.

04.
RewriteCond %{REQUEST_URI} !^/+(admin|images)/?
05.
RewriteCond %{REQUEST_URI} !(\..{2,4})$
06.
RewriteCond %{QUERY_STRING} ^(.*)$
07.
RewriteRule ^(.*)$ index.php?page=$1&%1 [L]

Das funktioniert soweit recht gut ausser das auf der Startseite kein inhalt gefunden wird, also wenn die GET leer ist ...


Kann mir da jemand weiterhelfen?
Mitglied: Arano
16.03.2016 um 19:52 Uhr
Hello pcguy!

Durch deine RewriteRule existiert GET-page immer.
Der einzige Unterschied der bleibt ist ob "page" gefüllt ist oder nicht.

01.
<?php
02.
  if( isset()  && !empty() )
03.
    $file = $_GET['page'].'.php'; // verwende NIEMALS Usereingaben ohne sie validiert und entschärft zu haben !
04.
  else
05.
    $file ='home.php';
06.
?>

~Arano
Bitte warten ..
Mitglied: pcguy
17.03.2016 um 11:33 Uhr
Hallo Arano

Danke, das heisst in meinem Fall folgendes:

01.
  <?php
02.
				
03.
				if( isset($_GET['page'])  && !empty($_GET['page']) )
04.
				{    $file = $_GET['page'].'.php'; 
05.
				
06.
							
07.
			// otherwise, we set the filename to the GET var value    
08.
			} else {
09.
			
10.
				$file = $_GET['page'] . '.php';
11.
			}
12.
			
13.
			// Here we set the absolute path to the file so we can check if it exists
14.
			$filepath = dirname(__FILE__) . '/content/' . $file;
15.
			
16.
			// if the file doesn't exist, echo an error message
17.
			if(!file_exists($filepath)) {
18.
				
19.
				include("content/error.php");
20.
			
21.
			// otherwise, include the file & we're done!    
22.
			} else {
23.
			
24.
				include($filepath);
25.
			}
26.
			 
27.
        ?>
muss vor das isset nicht noch ein "!" hin?

LG pcguy
Bitte warten ..
Mitglied: Arano
LÖSUNG 17.03.2016 um 19:23 Uhr
Hi,

das ist abhängig von deiner Formulierung der Programmlogik, vieles lässt sich auf zwei Wege erreichen.
01.
if( $username=="Arano" ) echo "Hallo Arano"; else echo "Hallo Unbekannter";
02.
if( $username!="Arano" ) echo "Hallo Unbekannter"; else echo "Hallo Arano";
Am Ende funktioniert beide, jedoch habe ich eine mit negativer Prüfung und eines mit positiver.

In deinem Fall möchten wir aber empty() verwenden und es nur logisch bevor wir eine Variable auf ihren Inhalt prüfen, zu prüfen ob diese überhaupt existiert !
Also: isset()&&!empty()
Eine Variable die nicht existiert kann keinen Inhalt haben ! !isset() && empty() macht also keinen Sinn bzw. wenn die Variable nicht existiert brauchen wir deren Inhalt nicht überprüfen, das ist also schlicht überflüssig und unlogisch.

Bei dir ist es also ein
01.
  else
02.
    $file = 'home.php';

~Arano
Bitte warten ..
Mitglied: pcguy
18.03.2016 um 08:19 Uhr
Super, Vielen Dank für Deine Hilfe!
Bitte warten ..
Ähnliche Inhalte
Apache Server
Rewrite URL
gelöst Frage von honeybeeApache Server2 Kommentare

Hallo, ich möchte, dass die URL automatisch und dauerhaft von host.domain.de auf host.domain.de/page geändert wird. Wie stelle ich das ...

Server
Intranet URL anpassen
gelöst Frage von wuurianServer7 Kommentare

Hallo zusammen, habe eine kurze Frage wo ich grad nicht weiterkomme. Es gibt eine Intranet-Seite(Wordpress). Diese ist erreichbar srv.domäne.local/wordpress ...

PHP
PHP: URL kürzen
Frage von michi-ffmPHP15 Kommentare

Hallo zusammen, es ist schon lange her und stehe auf dem Schlauch. Ich finde in Google nur wie man ...

Linux
Grafana: Änderung der URL
gelöst Frage von honeybeeLinux7 Kommentare

Hallo, um im Browser auf Grafana zu kommen, muss man domain.de:3000/login eingeben. Das gefällt mir nicht. Kann man denn ...

Neue Wissensbeiträge
Administrator.de Feedback
Entwicklertagebuch: Die nächste Version
Information von admtech vor 10 StundenAdministrator.de Feedback4 Kommentare

Hallo Administrator User, vielleicht haben es einige User schon mitbekommen: Wir arbeiten aktuell an einer komplett neuen Version von ...

Windows Server

Active Directory ESE Version Store Changes in Server 2019

Information von Dani vor 4 TagenWindows Server

Moin, Last month at Microsoft Ignite, many exciting new features rolling out in Server 2019 were talked about. But ...

Exchange Server

Microsoft Extending End of Support for Exchange Server 2010

Information von Dani vor 4 TagenExchange Server4 Kommentare

Moin, After investigating and analyzing the deployment state of an extensive number of Exchange customers we have decided to ...

Schulung & Training

Humble Book Bundle: Network and Security Certification 2.0

Tipp von NetzwerkDude vor 4 TagenSchulung & Training

Abend, bei HumbleBundle gibts mal wider ein schönes Paket e-books: sind verschiedene Zertifizierungen wie MCSA, CCNA, CompTIA etc., für ...

Heiß diskutierte Inhalte
Visual Studio
Prüfen, ob Programm schon disposed wurde
Frage von MarcoBornVisual Studio17 Kommentare

Hallo Forum, ich habe in VB.NET ein Programm geschrieben, welches Word startet und dort Daten ausliest. Obwohl ich die ...

DNS
DNS Probleme nach Umstellung auf IPv6
Frage von thunderbird304DNS16 Kommentare

Hi Leute! Folgende Problematik: Umstieg von Glasfaser auf Telekom Buisiness DSL. Durch die Umstellung ist die FritzBox nun Gateway. ...

Netzwerkgrundlagen
Zukunftsicheres Heimnetzwerk aufbauen
Frage von CRO-WarriorNetzwerkgrundlagen15 Kommentare

Hallo Leute. Ich bin dabei das Haus in Kroatien zu renovieren. Da hab ich jetzt die Möglichkeit alles so ...

Speicherkarten
Multi USB Stick erstellen
Frage von Ghost108Speicherkarten15 Kommentare

Guten Morgen zusammen, ich würde gerne einen Multi USB Stick erstellen (bootmöglichkeit mehrer ISOs), welcher sowohl Legacy als auch ...