Antworten auf deine Fragen:
Neues Thema erstellen

Navigation in Php, hilfe benötigt.

ackermaennchen

Normalo

Teammitglied
Ich glaub ich mach bald n Thread auf in dem es um meine Seite geht ^^

Nachdem die Navi jetzt endlich per css so gestaltest ist wie es sein soll, möchte ich versuchen mich in php einzuarbeiten.

Dacht ich fangen wir mal mit was einfachem an.

Index.php in der alle Unterseiten im Content angezeigt werden sollen.

Also los gehts, Tutorials suchen. Gefunden hier im Forum:

Unterseiten per PHP einbinden - PSD-Tutorials.de

Allet klar, sieht ja jetzt nicht so kompliziert aus.

In meinen Quelltext entsprechend eingepasst, sieht das so aus:

HTML:
 <ul id="navi">
<li><a href="index.php?page=home">Home</a></li>
            <li><a href="index.php?page=termine">Termine</a></li>
            <li><a href="index.php?page=geschichte">Geschichte</a></li>
                <li><a href="#">Bilder</a>
                	<ul>
                		<li ><a href="#">2011</a>
                       
                    		<ul>
                                <li><a href="index.php?page=sigcup11">Siegerehrung Gesamtwertung</a></li>
                                <li><a href="index.php?page=kicupwai11">Kindercup Waidring</a></li>
                                <li><a href="index.php?page=koasa11">Koasamandl</a></li>
                                <li><a href="index.php?page=kicupstma11">Kindercup St.Martin</a></li>
                                <li><a href="index.php?page=zwergelunk11">Zwergerlrennen Unken</a></li>
                                
                             </ul>
                             </li>
                             
                        <li ><a href="#">2010</a>
                       
                    		<ul>
                                <li><a href="index.php?page=koasa10">Koasamandl</a></li>
                                <li><a href="index.php?page=kicupstma10">Kindercup St.Martin</a></li>
                                <li><a href="index.php?page=zwergelrunk10">Zwergerlrennen Unken</a></li>
                                <li><a href="index.php?page=kicupunk10">Kindercup Unken</a></li>
                                <li><a href="index.php?page=sigcup10">Siegerehrung Gesamtwertung</a></li>
                             </ul>
                             </li>
                       <li ><a href="#">2009</a>
                       
                    		<ul>
                                <li><a href="index.php?page=sigcup09">Kindercup</a></li>
                                
                             </ul>
                             </li>
                     </ul>
                </li>
<li><a href="index.php?page=funktion">Funktionäre</a></li>
                <li><a href="index.php?page=sponsor">Sponsoren</a></li>
          </ul>   
</div>

    <!---End Header /--->
    <div id="logo"><img src="images/logo.png"/> <h1><a href="http://sc.lofer.at" title="sc.lofer.at" class="notetxt">skiclub.lofer.at</a></h1></div>
    </div>
    <div class="clear"></div>
<!--- End Header Container /--->
<!--- Beginn ContentContainer /--->
<div id="Contentbox">
 <div id="content">
   <?php

if($HTTP_GET_VARS['page'] == "")
{
include"start.php";
}
elseif ($HTTP_GET_VARS['page'] == "home") include"start.php";
elseif ($HTTP_GET_VARS['page'] == "termine") include"termine.php";
elseif ($HTTP_GET_VARS['page'] == "geschichte") include"geschichte.php";
elseif ($HTTP_GET_VARS['page'] == "sigcup11") include"ordner/dateiname.php";
elseif ($HTTP_GET_VARS['page'] == "kicupwai11") include"ordner/dateiname.php";
elseif ($HTTP_GET_VARS['page'] == "koasa11") include"ordner/dateiname.php";
elseif ($HTTP_GET_VARS['page'] == "kikupstma11") include"ordner/dateiname.php";
elseif ($HTTP_GET_VARS['page'] == "zwergerlunk11") include"ordner/dateiname.php";
elseif ($HTTP_GET_VARS['page'] == "koasa10") include"ordner/dateiname.php";
elseif ($HTTP_GET_VARS['page'] == "kicupstma10") include"ordner/dateiname.php";
elseif ($HTTP_GET_VARS['page'] == "zwergerlunk10") include"ordner/dateiname.php";
elseif ($HTTP_GET_VARS['page'] == "sigcup10") include"ordner/dateiname.php";
elseif ($HTTP_GET_VARS['page'] == "sigcup09") include"ordner/dateiname.php";
elseif ($HTTP_GET_VARS['page'] == "funktion") include"ordner/dateiname.php";
elseif ($HTTP_GET_VARS['page'] == "sponsor") include"ordner/dateiname.php";

?>
 </div>
</div>

ich hab jetzt noch nicht alle Menüpunkte fertig gemacht, man muss ja mal probieren wie das so funktioniert.

