php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ?

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 16-03-2005, 13:37
miguel_rkc
 Member
Links : Onlinestatus : miguel_rkc ist offline
Registriert seit: Aug 2004
Beiträge: 157
miguel_rkc ist zur Zeit noch ein unbeschriebenes Blatt
Standard Cookieproblem

Hallo,
einfach gesagt: mittels Klicken eines Links soll ein Cookie gesetzt werden, wenn es nicht schon vorhanden ist, mit dem Namen und Inhalt der mit dem Link übergeben wird.

Problem: Wenn noch kein Cookie vorhanden ist klappt es. Wenn eines vorhanden ist und die Parameter im Link (name, inhalt) geändert werden, dann setzt er zwar das Cookie, aber die anschließende Kontrolle nach dem Aktualisieren der Seite schlägt fehl ("Cookie nicht gesetzt" wird ausgegeben).

Zum testen einfach erstmal ausführen und anschließen aktualisieren, dann Link z.B. in <a href="#" onClick="setzeCookie('testcookie2','blabla');">test</a> ändern und wieder aktualisieren.

Quelltext:
PHP-Code:
<html>
<
head>
<
script language="javascript" type="text/javascript">
function 
pruefeCookie(name) {
    
alleCookies=document.cookie;
// Alle Cookies mittels Separator ";" in Array-Feld legen
    
cookieArr=alleCookies.split(";");
// für jedes Feld...
    
for (var i=0;i<cookieArr.length;i++) {
// ... überprüfen, ob vor dem "=" der name mit dem übergebenen Namen überein stimmt
// wenn ja, dann true zurückgeben und Textausgabe
        
if (cookieArr[i].split("=")[0] == name) {
            
document.write("Cookie vorhanden");
            return 
true;
        }
    }
// wenn nein, dann false zurückgeben
    
return false;
}

function 
setzeCookie (nameinhalt) {
    if (
pruefeCookie(name) == false) {
// wenn false zurück gegeben wurde, dann Cookie setzen
        
document.write("Cookie NICHT vorhanden");
        var 
jetzt = new Date();
        var 
datum = new Date(jetzt.getTime() + 1000*60*60*24*365);        
        
document.cookie name "=" inhalt "; expires=" datum.toGMTString() + "; path=/";
    }
}
</script>
</head>
<body>
<a href="#" onClick="setzeCookie('testcookie','inhalt eben3');">test</a>
</body>
</html> 

Geändert von miguel_rkc (16-03-2005 um 13:39 Uhr)
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 16-03-2005, 14:10
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: Cookieproblem

wenn ich mir mal mit dem IE 5 dein beispiel ansehe, und dann mit alert(document.cookie) alle cookies anzeigen lasse, sieht das so aus, als ob die cookies nicht durch ein semikolon, sondern durch semikolon gefolgt von einem blank getrennt sind.

wenn du jetzt also am semikolon splittest, erhältst du für alle cookies außer dem ersten nicht "name=...", sondern " name=..."
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 16-03-2005, 14:23
miguel_rkc
 Member
Links : Onlinestatus : miguel_rkc ist offline
Registriert seit: Aug 2004
Beiträge: 157
miguel_rkc ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Oh, du hast absolut recht.. danke für den Hinweis, ich werde mich dann mal ran machen das du fixen. Thx!
Mit Zitat antworten
  #4 (permalink)  
Alt 16-03-2005, 14:26
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

ich würde zuerst mal prüfen, ob das alle browser so machen (hab derzeit nur den IE 5 zum testen).

wenn ja, kannst du ja einfach "; " zum splitten benutzen, statt ";"
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 16-03-2005, 14:57
miguel_rkc
 Member
Links : Onlinestatus : miguel_rkc ist offline
Registriert seit: Aug 2004
Beiträge: 157
miguel_rkc ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Haha jo, ich hab mir jetzt ne Funktion geschrieben, die mir das führende Leerzeichen wegmacht, aber mit split("; ") gehts auch

danke nochmal
Mit Zitat antworten
  #6 (permalink)  
Alt 17-03-2005, 13:58
miguel_rkc
 Member
Links : Onlinestatus : miguel_rkc ist offline
Registriert seit: Aug 2004
Beiträge: 157
miguel_rkc ist zur Zeit noch ein unbeschriebenes Blatt
Standard

geilo, neues problem:

zum löschen des cookies verwende ich folg. funktion, die das ablaufdatum des genannten cookies in die vergangenheit setzt:

