Oppure

Loading
30/10/15 13:16
Thejuster
Ragazzi ho un problema strano.

non riesco a passare correttamente un valore da variabile javascript a php


ho utilizzato questo procedimento


<script> 

var uid = localStorage.getItem('Chiave');

</script>


<?php

$valore = "<script>document.writeln(uid);</script>";

echo $valore;

?>





Fin qui tutto bene.
Se faccio echo $valore a video viene mostrato esettamente il valore ricavato senza spazi vuoti ecc. ecc.

Ma dal momento che utilizzo quel valore per una verifica non funziona.

del tipo, per debuggare faccio


echo strlen($valore);




mi appare 39
e dico come??

Se il valore massimo è compreso tra 1 e 10 come mi ritrovo una stringa lunga 39 caratteri?
che poi quando vado a stamparla a video e provo a selezionarla, mi seleziona un solo carattere ovvero il valore reale
contenente.

Come mai ho questo problema?
sbaglio forse qualcosa?
Ultima modifica effettuata da Thejuster 30/10/15 13:17
mire.forumfree.it/ - Mire Engine
30/10/15 15:02
pierotofy
strlen("<script>document.writeln(uid);</script>") == 39 // <-- true


Non puoi passare parametri da JS a PHP in questa maniera. PHP viene eseguito lato server, Javascript è eseguito lato client. Devi fare una richiesta ajax tramite Javascript ad una pagina PHP, passando i parametri tramite POST o GET. Alcune librerie come jQuery rendono questo compito più facile tramite .ajax oppure .post o .get.
Il mio blog: piero.dev
30/10/15 20:07
GN
In aggiunta a quanto detto da Piero: con echo $valore ottieni il risultato corretto ma perchè è il browser ad eseguire quella riga di Javascript. Il codice PHP viene eseguito dal server, e finita l'esecuzione il risultato viene inviato al browser del client che esegue il Javascript. Del resto, nel codice lato server "<script>document.writeln(uid);</script>" non è che un letterale stringa (per il server è identico a "ciao";), non certo un qualcosa che viene eseguito (fra l'altro siccome usi PHP immagino che il server non sia nemmeno in grado di interpretare codice JS).
aaa
02/11/15 7:35
Thejuster
Grazie per i consigli.
Il problema sinceramente è un'altro.

Mi darete sicuramente del pazzo e poco professionale.
Ma siccome i clienti mi stanno tartassando per avere il sito pronto nel più breve tempo possibile
mi stanno facendo "arronzare" il più possibile per consegnarlo per la data prevista.

In un qualche modo, non riesco i nessun modo ad utilizzare i coockie nella pagina principale del sito

il sito in pratica fa questo gioco


/www/index.php


Se Mobile -> www/m/index.php

Se Computer -> www/w/index.php


fà una sorta di include per determinare il modello da aprire.

Ho realizzato poi un pannello amministrativo per la gestione di tutti i contenuti multimediali del sito.
Come l'inserimento di foto, l'upload di materiale vario, gestione pagine, news etc.

I coockie dal pannello ammistrativo funzionano
mentre dal sito web non funzionano

Uso lo stesso procedimento che ho usato nel pannello amministrativo ovvero

setcookie("chiave","valore");


Dalla pagina admin funziona, dal sito web nulla.

Mi sapete dire come mai?

(Il sito è ancora in costruzione scusate per i vari errori)

per questo motivo, per velocizzare il tutto ho deciso di utilizzare il web storage
che funziona tranquillamente. mentre i coockie no.

se volete darci un occhiata:

associazionearcasi.it/
mire.forumfree.it/ - Mire Engine
02/11/15 15:48
Roby94
setcookie deve essere eseguito prima di qualsiasi output dell'interprete. Inoltre ti farei prestare attenzione alla gestione dei sottodomini in relazione ai cookie, che di default non possono essere condivisi tra questi.
aaa
03/11/15 8:48
Thejuster
Postato originariamente da Roby94:

setcookie deve essere eseguito prima di qualsiasi output dell'interprete. Inoltre ti farei prestare attenzione alla gestione dei sottodomini in relazione ai cookie, che di default non possono essere condivisi tra questi.


Questo non lo sapevo....
Mi è nuova questa cosa....

Cioè credevo di poter settare i coockie quando volevo e quando potevo.

non ho capito il secondo suggerimento riguardo alla relazione.

il coockie non và a registrarsi direttamente al dominio?
mire.forumfree.it/ - Mire Engine
03/11/15 15:16
Roby94
Eh si e ti spiego anche il perché, l'invio di cookie fa parte della header della risposta http, per tanto va generata prima che questa venga terminata, quindi prima che venga generato un output. Effettivamente setcookie() è una maschera di header(). Dai un occhiata sulle reference ufficiali di PHP.
php.net/manual/en/…
Per quanto riguarda la mia seconda affermazione prova a leggere come funziona il parametro domain di setcookie.
aaa
03/11/15 15:59
Thejuster
Si ho appena testato e funziona benissimo grazie dell'immenso aiuto Roby. :k:
mire.forumfree.it/ - Mire Engine