Suche auf lima-city
-
in: Letzten tweet in HTML (oder auch PHP) einbinden
geschrieben von digg
Hallo
entweder machst du dazu einen Twitter API Zugang .... https://dev.twitter.com
und musst mit OAuth Authentication und REST API v1.1 Call die User-Timeline abfragen
dafür gibt es Twitter oAuth PHP librarys ... z.B. abraham twitter oauth ...
oder du kannst externe Dienste nutzen, die Dir ein RSS-Feed von Twitter User ausgeben
z:B:
http://twitrss.me/twitter_user_to_rss/?user=blockhost
aber solche externen Dienste sind vielleicht morgen schon nicht mehr verfügbar,
mit eigenem Zugang zur Twitter API ist es wohl (etwas) stabiler (aber auch aufwendiger)
je nach dem (ob api oder externer RSS Dienst) musst Du dann halt das
Ergebnis mit PHP auslesen (json oder xml) und entsprechend ausgeben ...
-
in: Datenbank geht nicht mehr...
geschrieben von digg
Hallo
wenn der Test-Zeitraum (der Datenbank) abgelaufen ist,
dann wird die DB wohl auch wieder deaktiviert ....
Du kannst eine (dauerhaft verfügbare) Datenbank
entweder über Auktionen mit (50) Gulden ersteigern
oder eine Datenbank im Shop (je DB 2,99 €) kaufen
-
in: Regex Pattern richtig escapen ?
geschrieben von digg
zum Thema: Regex Pattern richtig escapen
gibt es eine vollständige Liste an Zeichen, die in einem Regex Pattern escaped werden müssen,
wenn man sie als "String" verwenden will ?
ich kenne diese Liste: http://php.net/manual/en/regexp.reference.meta.php
bzw auch hier: http://docs.kde.org/stable/de/kde-baseapps/kate/regex-patterns.html
daraus entnehme ich als Zeichen-Liste:
^ $ . [ ] | ( ) ? * + { } \ -
sind das alle ? ... was ist mit Ausrufezeichen ! oder Raute # ... etc.
--> vollständige Liste an (Steuer-) Zeichen für Regex Pattern ?
... ohne Abkürzungen wie \w für [a-zA-Z0-9] ... oder \s für [ \t\n\r]
-
in: urlencode Fehlerhaft ?
geschrieben von digg
Danke, das ist es ... erwartet wird urlencode von UTF-8 String
habe es noch bischen erweitert, so dass es auch nach Umstellung der Seite auf UTF-8 funktioniert
(wenn dann Formular-Eingaben auch als UTF-8 ankommen)
function str2utf8 ($string) { if (mb_detect_encoding($string, 'UTF-8', true) === FALSE) { $string = utf8_encode($string); } return $string;
sonst könnte der $string ja evtl. doppelt utf8 encoded werden
PS:
wie soll (kann) ich die Formular-Eingabe sonst noch "filtern"
damit kein hack-Risiko besteht ....
Problem ist: es soll auch " als EIngabe möglich sein,
weil bei EingabeSamsung Galaxy S3
wird nach jedem Wort einzeln gesucht, also ODER
damit genau nur dieser String gesucht wird, müsste man eingeben:"Samsung Galaxy S3"
aber mit
im String hab ich dann wieder Probleme bei der Ausgabe"
habe es bisher so probiert:
if (isset($_REQUEST['q']) && !empty($_REQUEST['q'])) { $qstr = trim(chop($_REQUEST['q'])); $qstr = stripslashes($qstr); $qstr = html_entity_decode($qstr); // ---- Anwendung der function siehe oben ---- $qstr = str2utf8($qstr); // ---- sicherstellen dass String UTF-8 ist $url_qstr = urlencode($qstr); // ---- String fuer Request $show_q_str = htmlentities($qstr); // ---- String fuer Ausgabe } else { $qstr = ''; $url_qstr = ''; $show_q_str = ''; }
damit ich dann je Verwendung (Request / Ausgabe) verschiedenen Strings habe
für den REQUEST so
$parameter .= '&Query='.$url_qstr.'';
für Ausgabe im Formular so:
print "Suchwort: <input type=\"text\" name=\"q\" size=\"46\" maxlength=\"100\" value=\"".$show_q_str."\" />\n";
ohne htmlentities() bekomme ich es nicht hin, das er String mit " wieder augegeben werden kann
aber das hat zur Folge, dass ich jede Eingabe wieder html_entity_decode() machen muss
macht das so Sinn, oder gibt's "bessere" Lösung - Sonderzeichen
in User-Eingabe"
so dass es auch mit dem " wieder in HTML (formular input text value) ausgegeben wird ... ?
-
in: urlencode Fehlerhaft ?
geschrieben von digg
Hallo
Wenn ich String für GET anfragen codieren will, komme ich nicht auf die "richtige" codierung ?
BSP 1:
$string1 = "Loydd´s"; $encstr1 = urlencode($string1); echo "<br />".$encstr1."\n";
mit urlencode() erhalte ich:Loydd%B4s
aber laut dem Tool: http://meyerweb.com/eric/tools/dencoder/
ist es anders richtig:Loydd%C2%B4s
und die GET-Abfrage funktioniert auch nur mit dieser Variante richtig
BSP 2:
$string2 = "Bücher"; $encstr2 = urlencode($string2); echo "<br />".$encstr2."\n";
mit urlencode() erhalte ich:B%FCcher
aber laut dem Tool: http://meyerweb.com/eric/tools/dencoder/
ist es anders richtig:B%C3%BCcher
und die GET-Abfrage funktioniert auch nur mit dieser Variante richtig
--> was läuft da bei urlencode() falsch
bzw.. wie komme ich auf die "richtige" url-codierung ???
Danke!
-
in: Leerzeichen zwischen Worte einfügen?
geschrieben von digg
Hallo
mir ist schon klar, dass PHP nicht "zaubern" kann, aber auf Webspace habe ich nunmal kein C(++)
und dass Fehler in Text wie ""In diesem Satz fehltein Leerzeichen." wohl nicht behoben werden können,
weil wie (ohne Wörterbuch) soll PHP da erkennen, das "fehltein" eigentlich "fehlt ein" heissen soll.
sowas erwarte ich ja garnicht ...
Das von hackyourlife sieht ja schon ganz gut aus
$text = preg_replace('/(\\.|,|;|\\?|!|:)([a-zA-Z])/', '\\1 \\2', $text); $text = preg_replace('/([a-z])([A-Z])/', '\\1 \\2', $text);
frage mich dabei nur, warum .(Punkt) und ? (Fragezeichen) gleich doppelt escaped sind
... genügt da nich einmal \ (Backslash) davor ?
da ein Leerzeichen ja auch nach einer Zahl fehlen kann,
könnte man doch die Pattern so erweitern : (?)
$text = preg_replace('/(\\.|,|;|\\?|!|:)([a-zA-Z0-9])/', '\\1 \\2', $text); $text = preg_replace('/([a-z0-9])([A-Z])/', '\\1 \\2', $text);
und warum ist es doppel-escaped mit \\ und nicht nur nur mit \
-
in: Leerzeichen zwischen Worte einfügen?
geschrieben von digg
Hallo
ich habe Texte, bei denen manchmal kein Leerzeichen zwischen zwei Worten oder am Satz-Ende ist
wie kann ich (mit PHP) den Text so umwandeln,
dass wenn auf einen Klein-Buchstabe oder auf ein Satzzeichen direkt ein Gross-Buchstabe folgt
dann dazwischen ein Leerzeichen einfügen.
BSP: Mein Hut der hat vierEcken. ---> Mein Hut der hat vier Ecken.
BSP: Ist das ein Hut?Oder ein Helm? ---> Ist das ein Hut? Oder ein Helm?
BSP: Hast Du einen Hut,bist du gut. ---> Hast Du einen Hut, bist du gut.
usw.
also immer wenn Großbuchstabe oder Satzzeichen "direkt" auf ein Nicht-Leerzeichen folgt
dann dazwischen ein Leerzeichen einfügen ... evtl mit einem preg_replace() ... aber wie?
mit Satzzeichen meine ich: punkt, komma, semikolon, fragezeichen, ausrufezeichen, doppelpunkt ... etc...
. , ; ? ! :
PS: Sonderfall wären noch Klammern, also bei ( vorher ein Leerzeichen und bei ) danach
Danke!
-
in: Header Cache-Control no-transform ?
geschrieben von digg
ok, Danke
aber ich habe trotz der .htaccess immernoch das Problem,
dass auf der Seite nicht immer die aktuellen Daten angezeigt werden.
Wenn ich nach einer Änderung in der DB (MySQL)
danach wieder auf die Liste schaue, dann werden dort trotzdem die "akten" Werte angezeigt
obwohl die "neuen" Daten in der DB eingetragen sind, und die Liste per SELECT neu gelesen wird.
stehen in der Liste (HTML-Ausgabe des MySQL-Result) noch die "alten" Werte
erst wenn ich die Brower-Seite aktualisiere (F5) dann stehen da auch die aktuellen Werte
also funktioniert das No-Cache mit .htaccess nicht wirklich
aber wie sonst kann ich es machen, dass die Ausgabe NICHT aus Cache kommt
sondern immer die aktuellen Werte ausgegeben werden ?
-
in: Header Cache-Control no-transform ?
geschrieben von digg
das ist doch aber eine .NET Doku / Info,
ist ja nicht gesagt, das bei PHP das gleiche gilt
schlechte Übersetung einer MSN Seite als Antwort auf eine PHP-Frage ... naja (hüstel)
und was bitte heisst
Ob ein Cache oder ein Proxy keinen Aspekt Entität BODYs geändert werden dürfen.
WIe soll ein Proxy (oder sonst ein Zugriff auf eine Webseite) den BODY ändern?!
keine Ahnung (und mir auch egal) was da bei .NET abgeht, mir gehts ja um PHP
also mit php header Cache-Control stellt man doch das Verhalten des Browser ein,
daher nochmal die Frage, was (in PHP !) mit set ... Cache-Control ... no-transform
erreicht werden soll, bzw, verhindert werden soll,
und ob es für No-Cache header (Seite Laden ohne Cache) nötig oder sinnvoll ist
Danke -
in: Zähler
geschrieben von digg
auch die Zeile ist so nicht ganz richtig,
if ($insert == true) {echo "Ok";}else {echo "Fail";}
auch wenn's wahrscheinlich keinen Fehler ergibt
bei bool Prüfung (true/false) nimmt man === (drei mal = Zeichen)
if ($insert === true) {echo "Ok";}else {echo "Fail";}
willst Du wirklich jeden Aufruf speichern,
oder je IP nur alle x Minuten (Counter mit IP-Sperre) ?
dann musst Du vor Speichern prüfen, ob die IP schon in Tabelle steht
und auch, ob die Zeit seit letzter Speicherung schon lange genug her ist
-
in: falsches Datum in Javascript ?
geschrieben von digg
oh ja, Danke
bei getDate() habe ich nicht geschaut, weil ich von PHP gewohnt bin, das date() das "ganze" Datum behandelt, dass man in Javascript mit getDate() den Tag im Monat bekommt, ist die Lösung, Danke !
hier nochmal der verbesserte Code:
<html> <head> <title>Datum und Uhr</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"> <!-- function start_uhr() { show_uhr(); window.setInterval("show_uhr()", 1000); } function show_uhr() { var now = new Date(); var year = now.getFullYear(); // Jahreszahl 4-Stellig var month = now.getMonth(); // Array-Wert Monat 0 bis 11 var zmonth = (month+1); // Zahlenwert Monat 1 bis 12 var wday = now.getDay(); // Array-Wert Wochentag 0 bis 6 var day = now.getDate(); // Zahlenwert Tag im Monat 1 bis 31 var Wochentag = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"); var Monattext = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"); var hours = now.getHours(); // Zahlenwert Stunden 0 bis 23 var minutes = now.getMinutes(); // Zahlenwert Minuten 0 bis 59 var seconds = now.getSeconds(); // Zahlenwert Sekunden 0 bis 59 var thetime = ""; thetime += "Datum: "; thetime += "" + Wochentag[wday] + ", "; thetime += (day < 10) ? "0" + day + "." : day + "."; thetime += (zmonth < 10) ? "0" + zmonth + "." : zmonth + "."; thetime += " (" + Monattext[month] + ") "; thetime += year + " "; thetime += "... Zeit: "; thetime += (hours < 10) ? "0" + hours + ":" : hours + ":"; thetime += (minutes < 10) ? "0" + minutes + ":" : minutes + ":"; thetime += (seconds < 10) ? "0" + seconds : seconds; thetime += " Uhr"; element = document.getElementById("datumausgabe"); element.innerHTML = thetime; } //--> </script> <style type="text/css"> <!-- #datumausgabe { font-family: "Courier New", Courier, mono; font-size: 14px; color:#003366; } --> </style> </head> <body onload="start_uhr();"> <span id="datumausgabe"></span> </body> </html>
gibt es noch eine andere Möglichkeit das Ding ohne
zu starten ?<body onload="start_uhr();">
nochwas:
per JS wird ja mit new Date() das Datum vom Client genommen.
wie kann ich als Datum die Server-Zeit nehmen ?
bzw. gibt es eine (externe) Atom-Uhr, von der man das "genaue" aktuelle Datum holen kann ?
so, dass immer die richtige Uhrzeit angezeigt wird, unabhängig von Client- oder Server-Zeit?
Danke! -
in: falsches Datum in Javascript ?
geschrieben von digg
Hallo
ja, das ist schon klar, das ich einfach mit +1 bei month und day reparieren kann
var month = (now.getMonth()+1); var day = (now.getDay()+1);
wenn ich das mache, dann stimmt zwar das Datum als Zahl,
aber der Text für Monat und Tag stimmt dann nicht mehr,
also füge ich ein Dummy-Element ein, weil Monat 0 und Tag 0 gibt es ja nicht
var Wochentag = new Array("x", "Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"); var Monattext = new Array("x", "Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
aber eigentlich ist das so ja auch Quatsch,
denn welchen Text soll sich das script am 24,07. holen,
es gibt ja kein 24tes Element in Wochentag ???
also gibt mir getDay() nicht den Tag als Zahlenwert, sondern den Wochentag
beginnend mit 0 = Sonntag bis 6 = Samstag ???
...oOo .. steht ja auch in der DOKU: getDay() (Wochentag ermitteln)
ist halt auch grad Zufall, dass der 04.07.2012 ein Mittwoch ist und somit 3 als Wochentag ergibt
wie komme ich denn an den aktuellen Tag im Monat (als Zahlenwert, also z.B. 24) ?
bei Monat ist es noch "machbar" mit dem Array Wert (0 = Januar, 1 = Februar, etc)
aber bei Wochentage gehts ja nur bis 7 (bzw. 0 bis 6), ich brauche aber Tag im Monat als Zahl
oder wie sonst hier das Datum und Uhrzeit formatiert ausgeben ?
Danke
-
in: falsches Datum in Javascript ?
geschrieben von digg
Hallo
ich habe ein kleines JS um aktuelles Datum und Uhrzeit anzuzeigen,
leider bekomme ich im Datum bei Tag und bei Monat immer falsche Zahlen
es wird immer aktueller Tag minus 1 und aktueller Monat minus 1 angezeigt ??
also heute ist: 04.07.2012 aber in Ausgabe steht : 03.06.2012
hier der Code:
<html> <head> <title>Datum und Uhr</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"> <!-- function start_uhr() { show_uhr(); window.setInterval("show_uhr()", 1000); } function show_uhr() { var now = new Date(); var year = now.getFullYear(); var month = now.getMonth(); var day = now.getDay(); var Wochentag = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"); var Monattext = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"); var hours = now.getHours(); var minutes = now.getMinutes(); var seconds = now.getSeconds(); var thetime = ""; thetime += "Datum: "; thetime += " " + Wochentag[day] + " "; thetime += (day < 10) ? "0" + day + "." : day + "."; thetime += (month < 10) ? "0" + month + "." : month + "."; thetime += " " + Monattext[month] + " "; thetime += year + " "; thetime += "Zeit: "; thetime += (hours < 10) ? "0" + hours + ":" : hours + ":"; thetime += (minutes < 10) ? "0" + minutes + ":" : minutes + ":"; thetime += (seconds < 10) ? "0" + seconds : seconds; thetime += " Uhr"; element = document.getElementById("datumausgabe"); element.innerHTML = thetime; } //--> </script> </head> <body onload="start_uhr();"> <span id="datumausgabe"></span> </body> </html>
warum bekomme ich im Datum am 04.07.2012 als Ausgabe: 03.06.2012
also bei Tag und Monat sind die Zahlen jeweil um 1 zu wenig (in der Vergangenheit)
aber der Wochentag und Monattext sind richtig ?!
?
-
in: Header Cache-Control no-transform ?
geschrieben von digg
Hallo
was bewirkt dieses no-transform
Bsp .htaccess
Header set Cache-Control "no-cache, no-store, must-revalidate, proxy-revalidate, no-transform, max-age=0, post-check=0, pre-check=0" Header set Pragma "no-cache"
in vielen Beispielen zu Cache-Control ist das no-transform nicht dabei, nur bei manchen,
(wozu) braucht man das ?
-
in: RegExp um BrowserVersion rauszufinden
geschrieben von digg
Hallo
Du kannst auch die API von useragentstring.com nutzen, um Browser-Infos abzufragen
habe dazu hier auch was im Forum gefunden im Beitrag: Browsername ohne get_browser()
weiß nicht ob das besser ist als eigenes Regex
aber da ist zumindest eine relativ umfangreiche Datenbank mit bekannten Browser-Strings
-
in: Rest-Laufzeit einer Session ausgeben?
geschrieben von digg
ahh Danke
davon ausgehend müsste ich dann die Funktion send mit meinen Formularfeldern erweitern
und dann noch was bauen, was send() alle x Minuten selber aufführt
geht das auch bei Drop-Down Felder? .... in JS function send()
var category = document.getElementById('form_cat');
für
<select name="cat" id="form_cat">
<option value="category_nr1">Kategorie-Name1</option>
<option value="category_nr2">Kategorie-Name2</option>
<option value="category_nr3">Kategorie-Name3</option>
</select>
also den aktuell (vom User) ausgewählten option-Wert in JS var category ablegen ?
-
in: Style Tag (Mehrere Styles in einem Attribut?)
geschrieben von digg
ich glaub :hover ist dafür kein gutes Beispiel,
zum Einen, weil :hover im IE nur bei <a> Tags funktioniert
zum Anderen, weil :hover "nur" ein Selektor eines Elements und kein eigenständiger Style ist
wie hackyourlife ja erklärt hat:
hackyourlife schrieb:
CSS mit Selektoren.
und.container
wird automatisch zugeordnet sobald du.container:hover
schreibst, da das :hover nur auf "container" angewendet wird.<div class="container">
aber mal das BSP mit Hintergrund und Text-Farben
.bg_dunkel {
background:#000000;
}
.bg_hell {
background:#FFFFFF;
}
.txt_dunkel {
background:#000000;
}
.txt_hell {
background:#FFFFFF;
}
für Anwenung von 2 Klassen einfach in class="" beide durch Leerzeichen getrennt rein schreiben
<div class="bg_dunkel txt_hell"> Weißer Text auf schwarzem Hintergrund </div> <div class="bg_hell txt_dunkel"> Schwarzer Text auf weißem Hintergrund </div>
geht auch mit ID und Klasse gemischt
#dunkel {
background:#000000;
}
#hell {
background:#FFFFFF;
}
.txt_dunkel {
background:#000000;
}
.txt_hell {
background:#FFFFFF;
}
für Anwenung von Klasse und ID in einem Element einfach in beide normal zuweisen
<div id="dunkel" class="txt_hell"> Weißer Text auf schwarzem Hintergrund </div> <div id="hell" class="txt_dunkel"> Schwarzer Text auf weißem Hintergrund </div>
aber zwei IDs in einem Element machen glaub keinen Sinn :)
bei Selector (dynamische Pseudo-Klassen) wie a:hover oder p:first-letter
brauchst Du keinen extra-Style definieren, die greifen "dynamisch"
also für die angegebene Klasse bzw. für die ID (siehe BSP von hackyourlife oben)
EDIT .... ahhh .... Du willst :hover auf nicht-Link <a> Elemente anwenden ??? also z.B. auf <div>
die Pseudo-Klasse (selector) :hover ist eigentlich nur für <a> TAGs gedacht (links)
viele Browser können es auch nur dort anwenden
damit .container:hover { ... } geht kann man aber schon was tricksen
es gibt sowas wie "Whatever:hover" als .htc ... (siehe: http://www.google.de/search?q=hover+htc)
oder evtl auch was in jQuery oder ähnliches
also quasi per JavaScript den :hover -Effekt auf alle Elemente anwendbar gemacht
-
in: Rest-Laufzeit einer Session ausgeben?
geschrieben von digg
jo, das ist natürlich ne Idee,
einfach alle paar Minuten den Login (per Ajax im Hintergrund) auffrischen
dadurch entsteht zwar bischen Traffic,
aber so wäre sicher gestellt, dass User-Eingaben nicht "verloren" gehen,
wenn dem User was dazwischen kommt
BSP:
... User schreibt einen Beitrag ...
... bekommt Telefon-Anruf ... soll jemanden abholen fahren
... lässt den angefangenen Beitrag offen, fährt zum Abholen und isst noch ein Eis
... kommt nach 3 Stunden wieder und kann dann Beitrag weiter schreiben und speichern
ohne Session "auffrischen" (im Hintergrund) wären die Eingaben verloren,
weill in der Zwischenzeit die Session abgelaufen wäre, und er müsst von vorn anfangen
aber wer lässt einen angefangenen Beitrag schon 3 Stunden offen
und meist kommt Energiesparmodus vom PC dazwischen und PC geht in den Ruhezustand,
dann bringt Session "auffrischen" auch nix ....
aber (IDEE) ... ich könnte ja den Beitrag selber per Ajax alle 2 Minuten "zwischenspeichern"
und wenn User nicht selber auf Speichern geklickt hat, und ausgeloggt wurde (Session timeout)
dann bekommt er beim nächsten Login die Meldung, dass da noch ein nicht fertiger Beitrag ist,
und er jetzt da weiter machen kann, wo er aufgehört hat ... (bzw. beim letzten Speicher-Zeitpunkt)
also für den Beitrag einen neuen Status einführen,
ob vom User selbst gespeichert (veröffentlicht) wurde,
oder ob "nur" vom System zwischengespeichert, also Beitrag noch in Bearbeitung
ich kenne das Problem selber von anderen Seiten (auch Foren)
manchmal braucht man ja etwas länger um einen Text zu verfassen, auch wenn mal was "dazwischen" kommt
und bis man soweit ist und Speichern will, ist der Login nicht mehr "aktiv" und die ganze mühsame Eingabe ist dann verloren, und man müsste beim nächsten Login wieder bei NULL anfangen .... was (als User) dann sehr frustrierend ist.
Mit so einem "alle x Minuten zwischenspeichern" könnte man zumindest auf die letzte Zwischen-Speicherung zurückgreifen und den Text ab da "weiter" schreiben, und muss nicht nochmal ganz von vorne anfangen ...
in der DB-Tabelle für Beitrag zwei neue Felder machen (Speicher-Status und Zeitpunkt) ist dabei kein Problem,
aber wie bekomme ich den Inhalt aus Formular (mehrere Felder) zum Zwischen-Speichern ohne Submit
also muss sich Ajax die "aktuellen" Inhalte aus den Feldern selber holen .... das könnte ich Hilfe brauchen :)
-
in: Rest-Laufzeit einer Session ausgeben?
geschrieben von digg
hackyourlife schrieb:
Wozu bräuchtest du denn dieses "Timeout für einzelne Variablen"?
naja, ich dachte halt, das diese Laufzeit nicht jedesmal neu startet
und wollte für eingeloggte User eine Info ausgeben: Dein Login ist noch x Minuten aktiv
aber (wie ich jetzt gelernt habe) startet ja bei jedem session_start() der Timeout wieder neu
also brauche ich das quasi dann doch nicht
oder ich mach die Ausgabe dann hat mit der Info:
Du musst innerhalb der nächsten x Minuten etwas "tun" (klicken) sonst bist du ausgeloggt
Quasi ein Countdown, der anzeigt wie lange der User "inaktiv" bleiben kann,
bis der Login nicht mehr "gültig" ist,
Und so eine Ausgabe müsste dann wohl als JavaScript (Countdown) laufen,
da es ja die Zeit "ohne" Aktivität betrifft, also geht Ausgabe von PHP da nicht
Wenn dann Countdown abgelaufen ist,
könnte man auf Seite weiterleiten ... "LogOut wegen Inaktivität" ... oder so
damit der User dann nicht noch Ablauf noch versucht was zu speichern,
aber die Session garnicht mehr aktiv ist, und seine Eingabe "verloren" geht.
-
in: Rest-Laufzeit einer Session ausgeben?
geschrieben von digg
wenn bei jedem session_start() die Laufzeit wieder zurückgesetzt wird,
dann würde eine Session ja unendlich laufen, solange der User innerhalb der Laufzeit aktiv bleibt ?!
weil um zu Prüfen, ob die Session einen bestimmten Wert hat, braucht man ja auch session_start()
ohne session_start() kann man ja keine Abfrage machen wie
if (isset($_SESSION['pwx']) && $_SESSION['pwx'] == 'geheim') { echo "<p>Passwort ist OK</p>\n"; } else { echo "<p>Passwort ist falsch</p>\n"; }
aber Lebensdauer / Laufzeit heisst für mich, sobald ich der Wert für $_SESSION['pwx'] vergebe,
dann kann ich nur 180 Minuten auf diese Variable $_SESSION['pwx'] zugreifen,
danach sollte diese Session nicht mehr existieren,
also ... isset($_SESSION['pwx']) sollte dann false ergeben, ... oder nicht ?
-
in: Rest-Laufzeit einer Session ausgeben?
geschrieben von digg
Hallo
wenn ich eine SESSION starte, dann hat die ja eine bestimmte Lebensdauer,
aber wie bekomme ich den Wert, wie lange diese Lebensdauer noch anhält ?
wenn ich Ausgabe mache:
echo "<p>Dauer: " . session_cache_expire() . "</p>\n";
bekomme ich immer 180 (ist wohl in Minuten) als Ergebnis,
auch wenn die Session schon 10 Minuten läuft ....
wie kann ich Ausgabe machen, die mir die Rest-Lebensdauer ausgibt,
also dass nach 10 Minuten in der Ausgabe steht: sowas wie: noch 170 Minuten
muss ich dazu einen timestamp-Wert beim Start der Session speichern,
kann ich per PHP (interne Funktion) die Rest-Lebensdauer direkt auslesen ?
+ wann (timestamp) die aktuelle Session gestartet wurde oder
+ wieviel von den 180 Minuten schon "verbraucht" sind oder
+ wie lange sie noch gültig ist (als Sekunden oder Timestamp)
um auf Session-Inhalte zugreifen zu können,
muss ich ja immer auch session_start() machen,
aber wird dadurch die Laufzeit auch jedesmal neu gestartet? .... nein, oder?
wenn das so wäre, würde ja eine Laufzeit kaum einen Sinn machen.
aber session_cache_expire() gibt mir immer 180 als Wert aus ???
--> Wie kann ich Rest-Laufzeit der Session anzeigen, zum Beispiel bei Login
BSP: .... Dein Login ist noch für 5668 Sekunden aktiv
bzw: .... Dein Login ist noch für 1 Stunde 34 Minuten und 28 Sekunden aktiv
die Formatierung der Zeit Angabe (Stunden/Minuten/Sekunden) ist jetzt nicht das Problem,
sondern erstmal, wie ich überhaupt auf die Rest-Lebensdauer (Wert in Sekunden) komme
gibt es dazu eine PHP interne Funktion, die mir Start-Zeit oder Rest-Zeit ausgibt
... oder muss ich den timestamp beim Login (beim Start der Session) speichern?
gibt es eine fertige Funktion dafür (Beispiel) ?
Danke