PHP / MySQL Проверить данные для входа - PullRequest
0 голосов
/ 13 марта 2011

У меня есть код ниже, который должен проверять данные для входа при отправке формы:

<html><body>
<?php
$con = mysql_connect("localhost","will","blahblah");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
  mysql_select_db("blahblah", $con);
$password = $_POST['password'];
$username = $_POST['username'];
$query2=mysql_query("SELECT * FROM users  WHERE  pass =md5('$password') AND user = $username)or die(mysql_error());
if(mysql_num_rows($query2)==1) {
$sql="INSERT INTO links (link, notes, username)
VALUES
('". mysql_escape_string($_POST['link']) ."','". mysql_escape_string($_POST['notes']) ."','". mysql_escape_string($_POST['username']) ."')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 link added";

mysql_close($con)
}
else {
echo "Username or password was not correct, please try again";
}
?>
</body></html>

Но я получаю сообщение об ошибке:

Ошибка разбора: синтаксическая ошибка, неожиданная T_STRING в /data/www/vhosts/themacsplash.com/httpdocs/ClipBoy/processpopup.php по линии 13

Строка 13 - это строка: $sql="INSERT INTO links (link, notes, username)

Код формы:

<div id="stylized" class="myform">
<form id="form" name="form" method="post" action="processpopup.php">
<label>Username
<span class="small">Enter Your Username</span>
</label>
<input type="text" name="username" id="username" />
<label>Password
<span class="small">Enter Your Password</span>
</label>
<input type="text" name="password" id="password" />

<label>Link
<span class="small">Paste Your Link</span>
</label>
<input type="text" name="link" id="link" />

<label>Notes
<span class="small">Add Some Notes</span>
</label>
<input type="text" name="notes" id="notes" />

<button type="submit"></button>
<div class="spacer"></div>

</form>
</div>

Честно говоря, я понятия не имею, что происходит. Спасибо!

Ответы [ 3 ]

3 голосов
/ 13 марта 2011

Вам не хватает окончательной цитаты для

$query2=mysql_query("SELECT * FROM users  WHERE  pass =md5('$password') AND user = $username)or die(mysql_error());

должно быть

$query2=mysql_query("SELECT * FROM users  WHERE  pass =md5('$password') AND user = $username")or die(mysql_error());
0 голосов
/ 13 марта 2011
<html><body>
<?php
$con = mysql_connect("localhost","will","blahblah");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
  mysql_select_db("blahblah", $con);
$password = $_POST['password'];
$username = $_POST['username'];
$query2=mysql_query("SELECT * FROM users  WHERE  pass = '".md5('$password')."' AND user = '".mysql_real_escape_string($username)."'") or die (mysql_error());
if(mysql_num_rows($query2)==1) {
$sql="INSERT INTO links (link, notes, username)
VALUES
('". mysql_real_escape_string($_POST['link']) ."','". mysql_real_escape_string($_POST['notes']) ."','". mysql_real_escape_string($_POST['username']) ."')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 link added";

mysql_close($con)
}
else {
echo "Username or password was not correct, please try again";
}
?>
</body></html>

Вы забыли закрыть строку в строке 11, поэтому она вышла из строя

-edit- добавлены одинарные кавычки вокруг строки md5

-edit2- в комментарии, проверка не выполняласьвижу, у вас не было правильных одинарных кавычек везде.Исправлены, а также правильно санированы все данные

0 голосов
/ 13 марта 2011

Посмотрите пару строк выше:

$ Query2 = mysql_query ( "

Нет конца "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...