表单提交不接受链接

3

我有一个表单,问题是当我尝试在输入类型文本中发布链接(如https://www.google.com/)时,它会出现错误,就像执行了一些我不理解的命令一样。这是我的代码,请告诉我到底哪里出了问题。

<?php
if(isset($_POST['add'])){
$animeid = $_POST['animeid'];
$number = $_POST['number'];
$code = $_POST['code'];
echo $animeid;
echo $number;
echo $code;
}
?>
<form method="post" action="<?php $_PHP_SELF ?>">
<table width="600" border="1" cellspacing="1" cellpadding="2">
<tr>
<br>
<input class="inputs" placeholder="Link" name="code" type="text" id="code">
</br>
<br>
<input class="inputs" placeholder="ID" name="id" type="number" id="id">
</br>
<br>
<input class="inputs" placeholder="Number" name="number" type="number" id="number">
</br>
<br>
<center><input class="btnExample" name="add" type="submit" id="add" value="Add Episode!"></center>
</td>
</tr>
</table>
</form>

其实这很简单,如果我要输入的不是链接,那就没问题了,但我需要它是一个链接,而且我仍然无法理解为什么from不能发布链接,我想知道如何让它发布链接。

好的,我想我知道如何解决它,但我只知道怎么做,我真的需要帮助,因为我没有学过JavaScript,但应该有一种方法可以在发布表单之前删除http://或https://,然后我会在PhP中重新添加它,现在我需要解决的问题是如何制作一个JavaScript,以便在发布表单之前自动删除http://或https://。感谢您到目前为止给我的答案,如果有人知道如何使用JavaScript自动删除单词,我将非常感激!


问题到底是什么? - andrewsi
2
<?php echo $_SERVER['PHP_SELF']; ?> - Simone Nigro
哦,我明白了 :) 那可能就是它了。让我试试 :P - Got To Figure
还是有错误:! - Got To Figure
我的模板可能有点难以理解,但没关系,因为我自己创建了每一个部分,所以我对它的外观很满意。我真正想知道的是那个能回答我的问题的Javascript。 - Got To Figure
显示剩余4条评论
3个回答

1

动作是将数据发送到要发布的位置(例如#)的地方,以在同一页面上进行。

您需要对每个变量运行一组检查。例如:

if (isset($_POST['fromPerson']){
     $fromPerson=$_POST['fromPerson'];
}

嗯,那么在我的情况下,我会写成: 如果(isset($ _POST ['add'])){ $add = $ _POST ['add']; } 但是我该在哪里放置代码,在}之前呢? - Got To Figure
不,你需要检查每个变量是否被发送,然后执行 ($var1 && $var2...),再运行数据。add并不是必须的,但正在运行的变量需要进行检查。 - a coder

1

改变

<form method="post" action="<?php $_PHP_SELF ?>">

<form method="post" action="?">

和改变

<?php
if(isset($_POST['add'])){
$animeid = $_POST['animeid'];
$number = $_POST['number'];
$code = $_POST['code'];
echo $animeid;
echo $number;
echo $code;
}
?>

在。
<?php
 echo (isset($_POST['animeid'])) ? $_POST['animeid'] : '';
 echo (isset($_POST['number']))  ? $_POST['number']  : '';
 echo (isset($_POST['code']))    ? $_POST['code']    : '';
?>

你的代码

<?php
 echo (isset($_POST['animeid'])) ? $_POST['animeid'] : '';
 echo (isset($_POST['number']))  ? $_POST['number']  : '';
 echo (isset($_POST['code']))    ? $_POST['code']    : '';
?>
<form method="post" action="?">
<table width="600" border="1" cellspacing="1" cellpadding="2">
<tr>
<br>
<input class="inputs" placeholder="Link" name="code" type="text" id="code">
</br>
<br>
<input class="inputs" placeholder="ID" name="id" type="number" id="id">
</br>
<br>
<input class="inputs" placeholder="Number" name="number" type="number" id="number">
</br>
<br>
<center><input class="btnExample" name="add" type="submit" id="add" value="Add Episode!"></center>
</td>
</tr>
</table>
</form>

尝试 <form method="post" action="?"> - Simone Nigro
我尝试过,但出现了错误,但当我没有使用http://时,它会重定向到我的主页,并在末尾添加?。 - Got To Figure
但这是我的想法,如果有一个JavaScript可以自动删除http://或https://,然后回到php我可以重新添加它没有问题,但现在我必须找到一个脚本,在发布之前删除http://,我不懂JavaScript。 - Got To Figure

1

我觉得链接就像一种代码,需要被发布。当你发布它时,实际上会发生什么事情呢?简单来说,它不会发布到http://anime4life.net/,而是发布到http:// linkthatIinitiallyTypedIntheInput+anime4life.net,这导致了非常长和不成功的结果。 解决方案很简单,首先使用JsQuery自动删除我输入时的http://,像这样:

$('input').change( function() {
    var input = $('input');
    input.val(
        $('input').val().replace(/https?:\/\//gi,'')
    );
});

然后提交表单,在回显中使用此内容。

<?PHP
echo "https://".$_POST['code']."";

那样就可以将其放回显示中了,感谢大家的帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接