0
<?php
error_reporting(0); 
session_start(); 
if( $_SESSION["logging"]&& $_SESSION["logged"])
{
 print_secure_content();
}
else {
if(!$_SESSION["logging"])
{  
$_SESSION["logging"]=true;
loginform();
}
   else if($_SESSION["logging"])
   {
     $number_of_rows=checkpass();
     if($number_of_rows==1)
        {   
         $_SESSION[user]=$_GET[userlogin];
         $_SESSION[logged]=true;
         $_SESSION[user_id]=$row['id'];
         print"<h1>You have loged in successfully</h1>";
         print_secure_content();
        }
        else{
            print "Wrong password or username, please try again.".'<br/>';  
            loginform();
        }
    }
 }

function loginform()
{
print "Please enter your login information to proceed with our site.".'<br/>'.'<br/>';
print ("<table border='2'><tr><td>Username</td><td><input type='text' name='userlogin'     size'20'></td></tr><tr><td>Password</td><td><input type='password' name='password'       size'20'></td></tr></table>").'<br/>';
print "<input type='submit' >"; 
print "<h3><a href='registerform.php'>Register now!</a></h3>";  
print "<br><a href='admin.php'>Admin login</a><br>";
}

function checkpass()
{
$servername="localhost";
$username="root";
$conn=  mysql_connect($servername,$username)or die(mysql_error());
mysql_select_db("kviz",$conn);
$sql="select * from korisnici where name='$_GET[userlogin]' and       password='$_GET[password]'";
$result=mysql_query($sql,$conn) or die(mysql_error());
return  mysql_num_rows($result);
}

function print_secure_content()
{
print("<b><h1>Hi mr.$_SESSION[user]</h1>");
 print "<br><h2>Only a logged in user can see this</h2><br><a href='index.htm'>Počni       kviz</a><br><br><a href='logout.php'>Logout</a><br>";    

}
?>

これは私が彼のデータをdbに挿入する場所です

    $sql = "INSERT INTO tacni (id_tacnog, id_pitanja, id_korisnik,stanje) VALUES ('', '".$row['odg_id']."','$id_korisnika','tačan')";
////$id_korisnika means id_user

そして、これが私がdbから取得する場所です

    $result = mysql_query("SELECT pitanja.*,tacni.*,korisnici.*
FROM pitanja
INNER JOIN tacni ON pitanja.id = tacni.id_pitanja
INNER JOIN korisnici ON pitanja.id = korisnici.id
 WHERE korisnici.id = '$id_korisnika'");

どのユーザーがログインしているかを認識する必要があります。彼の回答は、idフィールドを持つテーブルkorisnici(users)に挿入する必要があります。このように試しましたが、何も起こらず、行が挿入されていません。これを機能させるコードを数行書いてください。助けていただければ幸いです。

4

2 に答える 2

2
  1. クレデンシャル全体に投稿するには、HTTP/GETではなくHTTP/POSTを使用してください。

  2. スクリプトはmysql_*関数を使用しており、その使用方法はSQLインジェクションに対して開かれています。代わりに、MySQLのプリペアドステートメントを使用してください。

  3. $_SESSION["user"]の代わりに使用してみてください$_SESSION[user]。それは私の意見ではあなたの問題を解決するでしょう。扱っているユーザーを知りたい場合は、どこでも使用$_SESSION["user"]して識別します。

于 2012-06-14T07:34:30.277 に答える