PHP

Diskutiere PHP im Programmierung Forum im Bereich Software Forum; Mal ne Frage an die PHP Gurus unter euch :D meine php datei sieht so aus: <? if(isset($_REQUEST['action'])) { $action=$_REQUEST['action']; }...
G

general

Threadstarter
Mitglied seit
10.12.2005
Beiträge
19
Mal ne Frage an die PHP Gurus unter euch :D

meine php datei sieht so aus:
Code:
<?

 if(isset($_REQUEST['action']))
{
 $action=$_REQUEST['action'];
}
 else $action="index";

 if($action=="index2") {
echo "<html>
bla

</html>";
}

if($action=="index") {
echo "<html>
bla

</html>";
}

?>
funktioniert auch prima. jedoch ist der aufruf nur per index.php?action=index möglich.
Weiß jemand, wie ich das einrichte, dass es so funktioniert: index.php?index ? :unsure
 
S

Soulc@cha 51

Gast
ZITAT(general @ 12.02.2006, 16:32) Quoted post
Mal ne Frage an die PHP Gurus unter euch :D

meine php datei sieht so aus:
Code:
<?

 if(isset($_REQUEST['action']))
{
 $action=$_REQUEST['action'];
}
 else $action="index";

 if($action=="index2") {
echo "<html>
bla

</html>";
}

if($action=="index") {
echo "<html>
bla

</html>";
}

?>
funktioniert auch prima. jedoch ist der aufruf nur per index.php?action=index möglich.
Weiß jemand, wie ich das einrichte, dass es so funktioniert: index.php?index ? :unsure
[/b]

Guck mal Hier.
 
S

seppjo

Gast
Welche Seite soll denn erscheinen, wenn kein Parameter übergeben wird?

Dann mach doch einfach als erste Zeile im Code:
Code:
$action=="Seite die als erstes (ohne Parameter) erscheinen soll."
 
G

general

Threadstarter
Mitglied seit
10.12.2005
Beiträge
19
ZITAT(seppjo @ 12.02.2006, 18:13) Quoted post
Welche Seite soll denn erscheinen, wenn kein Parameter übergeben wird?

Dann mach doch einfach als erste Zeile im Code:
Code:
$action=="Seite die als erstes (ohne Parameter) erscheinen soll."
[/b]
das lege ich mit

Code:
else $action="index";
fest - wenn nichts übergeben wird, dann index.
 
stpe

stpe

Mitglied seit
14.11.2001
Beiträge
2.729
wenn ich Dich richtig verstanden habe, geht es Dir nur darum, die url kuerzer (und vielleicht sprechender) zu gestalten.

das geht mit php-mitteln nicht, hier ist der webserver gefragt. beim apache ist fuer die adressenumwandlung mod_rewrite zustaendig.
 
G

general

Threadstarter
Mitglied seit
10.12.2005
Beiträge
19
ZITAT(stpe @ 12.02.2006, 20:23) Quoted post
wenn ich Dich richtig verstanden habe, geht es Dir nur darum, die url kuerzer (und vielleicht sprechender) zu gestalten.

das geht mit php-mitteln nicht, hier ist der webserver gefragt. beim apache ist fuer die adressenumwandlung mod_rewrite zustaendig.
[/b]
hm.. das wär ne idee, die ich mir mal überlegen kann. hab ja vor ner woche erst den apache neu aufgesetzt - mit mod_rewrite..
danke dir für den tip.
 
S

seppjo

Gast
Yep mit der .htaccess. Kasste ja gleich einen virtuellen Host draus basteln. :-) Unter Apache natürlich.

Code:
RewriteBase /
# Rewrite Rule for virt.test.de
RewriteCond %{HTTP_HOST} virt.test.de$
RewriteCond %{REQUEST_URI} !"pfad"/datei.ext
RewriteRule ^(.*)$ "pfad"/datei.ext$1
Habs vorher nicht gecheckt gehabt. :-)
 
D

dago

Mitglied seit
05.09.2005
Beiträge
269
Alter
35
Standort
Rheinland-Pfalz
ZITAT(general @ 12.02.2006, 16:32) Quoted post
funktioniert auch prima. jedoch ist der aufruf nur per index.php?action=index möglich.
Weiß jemand, wie ich das einrichte, dass es so funktioniert: index.php?index ? :unsure
[/b]
Erlich gesagt wundert es mich, dass der stpe verstanden hat was du willst! Denn aus deiner Frage sehe ich das nicht.

Nur kurz damit ich das auch noch raf. :D

Welche URL möchtest du nun haben?
/index.php?seite=seitename
/index.php?seitename
/seitename.php
...


:beten Bitte nicht Böse sein, ich möchte es nur verstehen!
 
G

general

Threadstarter
Mitglied seit
10.12.2005
Beiträge
19
@sepp: Hab mal deine genommen und angepasst - kommt nur 403 Error. Am mod_rewrite liegts nich, denn anderen.htaccess dateien z.b. für SEO funktionieren.

@dago: /index.php?seitename - so würde ich es gerne haben, eben ohne dieses action= zwischen fragezeichen und seitenname...
 
D

dago

Mitglied seit
05.09.2005
Beiträge
269
Alter
35
Standort
Rheinland-Pfalz
Hi, dachte ich mir doch, dass es anders gemeint war! :blush

Das heißt dann:
Seite1 => http://www.domainname.de/index.php?seite1
Seite2 => http://www.domainname.de/index.php?seite2

Also die index.php soll die Seitennamen aufnehmen, ohne das die speziel in einer Variable gespeichert werden!

Dann hast du die Lösung schon selbst eigetlich geschrieben, denn in $_GET[] ist nämlich der Setenname schon als Varibale gespeichert! Das heißt, du kannst mit der Funktion isset() auf existens prüfen.
Code:
if (isset($_GET['seite1']))
{
... code für Seite1 ...
}
elseif (isset($_GET['seite2']))
{
... code für Seite2 ...
}
Man kann das dann auch mit einem switch lösen, ist dann etwas übersichtlicher!

Oder es gibt noch eine Möglichkeit! Mit $_SERVER['QUERY_STRING'] steht der kommlete Text hinter dem '?' als String zur verfügung. Also wenn bei dir keine weiteten Informationen dazu kommen, erhälst du dierekt daraus deinen Seitenamen.
Code:
$seitename = $_SERVER['QUERY_STRING'];

if ($seitename == "seite1")
{
... code für Seite1 ...
}
elseif ($seitename == "seite2")
{
... code für Seite2 ...
}
Also ich denke das hast du gemeint oder?
 
G

general

Threadstarter
Mitglied seit
10.12.2005
Beiträge
19
@dago: Vielen Dank! :danke Das funktioniert soweit schonmal!
Wenn der index.php nach dem ? jedoch keine Variable übergeben wird, bzw. eine Variable, die nicht erwähnt ist, wie erreiche ich dann, dass ihn das Skript auf seite1 bringt?
Ein leeres GET bzw. eine else Anweisung brachte keinen erfolg...
 
D

dago

Mitglied seit
05.09.2005
Beiträge
269
Alter
35
Standort
Rheinland-Pfalz
Also, wenn du so arbeiten möchtest, dann nimm lieber die $_SERVER['QUERY_STRING'] Variante.

Code:
$seitename = $_SERVER['QUERY_STRING'];

if (empty($seitename) || $seitename == " ")
{
 $seitename = "seite1";
}
Mit empty() kannst du prüfen ob die Variable kein Wert enthält. Also .../index.php
Mit der zweite Bedinnung fängst du solche URL auch auf: .../index.php?


Sonst empfehle ich dir einen else Zweig (oder bei switch einen default Zweig) zu erstellen, wo du dann bei $_GET[] Variante die Startseite oder bei dieser Variante die Default Seite ablegst!


EDIT: Oder du fügst folgendes Script in Default (else) Zweig ein:
Code:
header("Location: http://" . $_SERVER['HTTP_HOST'] . "index.php?seite1");
exit();
Dann wird nämlich die Seite automatisch zur Startseite geleitet! :deal
 
Thema:

PHP

PHP - Ähnliche Themen

  • kann pdf, php und jpg Dateinen nicht speichern, windows 10 pro

    kann pdf, php und jpg Dateinen nicht speichern, windows 10 pro: kann pdf, php und jpg Dateinen nicht speichern. Muß ich mir vielleicht noch irgendwelche Programme runterladen? Kann nicht einmal eine website...
  • Neue PHP Datei per Kontextmenü erstellen

    Neue PHP Datei per Kontextmenü erstellen: Ich habe das Internet schon nach dieser Möglichkeit unter windows 10 durchsucht, aber nie hat das, was dort beschrieben wurde, auch funktioniert...
  • php

    php: Für die Bearbeitung meiner Webseiten (in Siquando Pro 2) ist mindestens php 5.6 erforderlich. Wo finde ich die installierte Version und wie kann...
  • 2008R2: Apache, PHP, MySQL - Update's

    2008R2: Apache, PHP, MySQL - Update's: Moin aus Meißendorf, wie die Überschrift schon vermuten lässt, habe ich erhebliche Probleme, die o.g. Versionen zu aktualisieren; vermutlich sehe...
  • Datenquelle bei Serienbrief aus PHP-Skript

    Datenquelle bei Serienbrief aus PHP-Skript: Hallo, ich möchte in einem Serienbrief die Daten über ein PHP-Skript laden. Das PHP-Skript gibt wahlweise eine CSV oder XLSX-Datei zurück. Nur...
  • Ähnliche Themen

    • kann pdf, php und jpg Dateinen nicht speichern, windows 10 pro

      kann pdf, php und jpg Dateinen nicht speichern, windows 10 pro: kann pdf, php und jpg Dateinen nicht speichern. Muß ich mir vielleicht noch irgendwelche Programme runterladen? Kann nicht einmal eine website...
    • Neue PHP Datei per Kontextmenü erstellen

      Neue PHP Datei per Kontextmenü erstellen: Ich habe das Internet schon nach dieser Möglichkeit unter windows 10 durchsucht, aber nie hat das, was dort beschrieben wurde, auch funktioniert...
    • php

      php: Für die Bearbeitung meiner Webseiten (in Siquando Pro 2) ist mindestens php 5.6 erforderlich. Wo finde ich die installierte Version und wie kann...
    • 2008R2: Apache, PHP, MySQL - Update's

      2008R2: Apache, PHP, MySQL - Update's: Moin aus Meißendorf, wie die Überschrift schon vermuten lässt, habe ich erhebliche Probleme, die o.g. Versionen zu aktualisieren; vermutlich sehe...
    • Datenquelle bei Serienbrief aus PHP-Skript

      Datenquelle bei Serienbrief aus PHP-Skript: Hallo, ich möchte in einem Serienbrief die Daten über ein PHP-Skript laden. Das PHP-Skript gibt wahlweise eine CSV oder XLSX-Datei zurück. Nur...
    Oben