2017-03-26 6 views
0

このコードは下のフォームからパスワードを取得しますが、ユーザー名もフェッチしますが、コードは送信できません誰でも助けることができます!getメソッドでユーザー名を受け取り、データを自分自身にポストし、データベースを更新するコードは

<?php 
if(isset($_POST['password'])){ 
$usernamea = $_POST['username']; 
$pas=$_POST['password']; 
require('dbcoonect.php'); 
$sqla="UPDATE student SET password='$pas' WHERE username='$usernamea'"; 
if(mysqli_query($conn,$sqla)){ 
$out = '<h1>The form was submitted</h1>'; 
}  
} 

このコードは、上記の一部のコードチャンクの第二部で

else{ 
//get the name through get method 
$uska=$_GET['username']; 

//make a form to post the data **`along with the username`** 
//this is the code which post the data to the above if statement 
    $out = " 
<form method='POST' id='form_id'> 
<input type='hidden' name='username' value='$uska'> 
    <input type='password' id='con' name='conpass' > 
    <input type='password' id='lan' value='' name='password' onblur='fun()' > 
</form> 
<script type='text/javascript'> 
function fun(){ 

     document.forms['form_id'].submit(); 

} 
     </script> 
"; 
} 
echo $out; 

?> 
+0

'name = 'username''の' value =' ''は問題でしょうか?また、SQLインジェクションにもオープンしており、パスワードをハッシングする必要があります。また、XSS注射が可能です。 – chris85

+0

申し訳ありませんがここで入力する間違いでしたが、それはプログラムの問題ではありません –

+0

さて、どうしますか?これはどこで失敗するのですか? – chris85

答えて

0
$out = " 
<form method='POST' id='form_id'> 
<input type='hidden' name='username' value='$uska'> 
    <input type='password' id='con' name='conpass' > 
    <input type='password' id='lan' value='' name='password' onblur='fun()' > 
</form> 
<script type='text/javascript'> 
function fun(){ 

     document.forms['form_id'].submit(); 

} 
     </script> 
"; 

の続きです、あなたはelse{を入力することで、PHPで始まるが、$out=''した後、あなたはからHTMLを通過します<form method....~</script>。 PHPコードの中に純粋なhtmlコードを置くことはできません。あなたはPHPコードチャンク内のhtmlパーツをエコーバックするか、?>でPHPチャンクを閉じる必要があります.htmlを起動し、htmlコードチャンクの後に再びPHPコードチャンクを<?phpで開始します。再び、htmlの後に、私は'';を見ることができます。おそらくは、これは不足している部分/セミコロンの$out=''です。

とにかくここで間違いを入力すると、メインコードにhtml形式で書かれていると仮定します。そうであれば、このようにユーザー名をエコーバックする必要があります。

<input type='hidden' name='username' value='<?php echo $uska; ?>'> 

希望すると助かります。

+0

Typosはコメント。これは問題ではありませんでした。 'conpass'はおそらく確認パスワードフィールドです。 – chris85

+0

私の返信を提出する前に、ユーザーはタイプミスを知らせませんでした。送信した後、または返信を送信した後、ユーザーは質問を編集しました。入力ミスであることをユーザーが明確にするまでは、問題の原因になっている可能性があります。だから、私はコメントでそれを返答した。とにかく私は新しい問題を発見し、私の答えも修正しました。 –

関連する問題