Newsgroup: it.comp.www.php
Titolo: php e linux

Salve a tutti
ho realizzato sul mio sito un semplice modulo di commenti da inviare
via posta elettronica ad un indirizzo predefinito.
In locale, su windows, funziona benissimo, ma quando metto tutto on
line, sul mio server linux, il tutto si inceppa.
Penso che sia un problema di variabili, allora mi chiedo quali siano
le impostazioni giuste su linux per inviare e-mail, oppure se va
impostato qualcosa sulle variabili...non so.
Vi scrivo anche il codice del modulo e del gestore php:
 
<font size="3">Fateci sapere che cosa ne pensate del nostro sito Web,
dei
    prodotti, dell'organizzazione o di qualsiasi altro aspetto della
nostra
    azienda. I vostri commenti e suggerimenti saranno sempre
graditi.</font></p>
    <form method="POST" action="inviacommenti.php">
      <p><strong>Quale tipo di commenti desiderate
inviarci?</strong></p>
      <dl>
        <dd><input type="radio" value="Reclamo"
name="TipoMessaggio">Reclamo
        <input type="radio" value="Problema"
name="TipoMessaggio">Problema
        <input type="radio" CHECKED value="Suggerimento"
name="TipoMessaggio">Suggerimento
        <input type="radio" value="Complimenti"
name="TipoMessaggio">Complimento
        </dd>
      </dl>
      <p><strong>A che cosa si riferisce?</strong></p>
      <dl>
        <dd><select size="1" name="Argomento">
        <option selected>Sito Web</option>
        <option>Azienda</option>
        <option>Prodotti</option>
        <option>Negozio</option>
        <option>Dipendente</option>
        <option>(Altro)</option>
        </select> Altro: <input maxLength="256" size="26"
name="ArgomentoAltro">
        </dd>
      </dl>
      <p><strong>Inserite i commenti nello spazio
sottostante:</strong></p>
      <dl>
        <dd><textarea name="Commenti" rows="5" cols="42"></textarea>
</dd>
      </dl>
      <p><strong>Per contattarvi</strong></p>
      <dl>
        <dd>
        <table>
          <tr>
            <td>Nome e cognome</td>
            <td><input maxLength="256" size="35"
name="NomeUtente"></td>
          </tr>
          <tr>
            <td>Posta elettronica</td>
            <td><input maxLength="256" size="35"
name="PostaElettronicaUtente"></td>
          </tr>
          <tr>
            <td>Telefono</td>
            <td><input maxLength="256" size="35"
name="TelefonoUtente"></td>
          </tr>
          <tr>
            <td>Fax</td>
            <td><input maxLength="256" size="35"
name="FaxUtente"></td>
          </tr>
        </table>
        </dd>
      </dl>
 
      <p><input type="submit" value="Invia commenti">
      <input type="reset" value="Cancella"></p>
    </form>
