【问题标题】:trying to post $_SESSION['username] in database table [closed]试图在数据库表中发布 $_SESSION['username] [关闭]
【发布时间】:2013-11-17 03:59:16
【问题描述】:

我即将完成一个课堂项目。我必须创建一个卡路里跟踪网站。我已经编写了登录表单和 php 文件。考虑到我在几天内以某种方式半学会了用 php 编写代码,所以我不是专家。这是login.php

<?php 
session_start();
if(isset($_POST) && !empty($_POST))
{
    session_start();
    include("config.php"); //including config.php in our file

    $username = $_POST['Username']; //Storing username in $username variable.
    $password = $_POST['Password']; //Storing password in $password variable.


    $match = "SELECT UserID FROM users WHERE Username = '".$username."' and password = '".$password."';"; 

    $qry = mysql_query($match);

    $num_rows = mysql_num_rows($qry); 

    if ($num_rows <= 0) 
    { 

        echo "Sorry, either the username or the password are incorrect. ";

        echo "Try again";



        exit; 

    } else {

        $_SESSION['username']= $_POST['username'];
        //echo $_SESSION['username'];
        header('Location:profile/index.html');
        // It is the page where you want to redirect user after login.
    }
} ?>

用户登录后,他会进入一个输入锻炼信息的页面,我想将所有这些信息存储在一个表格中。这是处理该问题的 php,input.php:

<?php

session_start();

define('DB_NAME', 'ritetrak');
define('DB_USER', 'root');
define('DB_PASSWORD', 'Buddy3942');
define('DB_HOST', 'localhost');

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);

if (!$link) {
    die('Could not connect: ' . mysql_error());
}

$db_selected = mysql_select_db(DB_NAME, $link);

if (!$db_selected) {
    die('Can\'t use ' . DB_NAME . ': ' . mysql_error());
}

$_SESSION['username']= $_POST['username'];
//$value= $_SESSION['username'];
$value2= $_POST['WorkoutType'];
$value3 = $_POST['Weight'];
$value4 = $_POST['HeartRate'];
$value5 = $_POST['Calories'];
$value6 = $_POST['TimeSpent'];
$value7 = $_POST['DayOfWeek'];
$value8= $_POST['Mood'];


$sql = "
    INSERT INTO demographics (
        Username, WorkoutType, Weight, HeartRate, Calories,
        TimeSpent, DayOfWeek, Mood) 
    VALUES (
        '$_SESSION['username']', '$value2', '$value3',
        '$value4', '$value5', '$value6', '$value7', '$value8'
    )
";





if (!mysql_query($sql)) {
die('Error: ' . mysql_error());
}

mysql_close();

header('Location: yourmain/index.html'); ?>

除了当前登录的用户名之外,我可以将所有内容存储在数据库的“人口统计”表中。我已经在这里搜索了一些其他问题,但找不到任何东西。任何帮助都深表感谢。

【问题讨论】:

  • 您只需要启动一次会话。从login.php 中删除第二个session_start
  • 首先删除'".$password."';"; 中的第一个分号,如'".$password."' "; 中的login.php
  • @Fred-ii- MySQL 中的分号对于一个查询是可选的,对于多个查询是必需的,但在这种情况下不会影响结果。
  • 我认为分号是终止符@scrowler
  • 好的,谢谢。注意到@scrowler

标签: php mysql database session


【解决方案1】:

INSERT SQL 包含一个 PHP array 变量,应表示为:

VALUES (
    '" . $_SESSION['username'] . "', '$value2', '$value3',
    '$value4', '$value5', '$value6', '$value7', '$value8'
)

VALUES (
    '{$_SESSION['username']}', '$value2', '$value3',
    '$value4', '$value5', '$value6', '$value7', '$value8'
)

【讨论】:

    【解决方案2】:

    为该变量转义引号:

    VALUES ('" . $_SESSION['username'] . "',
    

    【讨论】:

      猜你喜欢
      • 2019-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-01
      • 2014-09-20
      • 2011-06-15
      • 1970-01-01
      • 2023-03-20
      相关资源
      最近更新 更多