- Home
- Categorie
- Coding e Sistemistica
- PHP
- 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 rivedertiOra 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 10Si..:)
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...