/////////////////////////////////////////////////////////////////////////
<html>
<head>
<title>invia commenti</title>
</head>
<body>
<?php
 $formsent=mail("
gius...@sapsystem.it
", "commento", "Tipo di
commento:$TipoMessaggio\r\nSi riferisce a:$Argomento\r\n
 Commenti:$Commenti\r\nInviato
da:$NomeUtente\r\nTelefono:$TelefonoUtente\r\nFax:$FaxUtente", "Da:
$postaelettronicautente\r\n
 Bounce-to 
gius...@sapsystem.it
");
 if ($formsent == 1)
 
   print("<p>Ciao, $NomeUtente.</p> Abbiamo ricevuto il tuo commento,
cercheremo di far tesoro dei tuoi consigli. Grazie per aver visitato
Sapsystem.it!");
 
 else
   print("mi dispiace, c'&egrave; un problema con il tuo modulo. Per
favore riprova.");
?>
</body>
</html>
Ringrazio anticipatamente chiunque possa darmi una mano!

 impostato qualcosa sulle variabili...non so.
Hai le stesse versioni di php su win e lin?
Hai controllato i nomi dei files (maiuscole e minuscole in linux fanno 
la differenza!!)?
Che tipo di errore ti da quando lo esegui su linx?
ciao
Mauro

...

Ho le stesse versioni di php, non so dirti l'errore ma posso dirti che
ho pensato ad un problema con le variabili perchč, oltre al fatto che
l'e-mail non arriva a destinazione, nella pagina successiva al form
non viene visualizzato il nome del mittente, il quale viene passato
per variabile.
Quindi lo script in se per se funziona....non so proprio da che puň
dipendere...

 mittente, il quale viene passato per variabile.
Probabilmente in locale hai, nel php.ini, la direttiva
register_globals = On, mentre in remoto č Off. Le variabili
passate dal form recuperale con l'array $_POST['nomevariabile'].
Nel tuo caso usa $_POST['NomeUtente'] al posto di $NomeUtente, e
cosě via.
Ulteriori informazioni:
http://tinyurl.com/3eeob
Ciao.
-- 
Federico R.

...

Ho provato a recuperare le variabili con $_POST['....'], ma mi da un
errore di questo tipo:
 Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or
`T_NUM_STRING'
Che puň essere?

 Che può essere?
Un errore di sintassi. Controlla la riga indicata dal messaggio
d'errore ed eventualmente quella immediatamente precedente.
Se non risolvi posta il codice che lo genera insieme al messaggio
d'errore completo (se possibile evidenzia nel codice la riga che
genera l'errore).
Ciao.
-- 
Federico R.

...

Ecco il codice:
<?php include("testa.php");	?>
<html>
<head>
<title>invia commenti</title>
</head>
<body>
<?php
 $formsent=mail("
gius...@sapsystem.it
", "commento", "Tipo di
commento:$_POST['TipoMessaggio']\r\nSi riferisce
a:$_POST['Argomento']\r\nCommenti:$_POST['Commenti']\r\nInviato
da:$_POST['NomeUtente']\r\nTelefono:$_POST['TelefonoUtente']\r\nFax:$_POST['FaxUtente']",
"Da: $_POST['postaelettronicautente']\r\nBounce-to
gius...@sapsystem.it
");
 if ($formsent == 1)
 
   print("<p>Ciao, $_POST['NomeUtente'].</p> Abbiamo ricevuto il tuo
commento, cercheremo di far tesoro dei tuoi consigli. Grazie per aver
visitato Sapsystem.it!");
 
 else
   print("mi dispiace, c'&egrave; un problema con il tuo modulo. Per
favore riprova.");
?>
</body>
</html>
<?php include("coda.php");	?>
La riga che mi da l'errore è la numero 8, quella che inizia con
$formsent e termina al ; successivo....


:Provate a guardare gli ingredienti del famoso Labello che si usa per
:le labbra screpolate: Butirrospermum Parkii (sperma di maiale).

 commento:$_POST['TipoMessaggio']\r\n...
Vedi la risposta di Leonardo Serni. In alternativa puoi usare il
concatenatore:
...commento:".$_POST['TipoMessaggio']."\r\n...
Ciao.
-- 
Federico R.

 Leonardo
Ok, adesso in locale va benissimo, grazie!!!
Però in remoto non mi funziona, adesso però mi cade nel caso in cui
$formsent è diverso da 1, quindi il problema adesso è relativo
all'invio dell'e-mail...quali sono le impostazioni sul file php.ini di
linux per l'inviodella posta?
Oppure non so, che problema potrei avere adesso?
Riposto il codice:
<?php include("testa.php");	?>
<html>
<head>
<title>invia commenti</title>
</head>
<body>
<?php
 $formsent=mail("
gius...@sapsystem.it
", "commento", "Tipo di
commento:$_POST[TipoMessaggio]\r\nSi riferisce
a:$_POST[Argomento]\r\nCommenti:$_POST[Commenti]\r\nInviato
da:$_POST[NomeUtente]\r\nTelefono:$_POST[TelefonoUtente]\r\nFax:$_POST[FaxUtente]",
"Da: $_POST[postaelettronicautente]\r\nBounce-to
gius...@sapsystem.it
");
 if ($formsent == 1)
 
   print("<p>Ciao, $_POST[NomeUtente].</p> Abbiamo ricevuto il tuo
commento, cercheremo di far tesoro dei tuoi consigli. Grazie per aver
visitato Sapsystem.it!");
 
 else
   print("mi dispiace, c'&egrave; un problema con il tuo modulo. Per
favore riprova.");
?>
</body>
</html>


<?php
Subito sotto per sicurezza metti:
	error_reporting(E_ALL);
cosi' sai cosa succede.


 Leonardo
Ti ringrazio molto...
Ho fatto come mi hai detto e mi da quaesto errore:
Notice: Undefined index: postaelettronicautente in
/home/andrea/sapwww/inviacommenti.php on line 9
perň non capisco cosa significa....
puoi aiutarmi ancora?

 /home/andrea/sapwww/inviacommenti.php on line 9
nel tuo primo post hai scritto: 
... <td><input maxLength="256" size="35"
name="PostaElettronicaUtente"></td> ... 
poi perň usi $_POST[postaelettronicautente] tutto minuscolo.
Se č ancora cosě, correggilo.
Ciao.
-- 
Federico R.

...

Era proprio quello l'errore, grazie mille!!!
Perň non ho ancora risolto, nel senso che adesso non mi visualizza piů
errori, anche con l'error_reporting, perň mi cade sempre nel caso in
cui non manda l'e-mail.
A questo punto penso che sia proprio un problema di configurazione del
file php.ini, almeno credo....Non so proprio dove andare a sbattere
:-((((

 cade sempre nel caso in cui non manda l'e-mail.
Scusa, ma non capisco cosa vuoi dire. Cosa intendi con 'mi cade'?
L'e-mail viene inviata o no? Sembra che sia stata inviata
(compare il messaggio di conferma invio e-mail), ma poi non
arriva nulla?
Ciao.
-- 
Federico R.

". The mail command may not parse this properly while
talking with the MTA (Particularly under Windows). 
http://us2.php.net/manual/it/ref.mail.php


...

Hai ragione, mi spiego meglio:
Nello script di invio ho messo un if che mi da un messaggio diverso a
seconda se l'e-mail venga inviata o meno. Ecco la parte dello script:
$formsent=mail("
gius...@sapsystem.it
", "commento", "Tipo di
commento:$_POST[TipoMessaggio]\r\nSi riferisce
a:$_POST[Argomento]\r\nCommenti:$_POST[Commenti]\r\nInviato
da:$_POST[NomeUtente]\r\nTelefono:$_POST[TelefonoUtente]\r\nFax:$_POST[FaxUtente]",
"Da: $_POST[PostaElettronicaUtente]\r\nBounce-to
gius...@sapsystem.it
");
 if ($formsent == 1)
 
   print("<p>Ciao, $_POST[NomeUtente].</p> Abbiamo ricevuto il tuo
commento, cercheremo di far tesoro dei tuoi consigli. Grazie per aver
visitato Sapsystem.it!");
 else
   print("mi dispiace, c'&egrave; un problema con il tuo modulo. Per
favore riprova.");
Nel sito mi scrive sempre il secondo messaggio, quindi suppongo che
$formsent sia diversa da 1 e di conseguenza il problema č con la
funzione mail.
Visto che in locale, su windows, funziona, continuo a credere che sia
un problema di impostazioni su linux...

 con la funzione mail.
mail() restituisce true o false, quindi puoi fare il controllo
semplicemente così:
if ($formsent) {
	//mail inviata
} else {
	//mail non inviata
}
Nella funzione mail() usi:
"Da: $_POST[PostaElettronicaUtente]\r\nBounce-to..."
Magari non c'entra nulla però prova così:
"From: $_POST[NomeUtente] <$_POST[PostaElettronicaUtente]>\r\n
Reply-To: 
tuoind...@dominio.it
 \r\n"
Ciao.
-- 
Federico R.

 Leonardo
Suppongo che vale FALSE, visto che l'e-mail non arriva...
Comunque credo che, soprattutto grazie ai vostri consigli, adesso lo
script di php non abbia piů problemi, visto che in locale funziona.
Secondo me i problemi stanno sulle impostazioni del server

 Ciao.
Ho provato, come al solito in locale funziona mentre in remoto no...
sicuramente $formsent vale FALSE, visto che l'e-mail non arriva e sul
sito appare la schermata relativa al caso in cui $formsent č FALSE.
A questo punto penso che il problema sta sulle impostazioni del
server.