Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 21:41

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[PHP] Problem mit Unterverzeichnis

Discussion on [PHP] Problem mit Unterverzeichnis within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
mastermo's Avatar
 
elite*gold: 177
Join Date: Jan 2010
Posts: 5,963
Received Thanks: 1,130
[PHP] Problem mit Unterverzeichnis

Guten Tag Leute,

ich habe folgendes Problem: ich möchte eine Seite auf folgender Weise wiedergeben, aber er will einfach kein Unterverzeichnis nehmen.

So funktioniert es:

PHP Code:
<?php
    
if ($_GET['site'] == "music.php")
    {
        
$included_page_title Music;
    }    
?>

So funktioniert es nicht:
PHP Code:
<?php    
    
if ($_GET['site'] == " /contents/music.php")
    {
        
$included_page_title Music;
    }    
?>
Hätte jemand für mich einen Lösungsvorschlag?


Gruß

Mo
mastermo is offline  
Old 02/25/2014, 10:30   #2


 
Requi's Avatar
 
elite*gold: 3800
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,039
Received Thanks: 8,243
echo mal die Value vom GET.
Vielleicht sieht es anders aus.
Requi is offline  
Old 02/25/2014, 10:33   #3
 
mastermo's Avatar
 
elite*gold: 177
Join Date: Jan 2010
Posts: 5,963
Received Thanks: 1,130
Könntest du mir nen Beispiel von meinem schreiben? Bin noch nicht so fit im Umgang mit php
mastermo is offline  
Old 02/25/2014, 10:41   #4


 
Kentika's Avatar
 
elite*gold: 0
The Black Market: 120/0/0
Join Date: Sep 2011
Posts: 5,496
Received Thanks: 1,114
Mach das ganze mal anders. Benutz Switch-Case

PHP Code:
<?php

   
if(!isset($_GET['site']) || empty($_GET['site']))
   {
     
header('location: index.php?site=home');
     exit();
   }

   switch(
$_GET['site'])
   {
      case 
"home":
                 include 
'path_to_home_page';
      break;
      case 
"music":
                 include 
'path_to_music_page';
      break;
      default:
                 include 
'path_to_error_page';
      break;
   }

?>
Wenn folgendes bspw. aufgerufen wird: included er die Startseite, so auch bei music, wird jetzt aber etwas included was nicht vorhanden ist, springt er zum default case und included die error page.

Wenn ich dein Problem jetzt richtig interpretiert habe.
Kentika is offline  
Thanks
1 User
Old 02/25/2014, 10:41   #5
 
elite*gold: 0
Join Date: Apr 2005
Posts: 323
Received Thanks: 114
Du musst Parameter mit Steuerzeichen escapen. Dann kannst du beliebige Zeichenketten per Parameter übergeben ohne das es dir die Inhalte auf der Zielseite zerreist.

Das machst du über diese beiden Funktionen:



Es ist einfach, schau in die Kommentare für Anwendungsbeispiele. Kentikas Lösung funktioniert auch, ich empfehle dir aber trotzdem dich mal mit url encode und decode auseinanderzusetzen.
MrPuschel is offline  
Old 02/25/2014, 10:49   #6
 
mastermo's Avatar
 
elite*gold: 177
Join Date: Jan 2010
Posts: 5,963
Received Thanks: 1,130
@Kentika: sieht soweit ganz gut aus, aber ich nutze noch folgendes dazu womit ich u.a. den Titel direkt mit einpflege.

PHP Code:
<?php
if (isset($_GET['site'])){if (file_exists($_GET['site'].".php")) include $_GET['site'].".php"; else include "404.php";}else{header('Location: ./index.php?site=home');}
?>

@MrPuschel: Ich fuchse mich da mal rein, in der Hoffnung damit nen Unterverzeichnis reinzukriegen. Wenn alle Contents im Hauptverzeichnis bleiben habe ich hinterher tausend contentfiles im Hauptverzeichnis und blicke auf dem ftp garnicht mehr durch
mastermo is offline  
Old 02/25/2014, 16:01   #7
 
BlackTrader's Avatar
 
elite*gold: 170
Join Date: Mar 2010
Posts: 369
Received Thanks: 187
@mastermo
Ich denke das zweite wird wie "/contents/music.php" interpretiert, also
rootverzeichnis des systems dann der ordner contents und dann die datei music.php
teste mal ./ statt / am anfang
BlackTrader is offline  
Thanks
1 User
Old 02/25/2014, 16:36   #8
 
mastermo's Avatar
 
elite*gold: 177
Join Date: Jan 2010
Posts: 5,963
Received Thanks: 1,130
Hmm ne funktioniert nicht

Der eingesetzte Code:

Quote:
PHP Code:
<?php

if (isset($_GET['site']))
{
    if (
$_GET['site'] == "404")
    {
        
$included_page_title $pagetitle;
    }
    if (
$_GET['site'] == "home")
    {
        
$included_page_title Home;
    }
    if (
$_GET['site'] == "news")
    {
        
$included_page_title News;
    }
}
?>
PHP Code:
<?php
if (isset($_GET['site'])){if (file_exists($_GET['site'].".php")) include $_GET['site'].".php"; else include "404.php";}else{header('Location: ./index.php?site=home');}
?>
Im ersten Teil wird quasi der Dateiname gesucht und im zweiten geprüft obs da ist und wenn ja nen .php angefügt womit er dann die Seite lädt. Wenn ich jetzt "./contents/news.php" drin habe, dann habe ich am Ende "./contents/news.php.php" und die ist natürlich nicht da => 404.php wird ausgelöst.


Irgendwie muss ich dem beibringen, dass der /Unterverzeichnis/Dateiname im ersten Codeteil annimmt, ohne es als zweites Unterverzeichnis oder so zu interpretieren

Bin etwas ratlos
mastermo is offline  
Old 02/25/2014, 18:07   #9
 
elite*gold: 0
Join Date: Apr 2005
Posts: 323
Received Thanks: 114
Quote:
Irgendwie muss ich dem beibringen, dass der /Unterverzeichnis/Dateiname im ersten Codeteil annimmt, ohne es als zweites Unterverzeichnis oder so zu interpretieren
Ich habe dir die zwei Methoden gepostet mit denen du das hinkriegst.
MrPuschel is offline  
Reply




All times are GMT +2. The time now is 21:41.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.