小编jam*_*246的帖子

使用echo输出HTML在PHP中被认为是不好的做法?

在PHP中,我使用一个if语句来识别用户是否登录,并根据结果显示主菜单(如果已登录)或"你需要登录"消息,如果没有.我是这样做的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <link rel="stylesheet" href="style.css" type="text/css" />
    <title>Home</title>
</head>
<body>
    <div id="header">
       <a href="index.php"><img src="wtcdblogo.png" alt="WTC DB logo" /></a>
    </div>
    <?php 
       if($_SESSION['loggedIn'] == 1) {
          echo "<div id='main'>MAIN MENU stuff goes here</div>";
       } else {
          echo "<div id='main'>Please login...</div>";
       } 
    ?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

如您所见,显示主菜单或"请登录"消息的代码由a生成echo.这是不好的做法,也许有更好的方法?

顺便说一下,我从echo上面的代码片段中删除了大部分HTML .主菜单由一个列表组成,但我没有打扰,因为它与问题无关,我想.

html php echo

8
推荐指数
3
解决办法
7775
查看次数

在 macOS 10.12 上绑定到套接字时出现 NSPOSIXErrorDomain

我正在 Swift 中使用CocoaAsyncSocket来绑定到 UDP 套接字并通过本地网络接收消息。

我正在初始化一个套接字,并尝试绑定到一个端口,但出现错误NSPOSIXErrorDomain。也许表明某种权限问题?

我的代码:

import Cocoa
import CocoaAsyncSocket

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate, GCDAsyncUdpSocketDelegate {
    func applicationDidFinishLaunching(_ aNotification: Notification) {
        let socket = GCDAsyncUdpSocket.init(delegate: self, delegateQueue: DispatchQueue.main)
        do {
            try socket.bind(toPort: 53401)
        } catch let msg {
            NSLog("Error....\(msg)")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

完整错误:

Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted" UserInfo={NSLocalizedDescription=Operation not permitted, NSLocalizedFailureReason=Error in bind() function}
Run Code Online (Sandbox Code Playgroud)

sockets macos udp cocoaasyncsocket swift

8
推荐指数
2
解决办法
1798
查看次数

如何自定义"意向"菜单的顺序

从IDEA 2018.2(macOS)开始,alt + Enter(Intentions)菜单中的选项出现的顺序已更改.对我来说,订单现在不像以前那样逻辑和与当前背景相关.是否可以更改订单?

例如,给定Java项目中的JUnit类MyClassTest,在类名上按下alt + Enter,先将Run'MyClassTest'作为第一个选项.该选项现在在菜单中排在第4位,第一个是"创建子类",这对我来说根本不相关.

在此输入图像描述

java intellij-idea

8
推荐指数
1
解决办法
107
查看次数

如何格式化TestUnit差异输出

我将MiniTest与Rails 4开箱即用,并且diff输出看起来有点奇怪和令人困惑。请参阅以下来自失败assert_equalassert_equal 5, someBigDecimalValue)的输出

--- expected
+++ actual
@@ -1 +1 @@
-5
+#<BigDecimal:7fa7db1dd528,'0.1E2',9(18)>
Run Code Online (Sandbox Code Playgroud)

测试中指定的预期结果为5,但-其前面的字符使预期结果看起来像-5。该@@ -1 +1 @@部分也令人困惑。

当期望值和实际值属于同一类型时,输出看起来很好:

Expected: "Foo"
Actual: "Bar"
Run Code Online (Sandbox Code Playgroud)

我怎样才能让MiniTest输出第一个这样的测试:

Expected: 5
Actual: #<BigDecimal:7fa7db1dd528,'0.1E2',9(18)>
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails minitest ruby-on-rails-4

5
推荐指数
0
解决办法
69
查看次数

这个Java return语句是什么意思?

我正在查看一些代码片段,并且遇到了一个我从未见过的返回声明.这是什么意思?

return checkDB != null ? true : false;
Run Code Online (Sandbox Code Playgroud)

这是整个方法代码,供参考:

private boolean checkDataBase(){
        SQLiteDatabase checkDB = null;
        try{
            String pathToDB = dbPath + dbName;
            checkDB = SQLiteDatabase.openDatabase(pathToDB, null, SQLiteDatabase.OPEN_READONLY);
        }catch(SQLiteException e){
            //database does't exist yet.
        }
        if(checkDB != null){
            checkDB.close();
        }
        return checkDB != null ? true : false;
    }
Run Code Online (Sandbox Code Playgroud)

java android

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

Project Reactor onErrorMap 抛出的测试异常

我正在尝试测试捕获kotlin.Exception由 a 抛出的异常 ( ) Mono,然后捕获该异常,并抛出一个新异常 ( MyException)。

以下代码段失败...

class MyException : Exception("My Exception")
assertThrows<MyException> {
     Mono.fromCallable { throw Exception() }
         .onErrorMap { MyException() }
         .subscribe()
}
Run Code Online (Sandbox Code Playgroud)

...出现以下错误:

org.opentest4j.AssertionFailedError: Unexpected exception type thrown ==> 
Expected :<com.company.project.service.SomeServiceTest$foobar$MyException> 
Actual   :<reactor.core.Exceptions.ErrorCallbackNotImplemented>
Run Code Online (Sandbox Code Playgroud)

但是,以下通过

assertThrows<RuntimeException> {
    Mono.fromCallable { throw Exception() }
        .onErrorMap { RuntimeException() }
        .subscribe()
}
Run Code Online (Sandbox Code Playgroud)

我不确定为什么。除了我使用自定义异常之外,我看不出有什么区别。

我也尝试使用block(),结果类似:

class MyException : Exception("My Exception")
assertThrows<MyException> {
    Mono.fromCallable { throw Exception() }
            .onErrorMap { MyException() }
            .block()
}
Run Code Online (Sandbox Code Playgroud)

不同的例外:

org.opentest4j.AssertionFailedError: …
Run Code Online (Sandbox Code Playgroud)

kotlin project-reactor

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

如何在 Spring Boot RestController 中映射动态查询参数

是否可以使用 Spring Boot 使用动态名称映射查询参数?我想映射如下参数:

/products?filter[name]=foo
/products?filter[length]=10
/products?filter[width]=5
Run Code Online (Sandbox Code Playgroud)

我可以做这样的事情,但这需要知道每个可能的过滤器,我希望它是动态的:

@RestController
public class ProductsController {
    @GetMapping("/products")
    public String products(
            @RequestParam(name = "filter[name]") String name,
            @RequestParam(name = "filter[length]") String length,
            @RequestParam(name = "filter[width]") String width
    ) {
        //
    }
}
Run Code Online (Sandbox Code Playgroud)

如果可能,我正在寻找允许用户定义任意数量可能的过滤器值的东西,以及那些HashMap被 Spring Boot映射为 a的东西。

@RestController
public class ProductsController {
    @GetMapping("/products")
    public String products(
            @RequestParam(name = "filter[*]") HashMap<String, String> filters
    ) {
        filters.get("name");
        filters.get("length");
        filters.get("width");
    }
}
Run Code Online (Sandbox Code Playgroud)

发布在此问题上的答案建议使用@RequestParam Map<String, String> parameters,但是这将捕获所有查询参数,而不仅仅是那些匹配的filter[*].

java query-parameters spring-boot spring-restcontroller

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

减去浮点数时出现意外结果

可能重复:
ruby浮点错误

在Ruby中,当从5.0中减去4.7时,我希望结果为0.3,但得到:

~ $ irb
1.9.2p290 :001 > 5.0 - 4.7
 => 0.2999999999999998 
Run Code Online (Sandbox Code Playgroud)

我猜这是有原因而不是它是一个错误?使用BigDecimal对象产生相同的结果.我唯一的选择是使用round结果吗?

ruby

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

在Ruby中将十六进制作为整数处理

在Ruby on Rails应用程序中,我们有一些存储为整数的细节,但在我们尝试转换为字符串时被解释为十六进制.

例如

> 0123.to_s
=> 83
Run Code Online (Sandbox Code Playgroud)

有没有办法将值视为整数,即使它是Ruby看到的十六进制格式.如果没有,我们只需将数据库字段更改为varchar!

ruby

0
推荐指数
1
解决办法
1074
查看次数