Ok, also hochgeladen auf den server. index.php aufgerufen und Juhuuuu die datei "start.php" wird included und ordnungsgemäß angezeigt.

Klicken wir jetzt mal auf termine.
:( Entäuschung, wir bleiben bei start.php im Content.
Pfade kontroliert, passen, Dateinamen und Variablen auf Schreibfehler kontrolliert, kein Fehler gefunden.

Jetzt die Frage an euch, was mach ich denn schon wieder verkehrt?
 

cebito

undefined

AW: Navigation in Php, hilfe benötigt.

Nimm $_GET['page'] ($HTTP_GET_VARS[] ist veraltet) dann klappts. Du solltest aber page auch auf erlaubte Werte überprüfen, sonst könnte ich mit dem Browseraufruf ackermaennchen/index.php?page=cebito.de z.B. meinen Content in deine Seite laden. Das können auch andere, das kann dann richtig ärgerlich werden.
Lies dich mal hier rein...

 
Zuletzt bearbeitet:

Eliteplayer

Talentfrei=/Wille ist da!

AW: Navigation in Php, hilfe benötigt.

Nimm $_GET['page'] ($HTTP_GET_VARS[] ist veraltet) dann klappts. Du solltest aber page auch auf erlaubte Werte überprüfen, sonst könnte ich mit dem Browseraufruf ackermaennchen/index.php?page=cebito.de z.B. meinen Content in deine Seite laden. Das können auch andere, das kann dann richtig ärgerlich werden.
Lies dich mal hier rein...



echt das geht? argh - deswegen hat es meine seite zerschossen -.- es wurden spammails über meinen server verschickt autsch =/
 

ackermaennchen

Normalo

Teammitglied
AW: Navigation in Php, hilfe benötigt.

Also meinst du so?

PHP:
if($_GET['page'] == "")
{
include"start.php";
}
elseif ($_GET['page'] == "home") include"start.php";
elseif ($_GET['page'] == "termine") include"termine.php";
elseif ($_GET['page'] == "geschichte") include"geschichte.php";

weil so funktioniert das immernoch nicht

Mit dem anderen werd ich mir mal durchlesen.
 

cebito

undefined

AW: Navigation in Php, hilfe benötigt.

Dein include ist auch nicht richtig... ;) Hier mal ein Beispiel:

PHP:
<?php

$checkpage = "start";
$erlaubt = array( "start" => 1, "termine" => 1, "geschichte" => 1, "sigcup11" => 1, "kicupwai11" => 1, "koasa11" => 1, "kikupstma11" => 1, "zwergerlunk11" => 1, "koasa10" => 1 ); //usw.......
$checkpage = isset($erlaubt[$_GET["page"]]) ? $_GET["page"] : "default";

include ($checkpage . ".php");

?>

echt das geht? argh - deswegen hat es meine seite zerschossen -.- es wurden spammails über meinen server verschickt autsch =/

Ja, das geht, wird aber in Ackers Beispiel durch die if-Abfragen abgefangen - nur ein wenig umständlich...
 
Zuletzt bearbeitet:

ackermaennchen

Normalo

Teammitglied
AW: Navigation in Php, hilfe benötigt.

ok muss jetzt arbeiten, schau es mir morgen oder heut abend nochmal an, wenn ichs nich kapier, weiß ich ja wen ich nerven kann :D
 

Eliteplayer

Talentfrei=/Wille ist da!

AW: Navigation in Php, hilfe benötigt.

gut zu wissen! danke!
ich habe das nämlich ohne diese abfrage gemacht und einfach immer ein php dahintergehangen ^^
 

Duddle

Posting-Frequenz: 14µHz

AW: Navigation in Php, hilfe benötigt.

PHP:
<?php

$checkpage = "start";
$erlaubt = array( "start" => 1, "termine" => 1, "geschichte" => 1, "sigcup11" => 1, "kicupwai11" => 1, "koasa11" => 1, "kikupstma11" => 1, "zwergerlunk11" => 1, "koasa10" => 1 ); //usw.......
$checkpage = isset($erlaubt[$_GET["page"]]) ? $_GET["page"] : "default";

include ($checkpage . ".php");

?>

Das scheint mir sehr umständlich zu sein, ackermaennchens Code macht im Endeffekt das gleiche und verhindert auch falsche / bösartige includes. Das einzige was bei ihm fehlt sind Leerzeichen:
include"foo.php" funktioniert nicht, include "foo.php" funktioniert.

Edit: Blödsinn, auch ohne Leerzeichen funktioniert es. Insofern ist ackermaennchens Code jetzt schon fehlerfrei.


Duddle
 
Zuletzt bearbeitet:

ackermaennchen

Normalo

Teammitglied
AW: Navigation in Php, hilfe benötigt.

