orca miseria è vero O_O... ad ogni modo nemmeno si è risolto il problema... se prima non eseguiva la query, adesso cmq quello che scrivo nei campi di text non viene nemmeno letto dallo script, come se non esistesse e, ovviamente, non viene nemmeno caricato nel database ç_ç...
EDIT: Dunque, scrivo un nuovo messaggio perchè credo sia meglio così ç_ç. Allora, invio i codici corretti delle pagine coinvolte. Questo è input.php
Codice PHP:
<?php
session_start();
include("inc/config.inc.php");
include("inc/connetti.inc.php");
$query="SELECT * FROM personaggi WHERE nome='$login'";
$result=mysql_query($query);
$rs=mysql_fetch_array($result);
$master=$rs['master'];
if((substr($msg, 0, 1) == "§")&&($master==1)) { #Controllo Master
$tipo=2;
$testo=substr($msg, 1); }
elseif((substr($msg, 0, 1) == "§")&&($master==2)) { #Controllo Master Gilda
$tipo=4;
$testo=substr($msg, 1); }
if(substr($msg, 0, 1) == "+") { #Controllo Azione
$tipo=1;
$testo=substr($msg, 1); } else { #Controllo Parlato
$tipo=0;
$testo=$msg; }
if(substr($msg, 0, 1) == "@") { #Controllo Sussurri
$pos=strpos(substr($msg, 1), "@");
if($pos===FALSE) {
$tipo=0; }
else {
$tipo=3;
$p_msg=$pos+2;
$dest=substr($msg, 1, $pos);
$testo=substr($msg, $p_msg);
$mitt=$login; }
$query="SELECT * FROM presenti WHERE idstanza='$idstanza' AND nome='$dest'";
$result=mysql_query($query);
$rs=mysql_fetch_array($result);
if($rs===FALSE) {
$testo="$dest non è presente nella stanza";
$testo=htmlspecialchars($testo);
$dest=$login; } }
$query="INSERT INTO chat (idstanza, ora, mittente, destinatario, sesso, imggilda, nome, tipo, tag, testo) VALUES ('$idstanza', NOW(), '$mitt', '$dest', '$sesso_S', '$img_S', '$login', '$tipo', '$tag', '$testo')";
mysql_query($query);
?>
</head>
<form action="input.php" method="post">
<table>
<tr>
<td><input type="text" name="tag" size="20" value="<?=htmlspecialchars($tag)?>"></td><td><input type="text" name="msg" size="60"></td><td><input type="submit" value="Invia"></td>
</tr>
</table>
</form>
</html>
Lui esegue quasi tutto come si deve, soltanto che, non so il motivo, arrivato a Controllo Master e Controllo Master Gilda è come se ignorasse l'if. La cosa brutta è che se prendo if ed elseif e faccio loro eseguire una funzione di print qualunque in caso le loro condizioni siano verificate, tutto funziona correttamente. Da ciò mi viene di pensare che il problema sta in quello che viene eseguito da queste due strutture di controllo. L'altro problema è lui, chat.php
Codice PHP:
<?php
session_start();
include("inc/config.inc.php");
include("inc/connetti.inc.php");
$query="SELECT * FROM chat WHERE idstanza='$idstanza' WHERE DATE_ADD(ora, INTERVAL 20 MINUTES)>=NOW()";
$result=mysql_query($query);
$rs=mysql_fetch_array($result);
$ora=$rs['ora'];
$testo=$rs['testo'];
$imggilda=$rs['imggilda'];
$mitt=$rs['mittente'];
$dest=$rs['destinatario'];
$sesso=$rs['sesso'];
$autore=$rs['nome'];
$testo=$rs['testo'];
$tag=$rs['tag'];
$tipo=$rs['tipo'];
$tempo=strftime("%H:%M", strtotime($ora));
include("inc/top_foot.inc.php"); ?>
<META HTTP-EQUIV=refresh CONTENT="10;URL=http://jediorder.altervista.org/chat.php">
</head>
<?php
switch ($tipo) {
case 0: /*Parlato*/
print ('<font face="times new roman" size="3" color="#000000">'.$tempo.'&nbps;-&nbps;<img border=0 src=\"altervista_ht/'.$sesso.'.gif\">&nbps;<a href=\"scheda.php?pg='.urlencode($autore).'\"><img border=0 src="\_altervista_ht/gilde/'.$imggilda.'\"></a>'.$autore.'&nbps;['.$tag.']'.$testo.'</font>');
break;
case 1: /*Azione*/
print ('<font face="times new roman" size="2" color="#660000">'.$tempo.'&nbps;-&nbps;<a href=\"scheda.php?pg='.urlencode($autore).'\">'.$autore.'</a>['.$tag.']'.$testo.'</font>');
break;
case 2: /*Scritta master fati*/
print ('<font face="times new roman" size="3" color="#0000FF">'.$testo.'</font>');
break;
case 3: /*Sussurro*/
if($mitt==$login) { /*Stampa del sussurro inviato a $dest*/
print ('<table bgcolor="#000000">
<tr><td><font face="times new roman" size="2" color="#FFFFFF">Hai sussurrato a'.$dest.':</td></tr>
<tr><td><font face="times new roman" size="2" color="#FFFFFF">'.$testo.'</font><tr><td>
</table>'); } else { /*Stampa di un sussurro inviato da $mitt*/
print ('<table bgcolor="#000000">
<tr><td><font face="times new roman" size="2" color="#FFFFFF">'.$mitt.' ti sussurra:</td></tr>
<tr><td><font face="times new roman" size="2" color="#FFFFFF">'.$testo.'</font><tr><td>
</table>'); }
break;
case 4: /*Scritta master di gilda*/
print ('<font face="times new roman" size="3" color="#CC00FF">'.$testo.'</font>');
break; } ?>
Qui è ancora peggio, perchè qualsiasi comando gli dia, qualsiasi cosa prenda dal database (ammesso che ne prenda qualcuna), l'output html è SEMPRE questo
Codice HTML:
<META HTTP-EQUIV=refresh CONTENT="10;URL=http://jediorder.altervista.org/chat.php">
</head>
<font face="times new roman" size="3" color="#000000">&nbps;-&nbps;<img border=0 src=\"altervista_ht/.gif\">&nbps;<a href=\"scheda.php?pg=\"><img border=0 src="\_altervista_ht/gilde/\"></a>&nbps;[]</font>
Ho provato a modificare mille volte il codice, a togliere i caratteri &nbps; , ad assegnare le stringhe a delle variabili prima di passarle a print, a fare il print direttamente senza parentesi come ho visto su qualche guida, ma non è cambiato nulla, il risultato è sempre lo stesso.
Aiuto ç_________ç
FunCool: Non scrivere due messaggi consecutivi, utilizza il tasto Edita.