다 중 사용자 에 게 이미지 업로드 기능 을 구현 합 니 다.PHP 코드 는 로그 인 페이지 제작 에 적 용 됩 니 다.
8918 단어 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);핵심
대체로 이렇게 많은 내용 이다.미화 효 과 를 높이 지 는 않 았 지만 참 새 는 작 지만 오장 도 다 갖 춘 셈 이다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.