Frage zu PHP

Alles, was PHP betrifft, kann hier besprochen werden.

Frage zu PHP

Postby Stunner » 22. December 2008 13:21

Hallo liebe Apache-Friends.

Ich habe eine Frage:
Also ich bin noch totaler Neuling in Sachen PHP (leider) und ich weiß eigentlich verdammt wenig.

Ich habe nur eine (oder zwei) Fragen:
Auf viele Seiten sieht man im URL stehen http://www.seite.de/index.php?=123

... nur ein beispiel.
Aber wie macht man das?
Ich wollte nähmlich soetwas ebenfalls machen.
Also ich habe eine Geschichte für meine Website geschrieben. Diese ist viel zu lang für eine Seite. Aber ich möchte nicht noch mehr Seiten erstellen, nur für diese Geschichte.
Wie mache ich es, dass ich die Geschichte in z.B. 4 Seiten aufteile, die aber trotzdem auf geschichte.php bleiben???

Danke schonmal!

*grins* :?:

Gruß,
Nici

P.S.: Sorry ...
|-----------------|
Gruß,
Nici [Stunner]
|-----------------|
User avatar
Stunner
 
Posts: 28
Joined: 17. December 2008 14:41
Location: Köln

Re: Frage zu PHP

Postby glitzi85 » 22. December 2008 14:20

Also die Geschichte musst du schon aufteilen. Du packst jeden Teil in eine Datei und nennst sie geschichteX.inc, wobei X für Zahlen von 1 bis 4 stehen. Die geschichte.php sieht dann so in etwa aus:

Code: Select all
<?php
$MAXPAGE = 4;
$MINPAGE = 1;
$page = intval($_GET['page']);
if($page < $MINPAGE || $page > $MAXPAGE){
  $page = $MINPAGE;
}
if(file_exists('geschichte'.$page.'.inc')){
  include('geschichte'.$page.'.inc');
}else{
  echo 'Dieser Teil der Geschichte existiert leider nicht!';
}
if($page > $MINPAGE){
  echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($page - 1).'">Zurück</a> ';
}
if($page < $MAXPAGE){
  echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.($page + 1).'">Vorwärts</a>';
}
?>


Kurze Erklärung. Ganz oben werden die Seitenbegrenzungen definiert. Dann wird versucht aus der Variable, die in der URL übertragen wird ($_GET['page']) eine Ganzzahl zu machen. Die Funktion intval gibt in jedem Fall eine Zahl zurück, da kann also niemand was einschleusen (wichtig beim importieren von Daten aus unbekannten Quellen)! Diese Zahl wird dann in der Variablen $page gespeichert. Danach wird geprüft ob $page innerhalb des gültigen Bereichs liegt (größer als $MINPAGE und kleiner $MAXPAGE), wenn nicht, dann wird $page auf die niedrigste gültige Zahl gesetzt, hier entspricht das der ersten Seite. Anschliessend wird der entsprechende Teil eingebunden (include) wenn er existiert. Um unschöne Fehlermeldungen von PHP vorzubeugen wird zuerst geprüft ob es die Datei auch gibt und wenn nicht, wird einfach ein kleiner Text ausgegeben. Da kannst du natürlich auch eine Weiterleitung zu einer Fehlerseite oder sowas reinpacken, ganz wie dir beliebt. Danach wird noch geprüft ob wir auf der ersten oder letzten Seite sind und abhängig davon ein Link zum nächsten oder vorherigen Teil ausgegeben.

Ist jetzt nur mal zur Veranschaulichung. Musst du natürlich an deine Gegebenheiten anpassen.

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Re: Frage zu PHP

Postby Stunner » 22. December 2008 15:16

ok! ...

Schonmal vielen Dank.

Hat perfekt geklappt.
1. Frage: Wie mach ich es, wenn die geschichteX.inc´s in dem ordner geschichte liegen??
2. Frage:
Wenn ich eine zum Beispiel gewinnspiel.php in index.php erscheinen lassen will durhc einen link, wie geht ads denn??

Also:

Link -> das gewinnspiel öffnet sich in index.php (aber man sieht halt nur das gewinnspiel)



Danke!
|-----------------|
Gruß,
Nici [Stunner]
|-----------------|
User avatar
Stunner
 
Posts: 28
Joined: 17. December 2008 14:41
Location: Köln

Re: Frage zu PHP

Postby glitzi85 » 22. December 2008 15:41

Stunner wrote:1. Frage: Wie mach ich es, wenn die geschichteX.inc´s in dem ordner geschichte liegen??

Dann änderst du diesen Teil
Code: Select all
if(file_exists('geschichte'.$page.'.inc')){
  include('geschichte'.$page.'.inc');
}else{
  echo 'Dieser Teil der Geschichte existiert leider nicht!';
}

in diesen
Code: Select all
if(file_exists('geschichte/geschichte'.$page.'.inc')){
  include('geschichte/geschichte'.$page.'.inc');
}else{
  echo 'Dieser Teil der Geschichte existiert leider nicht!';
}


Stunner wrote:2. Frage:
Wenn ich eine zum Beispiel gewinnspiel.php in index.php erscheinen lassen will durhc einen link, wie geht ads denn??

Dazu müsste man wissen wie die index.php programmiert ist. Ich persönlich würde in der index.php keine Daten vorhalten, sondern je nach URL-Angabe die entsprechende Datei includieren. Wenn es dumm läuft, musst du dazu dein komplettes Layout (der Dateien, nicht der Seite) ändern. Wenn du willst kann ich dazu mal ein kleines Beispiel programmieren und online stellen.

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Re: Frage zu PHP

Postby Stunner » 22. December 2008 15:53

das wäre super....

Danke!

P.S.: Sicher, dass wir nicht aneinander vorbeireden?? :?
|-----------------|
Gruß,
Nici [Stunner]
|-----------------|
User avatar
Stunner
 
Posts: 28
Joined: 17. December 2008 14:41
Location: Köln

Re: Frage zu PHP

Postby Stunner » 22. December 2008 16:30

hmm, ich habe noch eine Frage:

(tut mir echt leid aber ich muss dich da jetzt leider fragen).

Ich habe mir eine news.inc in index.php included. So ... nun gibts es aber auch noch ein archiv. Da sollen natürlich alle rein. In der index.php soll aber nur maximal 6 stehen. Wie schaff ich das, ohne die geschriebene News in 2 news.inc unterzubringen? Also ich möchte in der news.inc schreiben und dann taucht in index.php und archiv.php die News auf. Aber auf index.php sollen nicht alle News angezeigt werden, die in der archiv.php angezeigt werden!?

Verstehst du?

Also danke schonmal ... :D :D :D :D
|-----------------|
Gruß,
Nici [Stunner]
|-----------------|
User avatar
Stunner
 
Posts: 28
Joined: 17. December 2008 14:41
Location: Köln


Return to PHP

Who is online

Users browsing this forum: No registered users and 2 guests