Colorare nick in base al sesso dell utente

carlitosteam

Nuovo Utente
13 Apr 2008
24
0
0
Salve a voi tutti.
Sto creando una piccola minichat in php all interno del mio sito e volevo farsi' che gli utenti maschi avessero come colore del nick il colore blu mentre gli utenti donna con il colore del nick rosa.


Allora ho pensato di recuperare il sesso dell utente tramite la variabile di sessione $_SESSION['sesso'] che in caso di utente maschio da come valore 'maschio' in caso di utente femmina da come valore 'femmina'

Ho fatto poi questo controllo

PHP:
<?



//Apro la sessione e...

session_start();



include "config.php"; // file di connessione al Db





$sql_select="SELECT id_user, testo,tempo FROM minichat ORDER BY id DESC LIMIT 10 ";

$query_select= @mysql_query($sql_select) or die (mysql_error());  







while($row=mysql_fetch_array($query_select))

{

// Conversione delle faccine solo immagine

$row['testo'] = str_replace("amore", "<img_src='/faccine2/amore.gif'>", $row['testo']);



$row['testo'] = str_replace("auguri", "<img_src='/faccine2/auguri.gif'>", $row['testo']);



$row['testo'] = str_replace("bacio", "<img_src='/faccine2/bacio.gif'>", $row['testo']);

//massimo 48 lettere per riga poi vai a capo

$stringa=$row['testo'];



    $nuova_stringa = wordwrap($stringa, 48, "<br />\n");



  $nuova_stringa = str_replace("<img_src", "<img src", $row['testo']);  

    //Faccio si che la prima lettera dell utente risulti maiuscola

    $maiuscola=$row['id_user'];

  $maiuscola=ucfirst($maiuscola);



//Confronto sesso se maschio il colore del nick deve essere blu altrimenti rosa



if($_SESSION['sesso'] == 'femmina')

echo"<table>











</table>



</div></td>

        </tr>

    </table>

</div>



<font color=\"#0066FF\" size =\"4\" face=\"Arial\">".$maiuscola.": </font></td><td><font  color=\"#000000\" face=\"Arial Bold\" size=\"2\">".$nuova_stringa."</font></td>&nbsp;&nbsp;&nbsp;<td><font color=\"#000000\"  face=\"Arial Bold\" size=\"1\">".$row['tempo']."</font></tr>";



   else

echo"<table>











</table>



</div></td>

        </tr>

    </table>

</div>



<font color=\"#FF99FF\" size =\"4\" face=\"Arial\">".$maiuscola.": </font></td><td><font  color=\"#000000\" face=\"Arial Bold\" size=\"2\">".$nuova_stringa."</font></td>&nbsp;&nbsp;&nbsp;<td><font color=\"#000000\"  face=\"Arial Bold\" size=\"1\">".$row['tempo']."</font></tr>";





}

?>
Purtroppo non va...mi visualizza tutti i nick rosa

..non ho capito come fare questo controllo...e in cosa sbaglio:dipser:
 
Dimenticavo
Perché non fai:

PHP:
if($_SESSION['sesso'] == 'femmina'){
$colore="FF99FF";
}else{
$colore="0066FF";
}

echo "......
<font color=\"#".$colore."\" size =\"4\" face=\"Arial\">".$maiuscola.": </font></td> eccetera....
.....";

sensa dover riscrivere la tabella due volte
 
Dimenticavo
Perché non fai:

PHP:
if($_SESSION['sesso'] == 'femmina'){
$colore="FF99FF";
}else{
$colore="0066FF";
}

echo "......
<font color=\"#".$colore."\" size =\"4\" face=\"Arial\">".$maiuscola.": </font></td> eccetera....
.....";

sensa dover riscrivere la tabella due volte

Grazie...:)
ho risolto..solo che con $_SESSION['sesso'] non mi funzionava..mi dava sempre i nick di un solo colore...
Ho dovuto fare cosi'
PHP:
?

//Apro la sessione e...
session_start();

include "config.php"; // file di connessione al Db


$sql_select="SELECT id_user, testo,tempo,sessochat FROM minichat ORDER BY id DESC LIMIT 10 ";
$query_select= @mysql_query($sql_select) or die (mysql_error());  



while($row=mysql_fetch_array($query_select))
{

$row['testo'] = str_replace("[i]","<em>",$row['testo']);

$row['testo'] = str_replace("[/i]","</em>",$row['testo']);





$stringa=$row['testo'];
   
    $nuova_stringa = wordwrap($stringa, 48, "<br />\n");
 
  $nuova_stringa = str_replace("<img_src", "<img src", $row['testo']);  
    
    $maiuscola=$row['id_user'];
  $maiuscola=ucfirst($maiuscola);


  
if($row['sessochat'] == 'femmina'){
$colore="FF99FF";
}else{
$colore="0066FF";
} 
echo"<table>





</table>

</div></td>
        </tr>
    </table>
</div>

<font color=\"#".$colore."\" size =\"4\" face=\"Arial\">".$maiuscola.": </font></td><td><font  color=\"#000000\" face=\"Arial Bold\" size=\"2\">".$nuova_stringa."</font></td>&nbsp;&nbsp;&nbsp;<td><font color=\"#000000\"  face=\"Arial Bold\" size=\"1\">".$row['tempo']."</font></tr>";


}
?>
Cosi' facendo mi funziona...invece con
$_SESSION['sesso'] no...e pure dando un echo alla variabile $_SESSION['sesso'] il valore maschio o femmina me lo da...
 
ciao
due cose
1. Ti conviene sostituire l’avvio di sessione con:

if(!isset($_SESSION)){
session_start();
}

In modo che se la sessione esiste non la ricrei di nuovo.

2. se il valore femmina/maschio ti serve solo in questa pagina va bene come hai fatto, altrimenti devi valorizzare la sessione

$_SESSION['sesso']= $row['sessochat'];

e poi

if($_SESSION['sesso'] == 'femmina'){
$colore="FF99FF";
}else{
$colore="0066FF";
}
 

Discussioni simili