다 중 사용자 에 게 이미지 업로드 기능 을 구현 합 니 다.PHP 코드 는 로그 인 페이지 제작 에 적 용 됩 니 다.

한 사이트 가 사실은 특정한 기능 의 조합 이 고 사용자 의 얼굴 을 바 꾸 는 것 은 바로 이런 기능 안에 있다.오늘 은 다양한 사용 자 를 대상 으로 이미지 업로드 기능 을 실현 하 는 테스트 를 해 보 겠 습 니 다.
--------------------------------------------------------------------------------
완제품 도
成品图
사고의 방향
 •다른 사용자 에 게 프로필 사진 을 올 리 려 면 로그 인 한 모든 사용자 에 게 폴 더 를 만들어 야 합 니 다.폴 더 의 이름 은 현재 사용자 의 사용자 이름 을 기준 으로 합 니 다.
 •사용자 가 업로드 에 성공 한 후 사용자 로그 인 에 성공 한 페이지 로 이동 하여 사용자 프로필 사진 을 새로 고 칩 니 다.
로그 인 페이지
양식 제작

<form role="form" action="./forindex.php">
 <div class="form-group">
 <label for="name">   </label>
 <input type="text" class="form-control" id="username" name="username"
  placeholder="     ">
 </div>
 <div class="form-group">
 <label for="inputfile">    </label>
 <input type="password" id="inputfile" name="password">
 <p class="help-block">            。</p>
 </div>
 <div class="form-group">
 <label>      </label>
 <input type="text" id="checkcode" name="checkcode" />
 <img id="imagecheckcode" src="./store.php?r=<?php echo rand();?>" /><a href="javascript:void(0);" onclick="change()" >   </a>
 </div>
 <script>
 function change(){
  document.getElementById("imagecheckcode").src = "./store.php?r="+ Math.random(); 
 }

 </script>
 <button type="submit" class="btn btn-default">  </button>
</form>
인증번호 제작

<?php
session_start();//    php        ,   session


//   gd imagecreatetruecolor();       
$image = imagecreatetruecolor(100,40);

//      
$bgcolor = imagecolorallocate($image,255,255,255);
//            
imagefill($image,0,0,$bgcolor);

////////     4             
$checkcode='';
for($i=0;$i<4;$i++){
 $fontsize = rand(6,8);
 $fontcolor = imagecolorallocate($image,rand(0,255),rand(0,255),rand(0,255));
 //           ,              
 $rawstr = 'abcdefghjkmnopqrstuvwxyz23456789';
 $fontcontent = substr($rawstr,rand(0,strlen($rawstr)),1);
 //           
 $checkcode.=$fontcontent;
 //          
 $x += 20;
 $y = rand(10,20);
 imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor); 
}
//    session   
$_SESSION['checkcode']=$checkcode;

//         ,   200 
for($i=0;$i<200;$i++){
 $pointcolor = imagecolorallocate($image,rand(50,255),rand(50,255),rand(50,255));
 imagesetpixel($image,rand(0,100),rand(0,30),$pointcolor);
}
//            4 
for($i=0;$i<4;$i++){
 //        ,      
 $linecolor = imagecolorallocate($image,rand(50,255),rand(50,255),rand(50,255));
 imageline($image,rand(0,99),rand(0,29),rand(0,99),rand(0,29),$linecolor);

}


header('content-type:image/png');

imagepng($image);

//     ,      
imagedestroy($image);

JavaScript 인증 코드 새로 고침

<a href="javascript:void(0);" onclick="change()" >   </a>
<script>
 function change(){
  document.getElementById("imagecheckcode").src = "./store.php?r="+ Math.random(); 
 }
</script>

인증 페이지
이번 실험의 가장 핵심 적 인 것 은 사용자 프로필 사진 의 교체 이기 때문에 사용자 이름 은 잠시 상관 하지 않 고 루트 를 기준 으로 합 니 다.
검증 논리

