我正在尝试制作一个php联系表单,但我收到以下消息:
注意:未定义的变量:第45行的C:\ wamp \ www \ contactform_test \ index.php中的错误
我的第45行看起来像这样:
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
$errors .=$invalidEmail;
}
有答案的人吗?
答案 0 :(得分:0)
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
$errors .=$invalidEmail;
}
您使用了.
运算符,该运算符用于连接但您之前从未声明过$errors
。
$errors = ""; //add this line before if checking
答案 1 :(得分:0)
使用前定义variable
$error
。
$errors = '';// or at the top of page before you assign any value to this `variable`
我们应该在variable
中声明我们将要使用的每个code
以避免此类errors
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
$errors .=$invalidEmail;
}
答案 2 :(得分:0)
如果在调用之前没有初始化变量,PHP将显示Undefined变量。您应该在启动范围之前初始化变量。
如果有全局变量的条件结构和循环结构,则应首先调用并初始化变量
$error ='';
if(something conditional){
$error = 'some message' or $error .="something";
}
if looping structure
$error ='';
for and foreach and while loop{
$error = 'some message' or $error .="something";
}
如果您使用RAW PHP代码的主要原因是在PHP脚本启动时调用和初始化变量会更好,例如
<?php
$error='';
if(something conditional){
$error = 'some message' or $error .="something";
}
?>
另一个原因是你的语法,你用$ error变量联系字符串消息,它在IF语句和字符串连接之前没有全局定义和初始化。这就是为什么它显示未定义的变量。这将是安全的调用并在它的使用范围之前初始化变量。
答案 3 :(得分:0)
第45行使用了两个变量。
$errors=" ";
$invalidEmail="any error message";
在if条件之前使用代码。
答案 4 :(得分:0)
我将添加一个替代品,仅仅是因为它并不一定需要先设置$error
变量。此选项用于将错误收集到数组中:
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
$errors[] = $invalidEmail;
}
要输出所有错误,请使用implode()
:
if(!empty($errors))
echo implode('<br />',$errors);
答案 5 :(得分:0)
我删除了。运营商,这有帮助!
但我在表单上收到错误消息。
我的完整脚本如下所示:
<?php
$name = (!isset($_POST["name"]));
$email = (!isset($_POST["email"]));
$message = (!isset($_POST["message"]));
$missingname = '<p><strong>Venligst indtast dit navn:</strong></p>';
$missingemail = '<p><strong>Venligst indtast din email:</strong></p>';
$invalidEmail = '<p><strong></strong>Venligst indtast en valid email adresse:</p>';
$missingmessage = '<p><strong>Venligst indtast en besked:</strong></p>';
if(!isset($_POST['submit'])) {
if(!$name) {
$errors = $missingname;
}else{
$name = filter_var($name, FILTER_SANITIZE_STRING);
if(!$email){
$errors =$missingemail;
}else{
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
$errors =$invalidEmail;
}
}
if(!$message){
$errors =$missingmessage;
}else {
$message = filter_var($message, FILTER_SANITIZE_STRING);
}
if($errors) {
$resultMessage ='<div class="alert alert-danger">' . $errors . '</div>';
}else {
$to = "xxxxx@mail.com";
$subject = "Kontakt";
$message = "<p>Navn: $name.</p>
<p>Email: $email.</p>
<p>Besked:</p>
<p><strong>$message</strong></p>";
$headers ="Content-type: text/html";
if(mail($to, $subject, $message, $headers)){
$resultMessage ='<div class="alert alert-success"> Tak for din mail, vi vender tilbage snarest med et svar. </div>';
}else{
$resultMessage ='<div class="alert alert-warning">Din mail blev ikke sendt! Prøv igen senere..</div>';
}
}
echo $resultMessage;
}
}
&GT;
答案 6 :(得分:0)
实际上,你的变量$ email没有设置为什么它给出错误Undefined变量。您可以做的是,您需要添加检查以确保定义您的变量。
他们可以通过多种方式进行检查,如下所示,
使用isset函数
如果(isset($电子邮件)){ // ...你的代码 }
只需在if条件中添加变量即可。
如果($电子邮件){ // ...你的代码 }
如果条件允许,您可以简单地将变量设置为某个值。
$ email =&#39;&#39;;