Accedi per seguire   
Seguaci 0
spiug

Guida Al Php

22 messaggi in questa discussione

Come da titolo vorrei richiedervi il link di qualche ottima guida (base) per PHP consultabile gratuitamente on-line (non da html.it)...

...in particolare poi vorrei trovare una guida (o tutorial) che riepiloghi come agire nella gestione dei cookie (che vorrei aggiungere nel mio sito).

Per ora mi bastano solo queste 2 guide ( :P )...poi appena avrò qualche problema ( e sicuramente ne avrò :) ) con la creazione dello script ve lo comunico...

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ho trovato una semplice e veloce guida su latoserver.it (creata in collaborazione con Punto Informatico).

...però la parte riguardante i cookies non è spiegata granchè.

Spererei che qualcuno mi dasse un po' di dritte sul loro funzionamento o almeno un link ad una pagina di spiegazioni...GRAZIE

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Piccola premessa sui cookie:

I cookie sono dei piccoli file (anche se poi l'implementazione degli stessi dipende dai browser) che vengono memorizzati lato client (quindi sulla macchina dell'utente).

Per impostare un cookie, lo si deve fare PRIMA di qualsiasi codice HTML (anche PHP che scrive sul documento HTML).

Un cookie è composto al massimo da:

Nome

Valore

Scadenza

Percorso

Dominio

Sicurezza

Per creare un cookie nuovo devi utilizzare la funzione php

setcookie(string nome, string valore, int scadenza, string percorso, string dominio, int sicurezza)

L'unico obbligatorio è nome.

Se utilizzo la funzione con il solo nome del cookie allora, se esiste, il cookie viene eliminato:

setcookie("nomeDelCookie");

Altrimenti viene impostato il cookie:

setcookie("nomeDelCookie", "valoreDelCookie");

$numeroDiSecondiDiValiditaDaOggi = time() + ( 60*60*24*30)*$numGiorni;

setcookie("nomeDelCookie", "valoreDelCookie", $numeroDiSecondiDiValiditaDaOggi);

Per accedere al cookie creato, basta usare il nome dello stesso come se fosse una qualsiasi variabile...

Quindi, per accedere al cookie creato sopra, basta usare la variabile $nomeDelCookie.

E' buona norma verificare prima dell'esistenza dello stesso (in modo da deviare il codice nella parte dedicata alla creazione del cookie in caso non esistesse):

if isset($nomeDelCookie)

{

//...

}

else

{

setcookie("nomeDelCookie", "valoreDelCookie");

}

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

$numeroDiSecondiDiValiditaDaOggi = time() + ( 60*60*24*30)*$numGiorni;

if isset($nomeDelCookie)

{

//...

}

else

{

setcookie("nomeDelCookie", "valoreDelCookie", $numeroDiSecondiDiValiditaDaOggi);

}

Grazie PROZAC... :)

Ma come faccio a confrontare il valoreDelCookie??

Io con isset guardo SOLO SE esiste o meno...ma per guardarne il contenuto e carpirne il valore come faccio??

Se voglio ad esempio creare un if che come condizione confronta il valoreDelCookie con un altro dato?

Inoltre...ma il PHP accetta le if nidificate?? :P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Il valore del cookie lo ricavi, come dice prozac, usando il nome impostato come primo parametro del setcookie come fosse una variabile, dall'esempio: $nomeDelCookie

Per confrontarlo quindi ti basterebbe fare:

if( isset( $nomeDelCookie ) )
{
 if( $nomeDelCookie == "Valore da confrontare" )
 {
	  ...
 }
}

E comunque si, come la maggioranza dei linguaggi accetta i costrutti nidificati :up1:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Il valore del cookie lo ricavi, come dice prozac, usando il nome impostato come primo parametro del setcookie come fosse una variabile, dall'esempio: $nomeDelCookie

Per confrontarlo quindi ti basterebbe fare:

if( isset( $nomeDelCookie ) )
{
 if( $nomeDelCookie == "Valore da confrontare" )
 {
	  ...
 }
}

E comunque si, come la maggioranza dei linguaggi accetta i costrutti nidificati :up1:

:up1:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Il valore del cookie lo ricavi, come dice prozac, usando il nome impostato come primo parametro del setcookie come fosse una variabile, dall'esempio: $nomeDelCookie

Per confrontarlo quindi ti basterebbe fare:

if( isset( $nomeDelCookie ) )
{
 if( $nomeDelCookie == "Valore da confrontare" )
 {
	  ...
 }
}

E comunque si, come la maggioranza dei linguaggi accetta i costrutti nidificati :up1:

Ah...OK

Strano...ieri avevo provato (immeginavo che fosse così per le if nidificate)...però c'era qualcosa che non andava...nel senso che mi faceva le istruzioni della condizione vera anche se era falsa...BOH :)

Vabbè...appena costruisco meglio il codice ve lo posto in caso vi siano errori (e sicuramente ce ne saranno TANTISSIMI :P ).

GRAZIE

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Forse nella condizione hai usato l'operatore = (assegnamento) invece dell'operatore == (uguaglianza)? :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Forse nella condizione hai usato l'operatore = (assegnamento) invece dell'operatore == (uguaglianza)? :P

Opsssssss... :P

:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Errore ricorrente :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

E se voglio creare il cookie alla pressione di un bottone??

