Input di pubblicazione testo, come fare?

ahmadpour

Utente Attivo
10 Nov 2013
35
0
0
Ciao ho creato un input di testo in cui vorrei che quando una persona accede con il suo account possa scrivere dentro questo input il testo che vuole pubblicare. Quando uno a cliccato sul pulsante "pubblica" il testo vorrei che compare sotto. Come posso fare? Una volta che pubblico qualcosa in base all' account che é loggato vorrei che mi appare un file di testo dentro la cartella dell'utente. Ho fatto in modo che quando uno si registra automaticamente crea una cartella. Secondo voi é meglio che quando uno pubblica qualcosa il testo appare in un nuovo file di testo o come? Mi é venuto in mente solo in quel modo cioé di creare un file di testo. Non so forse é possibile salvare nel database o qualche altro modo boh.. come potrei fare?
Ciao e grazie
 
Ciao, non ho capito dove metti questo campo di testo.
Il testo che vuole pubblicare dove deve eseere visulizzato? Per esempio sul sio profilo?

Ciao io vorrei che il testo scritto venga visualizzato sotto a questo input, io voglio mettere l'input nella pagina del profilo e nella home, tipo facebook, cioé che appare sotto a l'input.
 
Praticamente se l'utente se entra nel suo profilo ci sara' un campo tipo "messaggio personale" o altro... Basta che leghi questo campo nel form di "modifica profilo" e inserisci il testo in una tabella del db.

Per la visualizzazione fai la queryu al db:se il testo è presente lo fai visualizzare, altrimenti no.
 
Praticamente se l'utente se entra nel suo profilo ci sara' un campo tipo "messaggio personale" o altro... Basta che leghi questo campo nel form di "modifica profilo" e inserisci il testo in una tabella del db.

Per la visualizzazione fai la queryu al db:se il testo è presente lo fai visualizzare, altrimenti no.

Ciao quindi quando una persona scrive un messaggio e a me appare il messaggio suo nel database di tipo varchar ad es. e poi per visualizzarlo nella pagina basta che lo richiamo giusto? Ciao
 
Praticamente se l'utente se entra nel suo profilo ci sara' un campo tipo "messaggio personale" o altro... Basta che leghi questo campo nel form di "modifica profilo" e inserisci il testo in una tabella del db.

Per la visualizzazione fai la queryu al db:se il testo è presente lo fai visualizzare, altrimenti no.

Ciao ho provato scrivendo cosi:

<form method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
<textarea rows="5" id="textarea_home" name="text_published" cols="30" placeholder="Publish text..."></textarea>
<input type="submit" value="Publish" class="publish_text_home">
</form>


<?php

$text_published = $_POST['text_published'];
$query = "INSERT INTO users (text_published) VALUES ('{$_POST['text_published']}')";

if (mysql_query ($query, mysql_connect($host, $uname, $psw))) {
echo ("Inserimento riuscito!");
}
else{
echo ("Errore nell'inserimento :-(");
}
?>

Il testo mi appare nel database peró non mi viene nell utente.
la mia tabella é composta cosi:

id username name lastname email text_published



Il problema é che il testo una volta inviato mi crea un altro id nella tabella users e su text_published viene il testo inviato. Io vorrei che il messaggio venga in base all'utente loggato su text_published, non che mi crea un nuovo id. ho provato a scrivere nella query username = '$username' ma non ha funzionato. Come posso fare?
Ciao e grazie
 
Il problema é che il testo una volta inviato mi crea un altro id nella tabella users e su text_published viene il testo inviato

devi aggiungere un'altro campo nella tabella user che all'atto della registrazione lo imposti di default vuoto oppure dall'inserimento dell 'utente.
Successivamente dal campo di testo che vuoi creare invii il nuovo testo che va a sovrascrivere il vecchio con una query del tipo:

PHP:
$query="UPDATE users SET nome_campo='$messaggio' WHERE username='$username'";
 
