Laravel表单显示为原始文本

时间:2017-07-20 07:13:36

标签: laravel laravel-5

我的问题可能与服务器配置问题有关。这是问题所在。我正在开发一个Laravel网站,在我的本地机器(使用laradock docker环境)上进行开发时工作正常。 我想在一台小型本地机器上运行它,所以我打开了一个新的Ubuntu 16.04服务器,并在其上安装了docker。检查了我的代码并运行了composer install。

进入主注册页面后,我看到注册表单的部分显示为原始文本:

laravel error - displaying form data as raw html

我在使用开发者页面时没有看到任何错误,并且在承载网站的laradock的php-fpm,工作空间或nginx容器中也没有错误。 任何的想法?

代码:

<?php
    $ip = get_ip_address();

    $countries = [
        "Afghanistan" => "Afghanistan",
        "Albania" => "Albania",
        "Zimbabwe" => "Zimbabwe"
    ];
 ?>

 @extends('layouts.app')

 @section('content')
 <div class="container">
   <div class="row">
     <div class="col-md-8 col-md-offset-2">
       <div class="panel panel-default">
         <div class="panel-heading">Register</div>
         <div class="panel-body">
           <form class="form-horizontal" role="form" method="POST" action="{{ route('register') }}">
             {{ csrf_field() }}

             <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
               <label for="name" class="col-md-4 control-label">Name</label>

               <div class="col-md-6">
                 <input id="name" type="text" class="form-control" name="name" value="{{ old('name') }}" required autofocus>

                 @if ($errors->has('name'))
                 <span class="help-block">
                   <strong>{{ $errors->first('name') }}</strong>
                 </span>
                 @endif
               </div>
             </div>

             <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
               <label for="email" class="col-md-4 control-label">E-Mail Address</label>

               <div class="col-md-6">
                 <input id="email" type="email" class="form-control" name="email" value="{{ old('email') }}" required>

                 @if ($errors->has('email'))
                 <span class="help-block">
                   <strong>{{ $errors->first('email') }}</strong>
                 </span>
                 @endif
               </div>
             </div>

             <div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
               <label for="password" class="col-md-4 control-label">Password</label>

               <div class="col-md-6">
                 <input id="password" type="password" class="form-control" name="password" required>

                 @if ($errors->has('password'))
                 <span class="help-block">
                   <strong>{{ $errors->first('password') }}</strong>
                 </span>
                 @endif
               </div>
             </div>

             <div class="form-group">
               <label for="password-confirm" class="col-md-4 control-label">Confirm Password</label>

               <div class="col-md-6">
                 <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
               </div>
             </div>

             <div class="form-group">
               <label for="country" class="col-md-4 control-label">Select your country</label>

               <div class="col-md-6">
                 {{Form::select("country", $countries, null, ['type' => 'text','class' => 'form-control','placeholder' => 'Pick your country...'])}}
               </div>

               @if ($errors->has('country'))
               <span class="help-block">
                 <strong>{{ $errors->first('country') }}</strong>
               </span>
               @endif
             </div>

             {{ Form::hidden('ip', $ip) }}

             <div class="form-group">
               <div class="col-md-6 col-md-offset-4">
                 <button type="submit" class="btn btn-primary">
                   Register
                 </button>
               </div>
             </div>

           </form>
         </div>
       </div>
     </div>
   </div>
 </div>
 @endsection

<?php

function get_ip_address() {
  // check for shared internet/ISP IP
  if (!empty($_SERVER['HTTP_CLIENT_IP']) && validate_ip($_SERVER['HTTP_CLIENT_IP'])) {
     return $_SERVER['HTTP_CLIENT_IP'];
  }

  // check for IPs passing through proxies
  if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    // check if multiple ips exist in var
    if (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') !== false) {
      $iplist = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
      foreach ($iplist as $ip) {
        if (validate_ip($ip))
        return $ip;
      }
    } else {
      if (validate_ip($_SERVER['HTTP_X_FORWARDED_FOR']))
      return $_SERVER['HTTP_X_FORWARDED_FOR'];
    }
  }
  if (!empty($_SERVER['HTTP_X_FORWARDED']) && validate_ip($_SERVER['HTTP_X_FORWARDED']))
    return $_SERVER['HTTP_X_FORWARDED'];
  if (!empty($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']) && validate_ip($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']))
    return $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
  if (!empty($_SERVER['HTTP_FORWARDED_FOR']) && validate_ip($_SERVER['HTTP_FORWARDED_FOR']))
    return $_SERVER['HTTP_FORWARDED_FOR'];
  if (!empty($_SERVER['HTTP_FORWARDED']) && validate_ip($_SERVER['HTTP_FORWARDED']))
    return $_SERVER['HTTP_FORWARDED'];

  // return unreliable ip since all else failed
  return $_SERVER['REMOTE_ADDR'];
}
?>

1 个答案:

答案 0 :(得分:3)

{{ }}回显的所有值都是通过PHP的htmlentities函数发送的。如果你想跳过它,那么你应该使用另一种表示法:

{!! $unescaped_html !!}

Source