PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS (https://www.php-resource.de/forum/html-javascript-ajax-jquery-css-bootstrap-less/)
-   -   404 Fehlercode (https://www.php-resource.de/forum/html-javascript-ajax-jquery-css-bootstrap-less/95654-404-fehlercode.html)

Zipper5004 24-02-2009 14:08

404 Fehlercode
 
Hallo, ich möchte für meine Seite eine Fehlercode Seite erstellen, allerdings nicht so, dass ein User umgeleitet wird, sondern das das einfach auf der Seite angezeigt wird.

Wenn jemand auf index2.php geht, möchte ich nicht, dass er auf fehler404.php umgeleitet wird, sondern dass auf index2.php der Inhalt von fehler404.php angezeigt wird. geht das irgendwie?

meine zweite Frage wäre, ob es möglich ist, die URL im Browserfenster zu verändern, ohne die Seite neu laden zu müssen, wenn also jemand nach "Peter" sucht, dann soll er direkt nach dem Klick auf Submit auf suchen.php?name=peter weitergeleitet werden, und nicht nur auf suchen.php. Das ganze hat den Hintergrund, dass ich möchte, dass der User sich die Suche ganz einfach bookmarken kann, bisher habe ich das so gehandhabt, dass ich unten einen Link angeboten habe, wo dann eben suche.php?name=peter stand, oder dass man erst auf eine Seite gekommen ist, wo die URL "erzeugt" wurde, also einfach auf suchen.php?name=peter via Meta tag weitergeleitet.
Geht das auch irgendwie anders, dass man direkt auf die entsprechende Seite kommt?

Gruß

ghostgambler 24-02-2009 14:11

Re: 404 Fehlercode
 
Zitat:

Original geschrieben von Zipper5004
Wenn jemand auf index2.php geht, möchte ich nicht, dass er auf fehler404.php umgeleitet wird, sondern dass auf index2.php der Inhalt von fehler404.php angezeigt wird. geht das irgendwie?
include('fehler404.php');

Zitat:

meine zweite Frage wäre, ob es möglich ist, die URL im Browserfenster zu verändern, ohne die Seite neu laden zu müssen, wenn also jemand nach "Peter" sucht, dann soll er direkt nach dem Klick auf Submit auf suchen.php?name=peter weitergeleitet werden, und nicht nur auf suchen.php. Das ganze hat den Hintergrund, dass ich möchte, dass der User sich die Suche ganz einfach bookmarken kann, bisher habe ich das so gehandhabt, dass ich unten einen Link angeboten habe, wo dann eben suche.php?name=peter stand, oder dass man erst auf eine Seite gekommen ist, wo die URL "erzeugt" wurde, also einfach auf suchen.php?name=peter via Meta tag weitergeleitet.
Das Formular halt statt Post mit Get abschicken.

Anbu 24-02-2009 14:14

Also wenn ichs richtig verstanden hab recihts doch wenn du in deiner Such-Form method von POST auf Get änderst oder nicht? ist nicht schön funktioniert aber :D

Ne andere Möglichkeit wäre, dass du beim klick auf suchen, per JS ein location.href erstellst mit dem Suchparameter als Get Variable

Zipper5004 24-02-2009 14:24

Zitat:

include('fehler404.php');
geht das so?
Code:

ErrorDocument 404 include('fehler404.php');
Zitat:

Das Formular halt statt Post mit Get abschicken.
kann ich mit der Funktion auch mehrere Dinge übergeben?
also name=Peter ; lastname=Mustermann ; sex=male?

und wie läuft das dann?
Code:

<form id="form1" name="form1" method="get" action="suchen.php?name=$_POST[$name]&lastname=$_POST['$lastname]">

Anbu 24-02-2009 14:30

nein du hast einfach anstatt $_POST['name'], $_GET['name']. Und wenn du dann auf die such.php kommst stehen alle GET Variablen oben in der URL

ArSeN 24-02-2009 14:55

Du musst den Aufbau deines Formulares (und die action) nicht ändern, wenn du die Methode auf GET umstellst. Die gleichen Elemente die vorher die POST-Werte geliefert haben werden jetzt an die URL angehängt. Bezüglich mehrerer Werte: Keine Angst, das macht der Browser dann schon automatisch, wenn du eben mehrere Elemente mitsendest, dann dürfte dir auch das Format klar werden.
In diesem Zusammenhang bitte unbedingt das Thema SQL Injections und mysql_real_escape_string() nicht vergessen.

Zum 404-Dokument: in der .htaccess-Datei (die du offenbar editierst) kannst du keinen PHP-Code angeben (standardmäßig), weil dieser hier nicht interpretiert wird. Du kannst lediglich den Dateinamen des Fehlerdokumentes angeben. Soweit ich weiß - bin mir aber nicht sicher - wird das dann standardmäßig auch gar nicht in der Browserzeile angezeigt, da es im Apache intern verarbeitet wird.

ghostgambler 24-02-2009 15:03

Zitat:

Original geschrieben von Zipper5004
geht das so?
Code:

ErrorDocument 404 include('fehler404.php');

Hast du es ausprobiert?...

Was hattest du da vorher stehen?
Normalerweise leitet der Apache nur weiter, wenn dort eine absolute URL steht. Hast du es mal einfach mit
/pfad/zur/err.php
probiert?

Zipper5004 24-02-2009 17:19

habe folgendes in .htaccess stehen
Code:

ErrorDocument 404 fehler.htm
angezeigt wird dann folgendes
Code:

fehler.htm
in fehler.htm steht
Code:

hallo 404
schreibe ich folgendes rein, klappt es
Code:

www.meinehompage.de/fehler.htm
aber in der URL wird dann statt
[code]www.meinehompage.de/falsche_seite.php[/url]
wieder
Code:

www.meinehompage.de/fehler.htm
habe gelesen, dass das immer so sei, wenn man direkt verlinkt, aber anders bekomme ich es nicht hin


Das mit dem Get klappt wunderbar, aber wie bekomme ich es hin, dass der dann so etwas wie "mode=search" noch mit übergibt?

Code:

<form id="form1" name="form1" method="get" action="suchen.php?mode=search">
klappt leider nicht

wahsaga 24-02-2009 17:24

Es empfiehlt sich, die Adresse des ErrorDocuments mit einem fuehrenden Slash anzugeben, also von der Domainwurzel aus.


Zitat:

Das mit dem Get klappt wunderbar, aber wie bekomme ich es hin, dass der dann so etwas wie "mode=search" noch mit übergibt?
In dem du noch ein entsprechendes Feld mit ins Formular packst.

Zipper5004 24-02-2009 17:30

Zitat:

Original geschrieben von wahsaga
In dem du noch ein entsprechendes Feld mit ins Formular packst.
kann man das "unsichtbar" machen, also so, dass das keiner mitbekommt/auf den ersten Blick sieht?

Zitat:

Es empfiehlt sich, die Adresse des ErrorDocuments mit einem fuehrenden Slash anzugeben, also von der Domainwurzel aus.
hab ich vergessen, danke :)


edit: hab mal was probiert
Code:

ErrorDocument (*) /fehler.php?mode=$1
so geht es nicht, aber kann man das evtl irgendwie dynamisch machen, dass der bei jedem Fehlercode auf die Seite geht, und dann dort halt "Fehlercode 404" oder so anzeigt?

ArSeN 24-02-2009 17:34

Zitat:

Original geschrieben von Zipper5004
kann man das "unsichtbar" machen, also so, dass das keiner mitbekommt/auf den ersten Blick sieht?
<input type="hidden" name="parameter" value="wert" />

wahsaga 24-02-2009 17:36

Zitat:

Original geschrieben von Zipper5004
kann man das "unsichtbar" machen, also so, dass das keiner mitbekommt/auf den ersten Blick sieht?
Ja - und man kann vielleicht auch mal was selber nachlesen, statt fuer jeden Pups zu fragen.
http://de.selfhtml.org/html/formulare/versteckte.htm

Zitat:

aber kann man das evtl irgendwie dynamisch machen, dass der bei jedem Fehlercode auf die Seite geht, und dann dort halt "Fehlercode 404" oder so anzeigt?
Ja, man kann bei der ErrorDocument-Angabe auch GET-Parameter mit angeben, die sich dann im Script auswerten lassen.

Zipper5004 24-02-2009 17:43

Zitat:

Original geschrieben von wahsaga
Ja, man kann bei der ErrorDocument-Angabe auch GET-Parameter mit angeben, die sich dann im Script auswerten lassen.
du meinst mit
Code:

ErrorDocument 404 fehler.php?mode=404
ErrorDocument 500 fehler.php?mode=500

?

Ich versuche es aber mit (*) oder so dynamisch zu machen, dass ich nicht für jeden Fehlercode eine eigene Zeile machen muss bei htaccess, aber evtl. hast du recht, und das ist letztendlich doch einfacher

wahsaga 24-02-2009 18:24

Zitat:

Original geschrieben von Zipper5004
Ich versuche es aber mit (*) oder so dynamisch zu machen, dass ich nicht für jeden Fehlercode eine eigene Zeile machen muss bei htaccess
Wenn du dir deinen eigenen Webserver schreibst, der eine entsprechende Syntax versteht, dann kannst du das natuerlich gerne machen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:27 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG