2014-11-17 3 views
-3

Я пытался сделать простую регистрационную форму в HTML и PHP, но я получаю сообщение об ошибке и не знаю, почему:

Parse error: syntax error, unexpected $end in /home/daygosta/public_html/dpicollege/register.php on line 47

Вот ссылка на мой code in register.php Click

+0

'

' here is typo – demo

+1

Пространство перед концом вашего heredoc ('EOT;') – TiiJ7

ответ

0

Используйте это один, а не heredoc

$form = ' 
    <form method="POST"> 
First Name: <input type="text" name="name"/></br> 
Last Name: <input type="text" name="lname"/></br> 
User Name: <input type="text" name="uname"/></br> 
Email Address: <input type="text" name="email1"/></br> 
Confirm Email Address: <input type="text" name="email2"/></br> 
Password: <input type="password" name="pass1"/></br> 
Confirm Password: <input type="password" name="pass2"/></br> 
<input value="Submit" type="submit" name="submit"/></br> 
</form>; 
3

Ваша ошибка в том, что heredoc не очень хорошо закрыт. Перед текстом EOT; не может быть никаким персонажем. В вашем коде я вижу символ табуляции. Вы можете увидеть большое предупреждение в documentation

0

Это будет работать:

<?php 
error_reporting(0); 
require('config.php'); 

if(isset($_POST['submit'])){ 

    $email1 = $_POST['email1']; 
    $email2 = $_POST['email2']; 
    $pass1 = $_POST['pass1']; 
    $pass2 = $_POST['pass2']; 

    if($email1 == $email2){ 
     if($pass1 == $pass2){ 
      $name = mysql_escape_string($_POST['name']); 
      $lname = mysql_escape_string($_POST['lname']); 
      $uname = mysql_escape_string($_POST['uname']); 
      $email1 = mysql_escape_string($email1); 
      $email2 = mysql_escape_string($email2); 
      $pass = mysql_escape_string($pass1); 
      $pass2 = mysql_escape_string($pass2); 

     }else{ 
      echo "Sorry , your passwords do not match!</br>"; 
      exit(); 
     } 
    }else{ 
     echo "Sorry, your emails do not match!</br>"; 
    } 
}else{ 
    $form = ' 
    <form acti method="POST"> 
First Name: <input type="text" name="name"/></br> 
Last Name: <input type="text" name="lname"/></br> 
User Name: <input type="text" name="uname"/></br> 
Email Address: <input type="text" name="email1"/></br> 
Confirm Email Address: <input type="text" name="email2"/></br> 
Password: <input type="password" name="pass1"/></br> 
Confirm Password: <input type="password" name="pass2"/></br> 
<input value="Submit" type="submit" name="submit"/></br> 
</form> 
'; 


echo $form; 

} 
?> 
0

Использование «» в вашем $ виде переменной

<?php 
error_reporting(0); 
require('config.php'); 

if(isset($_POST['submit'])){ 

$email1 = $_POST['email1']; 
$email2 = $_POST['email2']; 
$pass1 = $_POST['pass1']; 
$pass2 = $_POST['pass2']; 

if($email1 == $email2){ 
    if($pass1 == $pass2){ 
    $name = mysql_escape_string($_POST['name']); 
    $lname = mysql_escape_string($_POST['lname']); 
    $uname = mysql_escape_string($_POST['uname']); 
    $email1 = mysql_escape_string($email1); 
    $email2 = mysql_escape_string($email2); 
    $pass = mysql_escape_string($pass1); 
    $pass2 = mysql_escape_string($pass2); 

    }else{ 
    echo "Sorry , your passwords do not match!</br>"; 
    exit(); 
    } 
    }else{ 
    echo "Sorry, your emails do not match!</br>"; 
    } 
}else{ 
$form = ' 
    <form acti method="POST"> 
First Name: <input type="text" name="name"/></br> 
Last Name: <input type="text" name="lname"/></br> 
User Name: <input type="text" name="uname"/></br> 
Email Address: <input type="text" name="email1"/></br> 
Confirm Email Address: <input type="text" name="email2"/></br> 
Password: <input type="password" name="pass1"/></br> 
Confirm Password: <input type="password" name="pass2"/></br> 
<input value="Submit" type="submit" name="submit"/></br> 
</form> 
'; 


echo $form; 

} 
?> 
0

Это верно в соответствии с синтаксисом Heredoc

$form = <<<EOT 
    <form acti method="POST"> 
     First Name: <input type="text" name="name"/></br> 
     Last Name: <input type="text" name="lname"/></br> 
     User Name: <input type="text" name="uname"/></br> 
     Email Address: <input type="text" name="email1"/></br> 
     Confirm Email Address: <input type="text" name="email2"/></br> 
     Password: <input type="password" name="pass1"/></br> 
     Confirm Password: <input type="password" name="pass2"/></br> 
     <input value="Submit" type="submit" name="submit"/></br> 
    </form> 
EOT; 
+0

читать [документация] (http://php.net/manual/ ru/language.types.string.php), одиночная инвертированная кома, то есть '' 'не приходила до и после использования синтаксиса heredoc, ваш друг должен был поддержать вас! : D –

+0

Он использует heredocs сыну текст <<< EOT и EOT; не являются частью строки – Serpes

0

Неверный ответ! он хочет использовать heredoc, ваша ошибка здесь EOT; Обратите внимание на espace перед EOT.

0

Ваша проблема в том, что перед закрытием EOT у вас есть пробел, удалите это пространство, и ваш скрипт будет работать.

Смежные вопросы