devi aggiungere un'altro campo nella tabella user che all'atto della registrazione lo imposti di default vuoto oppure dall'inserimento dell 'utente.
Successivamente dal campo di testo che vuoi creare invii il nuovo testo che va a sovrascrivere il vecchio con una query del tipo:

PHP:
$query="UPDATE users SET nome_campo='$messaggio' WHERE username='$username'";

Ciao scusa ma non ho capito... mi puoi aiutare? ho provato quello che mi hai scritto ma niente, conosci dei link dove viene spiegato?? ciao e grazie
 
Quando fai registrare l'utente potresti inserire nel form un altro campo relativo al messaggio che poi sara' inserito nel db. Successivamente tramiite il campo input che a te occorre puoi andare a modificare il valore presente (puoi anche impostarlo di defaunt a nulla) nel db utilizzando update
 
Quando fai registrare l'utente potresti inserire nel form un altro campo relativo al messaggio che poi sara' inserito nel db. Successivamente tramiite il campo input che a te occorre puoi andare a modificare il valore presente (puoi anche impostarlo di defaunt a nulla) nel db utilizzando update

Ciao ho scritto cosi:


HTML:
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
<textarea name="text" rows="5" id="textarea_home" cols="30" placeholder="Publish text..." ></textarea>
<input type="submit" value="Publish" class="publish_text_home" name="text_published">
</form>
 

<?php
$message = $_POST['text'];
$query="UPDATE users SET text_published='$message' WHERE username='$username'"; 
 
if (mysql_query ($query, mysql_connect($host, $uname, $psw))) {
   echo '<p>'.$message.'</p>'; //stampa a video del testo precedente fra i tag <p></p>
}
else{ 
   echo ("Errore nell'inserimento :-(");  
}

if (empty($_POST['text'])) {
   
}  

?>

Mi stampa il testo e mi viene nel database in base all utente che l'ha scritto peró quando scrivo nel input un altro testo dopo aver inviato quell'altro me lo sostituisce con il precedente, come posso fare? Io voglio che qualunque testo inviato venga stampato e non sostituito da quello dopo. Ciao e grazie ancora :)
 
Io voglio che qualunque testo inviato venga stampato e non sostituito da quello dopo

Be' allora le cose vanno impostate diversamente...
Dovresti creare un'altra tabella nel db che puoi chiamare per esempio messaggi con questi campi:

id,id_utente,messaggio e data

poi se hai bisogno di altri vedi tu.. e ogni volta che verra' inserito un messaggio nel form sara' memorizzato nel db relativamente a quell'utente nella tabella messaggi..
una cosa del tipo:

PHP:
  $query="INSERT INTO messaggi (id_utente,messaggio,data) VALUES('$id_utente','$messaggio',now())";
mysqli_query($conn,$qyery);
 
Be' allora le cose vanno impostate diversamente...
Dovresti creare un'altra tabella nel db che puoi chiamare per esempio messaggi con questi campi:

id,id_utente,messaggio e data

poi se hai bisogno di altri vedi tu.. e ogni volta che verra' inserito un messaggio nel form sara' memorizzato nel db relativamente a quell'utente nella tabella messaggi..
una cosa del tipo:

PHP:
  $query="INSERT INTO messaggi (id_utente,messaggio,data) VALUES('$id_utente','$messaggio',now())";
mysqli_query($conn,$qyery);

Ciao ho scritto il codice e funziona peró continua a sostituire il messaggio precedente con quello scritto per ultimo nel sito. Nel database non lo sostituisce mentre nel sito si, quindi fa vedere solo il messaggio scritto dopo mentre l'altro non lo fa vedere, ma nel database c'é
 
Nella visualizzazione dei messaggi devi far restituire tutti i messaggi riferiti a quell'utente oppure paginati con un ciclo tipo:

PHP:
$res=mysql_query("SELECT * FROM messaggi WHERE id_utente='$id_utente'");
 while($row=mysql_fetch_array($res))
{
echo $row['messaggi'];
}
 

Discussioni simili