【问题标题】:Issue when Input and write HTML Code into a Mysql database将 HTML 代码输入和写入 Mysql 数据库时的问题
【发布时间】:2018-07-09 20:18:44
【问题描述】:

我有一个带有 TEXTAREA 的小表单来编写一些 HTML 电子邮件模板。

当使用我自己的本地主机 (WAMP) 时,它可以正常工作,但是当在线时,根据 HTML 代码,它会将我发送回登录页面,并且所有 SESSION 变量似乎都消失了......只有当我的代码有一些 href 时,样式标签等...

如果我不输入一些代码、样式代码或 href,它可以正常工作。

我发现了一些关于浏览器的问题,但不确定是否是这种情况......

输入一些代码时我什至无法到达操作页面...但没有出现错误。它直接进入索引页面。

有什么想法吗?

<form id="formcontato" name="formcontato" class="form-horizontal" method="post" action="modelo.php">
<fieldset>
<div class="form-group">
<label class="col-md-1 control-label" for="codigo">Código</label>  
<div class="col-md-2">
	<input id="codigo" value="<?= $estemodelo->codigo; ?>" name="codigo" type="text"  class="form-control input-md" required="" onblur="this.value=this.value.toUpperCase()" maxlength="10">
</div>
<div class="form-group">
<label class="col-md-12 control-label" for="texto" style="text-align:left;">    </label>
<div class="col-md-12">       					
	<textarea rows="20" class="form-control" id="texto" name="texto"><?= $estemodelo->texto; ?></textarea>
</div>
</div>

<div class="form-group">
<label class="col-md-4 control-label" for="submit"></label>
<div class="col-md-12">
	<button id="submit" name="submit"  class="col-md-12 btn btn-primary">   Gravar   </button>
</div>
</div>
</fieldset>
</form>   

更多信息:

我正在测试一个假人...逐行插入一个 html 代码以查看它是否写入...

我已经输入了一些行并且工作正常,但是当输入以下代码时,它转到 index.php 文件...我有一些包含更多行的记录(合同有 10 页和简单的 Html 代码和好的)...所以,这不是字段大小问题。

看看这个简单的sn-p:

如果我只撕掉body style标签,它会写好...如果尝试使用body style标签打字,就会出现问题...

</head><body style='background: #eee;font-family: 'Arial', sans-serif;overflow-x: hidden;text-align: center;'>
<div id='container'><div class='container-fluid'><div class='row'><div class='col-sm'><div class='logo' style='text-align:center;padding:30px;'>
<img src='http://myimage.png' alt='' title='' width='150'></div>
<h2 style='text-align: center;font-size: 1.5em;text-shadow: 2px 2px #eeeeee;text-align: center;padding: 0 0 10px 0;margin: 0;'>

【问题讨论】:

  • 据我所知,此示例中没有数据库代码。这与问题有关吗?如果是这样,请编辑并包含该部分。

标签: php html mysql browser textarea


【解决方案1】:

很难确切知道您的问题是什么

你可以

echo "<pre>";
print_r($_SESSION)
echo "</pre>";

echo "<pre>";
print_r($estemodelo)
echo "</pre>";

在线版本上的此表格之前并更新答案以显示其内容?

编辑: 之前我提到将 echo 的输出更改为连接以整理它,但删除它以避免混淆,因为这不会解决问题。

根据您更新的答案

如果我只撕掉body style标签,它会写好...如果尝试使用body style标签打字,就会出现问题...

可能正文样式中的单引号被字体系列破坏了。试试这个

<body style="background: #eee;font-family: 'Arial', sans-serif;overflow-x: hidden;text-align: center;">

【讨论】:

  • 你认为他为什么需要做出改变? PHP 在双引号字符串中扩展变量。
  • 它显示了以下变量: Array ( [TEMPO] =&gt; 1531169456 ) Modelo Object ( [id] =&gt; 14 [codigo] =&gt; TESTE-ALE [descricao] =&gt; TESTE [ texto] =&gt; ) 但我不认为是这种情况......如果我不输入任何引用某些内容的 html 代码,就可以了......
  • 这是关于 PHP 字符串如何工作的常见误解。不要切换到串联,而是使用title='{$estemodelo-&gt;id}' ... 来确保值正确插值。
  • 我认为我们正在失去焦点...问题不在于变量显示的内容...我使用相同的 php 文件作为操作,它甚至到达相同的文件...我已经放上面的单个代码: <?php echo $_POST['texto'];出口; ?> 但甚至可以根据我在 textarea 输入的内容来达到它...这是关于浏览器/php 的一些问题...
  • 感谢 Oli Girling... 代码已清理... 扯掉了无关紧要的内容...
猜你喜欢
  • 2020-01-09
  • 1970-01-01
  • 2017-06-06
  • 1970-01-01
  • 2014-05-15
  • 2018-10-14
  • 1970-01-01
  • 1970-01-01
  • 2014-08-04
相关资源
最近更新 更多