dsf6565 2016-08-13 07:47
浏览 16
已采纳

在index.php中登录成功时数据不会更新?

enter image description hereI make a login page like user login. if registered then login with email and password(navigate register.php to index.php page) or sign up if not registered. works good but i want to add update functionality in my index.php page concept is simple if user wants to update its record then he make updations in a form and submit. I make a update query here but its shows Notice: Undefined index: id in C:\wamp\www\LOginKodingMadSimple\index.php on line 34. Where i am wrong ?

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>
  • 写回答

3条回答 默认 最新

  • dongzhong7443 2016-08-13 08:14
    关注

    [NOTE: You don't have any textbox named as id.]

    Choose any way.

    Way 1)

    Change

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

    To

    $id = $_SESSION['usr_id'];
    

    Updated Code:

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

    Way 2)

    Add one hidden input field having value 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>
    

    In this way, your submitting form code will be same as you are having.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探