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);
?>


