- Home
- Categorie
- Coding e Sistemistica
- Coding
- Strano errore con if
-
Strano errore con if
Ho questo controllo...
$modomessaggio
contiene come valore o 'publico' o 'privato'
e lanciando un echo il valore e corretto...cioè il valore viene correttamente estrapolato dalla queri..
Ora io dovrei mostrare se il valore di $modomessaggio e uguale a publico il form per privatizzarlo..mentre se $modomessaggio e uguale a privato mostrare solo la scritta "Questo messaggio e privato"
Io ho provato a fare ciò..ma il controllo non viene fatto..perchè..?mi mostra solo questa parte quà..
[PHP]
echo "il messaggio e $modomessaggio";[/PHP]correttamente fra l altro...cioè mi esce scritto se il emssaggioe publico o privatoecco il controllo che ho fatto..
[php]echo "il messaggio e $modomessaggio";
if($modomessaggio == 'publico')
echo"<font class="font">Questo messaggio è publico se vuoi privatizzarlo clicca qui sotto
<form method="post" action="rendiprivato.php"><input type="hidden" size="1" name="iddaprivatizzare" value="$iddaeliminare" />
<input type="hidden" size="1" name="privato" value="privato" />
<input type="submit" value="Rendi privato"></form></font>";
if($modomessaggio == 'privato')
echo"<font class="font">Questo messaggio è privato";
}?>
[/php]
-
Ciao carlitos1982,
Il motivo può essere esclusivamente 1, quella variabile non ha come valore ne privato ne pubblico.
PS Pubblico si scrive con 2 b, mica hai messo da una parte con 1 b e nell'altra con 2?
-
La variabile invece dando l echo mi da correttamente il valore, o publico o privato...
Ho controllato..e scritto publico con una b.
Davvero non riesco a capire perchè non va...
-
Beh uguale non può essere, altrimenti il problema non si presentava.
Magari nella variabile c'è "publico " con lo spazio finale, insomma il problema dovrebbe essere di questo genere non ci sono altre strade.
-
Non c'è nessuno spazio...:?
Questa e la parte del form per l invio del messaggio..si può notare che il valore che do e publico e privato:
[php]<textarea id="text" name="text" name="text" cols='40' rows='12'></textarea> <br>
Publico<input type="radio" name="modolettura[]" value="publico"/>
Privato <input type="radio" name="modolettura[]" value="privato"/>
<a href="javascript:Popup2('faccine2.htm')"><img src="faccine3/smile_sorriso.gif" border="0" alt="Qui trovi altre faccine da inserire!"></a>
<a href="javascript:Popup('faccine.htm')"><img src="faccine/smile.gif" border="0" alt="Inserisce le faccine che piu' ti piacciono!"></a>
<a href="javascript:Popup1('colori.htm')"><img src="colori.gif" border="0" alt="Inserisci il testo che vuoi colorare fra i tag <font>"></a><br>
<input type="submit" value="Invia messaggio"> <br>
</form>[/php]Questa e un pò di parte della pagina che riceve il form:
[php]
//recupero i valori dal form precedente
$cdestinatario = $_POST['destinatario'];
$cmessaggio = $_POST['text'];
$cmittente = $_SESSION['nickname'];
$cemail = $_POST['emaildest'];
$cemailinviante = $_POST['emailinviante'];$iHowMany=sizeof($_POST['modolettura']);
for($i=0; $i<$iHowMany; $i++) {
$sPersonaggi.=$_POST['modolettura']*." ";
}
// Controllo il Nome Utente
if(strlen($sPersonaggi) =='0') {
echo "<script>
alert("Non hai indicato se il messaggio deve essere publico o privato!");</script>";
exit;
}
//mi connetto al database//seleziono la tabella
mysql_select_db('Sql271134_1') or die("Errore apertura database: " . mysql_error());$strsql="INSERT INTO messaggi (nome_inviante,nome_ricevente,messaggio,letto,date,emailmess,datamessaggio,oramessaggio,emailinviante,privato)
VALUES
('$cmittente','$cdestinatario','$cmessaggio','da leggere..',NOW(),'$cemail','$ultimavisita3','$ultimavisitaora3','$cemailinviante','$sPersonaggi')";@mysql_query("$strsql") or die("Errore query database: " . mysql_error());
[/php]Il tutto viene stampato correttamente nel database con il valore publico se il messaggio e publico e privato se il messaggio e privato.
Questa invece mostra parte della pagina che mi fa vedere i messaggi a video:
[php]<?
//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...
//verifico se esiste la variabile id e che sia numerica
if(isset($_GET['id']))
if(is_numeric($_GET['id']))
$id=$_GET['id'];
else
{
header('Location: index.html');
exit;
}
include "config.php";//seleziono il database
mysql_select_db('Sql271134_1') or die("Errore apertura database: " . mysql_error());$sql="SELECT id,nome_inviante,nome_ricevente,messaggio,date,datamessaggio,oramessaggio,emailinviante,privato FROM messaggi
WHERE id='".$id."' AND nome_ricevente = '".$_SESSION['nickname']."'
ORDER BY date";
$query=@mysql_query($sql) or die (mysql_error());
while ($array=mysql_fetch_array($query)){
$modomessaggio=$array['privato'];
echo "il messaggio e $modomessaggio";
if($modomessaggio=='publico')
echo"<font class="font">Questo messaggio è publico se vuoi privatizzarlo clicca qui sotto
<form method="post" action="rendiprivato.php"><input type="hidden" size="1" name="iddaprivatizzare" value="$iddaeliminare" />
<input type="hidden" size="1" name="privato" value="privato" />
<input type="submit" value="Rendi privato"></form></font>";
if($modomessaggio=='privato')
echo"<font class="font">Questo messaggio è privato";
}?>[/php]Nessuno spazio...perchè non funziona..?
-
@carlitos1982 said:
Eh si..era un problema di spazio..ho risolto aggiungendo uno spazio vuoto
nel controllo..[php]
f($modomessaggio=='publico ')f($modomessaggio=='privato ')
[/php]Ora funziona..:)