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 PHP statements mit PHp erzeugen

Mitglied: Lorderich

Lorderich (Level 1) - Jetzt verbinden

12.11.2016, aktualisiert 23:18 Uhr, 774 Aufrufe, 4 Kommentare

Hallo zusammen,

ich habe eine Datei, in welcher per switch und case die Webseiten definiert werden, welche bei Aufruf einer definierten URL angezeigt werden sollen.

Bisher ist dieses auch ganz einfach, da die Webseiten Namen und dahinter liegenden Dateien statisch sind.

01.
Als Beispiel dafür: 
02.
case '/DE_Start':
03.
$includePage = 'pages_de/DE_Start.php';
04.
$title = "Testtitel";
05.
$keyword = "Ein paar Keywords";
06.
$description = "Ein Text als Beschreibung";
07.
$sitetopic = "Und ein paar Sitetopic Einträge";
08.
$author = "$Autor";
09.
break;
Diesen Eintrag habe ich in einer Datei mit de Namen siteconfig.php.
Nun muss ich weitere case Einträge erzeugen, allerdings mit Werten aus einer Datenbank.

01.
$sql = "SELECT Columen1, Columen2 devhrdb.userlist WHERE Usertype = 'Internal' AND MAStatus = 'AKTIV'";
02.
$result = $conn->query($sql);
03.
if ($result->num_rows > 0) {
04.
    // output data of each row
05.
     while($row = $result->fetch_assoc())
06.
    {
07.
---------------------------------------------------------------------------------------------------
08.
Genau hier müsste ja jetzt pro Row aus der Datenbank ein neuer "case" Eintrag nach dem Muster wie oben enstehen. Allerdings stellt sich mir hier die Frage wie? Mit einem Echo statement ala 
09.

10.
echo case "'/DE_".$row['Columen1']."':" habe ich bisher kein wirklichen Erfolg gehabt. 
11.
---------------------------------------------------------------------------------------------------
12.
   	}
13.
} else {
14.
    echo "";
15.
}
Wie geht man das den am besten an?

Danke und Grüße

Lorderich

Mitglied: LordGurke
LÖSUNG 13.11.2016 um 00:04 Uhr
Du kannst dir den Code als Variable zusammenkonstruieren und per eval() ausführen.
Du musst dann aber ganz besonders gut sicherstellen, dass ALLE externen Daten besonders gut escaped oder gefiltert werden, da sonst unter umständen Code eines Angreifers ausgeführt werden kann.

01.
<?php
02.

03.
$variable = 'echo "das ist ein test";';
04.

05.
eval($variable);
Bitte warten ..
Mitglied: StefanKittel
LÖSUNG 13.11.2016 um 00:36 Uhr
Hallo,

das ist quatsch so.

Du holst aus einer Datenbank alle Einträge die möglich sind und vergleichst diese einzeln.
Warum fragst Du nicht einfach die Datenbank? Die übernimmt solche Aufgabe liebend gerne.

Statt
case '/DE_Start':
lass die DB einfach nach dem Inhalt Deiner Variable welche Du bei Switch angibts suchen.

Stefan
Bitte warten ..
Mitglied: 131381
LÖSUNG 13.11.2016, aktualisiert um 09:21 Uhr
Zitat von StefanKittel:
das ist quatsch so.
Sehe ich genau so, viel zu umständlich gedacht.

Du machst mit dem Pfad der URL eine SQL Query auf deine Datenbank, gibt es eine Eintrag lieferst du die Daten der Query entsprechend aus, wenn nicht, eine Fehlerseite. Ein Switch-Konstrukt ist hier also in keinem Fall nötig.
Das du die Daten wie Keyword, Title, Description etc. in die Datenbank legst sollte dann eigentlich klar sein.

Das was du vorhast macht man so in der Art nicht, dann bräuchtest du nämlich keine Datenbank ...

Gruß
Bitte warten ..
Mitglied: Lorderich
14.11.2016, aktualisiert um 15:26 Uhr
Dank Eurer Hinweise habe ich es jetzt so gelöst:

$page = basename($_SERVER['PHP_SELF']); Ermittelt die aktuelle Seite
$errorPage = 'pages_de/DE_Error.php';
Definiert die Fehlerseite

