• User

    Aiuto per sistema di inserimento siti e votazione siti

    Ciao a tutti, avrei un'idea per la realizzazione di un nuovo sito ma mi serve una mano per quanto riguarda il PHP e il MySql.
    In pratica dovrei creare un form che permetta di inserire un sito, quindi con un campo ID, il Nome del sito, il Link del sito, una breve Descrizione e la mail di chi inserisce il sito!
    Quindi ci sarebbe bisogno di una tabella con 5 campi:

    1. ID
    2. Nome sito
    3. Link sito
    4. Descrizione sito
    5. Email inseritore

    Il form lo so creare ma non so come inserire i dati nel database (ipotizzando che il database si chiami 'manuel').

    In seguito per ogni sito dovrà essere creata una pagina che mostra il nome del sito la descrizione ed il link al sito. Sotto ci dovrà essere un sistema di votazione che permetta di votare quel sito 1 volta a settimana per esempio per ogni indirizzo IP (può votare chiunque non c'è un sistema di registrazione).

    Inoltre in un altra pagina ci dovrà essere una lista ordinaza di tutti i siti inseriti, che per ogni sito porti alla pagina del sito, dove poterlo votare.

    E' difficile come progetto?
    Preciso che per quanto riguarda l'HTML e il CSS sono in grado di aggiustarmi da solo, non avrò quindi difficoltà nel comprendere l'HTML, l unico problema sono il PHP ed il MySql.

    Grazie mille a tutti quelli che mi aiuteranno


  • Consiglio Direttivo

    Ciao ManuelHT e benvenuto nel Forum GT. 😉
    Vediamo un po':
    @ManuelHT said:

    Quindi ci sarebbe bisogno di una tabella con 5 campi:

    1. ID
    2. Nome sito
    3. Link sito
    4. Descrizione sito
    5. Email inseritore
      Tramite Phpmyadmin, creato il database manuel, puoi creare la tabella site con i seguenti campi:
      id (tinyint 5, primary key, auto-increment)
      name (VARCHAR 80)
      link (VARCHAR 80, chiave univoca) immagino che non vuoi doppioni
      description (text)
      email (VARCHAR 100)
      Che tradotto in query sarebbe così:

    CREATE TABLE manuel.site (
    id TINYINT( 5 ) NOT NULL AUTO_INCREMENT ,
    name VARCHAR( 60 ) NOT NULL ,
    link VARCHAR( 60 ) NOT NULL ,
    description TEXT NOT NULL ,
    email VARCHAR( 100 ) NOT NULL ,
    PRIMARY KEY ( id ) ,
    UNIQUE ( link
    )
    ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ciSegui pero' la procedura guidata così inizi a prender dimestichezza con il Database. 😉

    Il form lo so creare ma non so come inserire i dati nel database (ipotizzando che il database si chiami 'manuel').Ti basterà inserire nel form il method="post" e nell'action il file php dove inserirai lo script per l'inserimento.
    Lo script recupererà i dati inviati dal form:
    [php]<?
    $name=$_POST['name'];
    ........
    ?>[/php]Con questo recupererai quanto inserito in:
    [html]<input type="text" name="name" />[/html]Una volta associate alle rispettive variabili i valori del form, bisognerà connettersi al Database e quindi inserire i valori nella tabella site creata:
    [php]<?
    $name=htmlentities($_POST['name'], ENT_QUOTES);
    $link=htmlentities($_POST['link'], ENT_QUOTES);
    $description=htmlentities($_POST['description'], ENT_QUOTES);
    $email=htmlentities($_POST['email'], ENT_QUOTES);

    require_once ("config.php"); // includo il file di connessione al Db

    $sql="INSERT INTO site (name, link, description, email) VALUES ('$name', '$link', '$description', '$email')";
    $query=@mysql_query($sql) or die (mysql_error());
    ?>[/php]L'utilizzo della funzione htmlentities è per trasformare in entità HTML eventuali caratteri pericolosi come gli apici ed i doppi apici. 😉

    In seguito per ogni sito dovrà essere creata una pagina che mostra il nome del sito la descrizione ed il link al sito.Per visualizzare il contenuto della tabella ti basterà fare una SELECT puntanto all'id del sito, con un link per esempio arrivi alla pagina tramite
    [html]<a href="paginasito.php?id=3">nomesito</a>[/html][php]<?
    $id=$_GET['id'];
    require_once ("config.php");

    $sql="SELECT * FROM site WHERE id='$id'";
    $query=@mysql_query($sql) or die (mysql_error());
    //a questo punto associ ad un array il risultato della query e quindi cicli il contenuto
    while ($array=mysql_fetch_array($query))
    {
    echo $array['id']."-<a href="".$array['link']."">".$array['name']."</a>-".$array['description']."<br />";
    }
    ?> [/php]> Sotto ci dovrà essere un sistema di votazione che permetta di votare quel sito 1 volta a settimana per esempio per ogni indirizzo IP (può votare chiunque non c'è un sistema di registrazione).Beh, quì ti complichi un po' la vita, dovresti creare una tabella che accumuli le votazioni degli utenti, legate all'id del sito, e poi una tabella che tenga traccia delle votazioni effettuate, per IP e per sito.

    Inoltre in un altra pagina ci dovrà essere una lista ordinaza di tutti i siti inseriti, che per ogni sito porti alla pagina del sito, dove poterlo votare.Molto simile all'esempio di prima:
    [php]<?
    require_once ("config.php");

    $sql="SELECT * FROM site ORDER BY name ASC";
    $query=@mysql_query($sql) or die (mysql_error());
    //a questo punto associ ad un array il risultato della query e quindi cicli il contenuto
    while ($array=mysql_fetch_array($query))
    {
    echo "<a href="paginasito.php?id=".$array['id']."">".$array['name']."</a><br />";
    }
    ?> [/php]> E' difficile come progetto?Assolutamente no, c'hai solo da lavorarci su un po' e comprendere, lavorandoci, come sfruttare al meglio PHP e MySQL. 😉


  • User

    Allora innanzitutto ti ringrazio veramente tantissimo per l'eenooorme aiuto che mi hai dato....
    Ora ho creato tutti i file solo che non riesco a metterli sul sito perchè non mi fa connettere, appena riesco ti faccio sapere il risultato.
    Dovrei aver capito tutto, o perlomeno il funzionamento l ho capito anche perchè sei stato molto chiaro.
    Mi piacerebbe, finita la scuola, imbattermi pure in questi linguaggi di programmazione, solo che ora come ora non avendoli mai studiati e, soprattutto, mai applicati viene un pò difficile abituarsi al meccanismo.
    Spero davvero di riuscire ad attuare questa piccola idea che ho in testa, sia perchè sarebbe un bella soddisfazione personale e sia perchè ne verrebbe fuori una idea carina.
    grazie ancora, a presto


  • Consiglio Direttivo

    Ti accorgerai che studiare il PHP non è affatto difficile, anzi...se l'ho un po' compreso io... :giggle:

    In rete trovi guide ed aiuti di ogni genere, anche quì sul Forum. 😉

    Un libro adatto ai primi passi poi, secondo il mio parere, non sarebbe affatto male. 😉

    In bocca al lupo per i tuoi progetti. :ciauz:


  • User

    Ok ho messo le pagine online...c'è solo un problema, ossia quando invio i dati la prima volta mi inserisce la riga nella tabella ma mi mette solo l'ID, ed il resto è vuoto.
    Se facccio un altro invio mi da il seguente problema: " Duplicate entry '' for key 'link' ".

    mi sai dire come risolvere il problema?

    La pagina di elenco siti invece funziona perfettamente così come la pagina di ogni sito.

    ps: per quanto riguarda la votazione (senza contare il discorso di un voto per ogni IP a settimana) avevo pensato di creare un altro campo con un valore tale che quando si clicca sulla votazione quel valore venga aumentato tramite un UPDATE, è possibile fare questa cosa o c'è un metodo migliore??

    grazie mille ancora....


  • Consiglio Direttivo

    @ManuelHT said:

    ..quando invio i dati la prima volta mi inserisce la riga nella tabella ma mi mette solo l'ID, ed il resto è vuoto.
    Se faccio un altro invio mi da il seguente problema: " Duplicate entry '' for key 'link' ".
    Posteresti il form e la pagina che recupera ed inserisce i dati nel Db? Il problema sarà sicuramente nel raccordo dati. 😉

    ps: per quanto riguarda la votazione (senza contare il discorso di un voto per ogni IP a settimana) avevo pensato di creare un altro campo con un valore tale che quando si clicca sulla votazione quel valore venga aumentato tramite un UPDATE, è possibile fare questa cosa o c'è un metodo migliore?Potresti, volendo fare anche così, darebbe comunque meglio tenere separate le cose. 🙂

    Per aggiornare il voto basterà, appunto, fare un update:
    [php]$sql="UPDATE site SET vote=vote+1 WHERE id='$id'";[/php];)

    Edit: i nomi dei campi sono tutti in minuscolo? Perché Name è diverso da name. 😉


  • User

    Scusami ho risolto quel problema....in pratica al posto di name="xxx" nel form avevo messo id="xxx", pensavo andasse bene lo stesso.

    Per la votazione avevo pensato di aggiungere un campo semplicemente perchè così rimaneva tutto nella stessa tabella, e non si creavano problemi di id, quindi preferirei lasciare quel sistema dell'aggiunta del campo.

    ora avrei da chiederti un altra cosa, ti faccio un esempio:

    Se io avessi un link del sito:
    <a href="xxx" style="font-size: YYYpx;">Sito</a>

    Come potrei fare per fare in modo che YYY sia un valore in base al numero di votazioni?
    Cioè mettiamo che con 0 voti il valore sia 8, con 10 voti sia 9, con 20 sia 10 e così via fino ad arrivare ad un massimo di per esempio 100 voti il valore sia 24 px con 300 voti il valore sia sempre 24 px, cioè che oltre i 24 px non aumenti più?

    Grazie ancora

    ps: se si inserisce due volte uno stesso link mi da l errore di prima, quello del doppio link, solo che non è molto carino da vedere quindi come potrei mettere un messaggio di errore di tipo "Questo sito è gia stato inserito", " Questo link è gia stato inserito". o qualcosa del genere?


  • Consiglio Direttivo

    @ManuelHT said:

    Come potrei fare per fare in modo che YYY sia un valore in base al numero di votazioni?
    Cioè mettiamo che con 0 voti il valore sia 8, con 10 voti sia 9, con 20 sia 10 e così via fino ad arrivare ad un massimo di per esempio 100 voti il valore sia 24 px con 300 voti il valore sia sempre 24 px, cioè che oltre i 24 px non aumenti più?

    Ti basta impostare una serie di controlli del genere:
    [php]<?
    if ($array['voto']< 20 && $array['voto']>9)
    {
    $size=9;
    }
    else if ($array['voto']< 30 && $array['voto']>19)
    {
    $size=10;
    }
    else if (..........)
    ..............
    else
    {
    $size=8;
    }
    ?>

    <a href="xxx" style="font-size: <? echo $size; ?>px;">Sito</a>[/php]> ps: se si inserisce due volte uno stesso link mi da l errore di prima, quello del doppio link, solo che non è molto carino da vedere quindi come potrei mettere un messaggio di errore di tipo "Questo sito è gia stato inserito", " Questo link è gia stato inserito". o qualcosa del genere?Per farlo puoi verificare che già non esista quel link ovvero fai una select mettendo come clausola WHERE link='$link' e quindi a query eseguita controlli se il numero di righe è diverso da zero, quindi il link già esiste:
    [php]<?
    $sql="SELECT link FROM site WHERE link='$link'";
    $query=@mysql_query($sql) or die (mysql_error());

    $row=mysql_num_rows($query);
    if ($row!=0)
    {
    echo "Questo sito è già stato inserito";
    exit;
    }[/php]Ovviamente in questo caso non dovrai continuare con l'inserimento, per non aver il Duplicate Entry dal Db.
    Dovrai considerare anche che htt p://vvv.domain.ext e vvv.domain.ext saranno considerati differenti. 🙂


  • User

    Ho provato a fare l'update della votazione ma non funziona, non da errori però non mi fa l'update. Nel form ho messo questo:

    <form method="get" action="add-vote.php">
    <input type="submit" name="vote" value="Invia il voto per questo sito" />
    </form>
    ```e in add-vote-php ho messo
    

    <?
    $vote=htmlentities($_POST['vote'], ENT_QUOTES);
    $id=$_GET['id'];

    require_once ("config.php");

    $sql="UPDATE site SET vote='vote+1' WHERE id='$id'";
    ?>

    Come posso fare???
    
    Inoltre quel codice per controllare se un sito esiste già in quale file lo dovrei mettere???
    Grazie.

  • Consiglio Direttivo

    @ManuelHT said:

    Ho provato a fare l'update della votazione ma non funziona, non da errori però non mi fa l'update.
    Non ti prende l'id perché te non lo invii. 🙂
    Dal form così strutturato non c'è traccia di invio dell'id di riferimento, potresti semplicemente usare un hidden data:
    [html]<form method="post" action="add-vote.php">
    <input type="hidden" name="id" value="1" />
    <input type="submit" name="vote" value="Invia il voto per questo sito" />
    </form>[/html]Se non sei costretto cerca di usare sempre il metodo post. 😉

    [php]<?
    $id=$_POST['id'];

    require_once ("config.php");

    $sql="UPDATE site SET vote=vote+1 WHERE id='$id'";
    $query=@mysql_query($sql) or die (mysql_error());
    ?>[/php]> Inoltre quel codice per controllare se un sito esiste già in quale file lo dovrei mettere???Prima dell'insert o addirittura inglobarlo:
    [php]<?
    $name=htmlentities($_POST['name'], ENT_QUOTES);
    $link=htmlentities($_POST['link'], ENT_QUOTES);
    $description=htmlentities($_POST['description'], ENT_QUOTES);
    $email=htmlentities($_POST['email'], ENT_QUOTES);

    require_once ("config.php"); // includo il file di connessione al Db

    $sql="SELECT link FROM site WHERE link='$link'";
    $query=@mysql_query($sql) or die (mysql_error());

    $row=mysql_num_rows($query);
    if ($row!=0)
    {
    echo "Questo sito è già stato inserito";
    exit;
    }
    else
    {
    $sql="INSERT INTO site (name, link, description, email) VALUES ('$name', '$link', '$description', '$email')";
    $query=@mysql_query($sql) or die (mysql_error());

    }
    ?>[/php];)


  • User

    Okei ora funziona tutto alla perfezione, tranne una cosa: cioè che il form mi invia il voto ma il campo nascosto avendo value="1" me lo invia sempre sull ID 1. Come faccio a fare in modo che me lo invii all'ID da cui è stato inviato il voto?

    Il codice in totale è così:

    
    <?
    $id=$_GET['id'];
    require_once ("config.php");
    
    $sql="SELECT * FROM site WHERE id='$id'";
    $query=@mysql_query($sql) or die (mysql_error());
    //a questo punto associ ad un array il risultato della query e quindi cicli il contenuto
    while ($array=mysql_fetch_array($query))
    {
       echo "-<a href=\"".$array['link']."\">".$array['name']."</a>-"."<br />".$array['description']."<br />";
    }
    
    mysql_close($connessione);
    
    ?>
    
    <form method="post" action="add-vote.php">
    <input type="hidden" name="id" value="1" />
    <input type="submit" name="vote" value="Invia il voto per questo sito" />
    </form>
    
    
    

    E poi se volessi fare in modo che gli utenti possano votare una quantità X di volte ogni Y di tempo (per esempio 3 volte a settimana e per 3 siti diversi) come faccio?

    Grazie ancora...
    la realizzazione del mio progetto sembra sempre più vicina, anche se la strada è ancora lunga ed ho paura che la parte più difficile debba ancora arrivare.... 😞 😞 😞

    Comunque per la seconda parte dovrei riuscire ad arrangiarmi da solo perchè devo solo modificare degli script già esistenti....


  • Consiglio Direttivo

    @ManuelHT said:

    Come faccio a fare in modo che me lo invii all'ID da cui è stato inviato il voto?
    Ti basterà mettere al posto del value="1" l'id del sito. 🙂
    [php]<input type="hidden" name="id" value="<? echo $id; ?>" />[/php]> E poi se volessi fare in modo che gli utenti possano votare una quantità X di volte ogni Y di tempo (per esempio 3 volte a settimana e per 3 siti diversi) come faccio?

    Comunque per la seconda parte dovrei riuscire ad arrangiarmi da solo perchè devo solo modoficare degli script già esistenti....Ok. 🙂


  • User

    Ok grazie anche il form è apposto, però mi sa che mi sono espresso male😊:

    @ManuelHT said:

    E poi se volessi fare in modo che gli utenti possano votare una quantità X di volte ogni Y di tempo (per esempio 3 volte a settimana e per 3 siti diversi) come faccio?

    Per questa parte avrei bisogno....mentre c'è un altra parte che consiste nel modificare un codice già esistente, in quella dovrei riuscire a cavarmela da solo...mi puoi aiutare per la parte che ho quotato sopra???

    Grazie!!!


  • Consiglio Direttivo

    Ti servirà un'altra tabella che abbia id, id del sito, ip di chi vota e data (formato timestamp).

    Nella index metterai uno script che cancellerà tutti i record più vecchi di una settimana.

    Ad ogni inserimento effettuerai due controlli:

    1. che l'utente non abbia già votato per qual sito nell'ultima settimana
    2. che il numero di votazioni presenti per quell'IP non sia già al limite impostato.

    Pero' mi permetto di farti notare che ad ogni riconnessione si ha un IP diverso, infatti solitamente questo controllo viene effettuato sul giornaliero o tramite cookie (ma già diventa più invasiva la cosa). 😉

    Se dalla selezione in questa tabella risulta che quell'IP non ha già votato quel sito, fai il controllo di quante volte è presente quell'IP, se è presente tre volte, dai messaggio di errore, se è presente meno di tre volte provvedi al nuovo inserimento. 🙂


  • User

    Ok allora mettiamo caso che io volessi far votare una volta al giorno per ogni IP (quindi ogni cambio di IP) come posso fare?

    Creo un altra tabella con nome 'vote' ed inserisco 'id' (autoincrementale), 'idsito', 'ip' e 'date'. Una volta fatto ciò dovrei mettere quello script che mi cancella i dati una volta a settimana, ma come faccio?

    Quindi, eliminando il discorso dei 3 voti ognuno su un sito diverso, rimarrebbe solo da fare il controllo se l indirizzo IP ha votato nell'arco della giornata.
    Ho provato quindi a buttare già due righe di codice ma molto probabilmente sarà sbagliato:

    Il codice del form sarebbe questo:

    
    <form method="post" action="add-vote.php">
    <input type="hidden" name="id" value="<? echo $id; ?>" />
    <input type="hidden" name="ip" value="<? echo $ip; ?>" />
    <input type="submit" name="vote" value="Invia il voto per questo sito" />
    </form>
    
    

    ed il codice di add-vote.php sarebbe questo:

    
    
    <?
    $id=$_POST['site'.'id'];
    $ip=$_POST['vote'.'ip'];
    
    require_once ("config.php");
    
    $sql="SELECT ip FROM vote WHERE ip='$ip'";
    $query=@mysql_query($sql) or die (mysql_error());
    
    $row=mysql_num_rows($query);
    if ($row!=0)
    {
       echo "Non puoi votare due volte nell'arco della stessa giornata";
       exit;
    }  
    else
    {
    $sql="UPDATE site SET vote=vote+1 WHERE id='$id'";
    $query=@mysql_query($sql) or die (mysql_error());
    }
    echo("Il tuo voto è stato inviato con successo");
    ?>
    
    
    

    Ho specificato in $ip il percorso 'site'.'id' per non fare confusione con id della tabella 'vote' quindi probabilmente sarà sbagliato....
    mi puoi dare le giuste correzioni per favore??


  • Consiglio Direttivo

    Beh, se decidi di fare il controllo giornalmente allora cancellerai quel voto giornalmente. 😉

    Quindi: come cancellare i dati più vecchi di un tot di tempo?
    Se usi il formato timestamp per la data ti verrà un gioco da ragazzi. 😉
    Ti basta implementare nelle pagine del sito uno script che cancelli tutti i record della tabella vote più vecchi di XXX secondi rispetto all'orario attuale, ovvero:
    [php]<?
    require_once ("config.php");
    $sql="DELETE FROM vote WHERE date<".time()-86400."";
    $query=@mysql_query($sql) or die (mysql_error());
    ?>[/php]Time() è una funzione di PHP che ti restituisce il timestamp attuale del server, 86400 sono i secondi in un giorno. 😉

    Vediamo ora l'add-vote.php.
    Nel form basta che ci sia l'id del sito, quindi:
    [html]<form method="post" action="add-vote.php">
    <input type="hidden" name="id" value="<? echo $id; ?>" />
    <input type="submit" name="vote" value="Invia il voto per questo sito" />
    </form>[/html]Nel file add-vote.php recuperi l'id del sito, associ l'IP dell'utente ad una variabile e quindi effettui il controllo se nella tabella vote quell'IP ha già votato quel sito (dato che passate le 24 ore il record viene automaticamente cancellato non lo troverà se ha votato il giorno prima):
    [php]<?
    $id=$_POST['id'];
    $ip=$_SERVER['REMOTE_ADDR']; //l'indirizzo IP dell'utente

    require_once ("config.php");

    //controlliamo che l'associazione IP-id non esista già.
    $sql="SELECT * FROM vote WHERE id_site='$id' AND ip='$ip'";
    $query=@mysql_query($sql) or die (mysql_error());

    // vediamo se la query contiene delle righe
    $row=mysql_num_rows($query);
    if ($row!= 0) //se la query ha delle righe e quindi ha estratto dei risultati
    {
    echo "Hai già votato per questo sito, torna alla <a href="paginasito.php?id=".$id."">pagina del sito</a>.";
    }
    else // se la query non produce risultati
    {
    $sql="UPDATE site SET vote=vote+1 WHERE id='$id'";
    $query=@mysql_query($sql) or die (mysql_error());

    echo "Grazie per aver votato, torna alla <a href="paginasito.php?id=".$id."">pagina del sito</a>.";
    }
    ?>[/php]Credo che qualcosa del genere potrebbe andare. 🙂


  • User

    Provando a fare come dici tu il voto funziona ma non invia l'ip alla tabello vote-->ip

    In effetti guardando il codice non capisco come fa ad inviare e quindi a registrare l'indirizzo ip nel database, per poi verificare se esiste, inoltre io voglio fare in modo che un certo IP possa votare solo una volta, per qualsiasi sito, cioè non può votare due siti diversi, quindi al posto di

    $sql="SELECT * FROM vote WHERE id_site='$id' AND ip='$ip'";
    ```presumo che devo mettere solo
    
    

    $sql="SELECT * FROM vote WHERE ip='$ip'";

    
    Un altra cosa, lo script per il cancellamento dei record lo devo mettere nella pagina della votazione?
    
    Ma poi se ho due $sql diversi non vanno in contrasto?

  • Consiglio Direttivo

    @ManuelHT said:

    Provando a fare come dici tu il voto funziona ma non invia l'ip alla tabello vote-->ip
    Perché me lo son dimenticato. 😄 Maledetta fretta...
    Manca l'inserimento dei dati nella tabella vote:

    [php] <?
    $id=$_POST['id'];
    $ip=$_SERVER['REMOTE_ADDR']; //l'indirizzo IP dell'utente

    require_once ("config.php");

    //controlliamo che l'associazione IP-id non esista già.
    $sql="SELECT * FROM vote WHERE id_site='$id' AND ip='$ip'";
    $query=@mysql_query($sql) or die (mysql_error());

    // vediamo se la query contiene delle righe
    $row=mysql_num_rows($query);
    if ($row!= 0) //se la query ha delle righe e quindi ha estratto dei risultati
    {
    echo "Hai già votato per questo sito, torna alla <a href="paginasito.php?id=".$id."">pagina del sito</a>.";
    }
    else // se la query non produce risultati
    {
    $sql="UPDATE site SET vote=vote+1 WHERE id='$id'";
    $query=@mysql_query($sql) or die (mysql_error());

    $sql="INSERT INTO vote (id_sito, ip, date) VALUES ('$id', '$ip', ".time().")";
    $query=@mysql_query($sql) or die (mysql_error());

    echo "Grazie per aver votato, torna alla <a href="paginasito.php?id=".$id."">pagina del sito</a>.";
    }
    ?> [/php]

    ...voglio fare in modo che un certo IP possa votare solo una volta, per qualsiasi sito, cioè non può votare due siti diversi, quindi al posto di

    $sql="SELECT * FROM vote WHERE id_site='$id' AND ip='$ip'";
    ```presumo che devo mettere solo
    
    

    $sql="SELECT * FROM vote WHERE ip='$ip'";

    Giustissimo. ;)
    
    Ma a questo punto non ti serve più il riferimento dell'id_sito in quella tabella. :)
    
    > Un altra cosa, lo script per il cancellamento dei record lo devo mettere nella pagina della votazione?
    Beh, sarebbe meglio in tutte, potresti, volendo, inglobarlo nel config.php. :)
    
    > Ma poi se ho due $sql diversi non vanno in contrasto?
    Una volta eseguita la query la variabile $sql non ti serve più, puoi quindi assegnarli ulteriori valori nella stessa pagina, l'importante è ricordare che quando richiami una variabile come $sql, etc. etc., queste avranno come valore l'ultimo che gli hai assegnato. ;)

  • User

    Ora funziona tutto tranne che anche avendo

    echo "Hai già votato per questo sito";
    ```invece di postarmi la frase mi dice:
    
    "Duplicate entry 'XXXXX' for key 'ip'"   dove XXXXX è il mio IP, come mai???
    
    Poi un altra cosa: in pratica nella mia pagina ho un filmato .sfw dove al suo interno devono essere inseriti i siti che sono elencati in un file xml. I siti devono essere inseriti sotto forma di codice html:
    <a href="linksito" style="font-size: 12px" >Nome sito</a>
    linksito e nome sito devono essere presi dal database e il valore font-size deve essere preso dallo script che mi avevi dato tu.
    Ora il problema è che se la pagina fosse PHP la saprei fare, ma essendo la pagina XML come posso fare ad inserire quei dati?
    Posso inserire il php all interno dell' xml?
    
    
    
    grazie ancora sul serio, ormai è quasi finita   :)
    
    
    ps: nel campo data mi da "0000-00-00 00:00:00", è normale?? e poi per il campo IP ho messo INT (30) è giusto?

  • Consiglio Direttivo

    @ManuelHT said:

    Ora funziona tutto tranne che anche avendo

    >echo "Hai già votato per questo sito";
    >```invece di postarmi la frase mi dice:
    
    "Duplicate entry 'XXXXX' for key 'ip'"   dove XXXXX è il mio IP, come mai???
    
    ps: nel campo data mi da "0000-00-00 00:00:00", è normale?? e poi per il campo IP ho messo INT (30) è giusto?
    La risposta te la dai nel P.S., dato che i campi son impostati male per i dati che ricevono non verificherà mai l'esistenza della query. :)
    Ti da quel valore nel campo data perché te lo hai impostato come campo data per ricevere dati del tipo: 2009-04-15 14:42:00. Ma siccome stiamo lavorando di timestamp e quindi con i secondi, ovvero numeri interi, il campo date dovrà essere un INT.
    Per l'IP non va bene l'INT dato che 127.0.0.1 non è un numero intero, puoi mettere anche un VARCHAR volendo, non è un grosso problema. ;)
    
    
    > Poi un altra cosa: in pratica nella mia pagina ho un filmato .sfw dove al suo interno devono essere inseriti i siti che sono elencati in un file xml. I siti devono essere inseriti sotto forma di codice html:
    <a href="linksito" style="font-size: 12px" >Nome sito</a>
    linksito e nome sito devono essere presi dal database e il valore font-size deve essere preso dallo script che mi avevi dato tu.
    Ora il problema è che se la pagina fosse PHP la saprei fare, ma essendo la pagina XML come posso fare ad inserire quei dati?
    Posso inserire il php all interno dell' xml?Purtroppo quì non saprei esserti d'aiuto, non ho mai lavorato su file XML. :(