Accedi per seguire   
Seguaci 0
MrDay

[php]cookie Per Accesso Alla Pagina

16 messaggi in questa discussione

Salve a tutti!(di nuovo) mi servirebbe una semplicissima condizione in php:

ho questo cookie ("snitz00" & "User")("Name") e devo controllare se è vuoto o no, se è vuoto redirigo altrimenti visualizzo la pagina.

io ho provato così:

if ($_COOKIE["snitz00" & "User"]["Name"] == NULL) o con if ($_COOKIE["snitz00" & "User"]["Name"] == "")

{header("location: ../home/errore.asp");}

else

echo $HTTP_COOKIE_VARS["snitz00" & "User"]["Name"];

ma non sembra funzionare, cioè funziona,ma non come dovrebbe, mi spedisce sempre alla pagina di errore, anche se, provando la stessa istruzione in una pagina asp(con linguaggio adeguato) funziona...

ho provato anche

if (isset($_COOKIE["snitz00" & "User"]["Name"]))

{echo $HTTP_COOKIE_VARS["snitz00" & "User"]["Name"];}

else

header("location: ../home/errore.asp");

ma ha lo stesso effetto... che sbaglio?

Modificato da MrDay

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

la sintassi per la gestione dei cookie in PHP è :

$_COOKIE["nome cookie"]

devi inserire il valore tutto nella parentesi quadra, e non aprirle e chiuderle. Magari aiutati anche con una variabile. Inoltre non sono propprio sicuro che PHP riesce a gestire correttamente i cookie creati da ASP. non ho mai provato a fare un lavoro incrociato, perchè generalmente, si utilizza uno standard unico tra i linguaggi usati per lo sviluppo delproprio sito. (cioè, se hai metà sito in ASP, continua ad utilizzare l'ASP, altrimenti fai tutto in PHP).

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ehi Frman, sei anche qui? Se non ti do lavoro io, chi te lo da? :)

Dopo l'ultima discussione, e visto che sono riuscito a farlo girare in locale con IIS, ho voluto provare qualche script php,anche se molto semplice, difficilmente reperibile in asp.

Ho provato ma non riesco in nessun modo a fargli leggere il cookies, dovrei passargli una variabile dal link, però a questo punto, lascerei perdere, non è fondamentale questa cosa.

Grazie di nuovo

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

come già detto, temo non sia possibile gestire i cookie di ASP con PHP.

E' sempre un grosso piacere cercare di rispondere ai tuoi quesiti, perchè è un momento di crescita anche per me :P:)

Perchè non reinstalli il forum utilizzando uno che si basi su PHP? :P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

allora, visto che ci sono, te ne faccio un altro semplice, al volo :) :

posso includere una pagina asp in una php? La pagina asp serve per controllare la posizione di un utente nel sito.

