Visualizzazione dei risultati da 1 a 9 su 9

Discussione: [php] aiuto bacheca

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    24

    [php] aiuto bacheca

    ciao ragazzi, sono nuovo con php e sto imparando un sacco di cose belle,
    sto testando tutti i miei progressi su un sito di mia proprietà e creando quasi una sorta di social.
    ho realizzato registrazione login profili utenti e ora sto provando ad inserire una bacheca nella quale commentare per ogni profilo. tutto "facile" fino a questo punto,

    -> ho fatto si che si crei una tabella "bacheca" nel database automaticamente una volta aperto il profilo utente, a meno che essa non esiste già

    -> ho creato un form di input che una volta inviato il messaggio ricarica la pagina

    -> ho fatto si che ogni commento venga salvato nella tabella "bacheca" dell'utente

    e fino a qua, tutto bene! funziona correttamente, o quasi

    il problema subentra quando invio,
    allora sostanzialmente io vorrei che una volta inviato il commento si ricarichi la pagina con il commento in vista,
    purtroppo la pagina si ricarica ma il commento non so perchè non viene fuori finchè non aggiorno manualmente, e non solo, mi si apre anche una nuova scheda contenente l'action del form di invio!

    non so se sono stato chiaro... qualcuno puo aiutarmi? posto codici!

    profilo.php
    codice:
    <?php header('Content-type: text/html;charset=utf-8');session_start();
    require_once('lib/Users.class.php');
    $login = New Users;
    $login->esegui_login();
    ?>
    <?php 
    $username = mysql_real_escape_string($_GET['username']);
     mysql_query("CREATE TABLE bac_$username ( nome TEXT(30), 
     commento TEXT(190) , data INT(20))");  ?>
    <div id="sinistra">
    
    <?php 
    
    
    
    
    
    /*estraggo dal database tutti gli "username" della tabella "users"*/
     $regdb = mysql_query("SELECT username FROM users"); 
     
    
    /*dico che $registrati è un array apro il ciclo while e tramite mysql_fetch_array() creo un array contenente tutti gli username estratti e glielo assegno */
    
             $registrati = array(); 
             while($r = mysql_fetch_array($regdb)) 
             $registrati[] = $r[0]; 
             
             if (in_array($username, $registrati))
             { echo '<h2>Profilo di '.$username.'</h2>';}
             
             else {
             die("Ops!!! forse l'utente non esiste o si è cancellato");}
            
    // Estraggo i dati e poi     
        
    // Username
    $username = $_GET['username'];
    $email = mysql_query("SELECT email FROM users WHERE username = '$username'");
    $recordset = mysql_fetch_row($email);
    $email = $recordset[0];
       
            $nome = mysql_query("SELECT username FROM user WHERE username = '$username'");
            $recordset = mysql_fetch_row($nome);
            $nome = $recordset[0];
        
    // Cognome    
            $cognome = mysql_query("SELECT cognome FROM utenti WHERE username = '$username'");
            $recordset = mysql_fetch_row($cognome);
            $cognome = $recordset[0];
        
    
    // Messaggio personale
    
            $msg = mysql_query("SELECT msg_pers FROM utenti WHERE username = '$username'");
            $recordset = mysql_fetch_row($msg);
            $msg = $recordset[0];
            $ext = "jpg";
    
    // Stampo tutti i risultati
           
    echo '<img src="uploads/'.$username.'.'.$ext.'" width="200" /><br />';
    echo '<p><strong>Username: </strong>'.$username.'</p>';
    echo '<p><strong>Nome: </strong>'.$nome.'</p>';
    echo '<p><strong>Cognome: </strong>'.$cognome.'</p>';
    echo '<p><strong>Residenza: </strong>'.$residenza.'</p>';    
    echo '<p><strong>Messaggio personale: </strong>'.$msg.'</p>';
     ?></div>
    
    <div id="destra"><div id="bacheca"><div id="commenta"> 
    <?php echo '
    <form action="salva_bacheca.php?username='.$username.'" target="visualizza" name="inserimento" method="post" onsubmit="javascript:location.reload();">
    <input name="azione" >
    <input type="submit" value="Invia" name="invia">
    </form>'; 
    ?>
    
    </div><div id="commenti">
    
    <?php 
    
    /* Estrazione di tutte le azioni ordinate in
    ordine decrescente in base alla data (Visualizzazione delle azioni più recenti in alto).
    La variabile result, risulta un array di righe */
    $query = "SELECT * FROM bac_$username ORDER BY data DESC";
    $result = mysql_query($query) or die(mysql_error());
    /* Finchè esiste nel risultato una riga si entra nel ciclo while. Per vedere la funzione della funzione
    stripslashes e date guardare la documentazione online. */
    while($riga = mysql_fetch_array($result)){
    $nome = stripslashes($riga['nome']);
    $mss = stripslashes($riga['commento']);
    $ora = date("H:i", $riga['data']);
    echo($ora." ".$nome." dice: ".$mss."<br/>");
    }
    
    /* chiusura del database */ mysql_close($db); ?></div></div></div>
    salva_bacheca.php

    Codice PHP:
    <?php header('Content-type: text/html;charset=utf-8');
    session_start();
    require_once(
    'lib/Users.class.php');
    $login = New Users;
    $login->esegui_login();?>
    <?php $user 
    $login->get_username(); ?>
    <?php
    $username 
    $_GET['username'];
    echo (
    $username);

    /* Controlla che il parametro azione passato con il metodo POST dalla pagina chat_input.php esista (per vedere come funziona isSet() guardare la     documentazione online) e che l'utente sia entrato in maniera corretta*/
    if (isSet($_POST['azione']) && $user != "")
    {
    /* nella variabile "nome" viene salvato il nickname dell'utente. La variabile "mss", salva prima il parametro passato con il metodo POST dopo averlo elaborato con la funzione htmlspecialchars (guardare documentazione online). La variabile "attuale" salva la data e l'ora attuale.*/
    $nome $user;
    $attuale time();
    $mss htmlspecialchars($_POST['azione']);
    /* Inserimento all'interno del database dell'azione con relativi campi (Giocatore, Messaggio, Data)*/
    $query ="INSERT INTO bac_$username SET nome = '$nome', commento = '$mss' ";
    mysql_query($query) or die(mysql_error());
    }

    /* chiusura del database */
    mysql_close($db);
    ?>

  2. #2
    Da quanto ho capito, invii il form, salvi i dati e mostri la pagina, giusto?
    Quello che posso consigliarti è di usare ajax e fare chiamate asincrone per registrare i dati e al massimo, dopo se il salvataggio è andato a buon fine ricarichi la pagina.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    24
    non saprei da dove cominciare con ajax, sto studiando ora php, e conosco html e css.
    io vorrei capire soprattutto perchè si apre una nuova scheda, sono sicuro che è una cavolata ma non ci arrivo >.<

  4. #4
    Togli il target al form, e l'evento onsubmit.
    nella pagina salva_bacheca.php metti un redirect alla bacheca dell'utente con header('location: location_che_vuoi.php');

    È un pò ingarbugliata la cosa, ma ne dovresti uscire fuori rapidamente ^^

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    24
    funziona egregiamente XD mi si aggiornano anche i commenti, mi hai risolto due problemi in uno! grande!

  6. #6

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    24

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    si ma poi cambia la libreria da mysql a mysqli perché mysql se installi l'ultima versione di xampp dice obsolute.

    ciao.

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    ti consiglio questa classe:
    https://github.com/fdisotto/PHP-MySQLi-Database-Class
    proprio visto dal github di fdisotto..
    ora me la studio anche io.
    saluti.

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.