我正在尝试重新学习一些PHP基础知识来制作一个简单的登录脚本,但是我得到了一个我之前没有收到的错误(我在一年多前制作了相同的脚本并且从未出现过这个错误.我简化了代码我可以测试哪个区域有问题,这是问题所在:
<?php
$user = $_POST["username"];
if($user != null)
{
echo $user;
echo " is your username";
}
else
{
echo "no username supplied";
}
?>
Run Code Online (Sandbox Code Playgroud)
现在,当我将一个变量发送到脚本时,这段代码工作正常,但是当没有提供变量时,它会发出错误.理论上这很好,因为如果没有提供用户名/传递,那么预计会出错.在代码发送到脚本之前,我将检查以确保这一点,但是我担心不知何故空字符串可能泄漏并吐出一些未知错误.这是我得到的错误:
( ! ) Notice: Undefined index: username in C:\wamp\www\verify_login.php on line 2
Call Stack
Time Memory Function Location
1 0.0003 668576 {main}( ) ..\verify_login.php:0
Run Code Online (Sandbox Code Playgroud)
没有提供用户名
你可以看到代码寄存器没有提供变量,但它给出了错误,我假设意味着没有找到一个变量是预期的或类似的东西.有人可以帮我澄清一下吗?
我正在尝试使用C#和php创建一个登录脚本,我计划将其作为一键安装出售,因此我需要它来进行错误验证.我故意在设置中犯错,但是当我的php脚本出错时,它只有一个HTML块输出,当我只想要一个字符串输出时(参见图像).
继承人我正在使用的代码
// We will now set up our MySQL database login. The values should be self-explanatory.
$sqlhost = "localhost";
$sqlusername = "unity";
$sqlpassword = "mypass123";
//we will now connect to our database
$sqlcon = mysql_connect($sqlhost, $sqlusername, $sqlpassword) or die("Could not connect to database: " . mysql_error());
Run Code Online (Sandbox Code Playgroud)
当我拥有所有信息时,它工作正常,其余代码运行没有错误.但是如果我的密码错误或者用户没有访问权限,那么我会收到此错误

我从此页面检索了信息,需要将其作为计划文本发送以便正确显示.我的意思是,任何HTML标签<div>, <br>, <a>,等等通常会使文本输出看起来很糟糕.我希望这只是在页面底部显示文本,因为它记录错误本身.我不需要它记录两次,我不需要它格式化.我需要它以简单易读的文本,以便如果用户有错误,他们可以发送短文,我将能够完成修复.
我正在尝试使用以下代码行将2 gig ram分配给从bat文件启动的java应用程序:
@echo off
"%ProgramFiles(x86)%\Java\jre6\bin\java.exe" -Xmx2G -Xms1G -jar craftbukkit-1.2.5-R4.0.jar
pause
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试像这样运行时,它会发出错误说:
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create teh Java virtual machine
Press any key to continue . . .
Run Code Online (Sandbox Code Playgroud)
我目前在我的计算机上有8个ram,我知道我一直在使用最多3个演出(我让计算机大部分只是运行这个服务器文件).我有2x4gig的公羊棒,所以我知道它没有分开,我知道我有足够的免费公羊分配所以为什么它不会让我?我可以分配1536M(1.5演出)以及,但如果我跳到2G,它会给我这个错误.任何帮助表示赞赏
我只想说明我刚刚开始尝试使用Async,所以我对我正在做的事情的理解非常有限.
我之前使用线程从串行端口读取数据,将数据处理成要写入的数据,然后编写它.我有1个线程读取数据并将其放入缓冲区,另一个线程处理缓冲区中的数据,最后一个线程写入它.这样,如果我点击一个按钮,我就可以发送更多数据.
现在我只是想学习并确保我正在做所有事情,所以我试图从串口读取数据,并将该数据添加到多行文本框中.这是代码:
连接到串口,如果成功,则调用UpdateMessageBox异步:
private void serialConnectClick(object sender, EventArgs e)
{
if (!_serialConnected)
{
_serialConnected = SerialConnect(portCombo.Text, int.Parse(baudCombo.Text));
if (!_serialConnected)
{
portCombo.SelectedIndex = 0;
messageTextBox.Text += "Failed to connect.\r\n";
return;
}
serialConnectBtn.Text = "Disconnect";
serialStatusLabel.Text = "Serial: Connected";
serialStatusLabel.ForeColor = Color.Blue;
messageTextBox.Text += "Connected\r\n";
VDIportCombo.Enabled = false;
soundSuccess.Play();
UpdateMessageBox(); // this is an async function
}
}
Run Code Online (Sandbox Code Playgroud)
这会不断调用ReadLineAsync并将结果添加到文本框中:
public async Task UpdateMessageBox()
{
messageTextBox.Text += "Reading data from serial.";
while (_serialConnected)
{
string message = await …Run Code Online (Sandbox Code Playgroud) 我正在使用 ASP.Net 身份验证来控制我的应用程序授权,我需要在指定的不活动时间后终止用户会话,我尝试通过执行以下方法来实现这一点
public void ConfigureAuth(IAppBuilder app) {
app.CreatePerOwinContext<UserStore>(() => new UserStore());
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.UseCookieAuthentication(new CookieAuthenticationOptions {
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/login"),
LogoutPath = new PathString("/logout"),
CookieDomain = ConfigurationManager.AppSettings["CookieDomain"],
Provider = new CookieAuthenticationProvider {
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(2),
regenerateIdentity: (manager, user) …Run Code Online (Sandbox Code Playgroud) 优化需要在textarea内容中编辑大量文本数据(25mb +)或可编辑内容的网页div,而不会丢失太多性能.
目前,在Chrome上加载10mb文件大约需要3秒钟.我希望这最多1秒.
我正在使用用户计算机加载本地文本文件,<input type="file">并且没有问题将大文件直接加载到内存中.但是,当我尝试在textarea中显示此文本数据时,我自然会遇到性能问题.
我有拼写检查,自动大写和自动完成所有禁用,这肯定有帮助,但我想尽量减少尝试渲染大文件时的滞后量(文件大于10mb,最大100mb将是理想的).
<textarea autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
我的一个想法是只渲染前100行和当前行后100行,当用户滚动textarea时,我会切换出正在显示的数据.我可以交换几百行没有任何明显的延迟,但成千上万的人锁定了整个页面.
我还在研究CodeMirror等项目,这些项目在一些基于javascript的文本编辑器和chrome dev工具中使用.但是,在最初加载大量文本时,快速测试显示出类似的性能问题.
另一个想法是使用highlight.js来渲染文本dom元素,但在处理数以千计的DOM elemet时我也注意到了大量的内容.
这个网站似乎通过动态创建和显示dom元素来解决类似的例子,而不是尝试一次渲染所有元素.
我发现,如果网格中的记录数量变得更多,那么网格变得非常慢,因为渲染速度与DOM中的节点数量直接相关.如果DOM中的节点数超过40-50k(取决于您的计算机配置和内存量),您的浏览器将崩溃或无响应.
所以,我决定开始做两件事:(1)动态创建记录作为用户滚动(2)优化网格来处理大数据集.经过几周的工作,网格已经过优化,可以进行测试.
我认为这与我的第一个想法类似,但我还没有尝试过这种方法.
我希望有类似经历的人可以提供一些建议,或者提供一些额外的想法.
在有人要求之前,我不能显示这些数据,它需要是用户可编辑的,它不需要突出显示代码或显示行号.最后,整个文本文件正在将FileReader加载到变量中.
我想避免将文件上传到我的网络服务器,如果可能的话,最终用户隐私和NDA问题.
服务器配置:Ubuntu 16.04 LAPP Stack与Laravel 5.4,虽然对NodeJS解决方案开放.允许使用jQuery.
延迟加载 - 当用户滚动时,一次只显示300行"块".在这种情况下,需要提前使滚动条适当的高度. - 此外,应该在用户滚动时卸载这些"块"以减少DOM渲染负载的总量.
Pseduo代码:
c_chunk = scrollpos / scrollheight * totalChunks;
chunk_block = chunk[c_chunk--] + chunk[c_chunk] + chunk[c_chunk++];
my_textarea.val(chunk_block);
Run Code Online (Sandbox Code Playgroud)
对这种方法有何想法?
谢谢大家.
我在我的开发网站(例如 dev.example.com)上使用基本身份验证,但遇到了一个问题:我的网站在初次访问后没有提示我输入凭据。换句话说,如果我清除浏览器缓存,就会出现提示,我就可以正常登录。会话仍然存在,但在会话过期并且我自动注销后,系统不会再次提示我输入凭据。
这也意味着如果我点击“取消”,我将不会再收到提示。
刷新并不能解决问题,我在初次访问后能够查看该网站的唯一方法是每次使用隐身窗口,或者清除缓存并刷新页面。
该页面显示默认的 401 nginx 错误页面,响应是实际的 401 错误。
我尝试将auth_basic线路移动到配置的各个部分,但这似乎没有效果。我没有自定义 401 错误页面,因此我没有指定error_page 401,这会是一个问题吗?
我还发现了这个问题,IE、FireFox、Opera 和 Safari 在服务器连续 401 响应时不显示 BASIC 身份验证提示
其中所述是通过www-authenticate在标题上设置来解决的,但这是为我定义的。
这可能与配置有关吗?这是我当前的配置:
server {
server_name dev.MYSITE.com;
root /srv/dev/MYSITE/current;
index index.php index.html index.htm;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_max_temp_file_size 0;
proxy_pass http://localhost:3010;
proxy_redirect off;
proxy_read_timeout 240s;
# Basic HTTP Auth
auth_basic "MYSITE Dev Site";
auth_basic_user_file /etc/nginx/sites-password/MYSITE.htpasswd;
} …Run Code Online (Sandbox Code Playgroud) nginx basic-authentication offline-caching http-status-code-401 progressive-web-apps
据我所知,下面的代码可以从Relay/ICommand Command更改为Delegate命令,并且仍然以相同的方式绑定命令!如果我错了,每个人的差异和用途是什么.
private DelegateCommand something;
public DelegateCommand Something
Run Code Online (Sandbox Code Playgroud)
这是完整的实现
private RelayCommand something;
public ICommand Something
{
get
{
if (something == null)
something = new RelayCommand(SomethingMethod, CanSomething);
return something;
}
}
private bool CanSomething(object parameter)
{
//just for readability return true
return true;
}
private void SomethingMethod(object parameter)
{
using (DatabaseContext context = new DatabaseContext())
{
try { }
catch(Exception ex)
{
throw new ApplicationException(string.Format("Something {0} to {1}", file, directory), ex);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我试图通过RS232与机器接口,机器要求所有输入都有一个小数分隔符,否则它采用小数位.EG如果我发送25它将解释为0.025,但是25.000或25.将被正确接收为25.000
我试过,Math.Round但对于整数值,它不包括尾随零.
所以,如果我有
float a = 90;
float b = cos(24);
comPort.WriteLine("G01 A" + a + " B" + b);
Run Code Online (Sandbox Code Playgroud)
我需要添加什么才能强制增加3位小数?我不关心它是如何舍入的,也不是它被截断的.
我正在制作一个Python TCP服务器和一个C#客户端,我让它工作,但我不明白为什么它正在工作,我希望有人可以向我解释我缺少的东西.我正在尝试从我自己的网络内部进行连接,因此不涉及防火墙.
在我的python脚本中,如果我绑定127.0.0.1或localhost无法从我的C#脚本连接到它,所以我想也许它需要是DHCP服务器提供的本地IP地址,所以我尝试绑定到192.168.1.74(本地IP地址) .这仍然不起作用,但是如果我0.0.0.0用作我绑定的端口,我能够连接没有问题.
Python服务器代码:
def startserver():
global serversocket
global server
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
serversocket.bind(('0.0.0.0', 8089))
#limit connections to 1 because we only expect C# code to talk to us
serversocket.listen(1)
print("Server Started, await connections...")
Run Code Online (Sandbox Code Playgroud)
C#TCPclient代码:
public string host = "192.168.1.74";
public int port = 8089;
public void ConnectSocket(string server, int port)
{
TcpClient client = new TcpClient(server, port);
byte[] data = System.Text.Encoding.ASCII.GetBytes("Hello World"); …Run Code Online (Sandbox Code Playgroud) c# ×5
php ×2
asynchronous ×1
cookies ×1
html ×1
java ×1
javascript ×1
jquery ×1
login ×1
login-script ×1
nginx ×1
python ×1
serial-port ×1
sockets ×1
tcp ×1
textarea ×1
wpf ×1