Si può fare? O devo aggirare il problema (magari mandando l'utente a una pagina uguale però che crea il cookie che mi interessa)??

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Se non vuoi creare una pagina apposita per la creazione del cookie puoi usare il JavaScript, ecco la funzione che fa per te

function setCookie(name, value, expires, path, domain, secure)
{
  var curCookie = name + "=" + escape(value) +
  ((expires) ? "; expires=" + expires.toGMTString() : "") +
  ((path) ? "; path=" + path : "") +
  ((domain) ? "; domain=" + domain : "") +
  ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}

In modo da poterla richiamare con un pulsante, ad esempio cosi:

<input type="button" onclick="setCookie('NomeDelCookie', 0)">

:up1:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ecco, questo allora sarebbe il mio risulato, ovvero creo i cookie con Javascript premendo sopra ad una immagine e poi gestisco alla ricarica della pagina con il Php che dovrebbe differenziare la pagina in base al valore del cookie...solo che non funziona...che c'è che non và??

Il codice è questo:

<html>
<head>

<script type="text/javascript">
function setCookie(name, value, expires, path, domain, secure)
{  
var curCookie = name + "=" + escape(value) +
   ((expires) ? "; expires=" + expires.toGMTString() : "") +
   ((path) ? "; path=" + path : "") +
   ((domain) ? "; domain=" + domain : "") +
   ((secure) ? "; secure" : "");
document.cookie = curCookie;
}
</script>

</head>

<body>

<a name="n70" href="" onclick="setCookie('NomeDelCookie','n70')"><img src="Immagini/n70.gif"/></a><br/>
<a name="n80" href="" onclick="setCookie('NomeDelCookie','n80')"><img src="Immagini/n80.gif"/></a><br/>

<?php 
if( isset( $NomeDelCookie ) )
{
  if( $NomeDelCookie == "n70" )
  {
	   require "menun70.htm";
  }
  else
  {
		if( $NomeDelCookie == "n80" )
		{
		 require "menun80.htm";
		}
  }
}
else
{
require "menun80.htm";
}
?>


</body>
</head>

Cos'è, qualche errore di sintassi (che probabilmente me l'avrebbe contata) o

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Questo perchè per default il parametro expires imposta la durata alla sessione corrente, una volta chiuso il browser perdi il cookie.

Imposta il parametro ad un valore più adatto e vedrai che funziona ;-)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Questo perchè per default il parametro expires imposta la durata alla sessione corrente, una volta chiuso il browser perdi il cookie.

Imposta il parametro ad un valore più adatto e vedrai che funziona ;-)

Ci avevo pensato anch'io, ma non è quello il problema...

Ho provato pure ad uploadarlo sullo spazio del server e non funziona lo stesso (prima provavo con EasyPHP).

Con FireFox però andando su Strumenti/Console Javascript ho notato che mi segna

Errore: expires.toGMTString is not a function

File sorgente: http://www.wininizio.it/spiug/prova_cookie.php

Riga: 8

Sicuro che non ci sia un problema nel codice?? Magari scitto sbagliato?? (expires.toGMTString() ??)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

C'è questo, a me funziona (limitatamente alla sessione corrente) e non mi viene segnalato nessun errore JavaScript.

Ti faccio sapere se trovo qualcosa comunque :leggi:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

il mio problema non è in quanto creare il cookie (con il javascript), è in quanto gestire poi le pagine in base al cookie (con il php).

Della serie che mi mostra sempre le istruzioni all'interno dell'ELSE (cioè non trova il cookie uguale al valore passato e quindi procede con l'else)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Il PHP va bene sennò non si spiegherebbe perchè a me funziona, ti esegue sempre l'Else probabilmente perchè non ti crea il cookie e di conseguenza non trova la corrispondenza

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Il PHP va bene sennò non si spiegherebbe perchè a me funziona, ti esegue sempre l'Else probabilmente perchè non ti crea il cookie e di conseguenza non trova la corrispondenza

Cos'è che hai provato??

Mi implementi velocemente un codice come il mio e vediamo dove ho sbagliato...

in pratica hai capito cosa vorrei fare?!

Se no te lo rispiego:

Ci sono due o più immagini e cliccando sopra di queste si crea un cookie (con il Javascript) che prende un valore differente in base all'immagine.

Alla ricarica della stessa pagina uno script in php riconosce il valore del cookie e in base a questo (invece di un IF nidificato si può procedere anche con un Case of) esegue delle istruzioni differenti.

Se lo crei te (alla buona), ma funzionante te ne sarei riconoscente...ovviamente se hai voglia e hai appena un po' di tempo (sicuramente potrai prendere spunto anche da quello che avevo creato io...che chissà per quale dannato motivo non ne vuol sapere di funzionare :ranting2: ).

:)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Non hai capito, il problema è questo: a me funziona lo script che hai creato tu! :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Non hai capito, il problema è questo: a me funziona lo script che hai creato tu! :wub:

:o :o :o :o

:P ... :) e allora perchè sul mio non funziona?! :ranting2:

Ho provato con Firefox e non mi funziona, ti ho detto cosa mi appare...

che browser hai usato? Hai provato esasttamente quello che ho postato o dalla pagine in internet linkata (con la quale ho fatto qualche prova)??

Ma ti apparivano pezzi sotto le immagini diversi in base alla figuara (2) che avevi cliccato??

Se si... (B) sono un genio :P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Prozac...Bug...vi prego... :)

cosa c'è che non va?? Sforzatevi un po' di trovare l'errore (se c'è)?!

E' importante per me capire cosa c'è di sbagliato, altrimenti non posso procedere con il mio piano di costruzione del sito.... :P

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