- Home
- Categorie
- Coding e Sistemistica
- Coding
- creare una minichat o tagboard
-
XD
mi stavo chiedendo appunto perché hai fatto 3 file dato che volevi tutto in una pagina XDAllora: in index metti un semplicissimo if
[php]<?php
if (loggato)
{
include "minichat.php";
}
?>
[/php]il file minichat.php conterrà: inserimento, visualizzazione e form:
(immagino che già nella index ci sia l'assegnazione della sessione).
[php]<div id="minichat">
<?php
include "config.php"; // file di connessione al Db
$id_user="";
$text="";$id_user=$_SESSION['nickname'];
$text=htmlentities($_POST['text']);if ((empty($text))== false) // se $text non è vuoto o nullo
{
$sql = "INSERT INTO minichat (id_user, testo) VALUES ('$id_user','$text')";
$query= @mysql_query ($sql) or die (mysql_error());
}$sql_select="SELECT id_user, testo FROM minichat ORDER BY id";
$query_select= @mysql_query($sql_select) or die (mysql_error());
?>
<table>
<caption>Minichat</caption>
<th colspan="2">Messaggi</th>
<?
while($row=mysql_fetch_array($query_select))
{
echo "<tr><td>".$row['id_user']."</td><td>".$row['testo']."</tr>";
}
?>
</table>
<form action="index.php" name="chat" method="POST">
<textarea rows="2" name="text" cols="36"></textarea>
<input type="submit" value="Invia">
</form>
</div>[/php]non l'ho testato ma credo non dovrebbero esserci problemi
Ovviamente puoi personalizzarlo per come preferisci
Ho messo l'essenziale
-
Sto testando la minichat....ma nn va...
ho composta la pagina index.php cosi'
[php]
<?
//Apro la sessione e...
session_start();
// opto quindi per la visualizzazione ai solo iscritti
if($_SESSION['logged']==1){
//se si...
include "minichat.php";
}
?>[/php]e fin qui' tutto bene...nella index.php la pagina minichat.php e visibile solo agli utenti loggati...la pagina minichat.php cosi'
[php]
<div id="minichat">
<?
//Apro la sessione e...
session_start();
//verifico che dopo il login io abbia la chiave di sessione ad 1
if($_SESSION['logged']==1)
//se si...?>
<?
include "config.php"; // file di connessione al Db
$id_user="";
$text="";$id_user=$_SESSION['nickname'];
$text=htmlentities($_POST['text']);if ((empty($text))== false) // se $text non è vuoto o nullo
{
$sql = "INSERT INTO minichat (id_user, testo) VALUES ('$id_user','$text')";
$query= @mysql_query ($sql) or die (mysql_error());
}$sql_select="SELECT id_user, testo FROM minichat ORDER BY id";
$query_select= @mysql_query($sql_select) or die (mysql_error());
?>
<table>
<caption>Minichat</caption>
<th colspan="2">Messaggi</th>?>
<?
while($row=mysql_fetch_array($query_select))
{
echo "<tr><td>".$row['id_user']."</td><td>".$row['testo']."</tr>";
}
?>
</table>
<form action="index.php" name="chat" method="POST">
<textarea rows="2" name="text" cols="36"></textarea>
<input type="submit" value="Invia">
</form>
</div>[/php]qui' però succede una strana...a video mi stampa la parte di codice di php che va da
include "config.php"; // file di connessione al Db $id_user=""; $text=""; $id_user=$_SESSION['nickname']; $text=htmlentities($_POST['text']); if ((empty($text))== false) // se $text non è vuoto o nullo { $sql = "INSERT INTO minichat (id_user, testo) VALUES ('$id_user','$text')"; $query= @mysql_query ($sql) or die (mysql_error()); } $sql_select="SELECT id_user, testo FROM minichat ORDER BY id"; $query_select= @mysql_query($sql_select) or die (mysql_error()); ?>e sotto questa parte di codice compare la textarea col tasto invio...
in cui ha se provo a scrivere qualcosa nn esce nulla.....:(:bho:
ci sto provandoo a risolvere ma nn riesco:x
-
prova a sostituire <? con <?php
-
@Thedarkita said:
prova a sostituire <? con <?php
Ho risolto Grazie:)Ciao thedarkita:) mi ricordo di te...mi hai dato una mano in passato in molte situazioni:);)
mi fa piacere rivederti
Ora la chat funziona....però....vorrei far si che...una volta raggiunta la soglia dei 10 messaggi inviati la pagina nn deve scendere piu'.....sennò va ad occuparmi tutto lo spazio della pagina:(
Praticamente raggiunti i 10 mess..dovrebbe ridimensionarsi e partire da 0....spero di esser stato chiaro°_°
-
Puoi usare LIMIT nella query e far msotrare solo gli ultimi 10 messaggi facendo cosi:
SELECT id_user, testo FROM minichat ORDER BY id LIMIT 10
-
@Thedarkita said:
Puoi usare LIMIT nella query e far msotrare solo gli ultimi 10 messaggi facendo cosi:
SELECT id_user, testo FROM minichat ORDER BY id LIMIT 10
Si..:)
ho fatto cosi'...però ora succede che raggiunti i 10 messaggi inviati non mi mostra piu' a video quelli successivi....cioè se scrivo dopo i 10 mess inviati nn leggo piu' nulla...:(
-
Dovresti ordinarli in modo decrescente (ORDER BY id DESC)
Però hai i primi in cima, se devi mostrarli alla fine, ti basta generare un array e stamparli al contrario
-
@Thedarkita said:
Dovresti ordinarli in modo decrescente (ORDER BY id DESC)
Però hai i primi in cima, se devi mostrarli alla fine, ti basta generare un array e stamparli al contrario
Ok...si esatto escono in cima...:)
però va bene cosi' dai..;)
Ora provo a far in modo di inserirci delle smile.....:)
se ho problemi posto..:)
-
ok
buon lavoro

-
@Thedarkita said:
ok
buon lavoro

Grazie:)
Allora...ho inserito delle faccine..questo e lo script
[PHP]
<div id="minichat">
<?
//Apro la sessione e...
session_start();
//verifico che dopo il login io abbia la chiave di sessione ad 1
if($_SESSION['logged']==1)
//se si...?>
<?
include "config.php"; // file di connessione al Db
$id_user="";
$text="";$id_user=$_SESSION['nickname'];
$text=htmlentities($_POST['text']);if ((empty($text))== false) // se $text non è vuoto o nullo
{
$sql = "INSERT INTO minichat (id_user, testo) VALUES ('$id_user','$text')";
$query= @mysql_query ($sql) or die (mysql_error());
}$sql_select="SELECT id_user, testo FROM minichat ORDER BY id DESC LIMIT 10";
$query_select= @mysql_query($sql_select) or die (mysql_error());
?>
<table>
<caption>Minichat</caption>
<th colspan="2">Messaggi</th>
<?
while($row=mysql_fetch_array($query_select))
{
echo "<tr><td>".$row['id_user']."</td><td>".$row['testo']."</tr>";
}
?>
</table>
<form action="index.php" name="chat" method="POST">
<textarea rows="2" name="text" cols="36"></textarea>
<input type="submit" value="Invia"><br>
<img src="faccine/x.gif" OnClick="document.chat.text.value+='x'">
<img src="faccine/faccia.gif" OnClick="document.chat.text.value+='°_°'"></form>
</div>[/PHP]
Mi funziona...però vorrei che nel campo textarea al momento del clik sulla faccina apparisse la faccina stessa invece del valore a lettera ...:(
Come potrei fare..?
-
In un textarea normale non puoi visualizzare un immaggine, dovresti lavorarci su con javascript, ma la cosa diventa tutto tranne che facile da realizzare...
-
@Thedarkita said:
In un textarea normale non puoi visualizzare un immaggine, dovresti lavorarci su con javascript, ma la cosa diventa tutto tranne che facile da realizzare...

ho visto un esempio simile..
[php]
<form method="POST" name="nome_form" action="inserisci.php">
<textarea name="nome_campo" cols="30" rows="5"></textarea><br>
<input type="submit" value="Invia Messaggio">
</form><?
function faccine($msg){
$msg_ok = str_replace(":-)", "<img src="smile.gif">", $msg);
return $msg_ok;
}
echo faccine($_POST['nome_campo']);?>
[/PHP]
dovrebbe fare ciò che voglio io....ma mi da un errore
Parse error: syntax error, unexpected T_STRING in /membri/italiawebchat/inserisci.php on line 8
-
$msg_ok = str_replace(":-)", "<img src="smile.gif">", $msg);
Sarebbe cosi, ma il problema è che il browser non può fare quello che stai cercando di fare
-
@Thedarkita said:
$msg_ok = str_replace(":-)", "<img src="smile.gif">", $msg);
Sarebbe cosi, ma il problema è che il browser non può fare quello che stai cercando di fare
Infatti non fa ciò che voglio...come potrei ovviare al problema:?
-
Ti ho già scritto prima che non puoi, guarda il post 21...
-
@Thedarkita said:
Ti ho già scritto prima che non puoi, guarda il post 21...
mmm....andrebbe fatto con il javascript quindi....senza textarea?:o
-
Textarea con javascript, come nei wygiwys tiny_mce per esempio lo fà, ma ci sono molte altre funzioni, ora non sò se si riesce a trovare qualcosa di già pronto all'uso.... ma di sicuro crearlo a soli, se non sianno più che ottime conoscenze in materia mi pare complicato...
-
@Thedarkita said:
Textarea con javascript, come nei wygiwys tiny_mce per esempio lo fà, ma ci sono molte altre funzioni, ora non sò se si riesce a trovare qualcosa di già pronto all'uso.... ma di sicuro crearlo a soli, se non sianno più che ottime conoscenze in materia mi pare complicato...
Provo con un editor wygiwys e ti faccio sapere:)
-
@carlitos1982 said:
Provo con un editor wygiwys e ti faccio sapere:)
Non ho capito una cosa...
siccome nn li ho mai usati....nn capisco come vanno implementati nella mia chat questi editor:bho:
mmm.....dove posso trovarli questi editor?:?
-
Cerca tinymce... è un editor, ci sono gli esempi non avrai problemi ad implementarlo, ma credo siano fin troppo avanzati per quello che devi fare tu...