2016-08-13 8 views
1

enter image description hereユーザーログインのようなログインページを作成します。登録されている場合は、電子メールとパスワードでログインします(register.phpをindex.phpページにナビゲート)。登録されていない場合はサインアップしてください。うまくいきますが、私はindex.phpのページのコンセプトに更新機能を追加したいのですが、ユーザーがレコードを更新したい場合は簡単です。ここでは更新クエリを作成しますが、その表示はありません。注意:定義されていないインデックス:C:\ wamp \ www \ LOginKodingMadSimple \ index.phpのID 34行です。index.phpでログインが成功した場合、データは更新されませんか?

のindex.php:エラー通知を非表示にする機能以下

<?php 
session_start(); 
include_once 'dbconnect.php'; 
?> 

<?php 
if (isset($_POST['UpdateUser'])) 
{ 
    $name = mysqli_real_escape_string($con, $_POST['name']); 
    $id = mysqli_real_escape_string($con, $_POST['id']); 
    //------- name can contain only alpha characters and space ------- 
    if (!preg_match("/^[a-zA-Z ]+$/",$name)) 
    { 
    $error = true; 
    $name_error = "Name must contain only alphabets and space"; 
    } 
    //------- Update users ------- 
    if (!$error) 
    { 
    if(mysqli_query($con, "UPDATE users SET name='" . $name . "' WHERE id='" . $id . "'")) 
    { 
    $successmsg = "Successfully Updated! "; 
    } 
    else 
    { 
    $errormsg = "Error in Update...Please try again later!"; 
    } 
    } 
} 
else 
{ 
    $errormsg = "Failed Please Try Again Later !"; 
} 
?> 

<div class="collapse navbar-collapse" id="navbar1"> 
<ul class="nav navbar-nav navbar-right"> 
    <?php if (isset($_SESSION['usr_id'])) { ?> 
     <li> 
     <p class="navbar-text">Signed in as <?php echo $_SESSION['usr_name']; ?></p> 
     <a class="navbar-brand" href="updatephp.php">Update</a> 
     </li>   
     <li> 
     <a href="logout.php">Log Out</a> 
     </li>     
     <div style="border:1px dashed transparent;margin-top:400px;position:absolute;margin-left:-35%;"> 
     <h1> Hello User <?php echo $_SESSION['usr_name']; ?> ! </h1> 
     <h1> Your Email is <?php echo $_SESSION['usr_email']; ?> ! </h1> 

      <form action="" method="post"> 
       Name: <input type="text" name="name" placeholder="<?php echo $_SESSION['usr_name']; ?>"><br> 
       <input type="submit" value="Update" name="UpdateUser"> 
      </form> 
     </div> 

      <?php } else { ?> 
      <li><a href="login.php">Login</a></li> 
      <li><a href="register.php">Sign Up</a></li> 
      <?php } ?> 
     </ul> 
    </div> 

答えて

1

[NOTE:あなたはid.としてという名前のテキストボックスを持っていない]

はどのような方法を選択してください。

ウェイ1)

変更

$id = mysqli_real_escape_string($con, $_POST['id']); 

$id = $_SESSION['usr_id']; 

に更新されたコード:

<?php 
if (isset($_POST['UpdateUser'])) { 
    $name = mysqli_real_escape_string($con, $_POST['name']); 
    $id = $_SESSION['usr_id']; 

ウェイ2)

session usr_idを有するもの隠さ入力フィールドを追加します。

<form action="" method="post"> 
     Name: <input type="text" name="name" placeholder="<?php echo $_SESSION['usr_name']; ?>"><br> 
     <input type='hidden' value="<?php echo $_SESSION['usr_id'];?>" name='id'> 
     <input type="submit" value="Update" name="UpdateUser"> 
</form> 

このように、送信するフォームコードは、あなたと同じです。

+1

2番目のオプションをクールしますが、通知:未定義の変数:42行目のC:\ wamp \ www \ LOginKodingMadSimple \ index.phpのエラー – John120

+0

このエラーは私のコードとは関係ありません。ちょうど 'if(isset($ _ POST ['UpdateUser']))'の後に$ errorを定義する必要があります。 –

0

用途:

error_reporting(0); 
+0

しかし、それはnotice.itsはうんざりですが、データの更新についてはどうですか?それは更新ではありません。 – John120

+0

$ idに値がありません。更新フォームを送信する際に、名前とIDの両方を投稿する必要があります。あなたのフォームにidとvalueという名前の隠し入力フィールドを渡してください。 –

+0

どのように例を挙げてください。 – John120

2

などのIDを持つ入力隠しフィールドを追加します。

<input type="hidden" name="id" value="<?php echo $_SESSION['usr_id'];?>"> 
関連する問題