小编Xan*_*ano的帖子

带有$ _POST的未定义索引

我正在尝试重新学习一些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)

没有提供用户名

你可以看到代码寄存器没有提供变量,但它给出了错误,我假设意味着没有找到一个变量是预期的或类似的东西.有人可以帮我澄清一下吗?

php login undefined-index

38
推荐指数
4
解决办法
17万
查看次数

如何在文本而不是HTML中制作PHP错误

可能重复:
我如何告诉PHP将异常转储为原始文本而不是HTML?

我正在尝试使用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>,等等通常会使文本输出看起来很糟糕.我希望这只是在页面底部显示文本,因为它记录错误本身.我不需要它记录两次,我不需要它格式化.我需要它以简单易读的文本,以便如果用户有错误,他们可以发送短文,我将能够完成修复.

php error-handling login-script

20
推荐指数
1
解决办法
1万
查看次数

Java:无法为对象堆保留足够的空间

我正在尝试使用以下代码行将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,它会给我这个错误.任何帮助表示赞赏

java

6
推荐指数
1
解决办法
8118
查看次数

正确地异步连续读取串口

我只想说明我刚刚开始尝试使用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)

c# multithreading asynchronous serial-port

6
推荐指数
1
解决办法
6399
查看次数

ASP.Net 身份滑动过期设置为 true 不会重新发出 cookie

我正在使用 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)

c# cookies expired-cookies asp.net-identity

6
推荐指数
1
解决办法
7208
查看次数

通过在textarea中部分显示数据来动态显示大量文本

目标:

优化需要在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)

对这种方法有何想法?

谢谢大家.

html javascript jquery textarea

5
推荐指数
1
解决办法
2459
查看次数

由于 PWA 服务工作线程缓存,身份验证基本 401 页面不会提示输入凭据

我在我的开发网站(例如 dev.example.com)上使用基本身份验证,但遇到了一个问题:我的网站在初次访问后没有提示我输入凭据。换句话说,如果我清除浏览器缓存,就会出现提示,我就可以正常登录。会话仍然存在,但在会话过期并且我自动注销后,系统不会再次提示我输入凭据。

这也意味着如果我点击“取消”,我将不会再收到提示。

刷新并不能解决问题,我在初次访问后能够查看该网站的唯一方法是每次使用隐身窗口,或者清除缓存并刷新页面。

该页面显示默认的 401 nginx 错误页面,响应是实际的 401 错误。

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

5
推荐指数
1
解决办法
3603
查看次数

Relay/ICommand vs DelegateCommand - 差异

据我所知,下面的代码可以从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)

c# wpf

4
推荐指数
1
解决办法
9508
查看次数

如何强制float和int具有小数点或尾随零

我试图通过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位小数?我不关心它是如何舍入的,也不是它被截断的.

c#

3
推荐指数
1
解决办法
356
查看次数

为什么我的python TCP服务器需要绑定到0.0.0.0而不是localhost或它的IP地址?

我正在制作一个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# python sockets tcp

3
推荐指数
1
解决办法
2521
查看次数