Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176

    Inviare data e ora automaticamente a db

    Oggi sono molesto, lo so ma mi sta prendendo di brutto e poi devo distrarmi (storiacce con la donna..)

    Dunque, ho fatto il solito form per un guestbook molto minimalista (nome, mail, commento, data e ora) che invia i valori ad una pagina php. Vorrei inviare la data in modo automatico, come posso fare?
    Questo è il form:
    codice:
    <form id="insert_prevguestbook" action="save_prevguestbook.php" method="POST" onsubmit="return check()">
    <input class="sfondomodulo bianco" type="text" id="modulo1" name="nome" size="31" />
    //tutte le voci
    </form>
    In mezzo al form ho provato ad aggiungere questo:
    Codice PHP:
    <?
    $data 
    mktime("""""""""""");
    echo 
    "<input type=\"hidden\" name=\"data\" value=\"<?echo $data?>\" />"
    ?>
    ma mi sa che è una porcata dato che ovviamente non funziona! Nel db non arriva nulla e mi dà come valore "-1"
    Sono un po' in confusione!
    Qualcuno mi da una manina? Grazie!

  2. #2
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Puoi anche omettere il campo hidden per la data, o quanto meno lascialo ma setta il suo VALUE a TRUE. Quello che ti occorre è inserire la funzione NOW() all'interno della query per inserire i nuovi valori nel database.

    codice:
    INSERT INTO tabella ( campo1, campo2, campoData )
    VALUES ( '$campo1', '$campo2', NOW() )

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176
    Grazie per la dritta però purtroppo ho ancora problemi!
    Ho sostituito il codice:
    Codice PHP:
    <? 
    $data 
    mktime(""""""""""""); 
    echo 
    "<input type=\"hidden\" name=\"data\" value=\"<?echo $data?>\" />" 
    ?>
    con questo:
    Codice PHP:
    <? 
    $data 
    mktime(""""""""""""); 
    echo 
    "<input type=\"hidden\" name=\"data\" value=\true\" />" 
    ?>
    e nella pagina di salvataggio ho messo:
    Codice PHP:
    $query "INSERT INTO prevguestbook (nome, scarto, data, città, mail, commento) VALUES ('$nome', '$scarto', NOW() , '$città', '$mail', '$commento')"
    ma il valore che ottengo è il 1/1/1970 alle 1:33, ovvero il valore unix "2006"! Non capisco però dove lo prende!
    se hai bisogno ti metto tutto il codice.
    Grazie infinite!

  4. #4
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Elimina completamente questa parte di codice:

    $data = mktime("", "", "", "", "", "");
    echo "<input type=\"hidden\" name=\"data\" value="\true\" />";

    e lascia la query con le ultime impostazioni che hai aggiunto.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176
    Avevo già provato a fare come mi hai detto ma si comporta allo stesso modo!
    Ti ringrazio fin d'ora per la tua disponibilità

  6. #6
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    scusa ma com'è impostato il campo "data" del database? e poi quando dici di ottenere il valore 1/1/1970 ecc.. controlli i dati trasmessi con la query o fai una echo della query stessa?

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176
    Il campo data nel database è così impostato:

    Campo: data
    tipo: int(11)
    Collation:
    Attributi:
    Null: No
    Predefinito: 0
    Extra:

    Per vedere il valore vado semplicemente a vedere dentro la tabella cosa gli ha mandato il form e all'interno del valora data compare "2006" che restituisce la data 1/1/1970 - 1:33

    Il codice della pagina è questo:
    Codice PHP:
    <?
            
    include("config.inc.php");
            
    $nome $_POST['nome'];
            
    $scarto $_POST['scarto'];
            
    $città $_POST['città'];
            
    $mail $_POST['mail'];
            
    $commento $_POST['commento'];
            
    //echo($titolo." ".$testo." ".$autore." ".$mail." ".$pass);
            
    if (trim($nome) == "" OR trim($mail) == "" OR trim($città) == ""):
            echo 
    "I campi contrassegnati da questo simbolo (*) devono essere riempiti!";
            else:
            
    $titolo addslashes(stripslashes($titolo));
            
    $autore addslashes(stripslashes($autore));
            
    $mail addslashes(stripslashes($mail));
            
    $commento nl2br($commento);
            
    //mia aggiunta
            
    $connessione mysql_connect($db_host$db_user$db_password) or die("Errore nella connessione a MySql: ".mysql_error());
            
    mysql_select_db($db_name$connessione);
            
    $query "INSERT INTO gsdd_anteprimaguestbook (nome, scarto, data, città, mail, commento) VALUES ('$nome', '$scarto', NOW() , '$città', '$mail', '$commento')";
            if (
    mysql_query($query$connessione))
            echo 
    "<h4>Questa è l'<span class=\"giallo\">anteprima</span> del commento che hai appena scritto.
                 
    Per inserirlo nel database del guestbook clicca sul pulsante \"<span class=\"giallo\">Invia</span>\" sottostante oppure torna indietro per effettuare modifiche.</h4><hr/>
    "
    ;
            else
            echo 
    "Erorre durante l'inserimento ".mysql_error();
            
    mysql_close($connessione); endif;
            
    ?>
            <?
            $connessione 
    mysql_connect($db_host$db_user$db_password);
            if (
    $connessione == FALSE)
            die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
            
    //connessione alla tabella del database
            
    mysql_select_db($db_name$connessione)
            or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
            
    $query "SELECT * FROM gsdd_anteprimaguestbook ORDER BY id DESC LIMIT 0, 1";
            
    $result mysql_query($query$connessione);
            while(
    $row mysql_fetch_array($result))
            {
            echo 
    "<div class=\"floatleft colonna60\">
                      <h4 class=\"left grigio\">Post #
    {$row['id']}</h4>
                  </div>
                  <div class=\"floatleft colonna216\">
                      <h4 class=\"grigio right\">"
    date("d/m/Y"$row['data']) . 
     "
    date("H:i"$row['data']) . "</h4>
                  </div>"
    ;
            echo 
    "<div class=\"floatleft colonna60\">
                      <h4 class=\"left grigio\">Nome:</h4>
                  </div>
                  <div class=\"floatleft colonna210\">
                      <h3 class=\"grassetto rosso left\">
    {$row['nome']}</h3>
                  </div>"
    ;
            echo 
    "<div class=\"floatleft colonna60\">
                      <h4 class=\"left grigio\">Scarto n°:</h4>
                  </div>
                  <div class=\"floatleft colonna210\">
                      <h4 class=\"grassetto left\">
    {$row['scarto']}</h4>
                  </div>"
    ;
            echo 
    "<div class=\"floatleft colonna60\">
                      <h4 class=\"left grigio\">Città:</h4>
                  </div>
                  <div class=\"floatleft colonna210\">
                      <h4 class=\"grassetto left\">
    {$row['città']}</h4>
                  </div>"
    ;
            echo 
    "<div class=\"clearboth\">
    </div>"
    ;
            echo 
    "<div class=\"floatleft colonna60\">
                      <h4 class=\"left grigio\">Commento:</h4>
                  </div>
                  <div class=\"floatleft colonna210\">
                      <h4 class=\"corsivo left\">
    {$row['commento']}</h4>
                  </div>"
    ;
            echo 
    "<div class=\"clearboth\">
    </div>"
    ;
            echo 
    "<a href=\"mailto:{$row['mail']}\"><img src=\"immagini/misc/email.gif\" width=\"14\" height=\"14\" /></a>";
            echo 
    "<div class=\"clearboth\"><hr /></div>";
            }
            
    ?>
    //questo form nascosto manda i dati al database definitivo se si clicca su invia
                <form id="insert_news" action="save_guestbook.php" method="POST" onsubmit="return check()">
                    <input type="hidden" name="nome" value='<?echo $nome?>' />
                    <input type="hidden" name="scarto" value='<?echo $scarto?>' />
                    <input type="hidden" name="città" value='<?echo $città?>' />
                    <input type="hidden" name="data" value='<?echo $data?>' />
                    <input type="hidden" name="mail" value='<?echo $mail?>' />
                    <input type="hidden" name="commento" value='<?echo $commento?>' />
                    <div class="">
                        <div class="height40">
                            <h4 class="marginmodulo center">Password:</h4>
                        </div>
                        <div class="">
                            <input class="sfondomodulo giallo" type="password" name="pass" size="41" />
                        </div>
                    </div>
                    <div class="">
                        <div class="height40">
                            


                            <input class="pulsanti" type="submit" value="Invia">
                            </p>
                        </div>
                    </div>
                </form>
    </div>
    <?
    mysql_close
    ($connessione);
    include(
    $dx."main-dx.php");
    include(
    "piede_pagina.php");
    ?>
    Sei davvero gentilissimo a darmi una mano!

  8. #8
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Devi modificare le impostazione del campo "data", settato ad INT(11) non è possibile utilizzarlo con la funzione NOW() per gestire le date. Dovrai fare una query così:

    codice:
    ALTER TABLE gsdd_anteprimaguestbook
    CHANGE data
    data TIMESTAMP NOT NULL
    e poi ricordati di eliminare ogni riferimento alla variabile $data e al campo data hidden nel form. Dovrebbe bastare...

    edit: non postare tutto il codice, non serve. Indica solo i punti interessati...

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    176
    Ho modificato le impostazioni del campo data ed ora in effetti se vado a controllare nel database la data che compare è corretta. Purtroppo però nella mia pagina è sempre visualizzata la solita 1/1/1970 - 1:33 e questo penso perchè ora non stiamo più lavorando in formato timestamp, giusto?

    penso che ci sia qualche problema qui:
    Codice PHP:
    <h4 class=\"grigio right\">"date("d/m/Y"$row['data']) . 
     "
    date("H:i"$row['data']) . "</h4> 
    grazie infinite x la pazienza!

  10. #10
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    si, in effetti adesso il formato con cui memorizzi la data nel db è corretto e per recuperarla potresti semplicemente richiamare il campo interessato ma otteresti una formattazione non "italiana". Devi usare il DATE_FORMAT nella query di selezione dei dati, ad esempio:

    codice:
    SELECT campo1, campo2,
    DATE_FORMAT(data, '%d/%m/%Y %H:%i') AS nuova_data
    FROM tabella";
    adesso avrai la data formattata con dd/mm/yyyy H:i disponibile con all'alias "nuova_data". Quindi, supponendo lìutilizzo di mysq_fetch_object, quando recupererai il campo data dovari modificare la selezione in $row->nuova_data


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.