带Oracle数据库分页显示功能的留言簿(2)
oracle|分页|数据|数据库|显示
再来就是整理资料,以便置入 Oracle 资料库中
$serial=md5(uniqid(rand()));$ref="";
$id=$PHP_AUTH_USER;
$ip=$REMOTE_ADDR;
$msg=base64_encode($msg);
$flag="1";
$query="INSERT into guestbook(serial, ref, id, alias, ip, msgdate,
email, msg, flag) values('$serial', '$ref', '$id', '$alias', '$ip', sysdate,
'$email', '$msg', '$flag')";
$serial 变数为独一无二的字串,程序先乱数产生独特的字串,再用 md5 编码,将字串弄乱,形成类似杂凑处理后的无意义字串。由于字串长,又变得很乱,可防止使用者,尤其是骇客或飞客利用序号来戳系统。
$ref 变数目前是无效的。$id 变数为使用者认证用,若在程序开始处有加入使用者认证的程序,则 $PHP_AUTH_USER 会变成使用者的帐号,传入 $id 变数中。
至于使用者写的字串,为了防止资料库或处理时的复杂性甘脆将它用 BASE64 编码。可以让中文字的奇怪字元一字消失,当然这是锯箭法,不过对 Web 程序而言,执行快速、修改方便才是最重要的,实在没有必要再浪费精力去处理这些中文的冲码问题了。值得注意的是使用 BASE64 编码,会让字串膨胀大约 1/3,若资料库的储存空间有限,可能就不适合用这个方法了,话又说回来,现在硬碟便宜,随便就是十几 GB 以
上,应该不会考虑资料库空间有限的问题才对。
最后,将变数整理成 $query 字串,供资料库执行 SQL 指令使用就可以了。
ora_parse($cursor, $query) or die;
ora_exec($cursor);
ora_close($cursor);
ora_logoff($handle);
要执行 Oracle 的 SQL 指令前,要先经过 parse 的动作。若在前面加上 @ (如: @ora_prase();),可以不让使用者看到错误讯息。在执行 query 指令后,就可以关闭与 Oracle 之间的连线了。
Header("Location: ./index.php");
exit;
这二行让浏览器重导到 index.php。让使用者看到他的新留言,就完成了留言的动作。
之后来看看留言的内容显示程序。
<html>
<head>
<meta content="text/html; charset=gb2312"
http-equiv=Content-Type>
<title>留言版</title>
</head>
<body bgcolor=ffffff>
<?php
file://---------------------------
// 留言显示程序 index.php
// Author: Wilson Peng
// Copyright (C) 2000
file://---------------------------
$WebmasterIPArray =
ay(
"10.0.1.30", // 管理人员甲的机器 IP
"10.0.2.28" // 管理人员乙的机器 IP
);
$WebmasterIP=false;
for ($i=0; $i<Count($WebmasterIPArray); $i++) {
if ($REMOTE_ADDR == $WebmasterIPArray[$i]) $WebmasterIP=true;
}
putenv("ORACLE_SID=WWW");
putenv("NLS_LANG=american_taiwan.zht16big5");
putenv("ORACLE_HOME=/home/oracle/product/7.3.2");
putenv("LD_LIBRARY_PATH=/home/oracle/product/7.3.2/lib");
putenv("ORA_NLS=/home/oracle/product/7.3.2/ocommon/nls/admin/data");
putenv("ORA_NLS32=/home/oracle/product/7.3.2/ocommon/nls/admin/data");
$handle=ora_logon("user38@WWW","iam3849") or die;
$cursor=ora_open($handle);
ora_commitoff($handle);
$query="SELECT serial, ref, id, alias, ip, TO_CHAR(msgdate, 'yyyy/mm/dd hh:mi:ss'), email, msg FROM guestbook where flag='1' order by msgdate desc";
ora_parse($cursor, $query) or die;
ora_exec($cursor);
$i=0;
while(ora_fetch($cursor)) {
$guestbook[$i][0] = ora_getcolumn($cursor,0);
$guestbook[$i][1] = ora_getcolumn($cursor,1);
$guestbook[$i][2] = ora_getcolumn($cursor,2);
$guestbook[$i][3] = ora_getcolumn($cursor,3);
$gu
estbook[$i][4] = ora_getcolumn($cursor,4);
$guestbook[$i][5] = ora_getcolumn($cursor,5);
$guestbook[$i][6] = ora_getcolumn($cursor,6);
$guestbook[$i][7] = ora_getcolumn($cursor,7);
$i++;
}
ora_close($cursor);
ora_logoff($handle);
echo "<a href=addmsg.php>新增留言....</a><p>\n";
if ($QUERY_STRING!="")
$page = $QUERY_STRING;
} else
$page = 0;
}
$i=count($guestbook);
$msgnum=20; // 每页二十笔
$start = $page * $msgnum;
$end = $start + $msgnum;
if ($end > $i) $end=$i;
$totalpage=$i/$msgnum;
$pagestr="";
if ($page>0) $pagestr=$pagestr."<a
href=index.php?".($page-1).">$pagestr=$pagestr."[第 ";
for ($i=0; $i<$totalpage; $i++)
if ($i!=$page)
$pagestr = $pagestr."<a href=index.php?$i>".($i+1)."</a> ";
} else
$pagestr = $pagestr.($i+1)." ";
}
}
$pagestr=$pagestr." 页] ";
if ($page<($totalpage-1)) $pagestr=$pagestr."- <a
href=index.php?".($page+1).">下页></a> ";
$pagestr="<div align=center>$pagestr</div>";
echo "<p>".$pagestr."<hr><p>\n";
for ($i=$start; $i<$end; $i++)
echo "<p><hr><p>\n";
echo "<p>\n<font color=e06060>".$guestbook[$i][5]."</font>
";
if ($guestbook[$i][6]!="") echo "<a
href=mailto:".$guestbook[$i][6].">";
echo "<strong>".$guestbook[$i][3]."</strong>";
if ($guestbook[$i][6]!="") echo "</a>";
echo "<br>\n";
if ($WebmasterIP) echo "<a
href=erase.php?".$guestbook[$i][0].">删除本篇!!</a> (".$guestbook[$i][2].")
";
echo "<font size=-1 color=c0c0c0>from:
".$guestbook[$i][4]."</font><p>\n";
$msg=base64_decode($guestbook[$i][7]);
$msg=nl2br($msg);
echo $msg;
echo "<p>\n";
}
echo "<p><hr><p>\n";
echo $pagestr;
?>
</body>
</html>
在显示留言的部份,考虑到留言内容若很多,加上网路慢的话,可能会让使用者在线路慢的时候拖累整个资料库,因此,尽快的连上资料库,取得需要的资料后,马上关闭资料库,再慢慢送给使用者,应是最好的对策。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











