2016-03-19 9 views
-2

Code:?eine Sitzung Projektfehler in einer PHP-Seite

<?php 
 
session_start(); 
 
require "connect.inc.php";       //如果提交表单就链接数据库验证 
 
if(isset($_POST['sub'])) 
 
{ 
 
   // 使用从表单中接收到的用户名和密码,作为在user表中的查询条件 
 
    $stmt = $pdo->prepare("SELECT id,username FROM user WHERE username=? and userpwd=?"); 
 
    $stmt->execute(
 
     array($_POST["username"],md5($_POST["password"])) 
 
    ); 
 

 
    if ($stmt->rowCount()>0) 
 
    { 
 
     $_SESSION=$stmt->fetch(PDO::FETCH_ASSOC); 
 
     // 将用户信息注册进入session 
 
     $_SESSION["isLogin"]=1;      
 
     // 注册用于判断登陆的成功的session变量 
 
     header("Location:index.php"); 
 
    } 
 
    else 
 
    { 
 
    \t echo '<font color="red">用户名或密码错误</font>'; 
 
    } 
 
    // session_destroy(); 
 
} 
 
?> 
 
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
\t <title>邮件登录系统</title> 
 
\t <style> 
 
\t  div span{width:100px;text-align:right;} 
 
\t </style> 
 
</head> 
 
<body> 
 
    <p> 
 
    欢迎来到邮件系统:session ID <?php echo session_id(); ?> 
 
    </p> 
 
    <form action="login.php" method="post"> 
 
\t \t <span>用户名:<input type="text" name="username"><br></span><br> 
 
\t \t <span>密 码:<input type="password" name="password"><br></span><br> 
 
\t \t <input type="submit" name="sub" value="登陆"></input> 
 
    </form> 
 
</body> 
 
</html> 
 

 

 

stmt = $ $ PDO-> prepare ("id SELECT username FROM Benutzer WHERE username = ? und userpwd =? "); $ stmt -> Ausführen (Array ($ _ POST ["Benutzername"], md5 ($ _ POST ["Passwort"])));

in diesen Zeilen hat einen Fehler: Syntax unerwartete $ stmt, ich es mit PDO verwenden, ich weiß nicht, wo das Problem ist, sollte auf diese Weise von writting ok sein, es isn?

das Loch Projekt ist hier: https://github.com/he1986yuan/exercise.git im Dokument mit dem Namen E-Mail

+3

Während Sie Ihren Code neu formatieren, habe ich seltsame neue Zeilenzeichen bemerkt. Bitte stellen Sie sicher, dass Sie nach den Kommentaren neue Zeilen hinzufügen. Es scheint mir, dass diese asiatischen (?) Zeichen irgendwie die Codierung unterbrechen. Um meine Theorie zu testen, entfernen Sie alle Kommentare und versuchen Sie es erneut auszuführen. –

+0

danke, ich habe versucht, aber immer noch nicht arbeiten.sie nur Kommentare –

Antwort

0

In dieser Zeile:

if(isset($_POST['sub'])) 
    {                   //使用从表单中接收到的用户名和密码,作为在user表中的查询条件 
// --------------------------==================== 

die Räume mit  =  markiert sind keine Leerzeichen (sie andere UTF8 chars sind): auf meinem Seitlich habe ich diese Zeichen entfernt und der Syntaxfehler verschwindet. Die  =  Zeichen sind unicode 3000, ein Ideographic Space.

Verwandte Themen