我已经搜索过了,这里的问题都没有帮我解决问题。
我必须在我正在处理的网站上发送一封电子邮件,它在本地工作,但是当我尝试在服务器上发送一封电子邮件时,它会给我一个致命的错误。
代码:
send_mail.js
$(function() {
$('.enviar').click(function(){
event.preventDefault();
$.ajax({
url: 'modules/send_mail.php',
type: 'POST',
data : {
nome : $('#nome').val(),
mail : $('#mail').val(),
assunto : $('#assunto').val(),
mensagem : $('#mensagem').val()
},
success: function (data) {
console.log(data);
},
error: function(xhr, textStatus, data) {
console.log(xhr.statusText);
console.log(textStatus);
console.log(data);
}
});
});
});
send_mail.php
<?
include_once ('../config.php');
$mail_to = "ricardo.ac.dc@gmail.com";
$nome = stripslashes(strip_tags($_POST['nome']));
$mail = stripslashes(strip_tags($_POST['mail']));
$assunto = stripslashes(strip_tags($_POST['assunto']));
$mensagem = stripslashes(strip_tags($_POST['mensagem']));
$texto = $nome ."(". $mail . ")\r\n";
$texto .= $mensagem;
mail ($mail_to,$assunto,$texto);
?>
form.php的
<div class="form_contactos">
<div class="form_text">
<input name="nome" id="nome" placeholder=" nome" type="text" class="linha_simples"/>
<input name="mail" id="mail" placeholder=" e-mail" type="email" class="linha_simples"/>
<input name="assunto" id="assunto" placeholder=" assunto" type="text" class="linha_simples"/>
</div>
<textarea name="mensagem" id="mensagem" placeholder=" mensagem" class="caixa_texto"></textarea>
<input type="submit" name="enviar" class="submit_button enviar" id="enviar" value="" />
</div>
的config.php
<?php
$ligacao = 'local';
if ($ligacao == 'server')
{
//Para ligar a SQL Server, utilizar PHP 5.2.6 (Wampserver 2C)
$servidor = "localhost";
$utilizador = "s002349_admin";
$password = "Torre2008";
$bd = "s002349_temp_almadados";
}
else
{
//Para ligar a SQL Server, utilizar PHP 5.2.6 (Wampserver 2C)
$servidor = "localhost";
$utilizador = "root";
$password = "root";
$bd = "almadados";
}
//Ligação à BD
$padrao = mysql_connect($servidor, $utilizador, $password)
or die("Erro ao ligar a $servidor");
//Selecção de BD a utilizar
$seleccao = mysql_select_db($bd, $padrao)
or die("Erro ao aceder a $bd");
?>
我收到的错误是这个:
致命错误:函数名称必须是字符串 /home/s002349/public_html/almadados.net/new_site/modules/send_mail.php 的 在线 26
send_mail.js:22
任何人都可以帮我解决这个问题吗?
我想到了可行的东西......我将不得不这样做 在这个网站上实现phplist,所以我的想法也是发送这封邮件 通过phplist,这可以工作,并解决我的问题吗?
*我已清除send_mail.php上的所有空白行并清除了浏览器上的所有缓存,因此我不明白为什么它仍显示该行*
答案 0 :(得分:0)
首先要将此<?
更改为此<?php
,某些服务器无法支持短标记
如果npt正常工作,请尝试更改此内容:
mail ($mail_to,$assunto,$texto);
到此:
mail($mail_to,$assunto,$texto);
函数名称和括号之间有空格
<强>更新强>
改变这个:
$padrao = mysql_connect($servidor, $utilizador, $password)
or die("Erro ao ligar a $servidor");
到此:
$padrao = mysql_connect($servidor, $utilizador, $password)
if (!$padrao)
{
die('Could not connect: ' . mysql_error());
}
变量$seleccao
答案 1 :(得分:0)
这可能是因为服务器不支持短标签。我强烈建议远离这些。将<?
替换为<?php
答案 2 :(得分:0)
尝试替换
or die("Erro ao ligar a $servidor");
的
if(!$padrao){die("Erro ao ligar a ".$servidor);}