• User Attivo

    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 privato

    ecco 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]


  • ModSenior

    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?


  • User Attivo

    La variabile invece dando l echo mi da correttamente il valore, o publico o privato...
    Ho controllato..e scritto publico con una b. :mmm:
    Davvero non riesco a capire perchè non va...


  • ModSenior

    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.


  • User Attivo

    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..?


  • User Attivo

    @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..:)