- Home
- Categorie
- Coding e Sistemistica
- PHP
- Ho un problema alla mia chat e cerco qualcuno che mi aiuti a risolverlo
-
[quote]Controlla che la chat funzioni, e appena vedi che la dimensione del file messaggi.txt diventa di circa 1 mb segnati l'orario e fai partire il file maintenance.php.
Esegui questo più volte.
Mettiamo caso che l'intervalo medio tra gli orari da te segnati e 20 minuti.
Vai nel tuo pannello (se lo hai) oppure utilizza un sito che effettua schedulazioni (cron) e fai in modo che il file maintenance.php venga richiamato ogni 20 minuti.[quote]In questo modo individui quale è il tempo ideale.
Magari inizialmente puo essere anche 20 minuti.
Però piu di fare prove...
Inizia con 20 e tieni d'occhio il tutto. Se fila liscio lascia, altrimenti metti 15 minuti. Se fila liscio lascia, altrimenti metti 10 minuti. E cosi via.
Ogni minuto mi sembra una vera esagerazione.
Dopo venti minuti che dimensioni ha raggiunto il file?Non sapendo quanti utenti sono connessi, quanti messaggi scrivono in media al minuto, di quanti caratteri è composto in media ogni messaggio, posso solo dirti di provare.
-
ok ayrton, farò delle prove, quindi per ora grazie ti faccio sapere tra un mesetto come funziona e se è tutto ok!
spero di ritrovarti sempre qui disponibile come lo sei sempre stato!
ciao e grazie!
-
Ci sarò (almeno spero )
Però mi segno che mi devi un favore
-
-
ciao ayrton, ho notato che a volte il messaggio a qualche utente viene adirittura scritto due volte perchè?:?
altra curiosità:
c'è un modo per sapere l'indirizzo ip delle persone che scrivono in chat, e se si come si può fare? grazie!
-
ayrton... ho notato che ad un utente il messaggio viene scritto due volte come mai? :bho:
-
ad uno in particolare?
a te capita?
-
@massimux said:
ad uno in particolare?
a te capita?no per ora mai, e si da quando ho fatto la modifica al solito utente adesso sempre due volte, da cosa può dipendere?
-
ayrton rispondi...da cosa può dipendere?:x
-
@ayrton2001 said:
Una curiosità. Magari non è inerente al problema, ma dopo il submit del messaggio disabiliti il reinvio? Se la risposta è no i doppioni possono presentarsi credo
forse è per questo e come faccio allora a disabilitare il reinvio?:x
-
nessuna risposta?
-
@giulio3x said:
c'è un modo per sapere l'indirizzo ip delle persone che scrivono in chat, e se si come si può fare? grazie!
$_SERVER['REMOTE_ADDR']
-
@giulio3x said:
forse è per questo e come faccio allora a disabilitare il reinvio?:x
Tramite javascript
Per esempio all'onsubmit del forum chiami la funzione waitSubmitfunction waitSubmit() {
var subValue = document.name del form.name dell'input submit.value;
if(subValue!="Attendere") { // Se non ha inviato
subValue = "Attendere";
document.name del form.name dell'input submit.disabled = "true"; //Disabilito il pulsante
document.name del form.submit();
}
}Non ho provato il codice, dunque non so se ho commesso qualche errore
-
@giulio3x said:
nessuna risposta?
Scusa ma ho avuto una marea di appuntamenti, tanto lavoro ed in più una mia tartaruga ha morso l'altra dunque farmacia, cure, etc...
-
@ayrton2001 said:
Tramite javascript
Per esempio all'onsubmit del forum chiami la funzione waitSubmitfunction waitSubmit() {
var subValue = document.name del form.name dell'input submit.value;
if(subValue!="Attendere") { // Se non ha inviato
subValue = "Attendere";
document.name del form.name dell'input submit.disabled = "true"; //Disabilito il pulsante
document.name del form.submit();
}
}Non ho provato il codice, dunque non so se ho commesso qualche errore
ciao ayrton e grazie!!!
-
allora cominciamo...per via dell'ip dove devo inserire il pezzo di codice? e per dove intendo su quale pagina della chat (su insert, o messaggi, o chat ecc)
-
poi il pezzo di codice per il disabilito del reinvio dove devo inserirlo?
e mi spiego su quale pagina? proprio dopo il bottone invia messaggio nella pagina chat, oppure lo inserisco su insert.php oppure sulla pagina messaggi.php?
grazie mille ayrton!:)
-
-
@giulio3x said:
- poi il pezzo di codice per il disabilito del reinvio dove devo inserirlo?
e mi spiego su quale pagina? proprio dopo il bottone invia messaggio nella pagina chat, oppure lo inserisco su insert.php oppure sulla pagina messaggi.php?
grazie mille ayrton!:)
nel file chat.php
onsubmit va qui:
<form method="POST" action="insert.php" name="form_ins" onsubmit="checkSubmit();" >Il javascript va insieme alla funzione aggiungi:
<script language="javascript">
function aggiungi(y)
{
espressione=document.form_ins.messaggio.value;
new_espressione=espressione + y;
document.form_ins.messaggio.value=new_espressione;
}
function checkSubmit() {
var subValue = document.form_ins.Submit.value;
if(subValue!="Attendere") { // Se non ha inviato
subValue = "Attendere";
document.form_ins.Submit.disabled = "true"; //Disabilito il pulsante
return true;
} else {
return false;
}
}
</script>Ho modificato la funzione, questa dovrebbe andare.
- poi il pezzo di codice per il disabilito del reinvio dove devo inserirlo?
-
@giulio3x said:
- allora cominciamo...per via dell'ip dove devo inserire il pezzo di codice? e per dove intendo su quale pagina della chat (su insert, o messaggi, o chat ecc)
Dipende a che ti serve.
Vuoi farlo visualizzare?
-
Mandami i tuoi dati via PM cosi ti mando la fattura eheheheh!!!
-
@ayrton2001 said:
Mandami i tuoi dati via PM cosi ti mando la fattura eheheheh!!!
ma scherzi o dici sul serio?:bho:
no sai, un forum è fatto per parlare insieme e cercare di risolvere i problemi ma se me la metti così mi preoccupi...
comunque io vorrei che alla registrazione insieme ai dati nel registro.txt compaia anche l'ip
-
@giulio3x said:
ma scherzi o dici sul serio?:bho:
no sai, un forum è fatto per parlare insieme e cercare di risolvere i problemi ma se me la metti così mi preoccupi...
Secondo te? Più di un ehehehe e di tre non so come fare ironia sul forum!!!
@giulio3x said:
comunque io vorrei che alla registrazione insieme ai dati nel registro.txt compaia anche l'ip
Modifica registrazione.php cosi:
[php]<?
if(!isset($_POST['Submit']))
{
echo "
<script language="javascript">
alert("Non hai i permessi per accedere a questa pagina");
</script>
";exit;
}
?>
<html>
<head>
<title>Registrazione alla chat</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FBBEAA">
<?
include("config.php");
$ip = $_SERVER['REMOTE_ADDR'];
$nick=$_POST['nick'];
$nick=strtolower($nick);/conversione della stringa del nick in minuscolo/
$nick=stripslashes($nick);/toglie gli slashes aggiunti ad una stringa
con addslòashes/
$password=$_POST['password'];
$password=strtolower($password);/conversione della stringa della
password in minuscolo/
$password_cr=crypt($password,$nick);/criptazione di tipo DES della
password usando come chiave la stringa del nick/
$password_cr=str_replace("|","*",$password_cr);/*questa la si definisce
una criptazione aggiuntiva: se nella password criptata sono presenti
| sono sostituiti con * /
$age=(int)$_POST['age'];/qquio si verifica che eta sia intera ,altro controllo
per la sicurezza/
if(!(int)$age)
{
echo "
<script>
alert("Inserimento di un dato non numerico");
history.back();
</script>
";
exit;
}
$sex=$_POST['sex'];
$nation=$_POST['nation'];
$hobbies=$_POST['hobbies'];
$nation=stripslashes($nation);
$hobbies=stripslashes($hobbies);
if (!(file_exists($file_reg)))
{fopen($file_reg,"w");}
$utente_ok=1;
$ut_regist=file($file_reg);/si memorizza il file in un vettore ;ogni
elemento del vettore corrisponde ad ogni riga del file/
$dim_reg=count($ut_regist);/conta le righe del vettore/
/ora che il file è un vettore era meglio utilizzare un foreach
piuttosto che un for/
for ($i=0;$i<$dim_reg;$i++)
{
$utente=chop($ut_regist);/chop è alias di rtrim ed elimina spazi ed
altro dalla fine del file in questo caso dalla riga in cui andremo a
scrivere/
$dati_ut=explode("|",$utente);/considerando ogni riga come un array si
separa ogni elemento dell'array con un |/
$nick_ut=$dati_ut[0];
$pass_ut=$dati_ut[1];
if ( ($nick==$nick_ut) | ($password_cr==$pass_ut) ) $utente_ok=0; /si
controlla che il nick o la passwords nopn esistano/
}
if ($utente_ok==1)
{
if (empty($nick) | empty($password) | empty($nation) | empty($sex) |
empty($hobbies))
{
echo "<center><font face="Verdana" size="2">NON HAI RIEMPITO UNO O
PIU' CAMPI</font></center><br><br>";
echo "<center><font face="Verdana" size="2"><a
href="javascript:history.back();">TORNA INDIETRO</a></font></center>";
}
else /in caso in cui tutti i campi siano stati tutti riempiti/
{
$utente=$nick."|".$password_cr."|".$age."|".$sex."|".$nation."|".$hobbies."|".$ip."\n";
$ins_utente=fopen($file_reg,"a+");/si scive i dati dell'utente nel
vettore-filre/
fputs($ins_utente,$utente);
fclose($ins_utente);
echo "<center><font face="Verdana" size="3">SEI REGISTRATO ALLA CHAT.<br> PER ENTRARE E SCRIVERE NELLA CHAT, CHIUDI QUESTA FINESTRA DI CONFERMA DELL'AVVENUTA REGISTRAZIONE, ED EFFETTUA IL LOGIN INSERENDO NEI DUE RISPETTIVI CAMPI IL NICKNAME E LA PASSWORD SCELTI.</font></center>";
}
}
else
echo "<center>Nick o password già utilizzata.<br><a
href="javascript:history.back();">Torna indietro</a><center>";
?>
</body>
</html>[/php]Guarda le righe
$ip = $_SERVER['REMOTE_ADDR'];
$utente=$nick."|".$password_cr."|".$age."|".$sex."|".$nation."|".$hobbies."|".$ip."\n";Però se non hai senso dell'humor non ti aiuto più