这是我做0输入的处理代码:
===============================================================
if($_POST['num0']){
$num=$_POST['num0'];
if(is_dir('txt')){
$open=fopen("txt/caculator.txt","r+");
if(is_file("txt/caculator.txt")){
$a=file_get_contents("txt/caculator.txt");
$e=(int)$a;
$b=$e."0";
echo $b;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
=================================================================
这是表单:
=================================================================
=================================================================
全部代码在二楼。
主要意思就是 先在localhost下创建文件夹txt,再在文件夹txt下创建文件caculator.txt
caculator2.txt; caculator3.txt; 单击对应数字将数字显示到文本框,并存储到caculator.txt,
然后单击运算符,将对应运算符存储到caculator3.txt中,并将caculator.txt中的字符串存入caculator2.txt,然后清空caculator.txt,这是单击数字按钮输入第二个运算数字,并将第二个运算
数字存入caculator.txt中,当单击等于号,先对caculator3.txt中存入的运算符进行判断,然后进行
相应的运算。
其他都没问题,都可以实现,问题出现在输入0的时候,程序不会把0存入到文件中,导致0的输入不能实现,
不知道什么问题,求解答。初步估计是数据类型的问题。。。
回复讨论(解决方案)
if(!is_dir('txt')){
if(!is_file("txt/caculator.txt")){
echo"<script>alert('请在localhost下创建文件夹txt,并在文件夹txt下创建3个文件,分别是caculator.txt <br /> caculator2.txt caculator3.txt 然后才能正常完成任务!');</script>";
}}
if($_POST['num0']){
$num=$_POST['num0'];
if(is_dir('txt')){
$open=fopen("txt/caculator.txt","r+");
if(is_file("txt/caculator.txt")){
$a=file_get_contents("txt/caculator.txt");
$e=(int)$a;
$b=$e."0";
echo $b;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字1的反应
if($_POST['num1']){
$num=$_POST['num1'];
if(is_dir('txt')){
$open=fopen("txt/caculator.txt","r+");
if(is_file("txt/caculator.txt")){
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
if($_POST['num2']){
//单击数字2的反应
$num2=$_POST['num2'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num2;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字3的反应
if($_POST['num3']){
$num=$_POST['num3'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字4的反应
if($_POST['num4']){
$num=$_POST['num4'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字5的反应
if($_POST['num5']){
$num=$_POST['num5'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字6的反应
if($_POST['num6']){
$num=$_POST['num6'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字7的反应
if($_POST['num7']){
$num=$_POST['num7'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字8的反应
if($_POST['num8']){
$num=$_POST['num8'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击数字9的反应
if($_POST['num9']){
$num=$_POST['num9'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
//单击 点 的反应
if($_POST['dot']){
$num=$_POST['dot'];
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$findme= ".";
$pos=strpos($a, $findme);
if($pos==true){
file_put_contents("txt/caculator.txt",$a);
fclose($open);
}
else{
$b=$a.$num;
file_put_contents("txt/caculator.txt",$b);
fclose($open);
}
}
}
}
//单击选项C的反应
if($_POST['Clear']){
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","w+");
$open;
$open=fopen("txt/caculator2.txt","w+");
$open2;
$open=fopen("txt/caculator3.txt","w+");
$open3;
}
}
}
//单击 ← 的反应
if($_POST['back']){
if(is_dir('txt')){
if(is_file("txt/caculator.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$a=file_get_contents("txt/caculator.txt");
$a=substr($a,0,-1);
file_put_contents("txt/caculator.txt",$a);
}
}
}
//单击+的反应
if($_POST['add']){
if(is_dir('txt')){
if(is_file("txt/caculator2.txt")&&is_file("txt/caculator.txt")&&is_file("txt/caculator3.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$open2=fopen("txt/caculator2.txt","r+");
$open2;
$open3=fopen("txt/caculator3.txt","r+");
$open3;
$b="";
$c="+";
$a=file_get_contents("txt/caculator.txt");
file_put_contents("txt/caculator.txt",$b);
file_put_contents("txt/caculator2.txt",$a);
file_put_contents("txt/caculator3.txt",$c);
}
}
}
//单击-的反应
if($_POST['sub']){
if(is_dir('txt')){
if(is_file("txt/caculator2.txt")&&is_file("txt/caculator.txt")&&is_file("txt/caculator3.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$open2=fopen("txt/caculator2.txt","r+");
$open2;
$open3=fopen("txt/caculator3.txt","r+");
$open3;
$b="";
$c="-";
$a=file_get_contents("txt/caculator.txt");
file_put_contents("txt/caculator.txt",$b);
file_put_contents("txt/caculator2.txt",$a);
file_put_contents("txt/caculator3.txt",$c);
}
}
}
//单击乘的反应
if($_POST['mul']){
if(is_dir('txt')){
if(is_file("txt/caculator2.txt")&&is_file("txt/caculator.txt")&&is_file("txt/caculator3.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$open2=fopen("txt/caculator2.txt","r+");
$open2;
$open3=fopen("txt/caculator3.txt","r+");
$open3;
$b="";
$c="*";
$a=file_get_contents("txt/caculator.txt");
file_put_contents("txt/caculator.txt",$b);
file_put_contents("txt/caculator2.txt",$a);
file_put_contents("txt/caculator3.txt",$c);
}
}
}
//单击=的反应
if($_POST['equal']){
if(is_dir('txt')){
if(is_file("txt/caculator2.txt")&&is_file("txt/caculator.txt")&&is_file("txt/caculator3.txt")){
$open=fopen("txt/caculator.txt","r+");
$open;
$open2=fopen("txt/caculator2.txt","r+");
$open2;
$open3=fopen("txt/caculator3.txt","r+");
$open3;
$a=file_get_contents("txt/caculator.txt");
$b=file_get_contents("txt/caculator2.txt");
$c=file_get_contents("txt/caculator3.txt");
$nul="";
if($c=="+"){
$d=$b+$a;
}
if($c=="-"){
$d=$b-$a;
}
if($c=="*"){
$d=$a*$b;
}
if($c=="/"){
$d=$b/$a;
}
if($c=="%"){
$d=$b%$a;
}
if($c=="+"){
$d=$a+$b;
}
if($c=="√"){
$d=sqrt($a);
}
file_put_contents("txt/caculator.txt",$d);
}
}
}
以上是大部分代码,由于输入字符有限,关键代码贴出来了。
好多代码 你还是 直接说哪里出问题了吧 说关键的
你的问题在于:
if($_POST['num0']){
因为 $_POST['num0'] 等于 0,所以条件恒不成立。该分支不会进入!
应改作
if($_POST['num0'] == '0'){
你的程序设计的很不合理,需要做大幅度调整
文件操作函数的使用也欠妥
既然是用 file_get_contents、file_put_contents 读写文件,那么就不需要 fopen、fclose 再来做摆设了
file_put_contents 有一个 FILE_APPEND 参数可以附加内容到文件,而无需读出后人工追加
如果需要,可以你一个调整后的代码供参考
用AJAX,然后动态PHP编译就得了,实际把一大堆公司放进去计算好了。
你的问题在于:
if($_POST['num0']){
因为 $_POST['num0'] 等于 0,所以条件恒不成立。该分支不会进入!
应改作
if($_POST['num0'] == '0'){
你的程序设计的很不合理,需要做大幅度调整
文件操作函数的使用也欠妥
既然是用 file_get_contents、file_put_contents 读写文件,那么就不需要 fope……
版主大神啊...我还是刚开始学的...
求以后多多指教!

绝对会话超时从会话创建时开始计时,闲置会话超时则从用户无操作时开始计时。绝对会话超时适用于需要严格控制会话生命周期的场景,如金融应用;闲置会话超时适合希望用户长时间保持会话活跃的应用,如社交媒体。

服务器会话失效可以通过以下步骤解决:1.检查服务器配置,确保会话设置正确。2.验证客户端cookies,确认浏览器支持并正确发送。3.检查会话存储服务,如Redis,确保其正常运行。4.审查应用代码,确保会话逻辑正确。通过这些步骤,可以有效诊断和修复会话问题,提升用户体验。

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

设置httponly标志对会话cookie至关重要,因为它能有效防止XSS攻击,保护用户会话信息。具体来说,1)httponly标志阻止JavaScript访问cookie,2)在PHP和Flask中可以通过setcookie和make_response设置该标志,3)尽管不能防范所有攻击,但应作为整体安全策略的一部分。

phpsessions solvathepromblymaintainingStateAcrossMultipleHttpRequestsbyStoringDataTaNthEserVerAndAssociatingItwithaIniquesestionId.1)他们储存了AtoredAtaserver side,通常是Infilesordatabases,InseasessessionIdStoreDistordStoredStoredStoredStoredStoredStoredStoreDoreToreTeReTrestaa.2)

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考虑使用AttActAcks.s.s.4)

会话再生是指在用户进行敏感操作时生成新会话ID并使旧ID失效,以防会话固定攻击。实现步骤包括:1.检测敏感操作,2.生成新会话ID,3.销毁旧会话ID,4.更新用户端会话信息。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver Mac版
视觉化网页开发工具

记事本++7.3.1
好用且免费的代码编辑器

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境