Tutorial fungsi pengundian merah dan biru pembangunan PHP PHP
Buat fail vote.php
Halaman depan meminta undian dari latar belakang .php, vote.php akan menyambung ke pangkalan data dan memanggil fungsi berkaitan berdasarkan parameter yang diterima.
header("Content-type:text/html;charset=utf-8");
$action = $_GET['action'];
$id = 1;
$ip = get_client_ip();//Dapatkan ip
if($action=='red'){//red Undi sebelah
undi(1,$id,$ip);
}elseif($action=='blue'){//Undian sebelah biru
undi(0,$id,$ip);
}lain{
echo jsons($id);
}
Undi fungsi($type,$id,$ip) digunakan untuk membuat tindakan mengundi $type mewakili parti mengundi, $id mewakili ID topik undian dan $ip mewakili pengguna. IP semasa. Pertama, berdasarkan IP semasa pengguna, tanya sama ada rekod IP semasa sudah wujud dalam jadual undian votes_ip Jika wujud, ini bermakna pengguna telah mengundi Jika tidak, kemas kini bilangan undian untuk bahagian merah atau biru sebelah, dan tulis rekod pengundian pengguna semasa ke jadual votes_ip untuk mengelakkan pengundian berulang.
$conn=mysqli_connect("localhost","root","root","vote");
$ip_sql="select ip from votes_ip where vid='$id' and ip='$ip'";
$que=mysqli_query($conn,$ip_sql);
$count=mysqli_num_rows( $que);
if($count==0){//Belum ada undian
if($type==1){//Red side
$sql = "kemas kini undian set suka=suka +1 di mana id=".$id;
mysqli_query($conn,$sql);
$sql_in = "masukkan ke dalam nilai votes_ip (vid,ip) ('$id',' $ip')";
$result = mysqli_query($ conn,$sql_in);
if($result > 0){
echo jsons($id);
}else{
$arr['success'] = 0;
$arr['msg'] = 'Operasi gagal, sila cuba lagi';
$arr['
$arr['msg'] = 'Sudah mengundi';
echo json_encode($arr);
}
}
Fungsi jsons($id) menanyakan bilangan undian untuk id semasa, mengira perkadaran dan mengembalikan format data json untuk panggilan bahagian hadapan.
$query = mysql_query("select * from votes where id=".$id); $row = mysql_fetch_array($query);
$red = $row['suka'];
$biru = $row['unlikes']; ] = $merah;
$arr['biru'] = $biru;
$merah_peratus = bulat($merah+$biru),3); = $red_percent;
$arr['blue_percent'] = 1-$red_percent;
获取用户真实IP的函数:get_client_ip()
jika (getenv("HTTP_CLI&mp_TPs") , "tidak diketahui"))
$ip = getenv("HTTP_CLIENT_IP");
lain
jika (getenv("HTTP_X_FORWARDED_FOR") && strv_RWARDED_FOR("unFOR_FOR") && strv_RWFORD_FOR("unFOR_FOR") && strv_RWFOR(getenv) 🎜> $ip = getenv("HTTP_X_FORWARDED_FOR");
lain
jika (getenv("REMOTE_ADDR") &&& sepuluh_ADDR") &&& strcasecmp(dr) &&&
lain
jika (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] &&&&& strcase ($_TE_ADDR) 🎜 > $ Ip = $ _server ['remote_addr']; >
vote.php完整代码
<?php header("Content-type:text/html;charset=utf-8"); $action = $_GET['action']; $id = 1; $ip = get_client_ip();//获取ip if($action=='red'){//红方投票 vote(1,$id,$ip); }elseif($action=='blue'){//蓝方投票 vote(0,$id,$ip); }else{ echo jsons($id); } function vote($type,$id,$ip){ $conn=mysqli_connect("localhost","root","root","vote"); $ip_sql="select ip from votes_ip where vid='$id' and ip='$ip'"; $que=mysqli_query($conn,$ip_sql); $count=mysqli_num_rows($que); if($count==0){//还没有投票 if($type==1){//红方 $sql = "update votes set likes=likes+1 where id=".$id; }else{//蓝方 $sql = "update votes set unlikes=unlikes+1 where id=".$id; } mysqli_query($conn,$sql); $sql_in = "insert into votes_ip (vid,ip) values ('$id','$ip')"; $result = mysqli_query($conn,$sql_in); if($result > 0){ echo jsons($id); }else{ $arr['success'] = 0; $arr['msg'] = '操作失败,请重试'; echo json_encode($arr); } }else{ $arr['success'] = 0; $arr['msg'] = '已经投票过了'; echo json_encode($arr); } } function jsons($id){ $conn=mysqli_connect("localhost","root","root","vote"); $que_sql="select * from votes where id=".$id; $query = mysqli_query($conn,$que_sql); $row = mysqli_fetch_array($query); $red = $row['likes']; $blue = $row['unlikes']; $arr['success']=1; $arr['red'] = $red; $arr['blue'] = $blue; $red_percent = round($red/($red+$blue),3); $arr['red_percent'] = $red_percent; $arr['blue_percent'] = 1-$red_percent; return json_encode($arr); } //获取用户真实IP function get_client_ip() { if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")) $ip = getenv("HTTP_CLIENT_IP"); else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")) $ip = getenv("REMOTE_ADDR"); else if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) $ip = $_SERVER['REMOTE_ADDR']; else $ip = "unknown"; return ($ip); } ?>
- Cadangan kursus
- Muat turun perisian kursus
-
MajuTutorial praktikal fungsi undian merah dan biru jQuery
8714 orang sedang menonton -
peringkat rendahTutorial XSL-FO
8411 orang sedang menonton -
peringkat rendahManual Rujukan Cina jQuery
34149 orang sedang menonton -
peringkat rendahTutorial MongoDB
25002 orang sedang menonton -
peringkat rendahTutorial Scala
13030 orang sedang menonton -
peringkat rendahManual Dalam Talian CSS
81501 orang sedang menonton -
peringkat rendahTutorial SVG
12604 orang sedang menonton -
peringkat rendahManual Rujukan Cina AngularJS
24053 orang sedang menonton -
peringkat rendahPergi manual tutorial bahasa
26810 orang sedang menonton -
peringkat rendahOperasi arahan Redis Manual Cina
57338 orang sedang menonton -
peringkat rendahTutorial Python 3
87040 orang sedang menonton -
peringkat rendahTutorial XML DOM
20592 orang sedang menonton
Pelajar yang telah menonton kursus ini juga sedang belajar
- Mari kita bercakap secara ringkas tentang memulakan perniagaan dalam PHP
- Pengenalan pantas kepada pembangunan bahagian hadapan web
- Pembangunan Tianlongbabu praktikal skala besar bagi rangka kerja MVC versi Mini meniru laman web ensiklopedia perkara yang memalukan
- Bermula dengan Pembangunan Praktikal PHP: Penciptaan PHP Pantas [Forum Perniagaan Kecil]
- Pengesahan log masuk dan papan mesej klasik
- Pengumpulan pengetahuan rangkaian komputer
- Mula Pantas Node.JS Versi Penuh
- Kursus bahagian hadapan yang paling memahami anda: HTML5/CSS3/ES6/NPM/Vue/...[Asal]
- Tulis rangka kerja PHP MVC anda sendiri (40 bab secara mendalam/butiran besar/mesti dibaca untuk pemula untuk maju)