오늘날 급속한 기술 발전의 시대에 프로그래밍 언어는 비가 내린 뒤 버섯처럼 솟아오르고 있습니다. 많은 주목을 받고 있는 언어 중 하나가 바로 Go 언어인데, 단순성, 효율성, 동시성 안전성 등 다양한 기능으로 많은 개발자들에게 사랑을 받고 있습니다. Go 언어는 뛰어난 오픈 소스 프로젝트가 많이 포함된 강력한 생태계로 유명합니다. 이 기사에서는 선택된 Go 언어 오픈 소스 프로젝트 5개를 소개하고 독자가 Go 언어 오픈 소스 프로젝트의 세계를 탐색하도록 안내합니다. KubernetesKubernetes는 자동화를 위한 오픈 소스 컨테이너 오케스트레이션 엔진입니다.

"Go 언어 개발 필수 사항: 5가지 인기 프레임워크 권장 사항" 빠르고 효율적인 프로그래밍 언어인 Go 언어는 점점 더 많은 개발자들이 선호하고 있습니다. 개발 효율성을 높이고 코드 구조를 최적화하기 위해 많은 개발자는 프레임워크를 사용하여 애플리케이션을 빠르게 구축하는 방법을 선택합니다. Go 언어의 세계에는 선택할 수 있는 훌륭한 프레임워크가 많이 있습니다. 이 기사에서는 인기 있는 Go 언어 프레임워크 5개를 소개하고 독자가 이러한 프레임워크를 더 잘 이해하고 사용할 수 있도록 구체적인 코드 예제를 제공합니다. 1.GinGin은 빠른 속도를 갖춘 경량 웹 프레임워크입니다.

