//echo $username;   直接引用这句会报错,有的朋友说可以直接引用,请问我错在哪呢?
改为echo $_POST['username']

解决方案 »

  1.   

    sorry没看完~~直接引用出错是因为register_globals没有设置为on
      

  2.   

    //echo $_POST['username']; 这句要是再引用$username变量的值会报错,请问我怎么再引用把b.php的
    <form method="post" action="c.php">
      <input type="submit" name="Submit" value="提交">
    </form>
    改为
    <form method="post" action="c.php">
    <input type="hidden" name="username" value="<?=$_POST['username']?>" />
      <input type="submit" name="Submit" value="提交" />
    </form>
      

  3.   

    register_globals还是设为off好,可以避免一些安全问题
      

  4.   

    问题二。SQL里的Create语句后面有一个TYPE=MyISAM,不知道这个是什么意思?这个是表的类型!~~
    转载:
    用MySQL,目前(版本 3.23.6)你可以在三种基本数据库表格式间选择。当你创建一张表时,你可以告诉MySQL它应该对于表使用哪个表类型。MySQL将总是创建一个.frm文件保存表和列定义。视表类型而定,索引和数据将在其他文件中存储。 你能用ALTER TABLE语句在不同类型的表之间变换。见7.8 ALTER TABLE语法。 MyISAM 
    在MySQL 3.23中,MyISAM是缺省表格类型,它是基于ISAM代码并且有很多有用的扩展。索引存储在一个有.MYI(MYindex)扩展名的文件并且数据存储在有.MYD(MYData)扩展名的文件中。你能用myisamchk实用程序检查/修复MyISAM表。见13.4 对崩溃恢复使用myisamchk。下列几点在MyISAM中是全新的: 
    不用删除行,可以在表中INSERT一个新行,在其他线程从表中正在读取的同时。 
    在支持大文件的文件系统/操作系统上支持大文件(63位)。 
    所有的数据首先存储低字节,这使数据独立于机器和OS,唯一的要求是机器使用补2有符号整数(就像最近20年时间内的每台机器)和IEEE浮点格式(也在主流机器上完全主导地位)。不能支持二进制兼容性的机器的唯一领域是嵌入式系统(因为他们有时有古怪的处理器)。 
    所有的数字键先存储高字节以获得更高的索引压缩。 
    AUTO_INCREMENT列的内部处理。MyISAM将自动地在INSERT/UPDATE时更新它。 AUTO_INCREMENT值可以用myisamchk重新设置,这将使得AUTO_INCREMENT列更快速并且原来的数将不象老的ISAM那样被重新使用。注意,当一个AUTO_INCREMENT定义在一个多部键值(multi-part-key)的结尾时,老式的行为仍然是存在。 
    BLOB和TEXT列可以被索引。 
    被索引的列允许NULL值。每个键占0-1个字节。 
    现在最大的键长度缺省是500个字节。在键大于250个字节的情况下,一个大于缺省的1024个字节的关键字块大小被用于此键。 
    每个表的键的最大数目放大到32作为缺省。这不必重新编译myisamchk就可以放大到64。 
    在有一个标志MyISAM显示桌子是否正确被关上的文件。这将不久被用于自动的修理在MySQL服务器。 
    现在myisamchk将标记表为“检查的”。myisamchk --fast将仅仅检查那些没有这个标记的表。 
    myisamchk -a存储键值组成部分的统计(不只是像ISAM对整个键)。 
    现在在删除与更新和插入混用时,动态尺寸的行将有更少碎片,这通过自动合并相邻的删除块并且如果下一块被删除,通过扩大块来做到。 
    myisampack能紧缩BLOB和VARCHAR列。 
    MyISAM也支持下列东西,MySQL在不久的将来将能使用。 支持一个真正的VARCHAR类型;一个VARCHAR列以2各字节存储的长度开始。 
    用VARCHAR的表可以式固定或动态的记录长度。 
    VARCHAR和CHAR可以最大64K字节。所有的关键字片断有其自身的语言定义,这将使得MySQL每列有不同的语言定义。 
    一个杂凑计算的索引可用于UNIQUE;这将允许你在一个表中的任何列组合上有UNIQUE属性。(然而,你不能搜索一个UNIQUE计算的索引。) 
    你也可以使用放弃的ISAM桌子类型。这将在不久消失,因为MyISAM是同一个东西的更好实现。ISAM使用一个B-tree索引,这个索引存储在一个有.ISM扩展名的文件中并且数据存储在有.ISD扩展名的文件中,你可用isamchk实用程序检查/修复ISAM表。见13.4 使用myisamchk恢复崩溃。ISAM表不是跨OS/平台二进制可移植的。ISAM有下列特征/属性: 压缩的且定长键 
    固定和动态记录长度 
    有16个键,每个键有16键组成部分 
    最大键长度256(缺省) 
    数据以机器格式存储;快速但是依赖于机器/OS 。 
    HEAP  
    HEAP表格使用一个杂凑(hashed)索引并且存储在内存中。这使他们更快,但是如果MySQL崩溃,你将失去所有存储的数据。HEAP作为临时表很可用! 
    CREATE TABLE test TYPE=HEAP SELECT ip,SUM(downloads) as down
            FROM log_table GROUP BY ip;
    SELECT COUNT(ip),AVG(down) FROM test;
    DROP TABLE test;当你使用HEAP表时,这里是你应该考虑的一些事情: 你应该总是在CREATE语句中指定MAX_ROWS以保证你有意不使用所有的内存。 
    索引将只能与与=和<=>一起使用(但是很快)。 
    HEAP表使用一个固定的记录长度格式。 
    HEAP不支持BLOB/TEXT列。 
    HEAP不支持AUTO_INCREMENT列。 
    HEAP不支持在一个NULL列上的索引。 
    你可以在一个HEAP表中有非唯一键(杂凑表一般不这样)。 
    HEAP表格在所有的客户之间被共享(就象任何其他的表)。 
    HEAP表的数据以小块分配。表是100%动态的(在插入时),无需溢出区和额外的键空间。删除的行放入一个链接表并且当你把新数据插入到表时,它将被再次使用。 
    为了释放内存,你应该执行DELETE FROM heap_table或DROP TABLE heap_table。 
    为了保证你不会偶然做些愚蠢的事情,你不能创建比max_heap_table_size大的HEAP表。问题三,刚看到一句require_once('Connections/conn.php'); ,请问这个什么意思?
    这个是说把Connections/conn.php包含进本语句所在页面~~~
      

  5.   

    mysql的SQL语法手册可以上www.mysql.com 或 www.mysql.org找~~
    sql2000的不太清楚~~~
      

  6.   

    不对啊第一个问题:
    把b.php的
    <form method="post" action="c.php">
      <input type="submit" name="Submit" value="提交">
    </form>
    改为
    <form method="post" action="c.php">
    <input type="hidden" name="username" value="<?=$_POST['username']?>" />
      <input type="submit" name="Submit" value="提交" />
    </form>
    会报错
    Notice: Undefined variable: _Post in c:\\Inetpub\\wwwroot\\test\\b.php on line 5
      

  7.   

    把PHP.ini文件中的register_globals设置为on就可以解决第一个问题。require_once('Connections/conn.php'); 
    这个是引用其它文件。相当于C语言中的include。
      

  8.   

    不好意思,不是报上面的错,但是在c.php中取的变量值是空啊,还是没取到。什么原因呢?