[回顾]:上集介绍了"调试程序","如何使用session","规范SQL语句"等15个问题(Php高手带路--问题汇总解答[1])。本集继续作出16条常见问题的解答。
16:我想修改MySQL的用户,密码
首先要声明一点,大部分情况下,修改MySQL是需要有mysql里的root权限的,
所以一般用户无法更改密码,除非请求管理员.
方法一
使用phpmyadmin,这是最简单的了,修改mysql库的user表,
不过别忘了使用PASSWORD函数。
方法二
使用mysqladmin,这是前面声明的一个特例。
mysqladmin -u root -p password mypasswd
输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
把命令里的root改为你的用户名,你就可以改你自己的密码了。
当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,
那么这种方法就是无效的。
而且mysqladmin无法把密码清空。
下面的方法都在mysql提示符下使用,且必须有mysql的root权限:
方法三
mysql> INSERT INTO mysql.user (Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES
确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。
在《mysql中文参考手册》里有这个例子,所以我也就写出来了。
注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。
方法四
和方法三一样,只是使用了REPLACE语句
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
mysql> FLUSH PRIVILEGES
方法五
使用SET PASSWORD语句,
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit');
你也必须使用PASSWORD()函数,
但是不需要使用FLUSH PRIVILEGES。
方法六
使用GRANT ... IDENTIFIED BY语句
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';
这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。
注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。
17:我想知道他是通过哪个网站连接到本页
PHP代码:
//必须通过超级连接进入才有输出
Echo $_SERVER['HTTP_REFERER'];
?>
18:数据放入数据库和取出来显示在页面需要注意什么
入库时
$str=addslashes($str);
$sql="insert into `tab` (`content`) values('$str')";
出库时
$str=stripslashes($str);
显示时
$str=htmlspecialchars(nl2br($str)) ;
//$content来自数据库
$content=nl2br(htmlspecialchars($content));
$content=str_replace(" "," ",$content);
$content=str_replace("\n","
\n",$content);
?>
19:如何读取当前地址栏信息
PHP代码:
$s="http://{$_SERVER['HTTP_HOST']}:{$_SERVER["SERVER_PORT"]}{$_SERVER['SCRIPT_NAME']}";
$se='';
foreach ($_GET as $key => $value) {
$se.=$key."=".$value."&";
}
$se=Preg_Replace("/(.*)&$/","$1",$se);
$se?$se="?".$se:"";
echo $s."?$se";
?>
20:我点击后退按钮,为什么之前填写的东西不见
这是因为你使用了session.
解决办法:
PHP代码:
.....................?>
21:怎么在图片里显示IP地址
PHP代码:
Header("Content-type: image/png");
$img = ImageCreate(180,50);
$ip = $_SERVER['REMOTE_ADDR'];
ImageColorTransparent($img,$bgcolor);
$bgColor = ImageColorAllocate($img, 0x2c,0x6D,0xAF); // 背景颜色
$shadow = ImageColorAllocate($img, 250,0,0); // 阴影颜色
$textColor = ImageColorAllocate($img, oxff,oxff,oxff); // 字体颜色
ImageTTFText($img,10,0,78,30,$shadow,"d:/windows/fonts/Tahoma.ttf",$ip);
//显示背景
ImageTTFText($img,10,0,25,28,$textColor,"d:/windows/fonts/Tahoma.ttf","your ip is".$ip);
// 显示IP
ImagePng($img);
imagecreatefrompng($img);
ImageDestroy($img);
?>
22:如何取得用户的真实IP
PHP代码:
function iptype1 () {
if (getenv("HTTP_CLIENT_IP"))
{
return getenv("HTTP_CLIENT_IP");
}
else
{
return "none";
}
}
function iptype2 () {
if (getenv("HTTP_X_FORWARDED_FOR"))
{
return
getenv("HTTP_X_FORWARDED_FOR");
}
else {
return "none";
}
}
function iptype3 () {
if (getenv("REMOTE_ADDR"))
{
return getenv("REMOTE_ADDR");
}
else {
return "none";
}
}
function ip() {
$ip1 = iptype1();
$ip2 = iptype2();
$ip3 = iptype3();
if (isset($ip1) && $ip1 != "none" && $ip1 != "unknown")
{
return $ip1;
}
elseif (isset($ip2) && $ip2 != "none" && $ip2 != "unknown")
{
return $ip2;
}
elseif (isset($ip3) && $ip3 != "none" && $ip3 != "unknown")
{
return $ip3;
}
else
{ return "none"; }
}
Echo ip();
?>
23:如何从数据库读取三天内的所有记录
首先表格里要有一个DATETIME字段记录时间,
格式为'2003-7-15 16:50:00'
SELECT * FROM `xltxlm` WHERE TO_DAYS(NOW()) - TO_DAYS(`date`)
24:如何远程链接Mysql数据库
在增加用户的mysql表里有一个host字段,修改为"%",或者指定允许连接的ip地址,这样,你就可以远程调用了。
$link=mysql_connect("192.168.1.80:3306","root","");
25:正则到底怎么用
点击这里
正则表达式中的特殊字符
26:用Apache后,主页出现乱码
方法一:
AddDefaultCharset ISO-8859-1 改为 AddDefaultCharset off
方法二:
AddDefaultCharset GB2312
27:为什么单引号,双引号在接受页面变成(\'\")
解决方法:
方法一:在php.ini中设置:magic_quotes_gpc = Off
方法二: $str=stripcslashes($str)
28:怎么让程序一直运行下去,而不是超过30秒就停止
set_time_limit(60)//最长运行时间一分钟
set_time_limit(0)//运行到程序自己结束,或手动停止
29:计算当前在线人数
例子一:用文本实现
PHP代码:
//首先你要有读写文件的权限
//本程序可以直接运行,第一次报错,以后就可以
$online_log = "count.dat"; //保存人数的文件,
$timeout = 30;//30秒内没动作者,认为掉线
$entries = file($online_log);
$temp = array();
for ($i=0;$i
$entry = explode(",",trim($entries[$i]));
if (($entry[0] != getenv('REMOTE_ADDR')) && ($entry[1] > time()))
{
array_push($temp,$entry[0].",".$entry[1]."\n"); //取出其他浏览者的信息,并去掉超时者,保存进$temp
}
}
array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout))."\n");
//更新浏览者的时间
$users_online = count($temp); //计算在线人数
$entries = implode("",$temp);
//写入文件
$fp = fopen($online_log,"w");
flock($fp,LOCK_EX); //flock() 不能在NFS以及其他的一些网络文件系统中正常工作
fputs($fp,$entries);
flock($fp,LOCK_UN);
fclose($fp);
echo "当前有".$users_online."人在线";
?>
30:什么是模板,怎么用
我用的是phplib模板
下面是其中几个函数的使用
$T->Set_File("随便定义","模板文件.tpl");
$T->Set_Block("在set_file中定义的","","随便定义");
$T->Parse("在Set_Block中定义的","",true);
$T->Parse("随便输出结果","在Set_File中定义的");
设置循环格式为:
如何将模板生成静态网页
PHP代码:
//这里使用phplib模板
............
............
$tpl->parse("output","html");
$output = $tpl->get("output");// $output 为整个网页内容
function wfile($file,$content,$mode='w') {
$oldmask = umask(0);
$fp = fopen($file, $mode);
if (!$fp) return false;
fwrite($fp,$content);
fclose($fp);
umask($oldmask);
return true;
}
// 写到文件里
Wfile($FILE,$output);
header("location:$FILE");//重定向到生成的网页
}
?>
phplib下载地址 smarty下载地址
31:怎么用php解释字符
比如:输入2+2*(1+2),自动输出8 可以用eval函数
PHP代码:
$str=$_POST['str'];
eval("\$o=$str;");
Echo "$o";
?>
到此,php的问题解答就为大家介绍完毕,希望能对各位有所帮助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Dreamweaver CS6
視覺化網頁開發工具