Ok, perfetto. Farò senza dubbio così. Grazie mille Shad!!
frabanca
@frabanca
Post creati da frabanca
-
RE: PHP view page count + cookie
-
RE: PHP view page count + cookie
Oh... giusto Sarebbe la cosa migliore!
Hemmm come ti dicevo prima non sono un mago con i cookie, come potrei farne uno solo con tutti questi dati? (e poi leggerlo?)
Un ulteriore problema è che il parametro get che mi imposta l'articolo è il suo slug (la versione url del titolo), non l'ID. Quindi per recuperarlo dovrei lanciare una apposita query. Non vorrei che questo rallentasse. Che ne pensi? -
RE: PHP view page count + cookie
Certo, se un utente supera i controlli (ovvero se non viene trovato un cookie che mi informa sulla lettura già avvenuta) incremento automaticamente il contatore sul DB.
La mia preoccupazione era data dal fatto che in questo modo se un utente legge ( e speriamo! ) 10 articoli si trova 10 cookie sul computer. (11, contando quello per l'accettazione dei cookie). Se poi ci mettiamo google analytics, l'accesso via cookie, alcune preferenze di visualizzazione arrivo a 5+10= 15 cookie ad utente.
Mi chiedevo se non fossero considerati "troppi". Purtroppo non ho molta esperienza con il loro utilizzo
Però sono contento che il sistema vada già bene cosi!
Grazie! -
RE: PHP view page count + cookie
Ciao Shad!
Grazie della risposta per iniziareHummm, in effetti quello che scrivi è molto sensato. Gli articoli di questo blog dovrebbero essere abbastanza corposi (si parla di almeno una paginetta di word), quindi il consiglio sul fatto che l'utente abbia scrollato la pagina fino a metà (o comunque un pochino) è un buon consiglio! Credo che, se terrò questo sistema, lo utilizzerò di certo! Per l'IP stessa cosa.. in effetti un semplice "OK" creerebbe un cookie dal peso ridottissimo (25-30) mentre con uno sha1() si va a creare un cookie leggermente più pesante ( Il doppio! --> 60-70).
La durata inserita era "di debug", la avrei alzata anche io almeno a 12 (o di più) ore. Dopotutto se un utente legge l'articolo due volte nell'arco di 13 ore (ovvero una volta e poi la seconda più di 12 ore dopo) è anche corretto contarlo come due visualizzazioni. Penso che il senso di un counter sia quello di far capire agli utilizzatori quanto è "popolare" un determinato articolo e se lo voglio rileggere a distanza di 12 ore.. è positivo. (esempio: lo voglio far rileggere al mio collega dal mio pc).Tornando al sistema discusso..
Quindi secondo te potrebbe essere una soluzione effettivamente utilizzabile? Perché io me lo sono inventato di sana pianta un po' di fretta per risolvere il problema, poi mi è venuto in mente che nel mondo GT questo è il pane quotidiano, e quindi eccoci qui
Onestamente non mi era mai capitato di doverne realizzare uno.. avevo solo letto che esistevano dei servizi di counter esterni.. ma spesso sono o a pagamento oppure fonte di spam e problemi vari. Senza contare che non sono gestibili al 100% (come, invece, un sistema autonomo come quello discusso qui) -
PHP view page count + cookie
Ciao a tutti!
Il motivo per cui scrivo è di capire se, informaticamente parlando, la soluzione trovata è valida o meno.. mi affido al vostro giudizioIL PROBLEMA
Ho realizzato uno script all'interno di un sito internet che ha dei post - un blog - che immagazzina all'interno del database il numero di visualizzazioni di ogni post. In sostanza, ogni volta che viene visualizzata la pagina c'è uno script che aumenta di 1 il numero di visualizzazioni ad essa collegate. Il problema è che, così facendo, se premo 5 volte F5 faccio aumentare - giustamente - di 5 il numero di visualizzazioni.
Il numero che ne risulterebbe sarebbe inutile dunque.. Quello che sarebbe utile è sapere il numero di "letture del post" non di "download della pagina". (poi si può anche vedere con analytics, lo so, ma voglio anche dirlo sul sito accanto ad ogni titolo del post).LA SOLUZIONE ADOTTATA
Per risolvere questo problema ho fatto si che ogni volta che visualizzo un post venga settato un cookie chiamato con il nome dell'articolo il cui valore è l'IP (criptato con sha1) dell'utente visualizzatore.
Una volta fatto ciò, prima di aumentare di uno il numero di visualizzazioni eseguo uno controllo di presenza o meno di un cookie che si chiami come l'articolo visualizzato e che abbia l'IP attuale come valore.. se non esiste, aumento di uno le view, altrimenti le lascio così. Ho poi impostato la scadenza ad 1h.IL CODICE ADOPERATO
Qui il codice che ho adoperato:
[PHP]
// la variabile $ip è riempita precedentemente!
// la variabile $w è riempita con il $_GET['w'] e contiene il titolo del post (in versione url naturalmente)
if(!isset($_COOKIE[$w]) || ($_COOKIE[$w] != sha1($ip)) ) {
$query = "UPDATE post SET post_view=(post_view+1) WHERE post.post_slug = '".$w."'" or die("Errore nella query delle view: <br>" . mysqli_error($link));
//execute the query.
$result = $link->query($query) or die("Errore nell'esecuzione della query delle view: <br>" . mysqli_error($link)); ;
// imposto il cookie per ricordare che questo utente ha visualizzato l'articolo (evita di contare come view i refresh della pagina)
$cookie_name = $w;
$cookie_value = sha1($ip);
setcookie($cookie_name, $cookie_value, time() + (3600 * 1), "/"); // 3600 = 1 ora
}
[/PHP]Che ne pensate? È uno spreco di risorse? È sbagliato far salvare così tanti cookie sul PC degli utenti?
-
RE: HTACCESS Rewrite con paginazione PHP/MySQL
Nessuno saprebbe aiutarmi?
-
RE: Sito multilingue PHP e SEO
Ciao, da quello che ho appreso io a Google importa che i tuoi URL abbiano una forma "user friendly", ovvero "human friendly", quindi più sono "leggibili" e comprensibili anche da un non addetto ai lavori, più google li apprezza.
In un ipotesi come al tua penso utilizzerei il file .htaccess impostando un mod_rewrite fatto più o meno come segue:Options -Multiviews #Riscrivo gli URL per le lingue <IfModule mod_rewrite.c> RewriteEngine on RewriteRule (.*)/index.php?$ index.php?lan=$1 </ifModule>
Non l'ho testato, ma penso sia corretto già cosi.
In questo modo puoi puntare tutti i tuoi link a "it/index.php" per la parte italiana, e a "en/index.php" per quella inglese.
-
HTACCESS Rewrite con paginazione PHP/MySQL
Buongiorno a tutti GTiani, ho un problema con un applicativo web che sto realizzando.. e non riesco a venirne a capo
**IL CONTESTO
**Sto sviluppando un blog all'interno di un sito internet. L'applicativo è realizzato in PHP, HTML, CSS (Bootstrap Framework) e il database è un MySQL.LA SITUAZIONE
All'interno del Blog ho una pagina principale in cui vengono visualizzate tutte le anteprime dei POST; inoltre ci sono delle categorie (ES: Affari, Hobby, etcc) che raggruppano i POST.
La categoria viene impostata tramite il parametro "c" nell'URL. Quindi se volessi vedere la categoria "AFFARI" (in cui ci sono solo i POST che parlano di affari) cliccherò su un link fatto così: home-page.php?c=affari.
Se poi, una volta selezionata una categoria, voglio leggere un POST sarà sufficiente cliccare su un link così costruito: home_page.php?c=affari&p=il-mio-magnifico-post
Andando avanti mi sono accordo che ho la necessità di creare uno script per l'impaginazione, poichè è scomodo avere una pagina con troppi post.
Prima del footer creo quindi, tramite script php, un menu che mi consente di navigare all'interno delle pagine (fittizie) che imposta il seguente comando: home-page.php?pag=$numero_della_paginaNel momento, quindi, in cui mi trovo all'interno di una categoria suddivisa in più pagine avrò un URL del tipo home_page.php?c=affari&pag=$numero_della_pagina
IL PROBLEMA
Il problema sorge nel momento in cui,** per ragioni di SEO**, ho deciso di riscrivere tramite HTACCESS tutti questi URL. Quello che vorrei, è ottenere un url del tipo:home-page/la-mia-categoria/il-mio-post/ --> CI SONO RIUSCITO
home-page/pagine/2/ -->NON CI SONO RIUSCITO BENE (genera problemi)
home-page/la-mia-categoria/pagine/2/ --> NON CI SONO RIUSCITO, sembra che l'htaccess confonda i parametri $1, $2, $3.
home-page/la-mia-parola-cercata/pagine/2& -->NON CI SONO RIUSCITOIL CODICE HTACCESS
Options -Multiviews #Riscrivo gli URL <IfModule mod_rewrite.c> RewriteEngine on # Riscrivo per le catetorie (c) e per i post (p) RewriteRule home-page/(.*)/(.*)/$ home-page.php?c=$1&p=$2 RewriteRule home-page/(.*)/(.*)?$ home-page.php?c=$1&p=$2 # Riscrivo per la ricerca RewriteRule home-page/ricerca/(.*)/$ home-page.php?search=$1 RewriteRule home-page/ricerca/(.*)?$ home-page.php?search=$1 # Riscrivo per la paginazione # Per la visualizzazione generale RewriteRule home-page/(.*)/$ home-page.php?page=$1 RewriteRule home-page/(.*)?$ home-page.php?page=$1 # Per la visualizzazione nelle categorie #RewriteRule home-page/(.*)/(.*)/$ home-page.php?c=$1&page=$2 home-page/(.*)/(.*)?$ home-page.php?c=$1&page=$2 </ifModule>
LA DOMANDA
Qualcuno - ammesso di essermi spiegato bene :):) - saprebbe aiutarmi a capire come devo impostare questo file per ottenere il risultato che desidero?Grazie in anticipo,
Francesco -
RE: JOIN Query MySQL
Ciao Shad!
Grazie mille della risposta! Ho utilizzato la tua formulazione ed ha funzionato alla perfezione. Di seguito (lo scrivo per eventuali altri interessati) il codice che ho utilizzato:[PHP]
//connect:
$link = mysqli_connect($host, $user, $password, $db) or die("Errore di connessione al database: <br>" . mysqli_error($link));//consultation:
$query = "
SELECT *
FROM POST
JOIN CATEGORIE
ON POST.ID_CATEGORIA= CATEGORIE.ID_CATEGORIA
JOIN AUTORI
ON POST.ID_AUTORE= AUTORI.ID_AUTORE
ORDER BY POST.DATA_CREAZIONE DESC"
or die("Errore nella query: <br>" . mysqli_error($link));//execute the query.
$result = $link->query($query) or die("Errore nell'esequzione della query: <br>" . mysqli_error($link)); ;// create empty var
$lista_post = '';// fill created var with HTML
while($row = mysqli_fetch_array($result)) {
$lista_post .= '<li>Titolo: '.$row["post_title"].', Autore: '.$row["aut_first_name"].', Categoria di riferimento: '.$row["post_cat"].'</li>';
}// display HTML
echo $lista_post;[/PHP]
-
JOIN Query MySQL
Buona sera a tutti GTiani,
mi rivolgo a voi perchè nonostante le innumerevoli spiegazioni trovate non sono arrivato ad un risultato funzionantex:xCiò di cui ho bisogno è di costruire una query per la sezione "Blog" del mio sito web che mi consenta di estrarre informazioni da più tabelle (senza effettuare, quindi, più query).
Credo che il metodo più efficiente siano le JOIN QUERY, tuttavia non riesco ad effettuarle.
[CENTER]LE TABELLECATEGORIE[/CENTER]
[TABLE="class: grid, width: 500, align: center"][TD]cat_id[/TD]
[TD]cat_title[/TD]
[TD]cat_desc[/TD]
[/TR][TD]ID della categoria[/TD]
[TD]Il mio titolo[/TD]
[TD]La mia descrizione[/TD]
[/TR]
[/TABLE]
[CENTER]**
POST**[/CENTER]
[TABLE="class: grid, width: 500, align: center"][TD]post_id[/TD]
[TD]post_title[/TD]
[TD]post_text[/TD]
[TD]post_aut[/TD]
[TD]post_cat[/TD]
[/TR][TD]ID del post[/TD]
[TD]Il mio titolo[/TD]
[TD]Il contenuto del post[/TD]
[TD]ID dell'autore[/TD]
[TD]ID della categoria[/TD]
[/TR]
[/TABLE]
[CENTER]
AUTORI[/CENTER]
[TABLE="class: grid, width: 500, align: center"][TD]aut_id[/TD]
[TD]aut_first_name[/TD]
[TD]aut_last_name[/TD]
[TD]aut_email[/TD]
[/TR][TD]ID dell'autore[/TD]
[TD]Nome autore[/TD]
[TD]Cognome autore[/TD]
[TD]Email dell'autore[/TD]
[/TR]
[/TABLE]Quello che ho bisogno è di ottenere tutti questi dati in una sola query cosi da poterli mostrare nella schermata di riepilogo dei post con il classico [PHP]
// Inizializzo la variabile
$lista_post = '';// Estraggo i dati dalla query e genero l'HTML
while($row = mysqli_fetch_array($result)) {
$lista_post .= '<li>Titolo: '.$row["post_title"].', Autore: '.$row["aut_first_name"].', Categoria di riferimento: '.$row["post_cat"].'</li>';
}// Mostro l'HTML generato
echo $list_post;[/PHP]
Qualcuno può aiutarmi? Grazie mille!
Un saluto,
Francesco -
RE: Backup automatico XAMPP
Per future letture: ho trovato utilissima questa spiegazione sul settaggio dei cron job su windows http : // stackoverflow. com/questions/9894804/use-php-to-set-cron-jobs-in-windows
-
RE: Backup automatico XAMPP
Ciao Francois! Grazie per la tua risposta!
Non conoscevo l'esistenza dei "cron job".- Il primo passaggio mi è chiaro. Creo un file .php che decido di chiamare.. humm. backup_database.php con lo script che mi hai gentilmente suggerito e lo inserisco, ad esempio, nella root.
- Il secondo passaggio è dato dal cron job, qui mi trovo un pochino più in difficoltà ma credo di riuscire a cavarmela, soprattutto grazie alle numerose guide che ho trovato sul web. Per i futuri lettori segnalo quella di html . it:
http : / /www . html . it /articoli/php-e-crontab-programmare-lesecuzione-degli-script-1/
Grazie ancora!
Fra -
Backup automatico XAMPP
Buona sera a tutti!
Ho da poco terminato di creare un applicativo che gira in locale su un server aziendale in cui ho installato XAMPP.
Tutto funziona perfettamente, ma al fine di evitare perdite dati vorrei implementare un sistema di backup automatico del database (gli script php li ho già backuppati, manca solo il db).
**Vorrei che si creasse automaticamente un backup del database ogni giorno ad un orario stabilito (senza che un utente richiami apposta uno script php) e che questo backup venisse inviato come allegato email ad un indirizzo specificato. **L'unica cosa che sono riuscito a trovare, e lo scrivo per eventuali altri interessati alla questione, è questa http : // www . mindfiresolutions . com/Automatic-DatabaseMySQL-backup-2139 . php
tuttavia non sono in grado di farla funzionare e, soprattutto, non riesco a comprendere l'ultima parte.Qualcuno sa come risolvere?
**Grazie **!
Fra -
RE: Recuperare casistica dati da MySql
Non avevo capito io la query:bho:. Ho riletto: confermo. Fa esattamente quello che serve a me! Grazie mille per la pazienza e l'aiuto Oslino!
-
RE: Recuperare casistica dati da MySql
Ciao Oslino, ho testato il tuo suggerimento (tramite il codice qui sotto riportato) e funziona perfettamente. Restituisce l'elenco di tutte e solo le province, una volta sola! Grazie mille!
Ora tuttavia avrei la necessità di ottenere anche l'informazione seguente: per ognuna di quelle province, quanti record ho nel db?
Quindi dovrei andare ad interrogare il db con i risultati. La domanda che mi viene è: eseguire una query nel ciclo while potrebbe essere una soluzione intelligente, oppure no?$sql_gt = mysql_query("SELECT provincia, COUNT(provincia) 'Somma' FROM clienti group by provincia"); if (!$sql_gt) { echo "ERRORE NELLA QUERY GT: <br>".mysql_error(); } else { echo "SQL GT: ".$sql_gt; $num = mysql_num_rows ( $sql_gt ) ; $j = 0 ; while ( $j < $num ) { $provincia = mysql_result ( $sql_gt, $j, 'provincia' ) ; echo $provincia."<br>"; $j++; } } ?>
Query eventuale da eseguire nel ciclo while (Esempio sulla provincia di Monza e Brianza):
$sql_mb = mysql_query ("SELECT * FROM clienti WHERE provincia='MB'"); if(! $sql_mb ) { die('Non ho trovato dati: <br />' . mysql_error()); } $mb = mysql_num_rows ( $sql_mb ) ;
-
Recuperare casistica dati da MySql
Buongiorno GTiani, oggi sono alle prese con un CMS che sto progettando e ho un problema che non so come risolverex:x
Ho una tabella contenente le anagrafiche dei clienti, una cosa molto standard. Una delle colonne presenti è quella della provincia (RM, MI, TO, MB, etcc). Quello che avrei bisogno di fare è ottenere delle variabili che mi contengano l'informazione del numero di clienti associati ad ognuna delle province. Il tutto, però, senza eseguire una query per ogni provincia italiana, anche perchè non ho dei clienti per ogni provincia. Quindi lo script dovrebbe essere in grado di capire da solo che quando trova RM la seconda volta, al posto di creare una nuova variabile, deve aumentare di uno la variabile RM già creata in occasione del primo riscontro.
Spero di non essere stato troppo contorto.
ES:
MB = 234
TO = 1715
RM = 52
etcc..Il tutto mi serve perchè utilizzerò tali variabili per mostrare tramite un Google Chart Pie la suddivisione del portafoglio clienti per provincia.
Grazie del vostro aiuto!
F -
Passaggio da wordpress.com a wordpress.org
Buongiorno GTiani, ho un problema con un'installazione di wordpress.
Ho un blog su wordpress.com con cui ho acquistato il dominio personalizzato. Successivamente, questa settimana, ho trasferito il dominio su Aruba.
Una volta finito il procedimento di trasferimento, ho provveduto ad acedere via FTP al server del nuovo dominio. Una volta caricati i file di installazione di wordpress tento di accedere al percorso /wp-admin/install.php ma niente da fare, qualunque pagina io punti sul nuovo dominio, questa mi rimanda a ilmiodominio.wordpress.com restituendomi un errore 404.In poche parole, è come se ci fosse (ovviamente non c'è!) un htaccess nella root del dominio che mi esegue un redirect su quello di wordpress. Credo che il problema sia dovuto ad un'impostazione su wordpress.com, ma non so proprio qual'è. Qualcuno mi può aiutare?
Grazie!
F. -
RE: Presentazione: ciao a tutti!
Ciao Marco, grazie del benvenuto! Buona giornata e buon lavoro!
-
RE: Presentazione: ciao a tutti!
Ciao Jacko's, ciao guadagnaeuro! Grazie del benvenuto in GT. Ho già avuto modo (senza risolvere, ma è solo una caso sfortunato) di testare personalmente l'utilità del forum. Grande!
-
RE: Aprire cartella windows da sito web locale
Ciao Ultima,
cavolo, peccato davvero. Almeno in locale, avrebbero potuto concedere tale operazione. Può risultare davvero comoda. Grazie della tua risposta!
Per la soluzione da te proposta: ci avevo pensato, ma proprio perché l'ambiente di lavoro sarà un'azienda e il tutto girerà in locale, ho scelto di non fare cosi perché far scaricare ogni volta un documento su un computer di un utente il quale, magari, deve solo visualizzarlo è uno spreco di risorse. Ne verrebbe fuori che ogni giorno ogni utente scarica decine e decine di doc, "intasando il pc". A questo punto opto per la soluzione momentanea di far stampare a video tramite un *"echo $percorso_pratica" *il percorso della pratica.Ho trovato spunto leggendo un po nel web che (lo scrivo per altri utenti eventualmente interessati) potrei trovare soluzione a questo problema salvando tutte le pratiche (in generale, tutti i documenti) dell'azienda in un *cloud *come, ad esempio, DropBox. In questo modo dovrei riuscire a creare un link ad ogni file che, di fatto, si trova nel web. I file sarebbero accessibili a tutti da ovunque (anche da mobile e tablet). L'unica "pecca" di questa soluzione a mio avviso è il costo per l'azienda, che dovrà sottoscrivere un abbonamento annuale per ottenere un profilo PLUS. Per un azienda tuttavia credo che il rapporto costo/beneficio di questa operazione possa essere vantaggioso.