Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26

Discussione: Bacheca online

  1. #1

    Bacheca online

    Ciao,
    Vorrei aggiungere su di una pagina un piccolo <div> in cui inserire una stringa ma senza usare mysql, cms dome wordpress o similari. E' possibile?
    C'è qualche iframe facebook che può tornarmi utile?
    Grazie
    Più pratica in futuro...

  2. #2
    Spulciando online sono riuscito a scrivere una cosa di questo tipo però lo script non riesce a connettersi al database, come posso fare?

    Grazie

    Ecco il codice (come vedete è molto corto, sta tutto in una pagina):

    Codice PHP:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
        <style type="text/css">
            label, input, textarea {
                margin: 1em;
            }
        </style>
    <title>Bacheca elettronica</title>
    </head>

    <body>
    <form method="post" action="">
        <label for="name">Nome</label>
        <input type="text" name="name" id="name"/><br>
        <label for="mail">Email</label>
        <input type="text" name="mail" id="mail"/><br>
        <label for="message">Messaggio</label><br>
        <textarea rows="5" cols="40" name="message" id="message"></textarea><br>
        <input type="submit" value="Invia"/>
    </form>
    <?php
    //Parametri del database
    $db_host "localhost";
    $db_user "admin";
    $db_password "password";
    $database "bacheca";
    $db_bacheca "Bacheca";

    //Controllo dati
    $error"";
    if(isset(
    $_POST['name']) and $_POST['name'] != ""){//<- controllo nome
        
    $nome strip_tags($_POST['name']);
    }
    elseif(isset(
    $_POST['name'])){
        
    $error .= "Nome mancante.<br />";
    }
      
    if(isset(
    $_POST['mail']) and preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is'$_POST['mail'])){//<- controlla se la mail è presente e se è in un formato valido
        
    $mail $_POST['mail'];
    }
    elseif(isset(
    $_POST['mail'])){
        
    $error .= "Email mancante o non valida.<br />";
    }
       
    if(isset(
    $_POST['message']) and $_POST['message'] != ""){//<- controllo messaggio
        
    $messaggio strip_tags($_POST['message']);
    }
    elseif(isset(
    $_POST['message'])){
        
    $error .= "Inserire un messaggio.<br/>";
    }
    //Salvataggio messaggio
    if(isset($nome,$mail,$messaggio)){
         
        
    //Inizio Connessione al DB
        
    $db mysql_connect($db_host$db_user$db_password);
     
        
    $err_database mysql_error()."<p>Errore di accesso al database. Riprovare pi&ugrave; tardi, nel caso, contattare il web master</p>";
         
        
    $db_select mysql_select_db($database$db) or die ($err_database);
         
        
    //Invio dati al database
        
    $insert mysql_query("INSERT INTO ".$db_bacheca." (NOME,MAIL,MESSAGGIO) VALUES ('".$nome."','".$mail."','".$messaggio."')") or die ($err_database);
        
    mysql_close();
    }
    else{
        echo 
    "<p>".$error."</p>";
    }
    $err_database mysql_error()."<p>Al momento non sono presenti avvisi in bacheca.</p>";
    $bacheca mysql_query("SELECT * FROM ".$db_bacheca." ORDER BY DATA DESC") or die ($err_database);
    $n 0;
    $max 10;
    while(
    $estrazione mysql_fetch_array($bacheca) and $n $max){
        echo
    "
            <div>
                <p>"
    .$estrazione['MESSAGGIO']."<br/>
                Autore: "
    .$estrazione['NOME']."<br/>
                Data: "
    .date('d/m/Y',$estrazione['DATA'])."</p>
            </div>
        "
    ;
        
    $n++;
    }
    ?>
    </body>
    </html>

    Ecco il database:

    codice:
    CREATE TABLE Bacheca (
        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        nome VARCHAR(255) NOT NULL,
        email VARCHAR(255) NOT NULL,
        messaggio TEXT NOT NULL,
        data_messaggio DATE
    ) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB;
    Più pratica in futuro...

  3. #3
    Perchè non passi a PDO? secondo me riceveresti più aiuti, le mysql_ ormai sono preistoria credo.
    Comunque che errore ti da il database?

  4. #4
    Comunque c' era un bel casino, della serie "copio e incollo e chi se ne frega", così funziona, l' ho testato personalmente:

    codice:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
        <style type="text/css">
            label, input, textarea {
                margin: 1em;
            }
        </style>
    <title>Bacheca elettronica</title>
    </head>
    
    
    <body>
    <form method="post" action="">
        <label for="name">Nome</label>
        <input type="text" name="name" id="name"/><br>
        <label for="mail">Email</label>
        <input type="text" name="mail" id="mail"/><br>
        <label for="message">Messaggio</label><br>
        <textarea rows="5" cols="40" name="message" id="message"></textarea><br>
        <input type="submit" value="Invia"/>
    </form>
    <?php
    //Parametri del database
    $//Parametri del database
    $db_host = "localhost";
    $db_user = "admin";
    $db_password = "password";
    $database = "bacheca";
    $db_bacheca = "bacheca";
    
    
    //Controllo dati
    $error= "";
    if(isset($_POST['name']) and $_POST['name'] != ""){//<- controllo nome
        $nome = strip_tags($_POST['name']);
    }
    elseif(isset($_POST['name'])){
        $error .= "Nome mancante.<br />";
    }
      
    if(isset($_POST['mail']) and preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $_POST['mail'])){//<- controlla se la mail è presente e se è in un formato valido
        $mail = $_POST['mail'];
    }
    elseif(isset($_POST['mail'])){
        $error .= "Email mancante o non valida.<br />";
    }
       
    if(isset($_POST['message']) and $_POST['message'] != ""){//<- controllo messaggio
        $messaggio = strip_tags($_POST['message']);
    }
    elseif(isset($_POST['message'])){
        $error .= "Inserire un messaggio.<br/>";
    }
    
    //Inizio Connessione al DB
    $db = mysql_connect($db_host, $db_user, $db_password);
    $db_select = mysql_select_db($database, $db) or die ('Errore');
    echo mysql_error($db);
    //Salvataggio messaggio
    if(isset($nome,$mail,$messaggio)){
         
    
    
     
        $err_database = mysql_error()."<p>Errore di accesso al database. Riprovare pi&ugrave; tardi, nel caso, contattare il web master</p>";
         
        
         $sql = "INSERT INTO ".$db_bacheca." (nome,email,messaggio) VALUES ('".$nome."','".$mail."','".$messaggio."')";
         print  $sql;
        //Invio dati al database
        $insert = mysql_query($sql) or die ($err_database);
        
        
    }
    else{
        echo "<p>".$error."</p>";
    }
    $err_database = mysql_error()."<p>Al momento non sono presenti avvisi in bacheca.</p>";
    $bacheca = mysql_query("SELECT * FROM ".$db_bacheca." ORDER BY DATA DESC") or die ($err_database);
    $n = 0;
    $max = 10;
    while($estrazione = mysql_fetch_array($bacheca) and $n < $max){
        echo"
            <div>
                <p>".$estrazione['MESSAGGIO']."<br/>
                Autore: ".$estrazione['NOME']."<br/>
                Data: ".date('d/m/Y',$estrazione['DATA'])."</p>
            </div>
        ";
        $n++;
    }
    mysql_close();
    ?>
    </body>
    </html>
    Ricontrolla i dati di accesso e il nome della tabella (la crei con la b minuscola ma poi la definisci con la B maiuscola nello script php)

    [edit] la maiuscola non c' entra, ho copiato il tuo codice sql per la creazione e me l' ha comunque nominata con la b minuscola. Il bordello era nella stringa SQL, variabili sbagliate e nomi colonne sbagliati scritti in maiusolo mentre nella tabella sono scritti in minuscolo
    Ultima modifica di camionistaxcaso; 15-04-2016 a 11:45

  5. #5
    Grazie per i suggerimenti. Ho aggiornato lo script e ho notato queste altre problematiche:
    1) Quando premo su INVIA trovo un nuovo record in phpMyAdmin ma non nella pagina;
    2) Se faccio un reflesh della pagina per far comparire il nuovo record in bacheca.php continuo a scrivere lo stesso record nel database;
    Per risolvere il primo problema scrivo:
    Codice PHP:
    header("Location: /bacheca/bacheca.php"); 
    ma non mi compare più la lista di record nella pagina bacheca.php.
    Per risolvere il problema 2 cerco di distruggere le variabili creare e POST ma non risolvo:
    Codice PHP:
    unset($GLOBALS['nome']);
    unset(
    $GLOBALS['messaggio']);
    unset(
    $GLOBALS['email']);
    unset(
    $nome);
    unset(
    $messaggio);
    unset(
    $email);
    $_POST = array(); 
    3) Quando inserisco il codice in database ottengo questo errore:
    codice:
    Notice in .\import.php#704
     Undefined variable: import_text
    Backtrace
    esso non pregiudica il funzionamento del programma ma mi piacerebbe sapere come dovrei riscrivere il codice per evitare incorrettezze.





    Il nuovo script è questo:
    Codice PHP:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
        <style type="text/css">
            label, input, textarea {
                margin: 1em;
            }
        </style>
    <title>Bacheca elettronica</title>
    </head>
    <body>
    <form method="post" action="">
        <label for="name">Nome</label>
        <input type="text" name="name" id="name"/><br>
        <label for="mail">Email</label>
        <input type="text" name="mail" id="mail"/><br>
        <label for="message">Messaggio</label><br>
        <textarea rows="5" cols="40" name="message" id="message"></textarea><br>
        <input type="submit" value="Invia"/>
    </form>
    <?php
    //Parametri del database
    //Parametri del database
    $db_host "localhost"//posizione in cui si trova il database
    $db_user "admin"//utente del database
    $db_password "password"//password del database
    $database "bacheca"//nome del database
    $db_bacheca "bacheca"//nome della tabella del database
    //Controllo dati
    $error"";
    if(isset(
    $_POST['name']) and $_POST['name'] != ""){//<- controllo nome
        
    $nome strip_tags($_POST['name']);
    }
    elseif(isset(
    $_POST['name'])){
        
    $error .= "Nome mancante.<br />";
    }
    if(isset(
    $_POST['mail']) and preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is'$_POST['mail'])){//<- controlla se la mail è presente e se è in un formato valido
        
    $email $_POST['mail'];
    }
    elseif(isset(
    $_POST['mail'])){
        
    $error .= "Email mancante o non valida.<br />";
    }
    if(isset(
    $_POST['message']) and $_POST['message'] != ""){//<- controllo messaggio
        
    $messaggio strip_tags($_POST['message']);
    }
    elseif(isset(
    $_POST['message'])){
        
    $error .= "Inserire un messaggio.<br/>";
    }
    //Inizio Connessione al DB
    $db mysql_connect($db_host$db_user$db_password);
    $db_select mysql_select_db($database$db) or die ('Errore');
    echo 
    mysql_error($db);
    //Salvataggio messaggio
    if(isset($nome,$email,$messaggio)){
        
        
    $err_database mysql_error()."<p>Errore di accesso al database. Riprovare pi&ugrave; tardi, nel caso, contattare il web master</p>";
        
    $sql "INSERT INTO ".$db_bacheca." (nome,email,messaggio) VALUES ('".$nome."','".$email."','".$messaggio."')";
        
    //Invio dati al database
        
    $insert mysql_query($sql) or die ($err_database);
    }
    else{
        echo 
    "<p>".$error."</p>";
    }
    $err_database mysql_error()."<p>Al momento non sono presenti avvisi in bacheca.</p>";
    $bacheca mysql_query("SELECT * FROM ".$db_bacheca." ORDER BY data_messaggio DESC") or die ($err_database);
    $estrazione mysql_fetch_array($bacheca);
    $n 0;
    $max 5;
    while(
    $estrazione mysql_fetch_array($bacheca) and $n $max){
        echo 
    "
            <div>
                <p>"
    .$estrazione["messaggio"]."<br/>
                Autore: "
    .$estrazione["nome"]."<br/>
                Data: "
    .$estrazione["data_messaggio"]."<br/>
                Email: "
    .$estrazione["email"]."</p>
            </div>
        "
    ;
        
    $n++;
    }
    mysql_close();
    ?>
    </body>
    </html>
    Il nuovo database questo:
    codice:
    CREATE TABLE bacheca (
        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        nome VARCHAR(255) NOT NULL,
        email VARCHAR(255) NOT NULL,
        messaggio TEXT NOT NULL,
        data_messaggio DATETIME NOT NULL DEFAULT NOW()
    ) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB;
    Più pratica in futuro...

  6. #6
    versione con l'oggetto $pdo:
    codice:
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
        <style type="text/css">
            label, input, textarea {
                margin: 1em;
            }
        </style>
    <title>Bacheca elettronica</title>
    </head>
    <body>
    <form method="post" action="">
        <label for="name">Nome</label>
        <input type="text" name="name" id="name"/><br>
        <label for="mail">Email</label>
        <input type="text" name="mail" id="mail"/><br>
        <label for="message">Messaggio</label><br>
        <textarea rows="5" cols="40" name="message" id="message"></textarea><br>
        <input type="submit" value="Invia"/>
    </form>
    <?php
    //Parametri del database
    $db_host = "localhost"; //posizione in cui si trova il database
    $db_user = "admin"; //utente del database
    $db_password = "password"; //password del database
    $database = "bacheca"; //nome del database
    $db_bacheca = "bacheca"; //nome della tabella del database
    //Controllo dati
    $error= "";
    if(isset($_POST['name']) and $_POST['name'] != ""){//<- controllo nome
        $nome = strip_tags($_POST['name']);
    }
    elseif(isset($_POST['name'])){
        $error .= "Nome mancante.<br />";
    }
    if(isset($_POST['mail']) and preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*+[a-z]{2}/is', $_POST['mail'])){//<- controlla se la mail è presente e se è in un formato valido
        $email = $_POST['mail'];
    }
    elseif(isset($_POST['mail'])){
        $error .= "Email mancante o non valida.<br />";
    }
    if(isset($_POST['message']) and $_POST['message'] != ""){//<- controllo messaggio
        $messaggio = strip_tags($_POST['message']);
    }
    elseif(isset($_POST['message'])){
        $error .= "Inserire un messaggio.<br/>";
    }
    //Inizializzo le variabili
    $pdo=null;
    $result=null;
    //Mi connetto al database
    try
    {
      $pdo = new PDO("mysql:host=".$db_host.";dbname=".$database, $db_user, $db_password);
      $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $pdo->exec('SET NAMES "utf8"');
    }
    catch (PDOException $e)
    {
      $error .= "Impossibile connettersi al database.<br/>";
      echo "<p>".$error."</p>";
      exit();
    }
    //Salvo il messaggio
    try
    {
        if(isset($nome,$email,$messaggio)){
            $sql = "INSERT INTO ".$db_bacheca." (nome,email,messaggio) VALUES ('".$nome."','".$email."','".$messaggio."')";
            //Invio i dati al database
            $pdo->exec($sql);
    }
        else{
            echo "<p>".$error."</p>";
        }
    }
    catch (PDOException $e)
    {
        $error .= "Impossibile scrivere nel database.<br/>";
        echo "<p>".$error."</p>";
        exit();
    }
    //Leggo il contenuto del database
    try
    {
        $sql = "SELECT * FROM ".$db_bacheca." ORDER BY data_messaggio DESC";
        //Invio i dati al database
        $result = $pdo->query($sql);
    }
    catch (PDOException $e)
    {
        $error .= "Impossibile leggere dal database.<br/>";
        echo "<p>".$error."</p>";
        exit();
    }
    //Scrivo gli ultimi 5 record dal database
    try
    {
        $n = 0;
        $max = 5;
        while($row=$result->fetch() and $n < $max){
        echo "
            <div>
                <p>".$row["messaggio"]."<br/>
                Autore: ".$row["nome"]."<br/>
                Data: ".$row["data_messaggio"]."<br/>
                Email: ".$row["email"]."</p>
            </div>
        ";
        $n++;
        }
    }
    catch (PDOException $e)
    {
        $error .= "Impossibile scrivere i contenuti prelevati dal database.<br/>";
        echo "<p>".$error."</p>";
        exit();
    }
    ?>
    </body>
    </html>
    stessi problemi...

    P.S.:questo codice qui sotto non funge e non riesco a capire perché!
    Codice PHP:
    <input type="text" name="name" id="name" value="<?php (isset($name) and $name!=null) ? print_r($name) : print_r(""); ?>"/><br>
    ...
    $sql = "INSERT INTO ".$db_bacheca." (nome,email,messaggio) VALUES ('".$nome."','".$email."','".$messaggio."')";
            //Invio i dati al database
            $pdo->exec($sql);
            $nome=null;
    Ultima modifica di giannino1995; 16-04-2016 a 00:02
    Più pratica in futuro...

  7. #7
    1) Quando premo su INVIA trovo un nuovo record in phpMyAdmin ma non nella pagina;
    Io quando premo invio lo inserisce e me lo visualizza

    Per risolvere il primo problema scrivo:
    Codice PHP:
    header("Location: /bacheca/bacheca.php");
    Strano fai una redirect alla stessa pagina quindi deve farti vedere i record inseriti in precedenza

    3) Quando inserisco il codice in database ottengo questo errore:
    codice:
    Noticein.\import.php#704
    Undefined variable: import_text
    Backtrace
    A me non da nessun errore

  8. #8
    Quote Originariamente inviata da camionistaxcaso Visualizza il messaggio
    Io quando premo invio lo inserisce e me lo visualizza


    Strano fai una redirect alla stessa pagina quindi deve farti vedere i record inseriti in precedenza


    A me non da nessun errore
    1) perché hai provato con il pdo, il mio secondo codice, se provi con il primo noti il problema... comunque risolto...
    2) a te va? a me no! comunque non credo che reindirizzare sia una soluzione... non capisco perché php non distrugga le variabili dopo averle inserite nel database... se faccio un reflesh con il browser php mi riscrive il record... porca puzzola... senza offesa per la puzzola ovviamente...
    3) sarà il mio xampp un po' scombinato?
    4) altra cosa che non capisco è il motivo per cui questo codice non funziona:
    Codice PHP:
    Data".date('d/m/Y',$row["data_messaggio"])."<br/> 
    Ultima modifica di giannino1995; 16-04-2016 a 00:11
    Più pratica in futuro...

  9. #9
    perchè se aggiorni tu rimandi gli stessi dati alla pagina ricreando le variabili post, ti salva appunto la redirect che ti fa "ricominciare da capo", presumo sia la differenza tra fare una richiesta post e farla con get

  10. #10
    Quote Originariamente inviata da camionistaxcaso Visualizza il messaggio
    perchè se aggiorni tu rimandi gli stessi dati alla pagina ricreando le variabili post, ti salva appunto la redirect che ti fa "ricominciare da capo", presumo sia la differenza tra fare una richiesta post e farla con get
    Proverò con get ma mi piace meno. Per la data hai qualche soluzione?
    Più pratica in futuro...

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.