PHP/HTML refresh Weiterleitung funktioniert nicht
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
aktualisieren
anmeldung
ausgabe
bewertung
blick
button
code
dank
datei
erledigen
fehler
funktionieren
header
hinweis
index
leiten
tip
turnier
weiterleiten
weiterleitung
-
Hallo Zusammen,
im Zuge meines Umzugs auf lima-city ist mir folgendes aufgefallen.
Wenn aktuell kein Turnier offen ist so kann man dennoch auf den Anmeldebutton klicken. Auf dem bisherigen Hoster habe ich dies soweit unterbunden das man nicht mehr auf der Anmeldeseite landet indem der User dann sofort wieder zur Startseite weitergeleitet wird.
Folgender Code sorgt dafür und wird mittels .php eingebunden:
<meta http-equiv="refresh" content="0; URL=/">
Aber eben selbiger Code funktioniert nicht auf lima-city.de. Vllt sehe ich nur den Wald vor lauter Bäumen nicht aber worin liegt mein Fehler?
PS: Bei einer Erfolgreichen Anmeldung wird eine Bestätigungsseite angezeigt die mit selbigen Code:
Nur mit einer 30 Sekündigen Wartezeit angezeigt wird.<meta http-equiv="refresh" content="30; URL=/">
PPS: Fehlermeldung ist Error 500.... habe im Netz das hier gefunden https://stackoverflow.com/questions/17693391/500-internal-server-error-for-php-file-not-for-html und nun frage ich mich wie ich die Recht ändern kann?
Beitrag zuletzt geändert: 13.11.2017 11:42:27 von fussballturnier -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du versucht sofort umzuleiten. Das klingt nicht richtig in meinen Ohren. Blende doch einfach den Button aus via PhP u.o. MySQL.
-
Ja das wollte ich mit dem nächsten Update noch erledigen. Ich weiß selbst das es eine echt mieserable Lösung aktuell ist aber ich hab es einfach auf die schnelle so gelöst.
Bei der nächsten Version werde ich im Vorfeld abfragen ob ein Turnier vorhanden ist und wenn nicht dann wird kein Button eingeblendet.
Ich habe den Fehler bereits selbst finden können. Erst nachdem ich das PHP Logging hier bei lima-city aktiviert habe konnte ich die Zeile ausfindig machen. Nur leider hat mein dummer Atom-Editor die Eigenschaft entweder .php oder .html Dateien richtig anzuzeigen. .html Dateien die .php includen werden hierbei falsch dargestellt da ich im Dropdown nur eins von beidem einstellen kann....
Als ich es dann im Notepad++ geladen habe fiel es mir wie Schuppen von den Augen das dort etwas in der Zeile nicht stimmt. Es war ein String der nicht geschlossen wurde. -
Ich kenne den Befehl eigentlich so.
<meta http-equiv="refresh" content="30; url=index.php">
Es könntesein, dass der refresh aus dem cache geholt wird. Und der lima hat eben Serverseitig den optimalen cache bereits eingestellt.
<meta http-equiv="expires" content="0">
würde das cachen verhindern.
-
<meta http-equiv="refresh" content="30; url=index.php">
Das würde ja die Seite auf Index.php weiterleiten.
Mein Code leitet ja genauso auf die index Seite nur repräsentiert das / was Wurzelverzeichnis, ist ne andere Schreibweise.<meta http-equiv="refresh" content="0; URL=/">
-
Hallo,
warum meta-refresh als HTML ..... hier eine "Weiterleitung" mit PHP ...
<?php header("Location: /index.php"); ?>
:)
Beitrag zuletzt geändert: 16.11.2017 21:47:48 von planweb -
Es geht ja um das aktualisieren von Content. PHP würde dich so schnell loopen das du nichts mehr machen kannst. Und sleep würde das laden der Seite aufhalten.
Beitrag zuletzt geändert: 16.11.2017 21:53:10 von horstexplorer -
Zitat:
Es geht ja um das aktualisieren von Content. PHP würde dich so schnell loopen das du nichts mehr machen kannst. Und sleep würde das laden der Seite aufhalten.
und warum steht dieser beitrag dann im PHP Forum
ich habe einen konstruktivwn Lösungsvorschlag gemacht,
man muss diesen ja nicht annehmen,
..... aber gleich negative Bewertung im Forum,
für meine Antwort die zum Thema ist und keine negativen Inhalte enthält.
.... dafür Minus -1 Bewertung .... Denk mal drüber nach
das ist ein konstruktiver Beitrag zum Thema ohne negative Inhalte ?!?!
........... ist ja ein herzlicher Empfang hier ... !!! ?!? ??
DANKE
ich sehe das genau anders herum, mit PHP ist es doch schneller
wenn man noch vor der HTML Ausgabe mit PHP prüfen kann,
ob die Bedingung erfüllt ist, wenn ja, nur dann die "Weiterleitung"
zu einer Zielseite (index.php oder info1.php oder ...)
<?php ## $t_status = (empty($turnier_daten))?FALSE:TRUE; if (FALSE === $t_status) { header("Location: /index.php"); } ?>
mit PHP kommt die "Weiterleitung" bevor die "alte Seite"
erst vollständig vom Browser geladen weden muss
PS: und dieser TAG <meta refresh ...> ist leider bei vielen doch eher unbeliebt,
und auch bei Sucxmachinen-Bewertung und Crawlern nicht so gern gesehen.
Beitrag zuletzt geändert: 16.11.2017 22:40:59 von planweb -
Erstmal danke für die Hilfe und Tipps.
Auch wenn das Meta-refresh vllt von Google oder anderen ungern gesehen ist, ist es für mich DIE Lösung aktuell.
Habe in der .htaccess statt der index eine andere Seite vorgeschaltet in der steht das man weitergeleitet wird und auch wohin. Die anderen Lösungen wie das 301 sind zwar nett aber diese leiten einen sofort weiter ohne den Nutzer zu informieren.
Wer ne andere Lösung hat darf sie gerne Posten aber ich habe auf die schnelle nichts brauchbares gefunden. -
<?php
header("Location: /index.php");
?>
Leitet dich immer auf Index um. Egal was los ist.
<?php
## $t_status = (empty($turnier_daten))?FALSE:TRUE;
if (FALSE === $t_status) {
header("Location: /index.php");
}
?>
Überprüft einen Zustand und entscheidet dann.
Das erste ich zwar der Hinweis wie man das weiter leiten machen könnte, ein guter wie das System funktionieren kann ist das aber nicht.
Ich weiß jetzt nicht wie fussballturnier das regelt mit dem anmelde Button. Man könnte die Seite auf das Element überprüfen, welches per SQL Status mit PHP eingefügt wird, oder man ließt gleich den Status aus.
Eine einfache Umleitung finde ich nicht so schön. Das könnte den Nutzer verwirren, da die Seite nicht einmal geladen hat und man schon wieder auf der alten Seite landet. Wirkt so als wäre das Element kaputt. Man sollte schon auf eine andere Seite kommen mit einem Hinweis, dass gerade nichts da ist und oder einfach den Link zu der Seite wie bereits gesagt entfernen.
//Code poste ich nachher, habe gerade keine Zeit :)
Beitrag zuletzt geändert: 17.11.2017 8:39:55 von horstexplorer -
omg hab ich ja völlig vergessen mitzuteilen, konnte den 500er Fehler bereits lösen. Es lag an einem Fehler in meiner .htacces-Datei.
Aber die Tipps konnten mir dennoch weiterhelfen beim endgültigen "abstellen" bzw weiterleiten der potenziellen Nutzer von der Alten Seite zu meiner Neuen auf lima-city gehosteten.
Ich habe jetzt tatsächlich den Eröffnungspost iwie übersrpungen und habe meine zwei Probleme mit dem refresh vertauscht.
Aber nun läuft alles :)
Beitrag zuletzt geändert: 17.11.2017 8:49:51 von fussballturnier -
Ich blicke bei deiner Seite nicht ganz durch wie das mit der Anmeldung funktionieren soll, bzw wo wenn gerade nichts ist die Anmeldung verhindert werden soll.
Aber egal.
Du könntest z.Bsp in deinem Hauptverzeichnis eine Datei die keinturnier.txt heißt ablegen, wenn derzeit kein Turnier stattfindet.
Dann könntest du den Anmelden Button so ausblenden. Ist die Datei nicht da, ist der Button wieder da. Der Code müsste dann dort hin wo gerade der Code für den Button Turnier wählen ist.
if (file_exist(keinturnier.txt){ echo '<input class="submitButtonText" value="Anmeldung nicht verfügbar" />'; } else { echo '<input class="submitButtonText" type="submit" value="Turnier wählen" />'; }
Und damit man auch die Anmeldungs Seite nicht manuell aufrufen kann muss der Code auf die Seite am Anfang:
if (file_exist(../keinturnier.txt){ header("Location: ../index.php"); } else {}
Das ganze könnte man natürlich auch anhand der Ausgabe deiner choose_offene_turniere.php erledigen. Ich weiß aber nicht was die aus gibt.
Beitrag zuletzt geändert: 17.11.2017 16:48:24 von horstexplorer -
Hallo :)
Also das Problem mit dem refresh habe ich bereits lösen können. Es lag blöderweise an einer fehlerhaften .htaccess Datei.
Ich blicke bei deiner Seite nicht ganz durch wie das mit der Anmeldung funktionieren soll, bzw wo wenn gerade nichts ist die Anmeldung verhindert werden soll.
Das habe ich leider nicht ganz verstanden wie du das meinst. Evlt warst du auf der Testseite oder zu einem falschen Zeitpunkt grade drauf.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage