Pouze tento týden sleva až 80 % na e-learning týkající se Swift
Využij akce až 80 % zdarma při nákupu e-learningu. Více informací.

Diskuze: Cookies v JS se nedaří načíst v PHP scriptu

Aktivity
Avatar
gorri
Člen
Avatar
gorri:2. února 10:30

Zdravím a prosím o radu.
Nějakou dobu se pokouším spustit script, který vytvoří (pokud je podmínka v JS splněna) cookies (také v JS) a následně na to má vyhodnotit script, který je v PHP. PHP script má v sobě napsáno, aby zkontroloval hodnoty cookies (vždy konkrétní cookies), ale PHP script mi přes print_r($_COOKIE) ukazuje, že cookies neexistují. Dokázal by mi někdo poradit, kde dělám chybu?
Jen pro info. S JS se pořád učím :-D
Celý script vypadá následovně:
JS

<script>
function cheuser() {
    if(document.getElementById("userw").value !== '')
    {
        cookies.set('usn', document.getElementById("userw").value);
        $(document).ready(function(){
        $(".checkuser").click(function(){
          $("#vuse").load("process/check.php");
        });
      });
    }
    else
    {
        document.getElementById("alns").innerHTML = "Napište e-mailovou adresu";
    }
}
</script>

Formulář

<div id="chuser" class="dnone">
            <div id="vuse"></div>
            <p class="alert dnone" id="alns"></p>
            <label for="userw">Napište e-mailovou adresu<span>* Povinné</span></label>
            <input type="text" name="userw" id="userw" placeholder="Napište e-mailovou adresu" title="Napište e-mailovou adresu" >

            <a id="utrcl" onclick="cheuser()" class="checkuser" title="Pokračovat">Pokračovat</a>
        </div>

PHP script

ini_set("session.use_only_cookies", true);
ini_set('display_errors', 0);
session_start();
header('Content-Type: text/html; charset=UTF-8');
mb_internal_encoding("UTF-8");
date_default_timezone_set("Europe/Prague");
include ('../../connect.php');
include ('../../global.php');
if(validate_email($_COOKIE['usn']))
{
    if(!Db::querySingle('SELECT * FROM user WHERE mail_addr=?', $_COOKIE['usn']))
    {
        ?>
    <p class="alert">Uživatel nenalezen.</p>
    <a class="nst" onclick="startreg()" title="Přejít k registraci">Registrovat</a>
    <?php
    }
    else
    {
        ?>
    <script>
        document.getElementById("chuser").classList.add("dnone");
        document.getElementById("gamestr").classList.remove("dnone");
    </script>
    <?php
    }
}
else
{
    ?>
    <p class="alert">Toto není e-mailová adresa!</p>
    <?php
}

Budu moc rád za rady.
Všem děkuji :-)

Zkusil jsem: Google, stackoverflow, w3school

Chci docílit: Rozjet script bez nutnosti refresh stránky.

Odpovědět
2. února 10:30
Když vím, tak poradím. Nikdo neví všechno :-)
Avatar
Samuel Hél
Tým ITnetwork
Avatar
Samuel Hél:2. února 12:47

Koukni na lekci datových úložišť v JS. Je tam popsáno, jak se cookies vytvářejí atd.
Doporučuji si při psaní JavaScriptu otevírat v prohlížeči konzoli, která ti zahlásí chyby. Např. máš chybu na tomto řádku:

cookies.set('usn', document.getElementById("userw").value);

kde proměnná cookies není definována. Pokud neumíš konzoli v JS používat, píše se o tom také zajímavý kurz o debuggingu

 
Nahoru Odpovědět
2. února 12:47
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
gorri
Člen
Avatar
gorri:2. února 13:42

Mě se cookies vytvoří. Mám script, který definuje cookie.set. Cookies se vytvoří (to vidím v konzoli) ale v PHP pokud neudělám refresh, tak mi print_r($_COOKIE) řekne NULL. Po refresh stránky cookies existují a vypíše mi je i s obsahem. Snažím se jen jen zobrazit v PHP scriptu, který je zavolany.

Nahoru Odpovědět
2. února 13:42
Když vím, tak poradím. Nikdo neví všechno :-)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.