Android Handy nimmt COOKIES nicht richtig an?

Hey hey,

ich habe eine kleine PHP Anwendung erstellt.

Bei dieser komme ich um Cookies nicht herum. Beim testen auf verschiedenen Geräten funktioniert alles super. Auf Android Handy aber leider nicht so zuverlässig wie es aber muss.

In einer Form wird der eingegebene Name als Cookie gesetzt. (Kein Login)

Wenn der Name gesetzt ist, kann die nächste Seite aufgerufen werden. Dort kann eine Form ausgeführt werden. Nach dem ausführen wird der Android Benutzer "ausgeloggt". Das soll nicht sein. Er sollte eigentlich auf der Seite bleiben.

So prüfe ich ob der Benutzer einen Namen gesetzt hat:

if (!isset($_COOKIE['user_id']) AND !isset($_COOKIE['user_name'])) {
  echo "Melde dich zuerst an";
  header('Location: index.php');
  echo "<meta http-equiv='refresh' content='0; URL=index.php'>";
  exit;
}
if (!isset($_COOKIE['user_room'])) {
  echo "Trete einem Raum bei";
  header('Location: start.php');
  echo "<meta http-equiv='refresh' content='0; URL=start.php'>";
  exit;
}

Die einzige Stelle, an der Cookies gelöscht werden ist beim Logout, welchen ich so aufgebaut habe:

$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
foreach($cookies as $cookie) {
    $parts = explode('=', $cookie);
    $name = trim($parts[0]);
    setcookie($name, '', time()-100000);
    setcookie($name, '', time()-100000, '/');
}

Liegt hier irgendwo mein Fehler? Oder muss ich weiter suchen? Liegt es an Android? Weil funktionieren tut es auf allen anderen Geräten.

Beste Grüße und vielen Dank für jeden Tipp, den ich von euch erhalte. :)

Computer, Technik, HTML, Cookies, Android, HTML Code, PHP, Technologie, header, session
javascript cookies checkbox?

Helloo,

ich versuche grad für meine Website den Wert einer Checkbox als cookie zu speichern. Ich habe den Code aus Cookies in W3schools in der 3. Funktion bereits modifiziert um zwischen dark- und whitemode zu switchen je nach dem ob man bei confirm auf ok oder abbrechen geht. Allerdings checke ich nicht so ganz wie ich in Funktion 3 anstatt der eingabe über Confirm eine Eingabe zu Eingabe über Checkbox machen kann bzw wie man dann die Funktion getCookie verändern muss.

Dankeeee

function setCookie(cname, cvalue, exdays) {
  const d = new Date();
  d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
  let expires = "expires="+d.toUTCString();
  document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}


function getCookie(cname) {                               
  let name = cname + "=";                                 
  let ca = document.cookie.split(';');                   
  for(let i = 0; i < ca.length; i++) {                   
    let c = ca[i];                                       expire date
    while (c.charAt(0) == ' ') {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
}


function checkCookie() {
  let user = getCookie("username");                         
  user = confirm();                           
    if (user == true && user != null) {
      setCookie("username", user, 365);                     
      darkmode2();
    }
    if(user == false && user != null){
      whitemode2();
      setCookie("username", user, 365);
    }     
}
JavaScript, Cookies
PHP User verifizieren?

Hi, ich bin grad dabei ne Website für ein kleines Startup zu programmieren und hänge grad am Login System. Ich hab dabei kein wirkliches Problem sondern eher ne allgemeine Frage:

Wie kann man sicher und sinnvoll einen User verifizieren

Momentan mache ich das so:
Ein User registriert sich, woraufhin in der Datenbank für diesen User ein einzigartiger "Verifizierungscode" generiert wird. Dieser wird dann, wenn er sich einloggt, auf dem PC des Users per Cookie gespeichert. Wenn der User jetzt auf sein Dashboard zugreifen will, wird einfach, wenn vorhanden, der Inhalt des Cookies mit allen Verifizierungscodes in der Datenbank abgeglichen und bei der Zeile, in der die Codes übereinstimmen, wird daraus dann der User geladen. Hoffe das ist verständlich, ansonsten einfach nachfragen.

Den Inhalt des Cookies kann man auch nicht durch irgendwelches rumprobieren herausfinden, da ich diesen mit password_hash() gehashed habe.

Mein Problem jetzt: Ich habe mir einige Docs und Sicherheitsberichte durchgelesen in denen häufig gesagt wird, man solle den User nicht nur anhand eines Cookies automatisch einloggen. Nur leider wird nirgends erwähnt, was man sonst noch so machen könnte, da die Gefahr, dass der Cookie geklaut wird oder ähnliches ja schon besteht. (Cookie Hijacking).

Hat jemand ne sinnvolle Antwort auf mein Problem oder andere Lösungsvorschläge?

Computer, Internet, Website, HTML, Webseite, JavaScript, Cookies, Datenbank, MySQL, PHP
Könnt ihr mir helfen,Javascript Fehler zu suchen?

Guten Tag,

Ich habe heute ein Programmierbuch gelesen und hatte in diesen Buch eine Aufgabe,einen Einkaufszettel zu erstellen.Ich habe eine Seite mit JSON erstellt und habe paar Fehler,die ich net finden kann,weil das für mich richtig aussieht.

Vielleicht könnt ihr meinen Fehler herrausfinden

Der Fehler soll die variable this sein

Das ist der Code:

<!DOCTYPE HTML>

<html>

<head>

<title>Kapitel 15</title>

<meta content="text/html;charset=utf-8" http-equiv="Content-Type">

<meta content="utf-8" http-equiv="encoding">

</head>

<body>

  <script>

   function Einkaufszettel(eingabeId, ausgabeId, key){

     this.eingabeFeld = document.getElementById(eingabeId);

     this.ausgabeFeld = document.getElementById(ausgabeId);

     this.key = key;

     if(localStorage[this.key]){

       this.inhalt = JSON.parse(localStorage[this.key]);

     } else {

       this.inhalt = [];

     }

     this.schreibeListe();

   };

   Einkaufszettel.prototype = {

     hinzufuegen: function(){

       var eingabe = this.eingabeFeld.value;

       this.inhalt.push(eingabe);

       localStorage[this.key] = JSON.stringify(this.inhalt);

       this.eingabeFeld.value = '';

       this.schreibeEintrag(eingabe);

     },

     schreibeListe: function(){

       

       for(var i = 0; i < this.inhalt.length; i++){

         this.schreibeEintrag(this.inhalt[i]);

       }

     },

     schreibeEintrag: function(text){

       var li = document.createElement("li");

       li.appendChild(document.createTextNode(text));

       this.ausgabeFeld.appendChild(li);

     }

   }

   function init(){

     if(window.localStorage){

       var zettel = new Einkaufszettel("eintrag", "ausgabe", "einkaufszettel");

       document.getElementById("speichern").addEventListener("click", zettel.hinzufuegen.bind(zettel));

     } else {

       alert("Web Storage nicht gefunden!");

     }

   }

   window.addEventListener("load", init);

  </script>

   

<label for="name">Name: </label>

<input type="text" name="name" size="50" id="eingabeId"><br>

<label for="menge">Menge: </label>

<input type="text" name="menge" size="50" id="ausgabeId"><br>

<button type="button" id="speichern">Klick</button>

<ul id="ausgabe"></ul>

</body>

</html>

Computer, Programmieren, JavaScript, Cookies, json
Ich brauche hilfe beim Cookies?

Guten Tag,

Ich lerne heute bei einem Buch Schrödinger lernt html css und Javascript

das thema Cookies und zwar habe ich in dem buch die aufgabe bekommen,diesen code abzuschreiben,aber ich habe einen Fehlermeldung erhalten.

ich schicke den code:

<!DOCTYPE HTML>

<html>

<head>

<title>Kapitel 15</title>

<meta content="text/html;charset=utf-8" http-equiv="Content-Type">

<meta content="utf-8" http-equiv="encoding">

</head>

<body>

<script>

    function setzeCookieAusFormular(){

        var name = document.getElementById("name").value;

        var wert = document.getElementById("wert").value;

        var name = nameFeld.value;

        var wert = wertFeld.value;

        setzeCookie(name, wert);

        nameFeld.value = "";

        wertFeld.value = "";

        zeigeCookies();

    }

    function pruefeCookieName(name){

      if (name.indexOf(",") > -1 || name.indexOf(";") > -1 || name.indexOf(" ") > -1 || name.indexOf("=") > -1 ){

          alert("Ungültiger Name");

          return false;

      }

    return true;

    }

    function pruefeCookieWert(wert){

        if (wert.indexOf(",")  > -1 || wert.indexOf(";") > -1 || wert.indexOf(" ") > -1){

            alert("Ungültiger Wert");

            return false;

        }

    return true;

    }

    function setzeCookie(name, wert){

        if(pruefeCookieName(name) && pruefeCookieWert(wert)){

            document.cookie = name + "=" + wert;

        }

    }

    function zeigeCookies(){

        leereAusgabe();

        var cookies = document.cookie.split(";");

        var ausgabe = document.getElementById("ausgabe");

        for (var i = 0; i < cookies.length; i++){

            var li = document.createElement("li");

            li.appendChild(document.createTextNode(cookies[i]));

            ausgabe.appendChild(li);

        }

    }

    function init(){

        document.getElementById("speichern").addEventListener("click", setzeCookieAusFormular);

    }

    window.addEventListener("load", init)

     

</script>

<label for="name">Name: </label>

<input type="text" name="name" size="50"  id="name"></br>

<label for="wert">Wert: </label>

<input type="text" name="wert" size="50"  id="wert"></br>

<button type="button" id="speichern">Klick</button>

</body>

</html>

Computer, Internet, Programmieren, JavaScript, Cookies, Programmierung, Programmiersprache
Nav-item ändert sich nicht trotz Cookie?

Ich habe durch ein Login-Formular einen Cookie gesetzt, damit sich der Benutzer am selben Tag des Logins nicht dauernd einloggen muss. Nun möchte ich, dass der Login-Link in der Navbar sich zu einem Logout-Link verändert.

Das ist die Navigationsleiste:

<nav class="navbar fixed-top navbar-expand-lg navbar-dark" id="navbar">
		<a class="navbar-brand ml-5 fs-2 fw-bold" href="#">
			<i class="fas fa-universal-access mx-4"></i>
			NB<span class="brand-grey">S</span></a>
	  <div class="collapse navbar-collapse" id="navbarContent">
		<ul class="navbar-nav ms-auto fs-4">
		  <li class="nav-item mx-3">
				<a class="nav-link" href="./index.php">Home</a>
		  </li>
		  <li class="nav-item mx-3">
				<a class="nav-link" href="./index.php#aboutus">Über uns</a>
		  </li>
		  <li class="nav-item mx-3">
				<a class="nav-link" href="./index.php#ourproduct">Unser Produkt</a>
		  </li>
		  <li class="nav-item mx-3">
				<a class="nav-link" href="./index.php#events">Veranstaltungen</a>
		  </li>
		  <li class="nav-item mx-3">
				<a class="nav-link" href="./index.php#contactus">Kontakt</a>
		  </li>
		  <li class="nav-item mx-3">
			<?php
				if (isset($_COOKIE["userData"])){
			?>
				<a class="nav-link" href="../includes/logout.inc.php">
					<i class="fas fa-sign-out-alt"></i>
				Logout</a>
			<?php
				} else {
			?>
					
				<a class="nav-link" href="./login.php">
					<i class="fas fa-sign-in-alt"></i>
				Login</a>
				
			<?php
				};
			?>
		  </li>
		</ul>
	  </div>
	</nav>

Da meine eigene Funktion cookieExists() aus unbekannten Gründen nicht funktioniert hat, habe ich direkt die bereits mitgelieferte Funktion verwendet, aber es tut sich dennoch nichts.

Bei Sessions muss man ja die Session erst im obersten Bereich immer wieder neu starten, aber bei Cookies doch nicht?

Kann mir vielleicht jemand helfen, den Fehler zu finden?
Sollte etwas fehlen, werde ich das nachträglich ergänzen.

Computer, Technik, HTML, Cookies, PHP, Technologie, Webentwicklung
Samesite wo setzen?

Hallo,

Ich habe eine kleine Cookie Datei erstellt und möchte, dass diese auch ausgeführt wird, wenn ich den Browser das nächste mal öffne. Bei meiner Konsole kommt folgende Fehlermeldung:

Das Cookie "clicklink" wird in Zukunft bald abgelehnt werden, da es für das Attribut "SameSite" entweder "None" oder einen ungültigen Wert angibt, ohne das "secure"-Attribut zu verwenden. Weitere Informationen zum "SameSite"-Attribut finden Sie unter https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite.

Da in meinen Internetrecherchen alle dieses Attribut bei der Serverseiten Programmierung benutzen ist meine Frage, ob ich es auch in diesem Code einfügen kann und wie? Denn das samesite Attribute ist mir ziemlich neu.

<!DOCTYPE html>


<html>
    <head>
        <meta charset="UTF-8">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    </head>
    <body onload="checkCookie()">
        <input type="submit" value="Create cookie." id="btn" onclick="setCookie('clicklink', 'yes', 30); window.location.href=window.location.href">
        <script>
            


function setCookie(cname, cvalue, exdays) {
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires="+d.toUTCString();
        document.cookie = cname + "=" + cvalue + "; " + expires;
    }
   


function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
    }
    return "";
}
var cookieString = getCookie("clicklink"); 
if(cookieString == "yes"){
   $("#btn").hide();
}


function checkCookie(){
    username=getCookie('clicklink'); 
    if(username!=null && username!=""){
        $("#btn").hide();
    }else{
        $("#btn").show();
        }
    }  
        </script>
    </body>
</html>


HTML, JavaScript, Cookies, JavaScript-Code, javascript problem, Javascript Codeproblem

Meistgelesene Fragen zum Thema Cookies