Laravel은 확장성이 뛰어나고 효율적인 인기 있는 PHP 프레임워크로 개발자가 고품질 웹 애플리케이션을 신속하게 구축할 수 있는 많은 강력한 도구와 라이브러리를 제공합니다. 그중 LaravelEcho와 Pusher는 WebSocket 통신을 쉽게 구현할 수 있는 두 가지 매우 중요한 도구입니다. 이 기사에서는 Laravel 애플리케이션에서 이 두 도구를 사용하는 방법을 자세히 설명합니다. WebSocket이란 무엇입니까? 웹소켓

PHP에서 echo 키워드의 역할과 사용법에 대한 자세한 설명 PHP는 널리 사용되는 서버측 스크립트 언어로 웹 개발에 널리 사용됩니다. echo 키워드는 PHP에서 내용을 출력하는 데 사용되는 메서드입니다. 이번 글에서는 echo 키워드의 기능과 사용법을 자세히 소개하겠습니다. 기능: echo 키워드의 주요 기능은 콘텐츠를 브라우저에 출력하는 것입니다. 웹 개발에서는 데이터를 프런트엔드 페이지에 동적으로 표시해야 합니다. 이때 echo 키워드를 사용하여 데이터를 페이지에 출력할 수 있습니다. 이자형

현재 가장 인기 있는 Go 프레임워크는 다음과 같습니다. Gin: 가볍고 고성능 웹 프레임워크이며 간단하고 사용하기 쉽습니다. Echo: 고성능 라우팅 및 미들웨어를 제공하는 빠르고 사용자 정의가 가능한 웹 프레임워크입니다. GorillaMux: 고급 라우팅 구성 옵션을 제공하는 빠르고 유연한 멀티플렉서입니다. Fiber: 높은 동시 요청을 처리하는 성능 최적화된 고성능 웹 프레임워크입니다. Martini: 풍부한 기능 세트를 제공하는 객체 지향 디자인을 갖춘 모듈식 웹 프레임워크입니다.

빠르고 효율적인 프로그래밍 언어인 Go 언어는 항상 프로그래머들이 선호해 왔습니다. Go 언어 생태계에서 프레임워크는 개발자가 애플리케이션을 더 빠르게 구축하는 데 중요한 역할을 합니다. 이 글에서는 다섯 가지 Go 언어 프레임워크를 소개하여 해당 프레임워크의 특징과 사용법을 이해할 수 있도록 하겠습니다. 1. Gin 프레임워크 Gin 프레임워크는 빠르고 고성능 특성을 갖춘 경량 웹 프레임워크입니다. Gin 프레임워크를 사용하여 RESTful API 및 웹 애플리케이션을 빠르게 구축하세요. 다음은 간단한 예제 코드입니다:

인터넷의 발달과 정보기술의 발달로 빅데이터 시대가 도래하면서 데이터 분석, 머신러닝 등의 분야도 널리 활용되고 있다. 이러한 분야에서 작업 스케줄링은 피할 수 없는 문제입니다. 효율적인 작업 스케줄링을 달성하는 방법은 효율성을 향상시키는 데 중요합니다. 이 글에서는 Golang의 웹 프레임워크인 Echo 프레임워크를 사용하여 분산 작업 스케줄링을 구현하는 방법을 소개합니다. 1. Echo 프레임워크 소개 Echo는 확장성이 뛰어나고 가벼운 고성능 GoWeb 프레임워크입니다. HTTP를 기반으로 합니다.

효율적이고 현대적인 프로그래밍 언어인 Go 언어는 개발자들이 널리 선호합니다. Go 언어에는 개발자가 효율적이고 안정적인 애플리케이션을 빠르게 구축하는 데 도움이 되는 뛰어난 프레임워크가 많이 있습니다. 이 기사에서는 Go 언어에서 널리 사용되는 프레임워크를 소개하고 구체적인 코드 예제를 제공합니다. Gin 프레임워크 Gin은 API를 빠르게 개발할 수 있는 기능을 제공하는 매우 인기 있는 Goweb 프레임워크입니다. Gin 프레임워크는 고성능, 사용 용이성, 경량이라는 특징을 갖고 있으며 인터넷 기업의 백엔드 개발에 널리 사용됩니다.