Das scheint mir sehr umständlich zu sein, ackermaennchens Code macht im Endeffekt das gleiche und verhindert auch falsche / bösartige includes. Das einzige was bei ihm fehlt sind Leerzeichen:
include"foo.php" funktioniert nicht, include "foo.php" funktioniert.

Edit: Blödsinn, auch ohne Leerzeichen funktioniert es. Insofern ist ackermaennchens Code jetzt schon fehlerfrei.


Duddle

Fehlerfrei oder nicht, Problem ist ja wie beschrieben das es nicht funktioniert :) und er immer den Inhalt von Start.php anzeigt. Egal welchen Link ich anklicke.
 

ChrisvA

Aktives Mitglied

AW: Navigation in Php, hilfe benötigt.

PHP:
<?php

$checkpage = "start";
$erlaubt = array( "start" => "start.php", "termine" => "termine.php", "geschichte" => "geschichte.php", "sigcup11" => "sigcup11.php", "kicupwai11" => "kicupwai11.php", "koasa11" => "koasa11.php", "kikupstma11" => "kikupstma11.php", "zwergerlunk11" => "zwergerlunk11.php", "koasa10" => "koasa10.php" ); //usw.......
$checkpage = isset($erlaubt[$_GET["page"]]) ? $erlaubt[$_GET["page"]] : "default.php";

include ($checkpage );

//Falls nichts passiert mal bei folgender Zeile den Kommentar entfernen:
//print_r($_GET)

?>
Hier noch einmal eine kleine Abänderung des Codes, jetzt ist der Get-Parameter nicht mehr unbedingt an den Dateinamen gebunden. Damit kann man z.B. Kontakt und Impressum auf die selbe Datei verweisen, ohne dass du die Datei jeweils 2 mal vorhanden sein muss. Außerdem kann man, falls man Unterordner nutzt auch kürzere Id's verwenden, z.B. wird dann aus onlineshop/start.php einfach nur shop_start.
 

ackermaennchen

Normalo

Teammitglied
AW: Navigation in Php, hilfe benötigt.