<?php
 session_start();
 header("Content-Type:text/html;charset=utf-8");

 $username = $_REQUEST['username'];
 $password = $_REQUEST['password'];
 if(strtolower($_REQUEST['checkcode']==$_SESSION['checkcode'])){
 if(!is_dir($username)){
  mkdir($username);
 }
 echo "   ,    !"."<br />3            !";
 $_SESSION['username'] = $username;
 header("refresh:3;url=./personalpage.php");


 }else{
 echo "   ,     !";
 header("refresh:3;url=./index.php");
 //echo "<script>window.location.href='./index.php'</script>"; 
 }

페이지 이동
PHP 에 서 는 페이지 의 점프 를 먼저 실현 하려 면 여러 가지 방법 이 있다.본 고 는 header 정 보 를 추가 하 는 방식 을 사용 하 였 으 며,다음은 페이지 전환 에 관 한 몇 가지 작은 실례 를 소개 한다.
헤더 함수

< ?php 
//      
header("Location: http://blog.csdn.net/marksinoberg"); 
//      ,          
exit;
?>

메모:위치 와:사이 에 빈 칸 이 있 으 면 안 됩 니 다. 
메타 태그
<   meta   http-equiv = "refresh"  content = "1;url=http://blog.csdn.net/marksinoberg" >
메모:콘 텐 츠 는 몇 초 안에 점프 를 완성 할 수 있 습 니 다. 
JavaScript

< ?php 
$ url = "http://bbs.lampbrother.net" ; 
echo " < script language = 'javascript' 
type = 'text/javascript' > "; 
echo " window.location.href = '$url' "; 
echo " < /script > "; 
?>

메모:자바 스 크 립 트 방식 을 사용 하면 코드 가 설 치 된 위 치 는 마음대로 할 수 있 습 니 다.문법 적 요구 에 부합 되 기만 하면 됩 니 다. 
페이지 업로드
개인 홈 페이지

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php session_start(); echo $_SESSION['username']."     "; ?></title>
<style>
 img {
 width:128px;
 height:auto; 
 }
</style>
</head>

<body>

<div>
 <img id="userphoto" src="./root/lover.png" /><br />
 <form action="./uploadphoto.php" method="post" enctype="multipart/form-data">
 <input type="file" name="photo" />
 <input type="submit" onclick="uploadphoto()" value="     "/>
 </form>
 <script>
 function uploadphoto(){
  document.getElementById("userphoto").src = "./root/<?php echo $_SESSION['username'];?>.png"
 }
 window.onload = function(){
  uploadphoto(); 
 }

 </script>
</div>



</body>
</html>

핵심 업로드
업로드 의 핵심 은 폼 입 니 다.업로드 할 그림 을 서버 에 올 리 고 phop 은 move 를 사용 합 니 다.uploaded_file 은 파일 의 이전 을 실현 하고 업 로드 를 실현 합 니 다.

<?php
 session_start();
 header("Content-Type:text/html;charset=utf-8");
//        、     
$path = "./root/";

$username = $_SESSION['username'];
//               
$server_name = $path.$username.".png";


if($_FILES['photo']['error']>0) {
 die("   !".$_FILES['photo']['error']); 
}
if(move_uploaded_file($_FILES['photo']['tmp_name'],$server_name)){
 //echo "<BR>"."Upload Success!";
 echo "   ,    !"."<br />3            !"; 
 header("refresh:3;url=./personalpage.php");
}else{
 //echo "<BR>"."Upload Failed!".$_FILES['photo']['error']; 
 echo "   ,       !";
 header("refresh:2;url=./index.php");
}
?>

최종 결과
로그 인 페이지
登陆首页
검증 결과
验证输入的信息是否正确
개인 홈 페이지
用户个人主页
최신 프로필 사진
最新头像
총결산
이번 실험의 수확 을 되돌아보다.
 •session 의 오픈 은 php 파일 의 시작 에 있어 야 합 니 다 sessionstart()
 •php 가 실현 할 수 있 는 페이지 이동 방식
 •파일 업로드
 •인증 코드 제작 및 사용
 •JavaScript:void(0);핵심
대체로 이렇게 많은 내용 이다.미화 효 과 를 높이 지 는 않 았 지만 참 새 는 작 지만 오장 도 다 갖 춘 셈 이다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기