我哥哥有这种形式:PHP代码适用于Chrome,但不能在Firefox或IE
<form id="lista" action="lista2.php" method="post">
<input name="cf_name" type="text" size="50" hidden="yes" class="obscure">
<input name="cf_email" type="text" size="50" hidden="yes" class="obscure">
<textarea name="cf_message" cols="45" rows="10" hidden="yes" class="obscure">
</textarea>
<input type="image" name="submit" value="Enviar Lista por Email" src="imagens/lista_email.png" width="40" height="40"
onclick="this.form.elements['cf_message'].value = lista_mail;this.form.elements['cf_name'].value = prompt('Escreva o seu nome:', '');this.form.elements['cf_email'].value = prompt('Escreva o seu email:', '');">
<input name="submit2" type="submit" value="Enviar" hidden="yes" class="obscure">
</form>
调用此PHP文件:
<?php
if (isset($_POST['submit'])) {
// Dados de autenticacao SMTP
$smtpinfo['host'] = 'localhost';
$smtpinfo['port'] = '25';
$smtpinfo['auth'] = true;
$smtpinfo['username'] = 'xxx';
$smtpinfo['password'] = 'xxx';
// Dados recebidos do formulario
$nome = $_POST['cf_name'];
$email = $_POST['cf_email'];
$mensagem = $_POST['cf_message'];
// Inclusão de ficheiro PEAR. Certifique-se que o PEAR está activado no seu alojamento
require_once "Mail.php";
// Corpo da mensagem
$body = "Nome: ".$nome;
$body.= "\n\n";
$body.= nl2br($mensagem);
$headers = array ('From' => $email,
'To' => $smtpinfo["username"],
'Subject' => 'Encomenda Website');
$mail_object = Mail::factory('smtp', $smtpinfo);
$mail = $mail_object->send($smtpinfo["username"], $headers, $body);
if (PEAR::isError($mail)) {
echo ("<p>" . $mail->getMessage() . "</p>");
} else {
echo ('<b><font color="FFFF00">Mensagem enviada com sucesso.<br><br></b>Seu email: ' . $email . '<br><br></font>');
}}
?>
这基本上发送电子邮件与一些选定的产品,名称和电子邮件。
问题是,它可以在Chrome上完美工作,但不能在FF或IE上运行。当按下提交图像时,URL将更改为PHP文件,但显示空白页面。
编辑:
将此添加:
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1)
FF/IE显示空白页和电子邮件不被发送,浏览器发送的电子邮件,并显示此:
Strict Standards: Non-static method Mail::factory() should not be called statically in /var/www/vhosts/[site url]/httpdocs/lista2.php on line 33
Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in /usr/share/php/Mail/smtp.php , dont know if it helps
关于“隐藏”字段的提示也没有帮助。
打开错误。会有一些警告或错误。 – MahanGM
尝试使用'type =“hidden”' – aldanux
替换'hidden =“yes”',以及为什么'textarea'隐藏或'class =“遮挡”'? – aldanux