插入记录时id号为空
-----------------------------------------------------------
这里有三个文件注册.检验.公用函数文件
我做了几天都做不出来.
主要问题是在up.php reg函数中加入记录时id号为空,这是一个论谈,
原文件只有5个字段, 这是我添加字段后的程序, 请看错在哪里?
代码为: list($id) = mysql_fetch_row($result); 不知道是什么意思;
主页登录新用户注册
___________________________________________________________________________________________________
+++++++++++++++++++++
register.php
+++++++++++++++++++++
注册文件
+++++++++++++++++++++
___________________________________________________________________________________________________
<?php
if($need == "mod")
{
require "up.php";
//当$need == "mod" 时,是修改自己的信息,调用userlib.php文件
if (empty($name))
//修改自己的信息,不允许用户名为空
{
$error="您还没有登录,请先";
$error=$error."登录";
include "../error.php";
exit;
}
$resself = search_people($name,"dif"); //查询用户名
if (!empty($resself))
{
$info_self = mysql_fetch_array($resself); //查询:单位名称,email信箱
}
$company= $info_self["company"];
$email= $info_self["email"];
}
?>
新用户注册
<script language="JavaScript">
</script>
___________________________________________________________________________________________________
+++++++++++++++++++++
check.php
+++++++++++++++++++++
检验文件
+++++++++++++++++++++
___________________________________________________________________________________________________
本程序为[PHP程序设计导学]一书论坛改写过来的,运行原程序时正常.当我将注册字段增加时,出现问题,
ID号为空,其它添加字段都可以.用户登录没问题,
在UP.PHP中 reg 函数中 list($id) 不知道是什么意思?
代码为: list($id) = mysql_fetch_row($result);
用什么方法解决添加记录空的问题.
<?php
require "up.php";
//$need用来区别是新登录,还是注册或修改自己的信息
if (!empty($need))
{
$self_info = check($name, $passwd);
if ($need == "login")
{
if (is_array($self_info))
{
$cryptname = update_online("enter", $name, "", "");
//新登录,则更新在线用户
header("location:ch.php?cryptname=$cryptname");
}
else
{
$error = "没有此用户或密码出错";
$msg = "history";
}
}
if ($need == "reg" || $need == "mod")
{
$name = string_dowith($name);
$passwd = string_dowith($passwd);
$result = reg($name, $passwd, $company, $email, $phone, $webinfo, $address, $mostly, $userinfo, $need);
if ($result == "success")
{
if ($need == "reg")
{
$cryptname = update_online("enter", $name, "", "");
}
include "infouser.php";
exit;
}
//在注册和修改信息时,都不允许输入的用户名有重复情况
else
{
$error = "已经存在的用户名";
}
}
}
if (!empty($error))
{
include "../error.php";
exit;
}
?>
___________________________________________________________________________________________________
+++++++++++++++++++++++++++
up.php
+++++++++++++++++++++++++++
公用文件
+++++++++++++++++++++++++++
___________________________________________________________________________________________________
问题1: 代码为: list($id) = mysql_fetch_row($result); //是否与增加ID号有关系
问题2: 更新在线用户中这是什么意思? if (!result)
<?php
require "../lib.php";
$db = db_connect();
//检查用户是否存在,如果存在返回一个数组(存储用户的id)
function check($name, $passwd)
{
global $db;
$sql = "select id from seeduser where name='$name'";
//如果输入信息中有密码(如登录),则进一步检查密码
if (!empty($passwd))
{
$sql = $sql." and passwd='$passwd'";
}
$result = mysql_query($sql, $db) or db_error();
if ($result)
{
$self_info = mysql_fetch_array($result);
return $self_info;
}
}
function reg($name, $passwd, $company, $email, $phone, $webinfo, $address, $mostly, $userinfo, $need)
{
global $db;
$msg = ""; //$msg为成功,即用于添加和修改后的一种表示
if ($name != "" && $passwd != "")
{
$name = string_dowith($name);
$sql = "select id from seeduser where name='$name'";
$result = mysql_query($sql, $db) or db_error();
list($id) = mysql_fetch_row($result);
//$need用来区别不同的操作
if ($need != "")
{
//如果是新注册的用户
if ($need == "reg" && empty($id))
{
$nowtime = date("Y-m-d H:i:s");
$reg_sql = "insert into seeduser (id,name, passwd, company, email, phone, webinfo, address, mostly, userinfo)";
$reg_sql = $reg_sql." values ('$id', '$name', '$passwd', '$company', '$email', '$phone', '$webinfo', '$address', '$mostly','$userinfo')";
}
//如果更改自己的注册信息
if ($need == "mod" && !empty($id))
{
$reg_sql = "update seeduser set passwd='$passwd', company='$company', email='$email', phone='$phone', webinfo='$webinfo', address='$address', mostly='$mostly',userinfo='$userinfo' where id=$id";
}
}
// if (!empty($reg_sql))为以注册用户修改表中的信息,而进行判断.
if (!empty($reg_sql))
{
$passwd = string_dowith($passwd);
$email = string_dowith($email);
$result = mysql_query($reg_sql, $db) or db_error();
if ($result)
{
$msg = "success";
}
}
}
return $msg;
}
//更新在线用户,添加新登录的用户,删除已离线的用户
function update_online($state_user, $name, $cryptname, $logintime)
{
global $db;
//$state_user用于标志用户的状态
//如果是新登录的用户
if ($state_user == "enter")
{
$sql = "delete from online where name='$name'";
$result = mysql_query($sql, $db) or db_error();
$cryptname = md5($name);
//md5()的功能就是计算字符串$name的杂凑
$nowtime = date("Y-m-d H:i:s");
$sql = "insert into online (name, cryptname, nowtime)";
$sql = $sql." values ('$name', '$cryptname', '$nowtime')";
$result = mysql_query($sql, $db) or db_error();
if (!result)
{
return "";
}
else
{
return $cryptname;
}
}
//如果是已离线用户
if ($state_user == "leave")
{
$sql = "delete from online where cryptname='$cryptname'";
$result = mysql_query($sql, $db) or db_error();
if (!$result)
{
return "";
}
else
{
return "success";
}
}
}
//查询用户的信息(通过用户名)
function search_people($name, $need)
{
global $db;
//$need区别查找的方式:模糊查找(返回简单的用户信息)和准确查找(返回详细的用户信息)
if ($need == "ease")
//模糊查找
{
if ($name != "")
{
$sql = "select id,name from seeduser where name like '%$name%'";
}
else
{
$sql = "select id,name from seeduser where name!=''";
}
}
elseif ($need == "dif")
//准确查找
{
$sql = "select id,name,passwd, company,address,email,mostly from seeduser where name='$name'";
}
$result = mysql_query($sql, $db) or db_error();
if ($result)
{
return $result;
}
}
?>