$sql = "SELECT Vorname, Nachname, JobTitle, CV_URL_DocName from devhrdb.userlist WHERE CV_URL = '".$page."'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
output data of each row
while($row = $result->fetch_assoc())
{
$Fullname = $row["Vorname"] . " " . $row["Nachname"];
$title = $Fullname;
$description = $Fullname." - ".$row["JobTitle"];
$includePage = $row["CV_URL_DocName"];
$sitetopic = "1, 2, 3";
$keyword = "1,2,3";
$author = "$Autor";

}
} else {
if(isset($_GET['site']))
{
switch($_GET['site'])
{
$_GET['var'] um die Seite zu Identifizieren.
case '/DE_Start':
$includePage = 'pages_de/DE_Start.php';
$title = "Titel";
$keyword = "Keywords";
$description = "Seitenbeschreibung";
$sitetopic = "Sitetopic";
$author = "$Autor";
break;

// Standard bzw. Startseite
default:
$includePage = 'pages_de/DE_Start.php';
$title = "Titel";
$keyword = "Keywords";
$description = "Seitenbeschreibung";
$sitetopic = "Sitetopic";
$author = "$Autor";
}
} else {
$includePage = 'pages_de/DE_Start.php';
$title = "Titel";
$keyword = "Keywords";
$description = "Seitenbeschreibung";
$sitetopic = "Sitetopic";
$author = "$Autor";

}
if(isset($includePage) && file_exists($includePage))
{

}
else
{
include($errorPage);
}

};
?>
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell + SQL Statement
gelöst Frage von mschaedler1982Batch & Shell5 Kommentare

Hallo zusammen, Ich sitze hier gerade vor einem Problem, wo ich nicht so recht weiterkomme und im Internet habe ...

Batch & Shell
Powershell Problem IF Statement
gelöst Frage von copybyteBatch & Shell3 Kommentare

Hallo liebe Admins, ich bin neu in Powershell eingertiegen und habe mit Hilfe und Beispielen schon Einiges gebaut. Jetzt ...

Datenbanken
SQL Statement auseinandernehmen Like
gelöst Frage von H41mSh1C0RDatenbanken20 Kommentare

Hi@All, Ziel: Beim erstellen eines Reports existiert ein Feld in der eine bestimmte OU ausgewählt werden kann. Wird keine ...

VB for Applications

If Statement mit SaveFileDialog - Datei Überschreiben

gelöst Frage von gabrixlVB for Applications7 Kommentare

Hallo Zusammen Habe ein Problem mit dem SaveFileDialog. Ich möchte gern überprüfen ob der Benutzer, bei der Abfrage ob ...

Neue Wissensbeiträge
Microsoft Office

Supportlebenszyklus für Office 2010 verlängert

Information von Dani vor 5 StundenMicrosoft Office1 Kommentar

Moin, Like most Microsoft products, Microsoft Office 2010 has a support lifecycle during which we provide new features, software ...

Windows Server

Active Directory ESE Version Store Changes in Server 2019

Information von Dani vor 1 TagWindows 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 1 TagExchange Server3 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 1 TagSchulung & 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
Notebook & Zubehör
Hardwareberatung: Business Notebook
gelöst Frage von waellerNotebook & Zubehör34 Kommentare

Hallo zusammen, da wir bislang nur MacBooks im Einsatz haben - nun aber auf Windows umsteigen werden - bräuchte ...

Netzwerke
Seltsame Verbindungsprobleme nach Netzwerk-Switch-Tausch
Frage von MondragorNetzwerke16 Kommentare

Hallo an alle. Ich habe gestern in der Firma das NEtzwerkswitch gegen ein moderneres, leistungsstärkeres getauscht. Das alte war ...

Drucker und Scanner
Suche Laserdrucker (Duplex) mit 3 Papierfächern der NICHT ständig Papier frisst
Frage von mabiesDrucker und Scanner16 Kommentare

Hallo, bislang versuchen wir es immer wieder mit Lexmark T650N. Habe da jetzt grad wieder einen sehr guten, wenig ...

Hardware
Ncomputing N600 oder auch 600W Privat nutzen Kostenlos oder kostengünstig
gelöst Frage von PlerTanixHardware15 Kommentare

Hallo liebe Forum User, Ich habe da eine Frage. Ich bin Azubi im dritten Lehrjahr und bei uns in ...