Non posso mettere un forum php perche il sito non è formato solo dal forum, ma da più sezioni(tutte in asp, ovviamente), perchè ho sudato parecchio per "amalgamare" forum e sito(visto che il forum non l'ho creato io), inoltre, non conosco quasi per niente php e avrei bisogno di altri 2 mesi almeno per rifarlo tutto in php, visto che ora mi riiniziano le lezioni...

Modificato da MrDay

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

penso dovresti riuscire a fare una cosa simile (includere asp in PHP) inserendo nella pagina HTML un iFrame. Nello stesso file due linguaggi simili non possono coesistere, l'unica soluzione è quella dell'iframe, che devi verificare se, effettivamente, funziona.

:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Non va bene, mi segna come se fossi nella pagina con le funzioni e non nella pagina che contiene l'iframe con la funzione..vabbè, grazie lostesso, io cerco sempre di fare troppe cose complicate.

Ah, visto che ci sono, secondo te è più "leggero" una gif, un banner in flash o un popup(con gif o flash)?o c'è altro che può rendere il caricamento meno pesante?

Modificato da MrDay

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Per quanto riguarda il frame era come sospettavo... dunque non hai molte possibilità. Un consiglio, è quello che nella programmazione web tutto deve essere quanto di più semplice possibile, sia a livello di comunicazione,c he di gestione, che di programmazione. Più semplice e lineare è la progettazione del sito e più funziona in modo ottimale.

Se vuoi suggerimenti circa banners o gifs o simili, per non accavallarci ti spiacerebbe aprire una nuova discussione in discussioni generali di Web, SEO & Hosting ? http://www.wininizio.it/forum/index.php?showforum=443

Ci sarebbe un pochino di cose da suggerirti .. :P:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Grazie, ho postato nell'altra sezione.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Una domanda, anche se è passato un po' di tempo, ma vorrei capire: generi un cookie da uno script in ASP e vuoi che venga letto da una pagina in PHP?

Dovresti riuscirci perché i valori che contano sono il path e il domain. Se corrispondono a quelli in cui si trova lo script PHP allora riesci a leggerli. Io ad esempio creo cookie con javascript e poi li leggo con PHP.. ciao :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Innanzitutto scusa se non ti ho risposto subito ma ho letto ora il messaggio.

Ora ti spiego il problema: il mio forum utilizza dei cookie per tenere collegati gli utenti, in particolare ne crea uno("snitz00""username") per il nome utente, io vorrei recuperare questo cookie, creato da pagina asp, in una qualsiasi pagina php. Visto che il mio scopo finale è limitare l'accesso alla pagina ai soli utenti registrati, per ora ho creato una pagina asp con dentro un i-frame che visualizza la pagina php(ovviamente tutti sappiamo che questo sistema è bypassabile facilmente, però, meglio di niente).

Hai qualche idea?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

dovresti poter richiamare il cookie con la classica sintassi PHP:

$_COOKIE["nome cookie"]

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Grazie per la risposta, il problema è che non mi funziona...

Non so se il nome del cookie va scritto diversamente ma con $_COOKIE["snitz00""username"] non va. Non so più che fare, infatti se non avessi letto la risposta di cereal, avrei lasciato tutto com'è.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Una domanda: il forum e aree riservate si trovano sullo stesso sito?

Ogni cookie contiene sei variabili:

  1. Name
  2. Value
  3. Host
  4. Path
  5. Secure
  6. Expires

Quelli necessari per mantenere il login in tutto il sito sono host e path. Su host si mette .tuosito.tld tipo .wininizio.it mentre su path si indica il percorso, nel tuo caso basta indicare la radice, ossia /

Esempio:

  1. Name userID
  2. Value mrday1234
  3. Host .tuosito.tld
  4. Path /
  5. Secure
  6. Expires

Se invece nel path c'è scritto /forum il cookie avrà validità soltanto quando viene richiamato quell'indirizzo, ossia http://www.tuosito.tld/forum.

Tu devi:

  1. vedere quali cookie del forum riguardano l'identificazione dell'utente
  2. verificare che il path sia corretto e se necessario modificarlo oppure creare un nuovo cookie
  3. creare, nelle aree riservate, uno script che verifichi la presenza dei cookie
  4. tale script deve verificare l'esattezza dei valori dei cookie con una query alla tabella del database del forum che contiene user e hash della password

Parlo al plurare perché solitamente i cookie di identificazione sono due, uno per lo userID e l'altro contenente un hash della password, quindi non la password in chiaro. Quando hai verificato l'esattezza dei dati contenuti nel cookie puoi creare una sessione che dia accesso alle aree riservate del sito.

Un esempio di codice che potresti usare (con le dovute modifiche):

<?php
if(isset($_COOKIE['userID']) && isset($_COOKIE['passHash']))
{
  $u = $_COOKIE['userID'];
  $p = $_COOKIE['passHash'];
  $query = mysql_query('SELECT * FROM users WHERE userID = '. $u .' AND passHash = '. $p .' LIMIT 1') or die(mysql_error());
  $rows = mysql_num_rows($query);
  if($rows == 1)
  {
 //accedi all'area riservata
 //qui puoi creare una sessione oppure usare l'include per visualizzare i contenuti riservati
  } else {
 //accesso vietato
 echo 'non sei autorizzato a visualizzare questa pagina, torna in <a href="/">homepage</a>.';
  }
} else {
 //mancano i cookie si invita a loggarsi
 echo 'si prega di effettuare il login prima di accedere a questa sezione: <a href="/forum/login.asp">clicca qui</a>';
}
?>

Ovviamente se il database non è MySQL dovrai cambiare le funzioni con quelle adatte. Ciao :)

Modificato da cereal

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Risolto, anche se a distanza di anni e solo in parte, voglio postare la soluzione per chiunque utilizzi lo snitz forum e non voglia diventare pazzo o quasi.

Per recuperare da php i cookies dello snitz forum in modo da impedire l'accesso alla pagina ai non iscritti il codice e':

if ((isset($_COOKIE["Snitz00User"]["Name"])) == "" ){Header("Location: ../home/pagina di errore.php");}

Con la prima stringa si controlla se il cookie ha valore nullo, in tal caso la seconda stringa effettua il redirect del visitatore nella pagina di errore(non hai i permessi per accedere).

Purtroppo la stringa e' in un certo modo booleana, cioe', se l'utente ha effettuato il login il valore del cookie sara 'P' altrimenti sara vuoto, percio' anche se l'utilizzo e' limitato, funziona per cio' di cui avevo bisogno.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0