PHP-Code:
function loescheCookie (name) {
    var 
datum "Thu, 01-Jan-70 00:00:01 GMT"
    var 
inhalt "";
    
document.cookie name "=" inhalt "; expires=" datum "; path=/";
    
alert('Cookie: '+name+' gelöscht!');

Im Firefox 1.01 funktioniert es ohne Probleme, IE 6 erstellt stattdessen tatsächlich ein Cookie mit dem Namen und (ohne) Wert. Sowieso kann ich im Cookieinhalt nirgendwo das expires erkennen...

licht
aus
localhost/
1088
2865846400
29772225
839585200
29698800
*

Weiss jemand Rat, wie ich das Cookie im IE korrekt lösche?
Mit Zitat antworten
  #7 (permalink)  
Alt 22-03-2005, 10:47
miguel_rkc
 Member
Links : Onlinestatus : miguel_rkc ist offline
Registriert seit: Aug 2004
Beiträge: 157
miguel_rkc ist zur Zeit noch ein unbeschriebenes Blatt
Standard [JavaScript] Cookieproblem²

Guten Tag,
sorry, dass ich abermals mit einem Cookieproblem ankomme, jedoch konnte ich weder mit Google, noch mit der Suchfunktion eine Lösung für mein Problem finden.
Also: ich möchte ein Cookie, dass ich im Vornherein korrekt gesetzt habe wieder löschen! Ist simpel, weiss ich, allerdings funktioniert folg. wiedermal nicht im IE (im FF ohne Probleme).

PHP-Code:
function loescheCookie (name) {
    var 
datum "Thu, 01-Jan-70 00:00:01 GMT"
    var 
inhalt "";
    
document.cookie name "=" inhalt "; expires=" datum "; path=/";

Das Cookie, dessen Name via 'name' richtig übergeben wird sollte eigentlich aufgrund des in der Vergangenheit liegenden Datums gelöscht werden, stattdessen setzt der IE ein Cookie mit leerem Wert ('inhalt') und komischen Zahlen:

PHP-Code:
hilfe

localhost
/
1088
667801216
34459479
4046449712
29699778

Weiss jemand Rat?
Mit Zitat antworten
  #8 (permalink)  
Alt 22-03-2005, 11:08
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: [JavaScript] Cookieproblem²

so ganz easy scheint es nicht zu sein, mit javascript im IE cookies zu handeln.

aber vielleicht kann http://www.onetwomax.de/magazin/8613...JavaScript.htm weitere hinweise geben.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #9 (permalink)  
Alt 22-03-2005, 13:00
miguel_rkc
 Member
Links : Onlinestatus : miguel_rkc ist offline
Registriert seit: Aug 2004
Beiträge: 157
miguel_rkc ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, also das Script hinter deinem Link funktioniert im IE, nicht aber im FF. Allerdings habe ich mir das jetzt so zurecht gebogen, dass es in beiden Browsern funktioniert.

Falls es jemanden interessiert:

PHP-Code:
function pruefeCookie(nameinhalt) {
    
alleCookies document.cookie;
    
cookieArr alleCookies.split("; ");
    for (var 
i=0i<cookieArr.lengthi++) {
        if (
cookieArr[i].split("=")[0] == name) {
            if (
inhalt != 'wechsel') {
                return 
true;
            } else {
                
inhalt cookieArr[i].split("=");
                
inhalt unescape(inhalt[1]);
                return 
inhalt;
            }            
        }
    }
    return 
false;
}

function 
loescheCookie (name) {
    var 
value "";
    var 
hours 0;
    var 
expire "";
    if(
hours != null) {
        
expire = new Date((new Date()).getTime() + hours 3600000);
        
expire "; expires=" expire.toGMTString();
    }
    
document.cookie name "=" escape(value) + expire;
}

function 
setzeCookie (nameinhalt) {
    if (
inhalt == 'wechsel') {
        
inhalt pruefeCookie(nameinhalt); 
        if (
inhalt == 'an') {
            
loescheCookie(name);
            
setzeCookie(name'aus');
            
window.location.reload();
        } else {
            
loescheCookie(name);
            
setzeCookie(name,'an');
            
window.location.reload();
        }
    }
    if (
pruefeCookie(nameinhalt) == false) {
        var 
jetzt = new Date();
        var 
datum = new Date(jetzt.getTime() + 1000*60*60*24*365);        
        
document.cookie name "=" inhalt "; expires=" datum.toGMTString() + ";";
    }

Das Script setzt ein Cookie, das erstmal ein Cookie (falls noch nicht vorhanden) mit einem Standardwert setzt und es dann den Inhalt dessen via Buttondruck ändert (hier: aus - an). Zugegebenermaßen ist der Code teilweise doppelt gemoppelt, allerdings schien mir die Browserkompatibilität anders nicht möglich. Ich habe es verwendet, um eine dynamische Hilfe ein- oder auszuschalten (mittels Tootipbibliothek von http://www.walterzorn.de/tooltip/tooltip.htm) Demo gibts hier: http://www.temp.passadeena.de/cookie/

Geändert von miguel_rkc (22-03-2005 um 13:22 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

Formmailer v1.7.0 Bootstrap 4

Formmailer v1.7.0 Bootstrap wurde extra für Bootstrap entwickelt. Mit Bootstrap kann man schnell und einfach kleine oder große Projekte entwickeln, die auf Geräten in allen erdenklichen Formen funktionieren.

16.04.2020 arne-home | Kategorie: PHP/ Formular
Upload v1.1.0 Bootstrap

Mit dem PHP - Uploadscript kann man schnell und einfach Bilder und Dateien auf den Webserver hochladen.

16.04.2020 arne-home | Kategorie: PHP/ File
Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:59 Uhr.