如何使结果出现在弹出窗口中?

时间:2014-05-21 10:51:26

标签: javascript php mysql

我想在弹出窗口中显示结果。

代码:

<?php
$con=mysqli_connect("localhost","root","1234","fyp");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
 $result = mysqli_query($con,"SELECT password FROM admin WHERE email = '$_POST[email]' AND Admin = '$_POST[admin]'");

  while($row = mysqli_fetch_array($result))



 echo "your password is : " . " $row['password']" ;


mysqli_close($con);
?>

是否可以在弹出窗口中回显javascript警告消息?

我试过这个但仍然无法正常工作

echo "<script> alert ("<?php echo 'your password is:  ' . '$row['password']'?>")</script>";

3 个答案:

答案 0 :(得分:0)

我一时间找到了一个奇怪的解决方案。

echo "<style onload=\"jsfunc($row['password']);\"></style>";

//in your html or javascript add this function
<script type='text/javascript'>
    function jsfunc(data){
        alert(data);
    }
</script>

样式标记是不可见的并且将运行函数onload,因此当它被回显时。我也使用样式标签,因为它是onload在你回复它时工作的少数标签之一。
这是一个奇怪的解决方案,但它确实有效。

答案 1 :(得分:0)

您的代码存在一些严重缺陷,包括对SQL Injection开放。我建议将其更改为更像这样:

$con = new MySQLi("localhost","root","1234","fyp");
if($con->connect_errorno) {
    echo "Failed to connect to MySQL: ".$sql->connect_error;
}

$email = $sql->real_escape_string($_POST['email']);
$admin = $sql->real_escape_string($_POST['admin']);

$query = "SELECT password FROM admin WHERE email = '$email' AND Admin = '$admin'";
$result = $sql->query($query);

if($result) {
    $row = mysqli_fetch_assoc($result);
    $pass = $row['password'];
    echo '<script> alert("Your password is '.$pass.'");</script>';
} else {
    //do some error handling
}

//the closing of a mysqli connection is not required but
mysqli_close($con);

真正的逃脱字符串不是100%防止注射,但是开始消毒你的输入是个好地方。此外,我强烈建议不要以明文形式存储您的密码。在最初存储密码时,请查看PHP sha1()函数或SQL等效函数。

答案 2 :(得分:-2)

使用此代码

<?php 
$alert='your password is:  '.$row['password'];
?>
<script>
alert("<?php echo $alert; ?>");
</script>

它肯定会起作用。