2017-03-24 9 views
0

を挿入します。PHPは、私は自分のサイト上でこのスクリプトを持っている代わりにGET値のブランク値

<?php 

    $db_handle = mysql_connect($server, $user_name, $password); 
    $db_found = mysql_select_db($database, $db_handle); 

    if($db_found) { 
    $SQL = "INSERT INTO users (user, address) 
    VALUES('".$_GET['username']."','".$_GET['password']."')"; 

    $result = mysql_query($SQL); 

    mysql_close($db_handle); 
    print "Records added to the database"; 
    } 
    else { 
    print "Database NOT found"; 
    mysql_close($db_handle); 
    } 
?> 

私はその後、私のブラウザでこのURLを開く:

http://ringkapps.altervista.org/addToDatabase.php?user=ringk&address=test 

しかし、その代わりの「ringk」を挿入し、表中の「テスト」は、これを挿入します。

enter image description here

は、なぜ任意の助けを理解することはできません大いに感謝します。

+0

挿入前にvar_dump($ _ REQUEST)、var_dump($ _ GET)、var_dump($ _ POST)を実行できますか?結果は – Dimi

+0

'user'!=' username'です.GETにはパスワードがありません(それはPOSTでも使用できます)。パスワードをハッシュしてください! – Qirel

+1

[**新しいコードでは 'mysql_ *'関数を使わないでください**](http://stackoverflow.com/q/12859942)。それらはもはや維持されておらず(正式に推奨されていません)(https://wiki.php.net/rfc/mysql_deprecation)。 [** red box **](http://php.net/mysql-connect)を参照してください。 [* prepared statements *](http://en.wikipedia。org/wiki/Prepared_statement)を使用し、[PDO](http://php.net/pdo)または[MySQLi](http://php.net/mysqli) - [この記事](http:// php.net/manual/en/mysqlinfo.api.choosing.php)は、どちらを決定するのに役立ちます。 – Qirel

答えて

1

このコードは間違っています。

$SQL = "INSERT INTO users (user, address) 
VALUES('".$_GET['username']."','".$_GET['password']."')"; 

これを置き換えます。

$SQL = "INSERT INTO users (user, address) 
    VALUES('".$_GET['user']."','".$_GET['address']."')"; 
+0

どのように愚かなことができますか...たくさんの人に感謝! – RingK

+0

これはよく間違いです。 –

0

あなたは$_GET["user"]$_GET["address"]を作成しますが、あなたが存在しないデシベル$_GET['username']$_GET['password']に入れしようとしている

http://ringkapps.altervista.org/addToDatabase.php?user=ringk&address=test 

を呼び出しているので、それは働いていません。

あなたが呼び出す必要があります:、

http://ringkapps.altervista.org/addToDatabase.php?username=ringk&password=test 

プラスsecurity for PHP appsに何かを読んで、あなたのコードは、脆弱性の多くになりやすいです! URLで

0

http://ringkapps.altervista.org/addToDatabase.php?user=ringk&address=test

我々はuser = ringkaddress = testを見ることができます。 ここで、ユーザーはキーであり、それは価値があります。 ここで、アドレスはキーであり、その値をテストします。

$_GETの値をすべてvar_dump($_GET)を使用して印刷し、それを自分で確認することができます。

私の推測では、あなたがしたいことは $_GET['user']$_GET['address']にアクセスすることであるということである

そしてちょうどライン置き換える

VALUES('".$_GET['user']."','".$_GET['address']."')"; 

VALUES('".$_GET['username']."','".$_GET['password']."')"; 

をしたり、URLを更新することができコードと一致する。

関連する問題