So irgendwie funktioniert das alles nich :(

im Firefox weiterhin Inhalt der start.php
im iexplorer ebenfalls, alledrings läd sich die Seite komplett neu wenn ich auf termine gehe (was ich ja eig nicht wollte)
im Safari belibt der Content leer.

Vorschläge ?! :D

nochmal der code:
PHP:
 <?php

$checkpage = "start";
$erlaubt = array( "start" => 1, "termine" => 1, "geschichte" => 1, "sigcup11" => 1, "kicupwai11" => 1, "koasa11" => 1, "kikupstma11" => 1, "zwergerlunk11" => 1, "koasa10" => 1 ); 
$checkpage = isset($erlaubt[$_GET["page"]]) ? $_GET["page"] : "default";

include ($checkpage . "start.php", "termine.php" );

?>

Verlinkung (Ausschnitt)
HTML:
<ul id="navi">
<li><a href="index.php?page=start">Home</a></li>
            <li><a href="index.php?page=termine">Termine</a></li>
            <li><a href="index.php?page=geschichte">Geschichte</a></li>

bei include ($checkpage . "start.php", "termine.php" ) hab ich es auch ohne dateinamen wie in cebitos beispiel ausprobiert, keine veränderung.
 

ChrisvA

Aktives Mitglied

AW: Navigation in Php, hilfe benötigt.

Trage doch mal bitte in den Code an einer Stelle folgendes ein und poste was dann da steht.
PHP:
echo '<pre>'.print_r($_GET, true).'<pre>';
EDIT: Und mal bitte folgende 2 Zeilen am Anfang des Skriptes einfügen:
PHP:
error_reporting(E_ALL);
ini_set('display_errors', 1);
 
Zuletzt bearbeitet:

ackermaennchen

Normalo

Teammitglied
AW: Navigation in Php, hilfe benötigt.

ok, kurze zwischenbilnaz, hatte vergessen in den richtigen unterordner zu wechseln beim hochladen auf den server.

Also Firefox alles ok,
Iexplorer wfunktioniert
Safari weiterhin kein Inhalt.

Nach einfügen von Chris sein Code

Safari: Ausgabe:

(
[page] => termine
)
im Content, der eigentliche Content wird nicht angezteigt.

hier mal der direktlink zur seite:



Ok, nochmal Edit:

wenn ich index.php direkt aufrufe kommt ne Fehlermeldung. wenn ich die eizelnen Links anklicke tritt der verherbeschriebene fall ein.
 
Zuletzt bearbeitet:

ackermaennchen

Normalo

Teammitglied
AW: Navigation in Php, hilfe benötigt.

nöö immernoch fehlermeldung beim aufrufen der index.php

wie gesagt wenn ich die einzelnen links anklicke funktioniert es bis auf beim safari
 

Duddle

Posting-Frequenz: 14µHz

AW: Navigation in Php, hilfe benötigt.

nöö immernoch fehlermeldung beim aufrufen der index.php

Na dann lies und versteh' sie doch einfach.
bringt:
Notice: Undefined index: page in /usr/home/sc.lofer.at/scloferneu/index.php on line 101

Warning: include(default.php) [function.include]: failed to open stream: No such file or directory in /usr/home/sc.lofer.at/scloferneu/index.php on line 103

Warning: include() [function.include]: Failed opening 'default.php' for inclusion (include_path='.:/usr/local/share/pear') in /usr/home/sc.lofer.at/scloferneu/index.php on line 103

Array
(
)

Was könnte wohl "Notice: Undefined index: page in /usr/home/sc.lofer.at/scloferneu/index.php on line 101" bedeuten? Sicherlich, dass auf Zeile 101 in der Datei index.php ein Index namens page benutzt wird, der nicht definiert ist.
Ich wette 20 Pferde darauf, dass das diese Zeile ist:
PHP:
$checkpage = isset($erlaubt[$_GET["page"]]) ? $_GET["page"] : "default";

Wo wird dort ein Index namens page benutzt? Offensichtlich ist das $_GET["page"]. Dieser Index ist - laut Fehlermeldung - nicht definiert. Wie kann das undefiniert sein, wenn man index.php ohne Parameter aufruft? Genau: es ist undefiniert, wenn man es nie definiert - weder als URL-Parameter, noch im Code.
Für PHP sieht die Zeile also so aus:
PHP:
$checkpage = isset($erlaubt[UNDEFINIERT]) ? UNDEFINIERT : "default";

Das ist aber nur eine Notice, also nichts fatales. Er löst das im Endeffekt so auf:
PHP:
$checkpage = isset(FALSE) ? UNDEFINIERT : "default";
und weiter
PHP:
$checkpage = FALSE ? UNDEFINIERT : "default";
und schliesslich
PHP:
$checkpage = "default";

Also muss $checkpage in diesem Fall "default" sein. Die nächste Zeile ist dann:
PHP:
include ($checkpage.".php");
Mit der gesetzten Variable heißt das also:
PHP:
include ("default".".php");
Er will also in diesem Schritt die Datei default.php einbinden. Du hast aber keine default.php in dem Verzeichnis der index.php. Das führt unmittelbar zu weiteren Fehlermeldungen:
Warning: include(default.php) [function.include]: failed to open stream: No such file or directory in /usr/home/sc.lofer.at/scloferneu/index.php on line 103

Warning: include() [function.include]: Failed opening 'default.php' for inclusion (include_path='.:/usr/local/share/pear') in /usr/home/sc.lofer.at/scloferneu/index.php on line 103
Diese sagen exakt das aus.


Lange Rede, kurzer Sinn: Fehler lesen, nachvollziehen, verstehen, beheben.


Duddle
 

ackermaennchen

Normalo

Teammitglied
AW: Navigation in Php, hilfe benötigt.

wenn ich das richtig verstanden habe müsste der code also wie folgt aussehen?!

PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);  
$checkpage = "start";
$erlaubt = array( "start" => 1, "termine" => 1, "geschichte" => 1, "sigcup11" => 1, "kicupwai11" => 1, "koasa11" => 1, "kikupstma11" => 1, "zwergerlunk11" => 1, "koasa10" => 1 ); //usw.......
$checkpage = isset($erlaubt[$_GET["start"]]) ? $_GET["start"] : "start";

include ($checkpage .".php");

?>
quasi hab ich an Stelle von page, start eingefügt und somit den Wert festgelegt.
Default wird auch zu start weil er sonst ja weitehrhin default.php aufrufen möchte.

Dennoch kommt die gleiche fehlermeldung wie vorher nur das page jetzt start heißt.

Sorry Leute wenn ihr etwas Geduld mit mir braucht, ich versuch es grad zu kapieren. Danke auch an Duddle die Erklärung hat es mir schon etwas verständlicher gemacht
 

ChrisvA

Aktives Mitglied

AW: Navigation in Php, hilfe benötigt.

PHP:
error_reporting(E_ALL); 
ini_set('display_errors', 1);
if(!isset($_GET['page'])){

$checkpage = "start"; 

}else{

$erlaubt = array( "start" => 1, "termine" => 1, "geschichte" => 1, "sigcup11" => 1, "kicupwai11" => 1, "koasa11" => 1, "kikupstma11" => 1, "zwergerlunk11" => 1, "koasa10" => 1 ); //usw....... 
$checkpage = isset($erlaubt[$_GET["page"]]) ? $_GET["page"] : "start"; 
}
include ($checkpage .".php");

Wieso hast du den Get-Parameter auf einmal umgenannt?
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
118.636
Beiträge
1.538.494
Mitglieder
67.559
Neuestes Mitglied
hanuta
Oben