<?php
echo "<SCRIPT LANGUAGE=\"javascript\"> alert(\"php 开头\");</SCRIPT> ";
@header('Content-type: text/html;charset=UTF-8');
$id = $_POST['ID'];
$name = $_POST['name'];
$password = $_POST['password'];
$idCardNo = $_POST['idCardNo'];
$age = $_POST['age'];
$birthday = $_POST['birthday'];
$email = $_POST['email'];if ($id != "")//用户输入数据了
{
echo "<SCRIPT LANGUAGE=\"javascript\"> alert($id);</SCRIPT> ";
//连接数据库
$sqlHost="10.10.168.77";
$sqlUser="sa";
$sqlPassword="111";
$conn_id=@mssql_connect($sqlHost,$sqlUser,$sqlPassword) or die ("Can't connect $sqlHost");
$database = "userRegister";
@mssql_select_db($database) or die ("Can't select the database:$database");

$query="select count(*) as counts from userInfo where id='$id'";
$result=mssql_query($query,$conn_id);
$row=mssql_fetch_array($result); if ($row['counts'])//已经有了这个ID的记录
{
echo "<SCRIPT LANGUAGE=\"javascript\"> alert(\"ID已经注册过!\");</SCRIPT> ";
//header("userRegister.php");
echo "<script>document.location.href='userRegister.php';</script>";
}
$query="select count(*) as counts from userInfo where name='$name'";
$result=mssql_query($query,$conn_id);
$row=mssql_fetch_array($result);
if ($row['counts'])//已经有了这个姓名的记录
{
echo "<SCRIPT LANGUAGE=\"javascript\"> alert(\"用户名已经注册过!\");</SCRIPT> ";
//header("userRegister.php");
echo "<script>document.location.href='userRegister.php';</script>";
}
$query="select count(*) as counts from userInfo where idCardNo='$idCardNo'";
$result=mssql_query($query,$conn_id);
$row=mssql_fetch_array($result);
if ($row['counts'])//已经有了这个身份证的记录
{
echo "<SCRIPT LANGUAGE=\"javascript\"> alert(\"身份证号已经注册过!\");</SCRIPT> ";
//header("userRegister.php");
echo "<script>document.location.href='userRegister.php';</script>";
}
$query="select count(*) as counts from userInfo where email='$email'";
$result=mssql_query($query,$conn_id);
$row=mssql_fetch_array($result);
if ($row['counts'])//已经有了这个电子邮箱的记录
{
echo "<SCRIPT LANGUAGE=\"javascript\"> alert(\"电子邮箱已经注册过!\");</SCRIPT> ";
//header("userRegister.php");
echo "<script>document.location.href='userRegister.php';</script>";
}

$query = "INSERT INTO userInfo (ID, name, password, idCardNo, age, birthday, email) VALUES ('$id', '$name', '$password', '$idCardNo', '$age', '$birthday', '$email')";
$result=mssql_query($query,$conn_id);
echo "<SCRIPT LANGUAGE=\"javascript\"> alert(\"又查询一遍\");</SCRIPT> ";

echo "<SCRIPT LANGUAGE=\"javascript\"> alert(\"..............\");</SCRIPT> ";
echo "<script>document.location.href='userRegister.php';</script>";
}
?>这段程序里,if ($row['counts'])//已经有了这个ID的记录  后,发现有重复的ID。本该不执行$query = "INSERT INTO userInfo,但是我运行的结果是,运行了插入语句,但是却没有运行插入语句下面的echo "<SCRIPT LANGUAGE=\"javascript\"> alert(\"又查询一遍\");</SCRIPT> ";。感觉很诡异,哪位老大给我指出哪里出的问题?
谢谢 

解决方案 »

  1.   

    echo " <script>document.location.href='userRegister.php'; </script>";这句运行后,好像重新打开userRegister.php文件后,原来的'userRegister.php'文件里的代码还会继续往下运行。加了exit;后就能正常了。
    但是这样解释不通,原来的文件里的下面的alert代码又没有打印出东西来。
    我这里说的也不明白,老大们自己试试吧
      

  2.   


    if ($row['counts'])//已经有了这个ID的记录
    {
    echo " <SCRIPT LANGUAGE=\"javascript\"> alert(\"ID已经注册过!\"); </SCRIPT> ";
    //header("userRegister.php");
    echo " <script>document.location.href='userRegister.php'; </script>";
    exit;

    像上面加了还运行吗?
      

  3.   

    dzxccsu:
    加了exit;后,就正常了。没有加exit时,从数据库上看是运行了插入的语句,但是从程序里看又没有显示运行过插入语句。
    请问,这是什么原因呢?
      

  4.   

    js编码,到ff下firebug或者错误控制台查看.
      

  5.   

    ff的错误控制台上没有显示错误。
    我的理解是这样的,基于php在服务器上运行,javascript代码在客户端运行。
    echo " <script>document.location.href='userRegister.php'; </script>";这个代码后,客户端的浏览器里的页面是一个新的userRegister.php页面了。而原来的服务器上userRegister.php代码再执行下面的查询插入等代码。
    浏览器为什么没有显示后面的alert信息呢,因为后面的echo (alert)发送到客户端浏览器时,已经找不到原来的客户端(这里用session更合适吗?)了。说的可能不是很明白,不知道我理解的对不对?
      

  6.   

    应该 不是启动一个新的session。新打开一个浏览器加载页面才是启动新session