weiterleiten funktioniert nicht
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
apache
aufruf
benutzer
benutzername
browser
code
dank
date
datum
header
hilfe
http
machen
nachricht
nummer
palm
problem
session
url
-
Hallo liebe Gemeinde,
kann mir jemand helfen. Ich hab folgendes Problem:
} echo "alles richtig" ; function isMobile() { return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo |fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]); } if(isMobile()) { header("Location:Kalender1.php"); //Leitet auf mobil.HTML um echo "alles richtig mobile" ; } else { header("Location:DeskKalender1.php" ); //Leitet auf mobil.HTML um echo "alles richtig Desk" ; }
Nach einer Passwortabfrage, soll der geneigte Besucher auf die entsprechende Seite weiter geleitet werden.
Das macht er aber nicht, also bei lima-city. Auf dem Apache macht er es, auf dem Heimserver.
Das "Echo" hab ich zur Kontrolle eingebaut. Bis dahin kommt er auch. ERkennt es auch.
Ich danke euch für eure Hilfe, mit den freundlichsten Grüßen
Frank -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo Frank,
das allererste echo macht deine Weiterleitung kaputt, vor dem Setzen des Headers dürfen keine Daten an den Client (Browser) geschickt werden, siehe http://php.net/manual/de/function.header.php
}
echo "alles richtig" ;
function isMobile()
{
return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo
|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
}
if(isMobile())
{
header("Location:Kalender1.php");
//Leitet auf mobil.HTML um
echo "alles richtig mobile" ;
}
else
{
header("Location:DeskKalender1.php" );
//Leitet auf mobil.HTML um
echo "alles richtig Desk" ;
}
-
Hallo Ikatools,
ich danke dir für deine Hilfe. vor allem auch die Links.
Lese ich da richtig raus , dass ich den Header nicht nach einer Passwort-Abfrage mit schicken kann?
Na ich werde es noch lernen.
Also noch mal vielen Dank,
Frank -
vaterbesuch schrieb:
Lese ich da richtig raus , dass ich den Header nicht nach einer Passwort-Abfrage mit schicken kann?
Richtig, du kannst nicht nach der Ausgabe von HTML-Code Header mitschicken.
Header müssen, wie der Name schon sagt, am Anfang von allen HTML-Code stehen.
Die Kommunikation zwischen Benutzer und Server sollte bei Passwort-Abfragen so ablaufen:
[Anzeige der Passwortabfrage] -> [Benutzer tippt Daten ein und schickt Formular ab] -> [dein Skript prüft PW und handelt entsprechend]
Jeder Bestandteil ist ein neuer Seitenaufruf.
Dein Skript sollte also so aufgebaut sein (hier nur Pseudocode):
//Beginn des Skripts wenn passwort und benutzername ok dann aufschreiben, dass der benutzer sich authentifiziert hat wenn aufruf mit mobilgerät dann umleiten auf mobilseite ansonsten umleiten auf desktopseite ansonsten //passwort und benutzername sind falsch, daher Fehlermeldung ausgeben //Ende des Skripts
Wichtig: Du musst dir irgendwie merken (Cookie, Datenbank, einfache Textdateien, ...) dass der Benutzer sich angemeldet hat.
Bei jedem Aufruf passwortgeschützten Materials muss überprüft werden, ob der Benutzer sich angemeldet hat.
Momentan ist http://vaterbesuch.lima-city.de/Kalender1.php dewegen ohne Passwortabfrage sichtbar, weil diese Überprüfung fehlt.
Dein jetziger Schutz ist also eher homöopathisch, ich konnte z.B. ohne Probleme diese Nachricht in dein System eintragen:
"Dies ist eine Testnachricht.
Nummer: 239854734587345" -
Hallo Artur,
viele Dank für deine sehr eindrucksvolle Demonstration, ich hab nicht schlecht geschaut. .
das ist eine richtig Lücke.
Um es zu lösen, hat sich mir ein neues Problem ergeben.
Ich will Session() nutzen um auf jeder neuen Seite die Passwortabfrage zu prüfen.
<?php session_start(); $name1 = $_POST["nike"] ; $name2= $_POST["passw"] ; $name3 ="Frank" ; $_SESSION["nike"] = $name1; $datumheute = date("Y.m.d",time()); ?>
Wenn ich in der ersten, nächsten Seite, wie gefordert, als aller erstes wieder die Session() starte.
<?php session_start(); $_SESSION["nike"]; $datumheute = date("Y.m.d",time()); ?>
funktioniert es, aber dann auf den weiteren Seiten ist die Variable dann leer.
Auch hier wieder, komischer Weise funktioniert es auf dem Apache XAMPP.
Werde das Problem noch mal als neues Thema reinstellen.
Noch mal vielen Dank für deine Anregungen und Tips,
einen schönen Sonntag abend,
Frank -
Nüzliches script. Danke
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage