- Home
- Categorie
- Coding e Sistemistica
- PHP
- Ho un problema alla mia chat e cerco qualcuno che mi aiuti a risolverlo
-
@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ù
-
ciao ayrton sempre disponibile, l'ip funziona grazie!
devo pure riferirti una cosa però....
quando ho messo il codice su chat.php riguardo il submit, mi compariva il messaggio "non hai i permessi per accedere a questa pagina" dovuto forse a un conflitto che veniva a crearsi con il codice che ti posto e che sulla pagina "insert.php" era posto proprio sopra a <html>:[php] <?
if(!isset($_POST['Submit']))
{
echo "
<script language="javascript">
alert("Non hai i permessi per accedere a questa pagina");
</script>
";exit;
}
?>
[/php]perciò per eliminare questo problema creatosi ho dovuto per forza di cose eliminare quel suddetto codice (quello postato poprio qui sopra), tu che mi dici? c'è un modo per mantenerlo senza che si creino problemi?
-
@giulio3x said:
ciao ayrton sempre disponibile, l'ip funziona grazie!
devo pure riferirti una cosa però....
quando ho messo il codice su chat.php riguardo il submit, mi compariva il messaggio "non hai i permessi per accedere a questa pagina" dovuto forse a un conflitto che veniva a crearsi con il codice che ti posto e che sulla pagina "insert.php" era posto proprio sopra a <html>:[php] <?
if(!isset($_POST['Submit']))
{
echo "
<script language="javascript">
alert("Non hai i permessi per accedere a questa pagina");
</script>
";exit;
}
?>
[/php]perciò per eliminare questo problema creatosi ho dovuto per forza di cose eliminare quel suddetto codice (quello postato poprio qui sopra), tu che mi dici? c'è un modo per mantenerlo senza che si creino problemi?
Aggiungi un campo hidden
[php]<input type="submit" name="Submit" value="Invia messaggio">
<input type="hidden" name="hideSubmit" value="hideGo">[/php]e modifica il controllo cosi:
[php] <?
if(!isset($_POST['hideSubmit']))
{
echo "
<script language="javascript">
alert("Non hai i permessi per accedere a questa pagina");
</script>
";exit;
}
?>
[/php]
-
ciao ayrton il tutto è ok, ho solo dovuto mettere al posto di "POST" modificare in "GET" così tutto funziona, grazie, sei molto preparato!;)
-
@giulio3x said:
ciao ayrton il tutto è ok, ho solo dovuto mettere al posto di "POST" modificare in "GET" così tutto funziona, grazie, sei molto preparato!;)
Cioè if(!isset($_GET['hideSubmit]))
anziche di if(!isset($_POST['hideSubmit']))
Perche? Non dovrebbe essere cosi poichè il campo hideSubmit viene passato tramite post
-
@ayrton2001 said:
Cioè if(!isset($_GET['hideSubmit]))
anziche di if(!isset($_POST['hideSubmit']))
Perche? Non dovrebbe essere cosi poichè il campo hideSubmit viene passato tramite post-dove lo vedi che viene passato tramite post?
-tutta la chat funziona tramite GET, altri mi dissero che era meglio usare POST ma la chat con POST non funzionava, tu a riguardo di questa teoria cosa mi dici? perchè sarebbe meglio usare post pittosto che get?
-
@giulio3x said:
-dove lo vedi che viene passato tramite post?
da qui:
<form method="POST" action="insert.php" name="form_ins" onsubmit="checkSubmit();" >@giulio3x said:
-tutta la chat funziona tramite GET, altri mi dissero che era meglio usare POST ma la chat con POST non funzionava, tu a riguardo di questa teoria cosa mi dici? perchè sarebbe meglio usare post pittosto che get?
Credo che per il tuo uso sia indifferente. A me sinceramente non piace vedere l'url con tutti i parametri visibili
-
@ayrton2001 said:
da qui:
<form method="POST" action="insert.php" name="form_ins" onsubmit="checkSubmit();" >Credo che per il tuo uso sia indifferente. A me sinceramente non piace vedere l'url con tutti i parametri visibili
-
si una volta appunto avevo provato a mettere tutto con post, ma come ti diecevo non funzionava e poi evidentemente mi sono scrdato di mettere GET pure lì, comunque ora ho rimesso GET pure in quel punto. (curiosità: perchè secondo te mi funzionava il tutto pur avendo il post che mi ero scordato di togliere?).
-
poi cosa intendi che non ti piace vedere l'url con tutti i parametri visibili?
(forse ho capito...intendi la barra dove si scrive l'indirizzo che si riempie di tutte lettere a caso del tipo /chat/chat?php_6847433eueudhddn44302)
se fosse così la penserei pure io come te. -
ho in mente di cambiare il formato della data io ora uso questo:
[".date("H:i - d/m/Y")."]
ma mi viene il 2007 tutto esteso, conosci qualche altra forma che mi venga invece che:
06/08/2007 mi venga invece così: 06/08/07? -
ho dato un'altra occhiata e ho visto che una volta qualcuno mi mise apposto la pagina ins_ut.php, prima dell modifica funzionava con tutti GET ma ora ho visto che ha tutti POST io allora ho provato a rimettere tutti i GET ma non funziona, perchè?(quella che ti posto è quella modificata con i post). Tu che dici la lascio così?..hai detto che è indifferente...
[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]
-