2015-01-15 3 views
-3

Строка 107 в приведенном ниже кодеАнализировать ошибка: синтаксическая ошибка, неожиданный T_VARIABLE на линии 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, я не знаю, почему это происходит. пожалуйста, любой один помочь мне с этим, как решить эту проблему

+1

Вы не сцепить '$ table_name' в' $ SQL = "INSERT INTO" $ table_name «' .. это должно быть, как ' $ sql = "INSERT INTO". $ table_name. "' – Jon

+0

Нет точек конкатенации? 'INSERT INTO" $ table_name "' – Rizier123

+0

'temp_members_db', если это не константа, тогда ее нужно обернуть в кавычки. –

ответ

5

Вы недостающую ваши операторы конкатенации:

$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'; 
  • FYI, вы также широко открыты для SQL injections.
+3

Я также задаюсь вопросом о '$ table_name = temp_members_db;' - является ли это константой или нет. 'temp_members_db' –

+1

@ Fred-ii- Это тоже должно раздражать PHP. –

+1

Скорее всего, вскоре после того, как OP зафиксирует конкатенацию. –

0

Отсутствие точек в конкатенации строк вокруг $table_name:

$sql = "INSERT INTO " . $table_name . "(confirm_code, name, password, email, address, phone, education, date_of_birth) VALUES ... 
Смежные вопросы