Php %0D%0A和/n之间的差异

Php %0D%0A和/n之间的差异,php,Php,我正在测试小脚本,试图找出差异 test.php: <html> <body><link rel='stylesheet' property='stylesheet' id='s' type='text/css' href='/template/s.css' media='all' /><iframe id='iframe' src='https://www.root-me.org/?page=externe_header'></ifr

我正在测试小脚本,试图找出差异

test.php:

<html>
   <body><link rel='stylesheet' property='stylesheet' id='s' type='text/css' href='/template/s.css' media='all' /><iframe id='iframe' src='https://www.root-me.org/?page=externe_header'></iframe>
    <h1>Authentication v 0.04</h1>
    <form action="" method="GET">
     Login&nbsp;<br/>
     <input type="text" name="username" /><br/><br/>
     Password&nbsp;<br/>
     <input type="password" name="password" /><br/><br/>
     <br/><br/>
     <input type="submit" value="connect" /><br/><br/>
    </form>
<fieldset><legend>Authentication log</legend><pre>

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
echo $_GET['username'].'Failed';
$first_line = strstr($_GET['username'], "\n", true);
?>
</pre></fieldset></body></html>
我是怎么得到这个结果的

&如果要检查是否有两行

我可以和你核对一下

现在我检查\n不是%0D%0A

那么它们之间有什么区别呢?

\n只是\n而%0D%0A是\r\n

这谈到了\r\n和\r\n之间的区别,而%0D%0A是\r\n


这说明了\r和\n

之间的区别,但为什么我尝试localhost/test.php?用户名=%0D%0Aadmin/…它将在同一行中打印admin/n???并将“/n”打印为字符串您使用什么来显示字符串?如果使用var_dump,它将很好地显示字符串。如果使用echo,则会出现问题。无论哪种方式,两个符号都被正确解码和显示,因此我不确定您有什么问题?如果有问题,请使用Trim修剪字符。顺便说一句\r\n和\n在不同的操作系统上表现不同。但为什么我尝试localhost/test.php?用户名=%0D%0Aadmin/…它将在同一行中打印admin/n???并将“/n”打印为字符串您使用什么来显示字符串?如果使用var_dump,它将很好地显示字符串。如果使用echo,则会出现问题。无论哪种方式,两个符号都被正确解码和显示,因此我不确定您有什么问题?如果有问题,请使用Trim修剪字符。顺便说一句\r和\n在不同的操作系统上表现不同。
admin authenticated
whatever failed
$first_line = strstr($_GET['username'], "\n", true);