"Ошибка анализа: синтаксическая ошибка, неожиданный конец $". Для моего назначения регистрации uni
Я новичок в php, поэтому я использовал учебник Youtube для создания этого script, однако, похоже, пользователь загрузился, поэтому я не могу задать ему какие-либо вопросы. Моя форма входа, похоже, работает нормально, но регистрационная форма - это то, где у меня возникают проблемы.
Я удалил все html из кода и всех операторов else, чтобы попытаться устранить сообщение об ошибке, но я не могу найти его. Ошибка всегда возникает в конце моего script.
Любые предложения
<?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 = "[email protected]";
$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;
}
?>
Ответы
Ответ 1
Попробуйте выполнить форматирование (авто-отступ) вашего кода. Если у вас нет редактора, который позволяет это, получите один из них, например Sublime Text или Notepad ++.:-) Это сэкономит вам много времени в подобных ситуациях; вместо того, чтобы пытаться найти проблему в таких ситуациях, после того, как проблемы с автоформацией будут смотреть на вас.:-)
Я считаю, что вы отсутствуете около шести замыкающих скобок }
(не уверен, что я правильно подсчитал количество незакрытых if
) после
{
echo $form;
}
Очевидно, что если это так, произошло что-то ужасное, и для исправления вашего кода может потребоваться больше, чем положить туда }
.
Это может быть проблема с копией и вставкой. Возможно, вы не скопировали последние несколько строк кода, который вы нашли в учебнике Youtube, который вы упомянули.
Ответ 2
Использование любого редактора кода с подсветкой синтаксиса (например, Notepad ++) ясно покажет вам, что вам не хватает }
.