"Ошибка разбора: синтаксическая ошибка, неожиданный конец $" Для моего назначения регистрации в универе
Я новичок в php, поэтому я использовал учебник Youtube для создания этого скрипта, однако загрузчик, похоже, исчез, поэтому я не могу задать ему никаких вопросов. Моя форма входа в систему, кажется, работает нормально, но у меня возникают проблемы при регистрации
Я удалил все html из кода и все операторы error else, чтобы попытаться устранить сообщение об ошибке, но, похоже, не могу его найти. Ошибка всегда происходит в конце моего скрипта.
Какие-либо предложения
<?php
if ( $_POST['registerbtn'] ) {
//makes sure email, username is valid
$getuser = $_POST['user'];
$getemail = $_POST['email'];
$getpass = $_POST['pass'];
$getretypepass = $_POST['retypepass'];
if (!isset($getuser))
{
$error = "user not set ";
}
if ($getuser) {
if($getemail) {
if($getpass) {
if ($getretypepass) {
require("connection.php");
$query = mysql_query("SELECT * FROM users WHERE username ='$getuser'");
$numrows = mysql_num_rows($query);
if ($numrows == 0) {
$query = mysql_query("SELECT * FROM users WHERE email ='$getemail'");
$numrows = mysql_num_rows($query);
if ($numrows == 0) {
$password = md5(md5("19Dvdnj".$password."jndfFf20"));
$date = date("F d, Y");
$code = md5(rand());
mysql_query("INSERT INTO users VALUES ('', '$getuser', '$password', '$getmail', '0', '$code', '$date')");
$query = mysql_query("SELECT * FROM users WHERE username='$getuser'");
$numrows =mysql_num_rows($query);
if ($numrows == 1) {
$site ="http://www.inn.leedsmet.ac.uk/~c3314283/iis/register.php";
$webmaster = "admin@leedsmet.com";
$headers = "From: $webmaster";
$subject ="Activate your Account";
$message = "Thanks for registering. Click below to activate your account.\n";
$message .= "$site/activate.php?user=$getuser&code=$code";
$message .= "You must activate your account to login";
if (mail($getmail, $subject, $message, $headers)){
$errormsg = "You have been registered you must activate your account sent from the the activation link sent to<b>$getemail</b>";
$getuser = "";
$getemail = "";
}
mysql_close();
$form ="<form action='register.php' method='post'>
<table>
<tr>
<td></td>
<td><font color='red'>$errormsg</font></td>
</tr>
<tr>
<td>Username:</td>
<td><input type='text' name='user' value ='$getuser'/></td>
</tr>
<tr>
<td>Email:</td>
<td><input type='text' name='email' value ='$getemail'/></td>
</tr>
<tr>
<td>Password:</td>
<td><input type='password' name='pass' value =''/></td>
</tr>
<tr>
<td>Retype:</td>
<td><input type='password' name='retypepass' value =''/></td>
</tr>
<tr>
<td></td>
<td><input type='submit' name='registerbtn' value ='Register'/></td>
</tr>
</table>
</form>";
{
echo $form;
}
?>
2 ответа
Попробуйте автоформатировать (авто-отступ) ваш код. Если у вас нет редактора, который позволяет это, получите такой, как Sublime Text или Notepad ++.:-) Это сэкономит вам много времени в подобных ситуациях; вместо того, чтобы пытаться найти проблему в таких ситуациях, после автоформатирования проблемы будут смотреть вам в глаза.:-)
Я полагаю, что вам не хватает шести закрывающих скобок }
(не уверен, что я посчитал количество незакрытых if
правильно) после
{
echo $form;
}
Очевидно, что в этом случае произошло что-то ужасное, и это может занять больше, чем просто }
Там, чтобы исцелить ваш код.
Это может быть проблема копирования и вставки. Возможно, вы не скопировали последние несколько строк кода, который вы нашли в учебнике Youtube, который вы упомянули.
Использование любого редактора кода с подсветкой синтаксиса (такого как Notepad++) ясно покажет вам, что вам не хватает }
,