首页 > 编程技术 > php

常见的几个问题

发布时间:2016-11-25 17:41

1.配置php.ini,修改session.save_path
如:session.save_path = d:/developer/php/temp 或 /tmp
2.程序
1.php
<?
session_start();
$var1 = "test";
session_register("var1");
?>
2.php
<?
session_start();
echo $var1;
?>
首先运行1.php,然后运行2.php,页面应该出现test
session "headers already sent" 错误问题
错误提示:Cannot send session cookie - headers already sent by ...
出现该错误是页面中session_start();语句前存在输出语句
如下例:
<html>
<?
session_start();
$var1 = "test";
session_register("var1");
?>
<body>
</body>
</html>
将<html>放到后面即可
文件上载
修改php.ini
upload_tmp_dir=d:/temp 或 /tmp
upload.php
====================================
<html>
<head>
<title>PHP Upload</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<?
if ($upload){
$real_path = $userfile_name;
if (file_exists($real_path)){
unlink($real_path);
}
if (!@copy($userfile,$real_path))
$upload_flag = false;
else
$upload_flag = true;
}
?>
<form name="frmUpload" action="upload.php" enctype="multipart/form-data" method="post">
<table border=0 cellspacing=0 cellpadding=4>
<tr><td>
<input type="hidden" name="MAX_FILE_SIZE" value="1048576">
<td>
<input type="file" name="userfile" size="40">
<input type="submit" name="upload" value=" 上载 ">
</td></tr>
</table>
</form>
</body>
</html>

来源 : CCU的新闻组 | 整理修改:Hunte | 收录日期 : 2000-08-21
导出要用到MySQL的mysqldump工具,基本用法是:
shell> mysqldump [OPTIONS] database [tables]
如果你不给定任何表,整个数据库将被导出。
通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。
注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。
mysqldump支持下列选项:
--add-locks
在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。
--add-drop-table
在每个create语句之前增加一个drop table。
--allow-keywords
允许创建是关键词的列名字。这由表名前缀于每个列名做到。
-c, --complete-insert
使用完整的insert语句(用列名字)。
-C, --compress
如果客户和服务器均支持压缩,压缩两者间所有的信息。
--delayed
用INSERT DELAYED命令插入行。
-e, --extended-insert
使用全新多行INSERT语法。(给出更紧缩并且更快的插入语句)
-#, --debug[=option_string]
跟踪程序的使用(为了调试)。
--help
显示一条帮助消息并且退出。
--fields-terminated-by=...
  --fields-enclosed-by=...
  --fields-optionally-enclosed-by=...
  --fields-escaped-by=...
  --fields-terminated-by=...
这些选择与-T选择一起使用,并且有相应的LOAD DATA INFILE子句相同的含义。
LOAD DATA INFILE语法。
-F, --flush-logs
在开始导出前,洗掉在MySQL服务器中的日志文件。
-f, --force,
即使我们在一个表导出期间得到一个SQL错误,继续。
-h, --host=..
从命名的主机上的MySQL服务器导出数据。缺省主机是localhost。
-l, --lock-tables.
为开始导出锁定所有表。
-t, --no-create-info
不写入表创建信息(CREATE TABLE语句)
-d, --no-data
不写入表的任何行信息。如果你只想得到一个表的结构的导出,这是很有用的!
--opt
同--quick --add-drop-table --add-locks --extended-insert --lock-tables。
应该给你为读入一个MySQL服务器的尽可能最快的导出。
-pyour_pass, --password[=your_pass] 与服务器连接时使用的口令。如果你不指定“=your_pass”部分,mysqldump需要来自终端的口令。
最好的方法是建立一个新的页面,使用<?phpinfo()?>,并在浏览器中载入。它会显示所有的PHP参数信息、环境变量、WEB服务器的特定变量、HTTP的相关变量...等等。没有将完整的变量值放在文件中的主要原因是它会随着服务器的不同而有所差异。
当送出一个表单时,它可能使用image当成提交按钮,如下面所示:
<input SRC="image.gif" NAME="foo"> 当用户按下图片的任一点时,伴随表单传回服务器还包含了二个附加变量 foo.x 与 foo.y。
因为foo.x 与 foo.y在PHP中是有问题的名称,它们自动转成变量 $foo_x 与 $foo_y。在PHP处理期间就被转换掉了。
function myfunc($argument) {
echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
到底是什么原因呢?
要将自定义函数的结果传回,你需要使用return来将结果传回,而不是echo函数。
标签:[!--infotagslink--]

您可能感兴趣的文章: