【问题标题】:Parse error: syntax error, unexpected T_VARIABLE on line 107 [duplicate]解析错误:语法错误,第 107 行上的意外 T_VARIABLE [重复]
【发布时间】:2015-01-15 18:52:59
【问题描述】:

下面代码中的第107行是

$sql="INSERT INTO " $table_name " (confirm_code,name,password,email,address,phone,education,date_of_birth) VALUES 
        ('".$confirm_code."','".$name."','".$pwd."','".$email."','".$adres."','".$phno."','".$educon."','".$dob."') "; "

我得到了意想不到的 T_VARIABLE;

<?php
if(isset($_POST['Register']))
{ 
    $name= $_POST['uname'];
    $pwd= $_POST['pswd'];
    $email= $_POST['email'];
    $phno= $_POST['phno']; 
    $adrs= str_replace("'","`",$_POST['adres']);
    $adres  =   $adrs;
    $educon= $_POST['educon']; 
    $dob= $_POST['dob'];
    $chkname    =   "select email from ".USREG." where email='".$email."'";
    $res        =       mysql_query($chkname, $con) or die(mysql_error());
    $chkresult=mysql_fetch_array($res);
    $uemail= $chkresult['email'];
     //print_r($uemail);die();
     include ('config.php');
     $table_name=temp_members_db;
     $confirm_code=md5(uniqid(rand()));
        if($uemail==$email)
        {
            echo ' <p style="color:red">Email <b> '.$email.' </b> Already exists</p>';
        }
        else
        {
            $sql="INSERT INTO " $table_name      "(confirm_code,name,password,email,address,phone,education,date_of_birth) VALUES 
             ('".$confirm_code."','".$name."','".$pwd."','".$email."','".$adres."','".$phno."','".$educon."','".$dob."') ";
             $result  = mysql_query($sql, $con) or die(mysql_error());
            if($result)
            {  
                $to=$email;
                echo '<p style="color:green"> '.$name.' Your Registration Success</p> <br/>'; 
                $subject    =   "your confirmation link here";
                            $headers  = 'MIME-Version: 1.0' . "\r\n";
                            $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";  
                            $header = 'From: ShareLibrary <'.ADMIN_MAIL.'>' . "\r\n";  
                            $admMesg    =   $email." is registered "; 
                            $message = "your confrimation link \r\n";
                            $message = "click on this link to activae your account \r\n";
                            $message = "http://www.xxxxxx.in/confirmation.php?passkey=$confirm_code";
                            $sentmail = $mail($to,$subject,$message,$header);
           if($sentmail)
                {   
                    echo '<p style="color:green">registration details sent to  '.$email.' </p><br/>';
                }
                else
                {
                    echo '<p style="color:red">registration details sending to your mail was failed';
                }
            }
            else
            { 
                echo "<p>Registration FAILED</p>";
            }
        } 
    } 
?>

以上代码为用户注册表格,注册完成后激活码将发送到用户注册邮箱。

我知道 T_VARIABLE 错误的发生主要是由于显示错误的前一行中缺少分号或大括号。但我想我用分号结束了前一行,我没有错过任何大括号。但我仍然收到这个意外的 t_variable 错误,我不知道它为什么会出现。请任何人帮助我解决这个问题

【问题讨论】:

  • 你不要在$sql="INSERT INTO " $table_name "中连接$table_name..它应该像$sql="INSERT INTO ". $table_name ."
  • 没有连接点? INSERT INTO " $table_name "
  • temp_members_db 如果不是常量,则需要用引号括起来。
  • 看看here.
  • 这看起来有几个SQL注入漏洞。

标签: php syntax-error


【解决方案1】:

您缺少连接运算符:

 $sql="INSERT INTO " $table_name      "(confi
                   ^^^^^         ^^^^^
                   HERE          HERE

应该是

$sql="INSERT INTO " . $table_name . "(confi

PHP 也应该警告你$table_name=temp_members_db;

您的字符串值 temp_members_db 周围缺少引号,如果未加引号,则将其视为/视为 constant

$table_name='temp_members_db';

【讨论】:

  • 我也想知道$table_name=temp_members_db; - 这是否是一个常数。 temp_members_db
  • @Fred-ii- 那也应该是烦人的 PHP。
  • 它可能会在 OP 修复串联后不久。
  • 如果是这样,我们将收到另一个印刷错误问题作为跟进!我们现在应该指出这一点。 ^^(我看到你刚刚做了哈哈)
  • @JohnConde 我想我们可以把那个绿色的小家伙称为一个很好的“辅助”;-) 又一个幸福的结局。
【解决方案2】:

$table_name 周围的连接字符串中缺少点:

$sql = "INSERT INTO " . $table_name . "(confirm_code, name, password, email, address, phone, education, date_of_birth) VALUES ...

【讨论】:

    猜你喜欢
    • 2017-07-16
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多