仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1886|回复: 19
打印 上一主题 下一主题

[学习教程] PHP网站制作之PHP高手领路:成绩汇总解答(2)

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:57:24 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,默默不敢打包票^0^     [回忆]:上集引见了"调试法式","若何利用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代码:

  <?php

  //必需经由过程超等毗连进入才有输入

  Echo $_SERVER['HTTP_REFERER'];

  ?>
18:数据放入数据库和掏出来显示在页面需求注重甚么
  入库时

  $str=addslashes($str);

  $sql="insert into `tab` (`content`) values('$str')";

  出库时

  $str=stripslashes($str);

  显示时

  $str=htmlspecialchars(nl2br($str)) ;
  <?php

  //$content来自数据库

  $content=nl2br(htmlspecialchars($content));

  $content=str_replace(" "," ",$content);

  $content=str_replace("\n","<br>\n",$content);

  ?>
19:若何读取以后地址栏信息
  PHP代码:

  <?php

  $s="http://{$_SERVER['HTTP_HOST']}:{$_SERVER["SERVER_PORT"]}{$_SERVER['SCRIPT_NAME']}";

  $se='';
  foreach ($_GET as $key => $value) {
  $se.=$key."=".$value."&";
  }
  $se=Preg_WordStr("/(.*)&$/","$1",$se);
  $se?$se="?".$se:"";
  echo $s."?$se";
  ?>

20:我点击前进按钮,为何之前填写的器材不见
  这是由于你利用了session.

  处理举措:
  PHP代码:
  <?php session_cache_limiter('private, must-revalidate');session_start();
  .....................?>
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`) <= 3;


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代码:

  <?php

  //起首你要有读写文件的权限

  //本法式可以直接运转,第一次报错,今后就能够

   $online_log = "count.dat"; //保留人数的文件,

   $timeout = 30;//30秒内没举措者,以为失落线

   $entries = file($online_log);
   $temp = array();
   for ($i=0;$i<count($entries);$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中界说的");
  设置轮回格局为:
  <!--(多于一个空格) BEGIN $handle(多于一个空格)-->
  若何将模板生成静态网页


  PHP代码:

  <?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代码:

  <form method=post action="">

  <input type="text" name="str"><input type="submit">

  </form>

  <?php

  $str=$_POST['str'];

  eval("\$o=$str;");

  Echo "$o";

  ?>

  到此,php的成绩解答就为人人引见终了,但愿能对列位有所匡助。
熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整的网页,对元素属性达到熟悉程度
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-15 13:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表