Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   PHP Problem (https://www.delphipraxis.net/84779-php-problem.html)

abc newbee 21. Jan 2007 18:49


PHP Problem
 
Hi!

Es ist mit PHP ja möglich Parameter mit der URL zu übergeben. In meinem Fall leite ich den Besucher je nach Parameter an die richtige Datei weiter. Nur was mache ich, wenn keine Parameter übergeben werden?
Also www.meine-domain.de/index.php statt www.meine-domain.de/index.php?page=start.html

Wenn also kein Parameter übergeben wurde soll trotzdem zu einer bestimmten URL weitergeleitet werden. Und wenn ein falscher Parameter übergeben wurde (z.B. nicht existierende Datei) soll zu einer anderen bestimmten Seite weitergeleitet werden.

Eichhoernchen 21. Jan 2007 18:54

Re: PHP Problem
 
Für sowas kannst du isset und fileexistis benutzen


Code:
if( !isset($_GET['varname']) )
{
 //KEIN PARAMETER ANGEGEBEN
}
else
{
//VERARBEITE PARAMETER in $_GET['varname']
//z.b. prüfen ob if(FileExists()) etc...
}

Flare 21. Jan 2007 18:56

Re: PHP Problem
 
Code:
if ($_GET['page']=='') {
  header('Location: 'index.php?page=start.html');
}
bzw. kürzer:
Code:
switch ($_GET['page']) {
  case 'start.html': include 'start.html'; break;
  case 'login.html': include 'login.html'; break;
  // ...
  default: include 'start.html';
}

Flare

mkinzler 21. Jan 2007 19:06

Re: PHP Problem
 
Man sollte vorher auf das Vorhandensein des Parameters Testen:

Code:
if( isset( $_GET['page']))

abc newbee 21. Jan 2007 19:07

Re: PHP Problem
 
Also ich hab das jetzt (schon vor meiner Frage) so gemacht

Code:
<?php

  $page=$_GET['page'];

  if(file_exists('pages/'.$page.'')==false)
  {
    if($page=="")
    {
    echo '<frame src="templates/default/main.php?page=start.html" name="content" noresize>';
    }
    else
    {
    echo '<frame src="templates/default/main.php?page=error.html" name="content" noresize>';
    }
  }
  else
  {
  echo '<frame src="templates/default/main.php?page='.$page.'" name="content" noresize>';
  }

?>
Also das letzte was ich da mache funktioniert... Es wird also wenn ich ein Parameter angebe richtig weitergeleitet... Bei einem falschen oder keinem Parameter funktioniert es nicht richtig...

mkinzler 21. Jan 2007 19:13

Re: PHP Problem
 
Kombiniere doch die Antworten

abc newbee 21. Jan 2007 19:24

Re: PHP Problem
 
ich hab jetzt folgendes kombiniert:

Code:
<?php

if( !isset($_GET['page']) )
{
echo '<frame src="templates/default/main.php?page=start.html" name="content" noresize>';
}
else
{
if(file_exists('pages/'.$page.'')==true)
{
echo '<frame src="templates/default/main.php?page='.$page.'" name="content" noresize>';
}
else
{
echo '<frame src="templates/default/main.php?page=error.html" name="content" noresize>';
}
}

?>
Nur das Problem: Jetzt funktioniert es nurnoch ohne Parameter aber sonst nicht mehr.

Flare 21. Jan 2007 19:53

Re: PHP Problem
 
Du hast ja auch die Zeile
Code:
$page = $_GET['page'];
rausgenommen! :roll:


Flare

BUG 21. Jan 2007 21:52

Re: PHP Problem
 
:shock: Es sollten nie Seiten/Dateien aus Parametern direkt aufgerufen werden,
lieber nochmal die Gültigkeit überprüfen (zB: durch eine DB) , sonst :arrow: Riesensicherheitlücke :!:
(Pishing, Cross-Site-Scripting, ...)

Wäre ein CMS (Content Management System, zB: Contenido) denn eine Alternative?

Bug

Eichhoernchen 21. Jan 2007 22:42

Re: PHP Problem
 
Code:
<?php

if( !isset($_GET['page']) )
{
  echo '<frame src="templates/default/main.php?page=start.html" name="content" noresize>';
}
else
{
  $page = $_GET['page']; //Das hier ist neu
  if(file_exists('pages/'.$page)) //siehe unten, und ein weiterer Vergleich mit true ist unnötig
  {
    echo '<frame src="templates/default/main.php?page='.$page.'" name="content" noresize>';
  }
  else
  {
    echo '<frame src="templates/default/main.php?page=error.html" name="content" noresize>';
  }
}

?>
So sollte es dann klappen, du brauchst übrigens um einen String zu verketten am Ende nicht noch ein . ''
Also:
Code:
'pages/' . $page . ''
ist das selbe wie:
Code:
'pages/' . $page


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:09 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz