into-mysql不起作用,但另一个页面上的相同查询可以正常工作有什么我不知道的吗?

hfyxw5xn  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(382)

正如标题所暗示的,我一直试图解决我的问题所在,但我空手而归。这对我来说毫无意义。我用的是几乎相同的 if(isset($_POST['submit'])) 在我的wordpress网站的其他地方,但是由于某种原因,这个让我头疼,当我按下submit按钮时,它不断地给我404个错误。
我与数据库的连接也没有改变(出于安全原因,我只是在下面的代码中更改了它们)。
最后-我知道我没有行动 form -这是因为操作在php页面中。我在另一个页面上用更少的 <input> 而且效果很好。
我有一种感觉,我忽略了一些超级简单的东西,但它正在吞噬我过去几天!这是我的表结构(来自adminer);

Column          Type    
coin            varchar(11)  
address         varchar(50)  
name            varchar(50)  
serverip        varchar(20)  
port            char(10) [0]     
explorer        char(90)     
api_getbalance  char(90)     
balance         int(40) [0]  
collateral      int(20)  
earning         char(30) [0]     
status          char(15) [ENABLED]

我已经设定了 Primary Keyaddress 因为replace函数需要一个主键/唯一键集。

<?php
$args = array(
  'post_type'      => 'product',);
?>

<?php
if(isset($_POST['submit'])) {

$name = $_POST['name'];
$coin = $_POST['coin'];
$serverip = $_POST['serverip'];
$port = $_POST['port'];
$address = $_POST['address'];
$explorer = $_POST['explorer'];
$apigetbalance = $_POST['apigetbalance'];
$collateral = $_POST['collateral'];

$con2 = mysqli_connect("IP","USER","PASS","DB");

$update = "REPLACE INTO wp_shared_nodes (address, name, serverip, port, coin, explorer, api_getbalance, collateral) VALUES (?,?,?,?,?,?,?,?)";

$stmt = mysqli_prepare($con2,$update);

if ($stmt) {
  mysqli_stmt_bind_param($stmt, 'ssssssss', $address, $name, $serverip, $port, $coin, $explorer, $apigetbalance, $collateral);

  $ok = mysqli_stmt_execute($stmt);

  if ($ok) {
    echo "<strong> <i class='fa fa-check' aria-hidden='true'></i> The node information was added correctly.</strong>";
  } else {
    echo 'Data Not Updated';
    error_log(mysqli_stmt_error($stmt));
  }

  mysqli_stmt_close($stmt);
} else {
  error_log(mysqli_error($con2));
}

mysqli_close($con2);
}
?>
<?php   
echo "<p><h5>Add/Change Node:</h5>";

$loop = new WP_Query( $args );
echo '<form method = "post">';
echo '<div class="row"><div class="column">';

//coin name
echo '<p style="margins:0"><h5>Coin Name</h5>';
echo '<p><input type="text" placeholder="Insert Coin Name" id="name" name="name" size="40" /></p>';

//coin ticker
echo '<p style="margins:0"><h5>Ticker</h5>';  
echo '<p><select id="coin" name="coin">';
    echo '<option>-- Select coin--</option>';
while ( $loop->have_posts() ) : $loop->the_post();
  global $product;
    echo '<option value=' . $product->get_sku() . '>' . $product->get_sku() . ' </option>';
  endwhile;
echo '</select>';  

//wallet address
echo '<p style="margins:0"><h5>Wallet Address</h5>';
echo '<p><input type="text" placeholder="Address" id="address" name="address" size="40" /></p>';  

//Collateral
echo '<p style="margins:0"><h5>Collateral</h5>';
echo '<p><input type="text" placeholder="Amount" id="collateral" name="collateral" size="10" /></p>';  

echo '</div>';
echo '<div class="column">';

//Server IP
echo '<p style="margins:0"><h5>Server IP</h5>';
echo '<p><input type="text" placeholder="IP Address" id="serverip" name="serverip" size="20" /></p>'; 

//Server Port
echo '<p style="margins:0"><h5>Port</h5>';
echo '<p><input type="text" placeholder="Port" id="port" name="port" size="10" /></p>';   

//Explorer
echo '<p style="margins:0"><h5>Explorer link to default address</h5>';
echo '<p><input type="text" placeholder="e.g. https://explore.creativecoin.design/address/" id="explorer" name="explorer" size="50" /></p>';

//Ext/getbalance
echo '<p style="margins:0"><h5>API link for balance</h5>';
echo '<p><input type="text" placeholder="e.g. https://explore.creativecoin.design/ext/getbalance/" id="apigetbalance" name="apigetbalance" size="50" /></p>';

echo '</div></div>';

echo '<br><input type="submit" name="submit">';
echo '</form>';
?>
qnyhuwrf

qnyhuwrf1#

404错误是 HTTP 状态码,这意味着在他们的服务器上找不到您试图在网站上访问的页面。

<p><h5>Add/Change Node:</h5>
    <?php $loop = new WP_Query( $args ); ?>
    <form action="submit.php" method = "post">

<div class="row"><div class="column">

//coin name
<p style="margins:0"><h5>Coin Name</h5>`<br>
<p><input type="text" placeholder="Insert Coin Name" id="name" name="name" size="40" /></p>    
//coin ticker
<p style="margins:0"><h5>Ticker</h5> 
<p><select id="coin" name="coin">
<option>-- Select coin--</option>
<? php while ( $loop->have_posts() ) : $loop->the_post();
 global $product;
    echo '<option value=' . $product->get_sku() . '>' . $product->get_sku() . ' </option>';
  endwhile;
?>
</select>

//wallet address
<p style="margins:0"><h5>Wallet Address</h5>
<p><input type="text" placeholder="Address" id="address" name="address" size="40" /></p> 

 //Collateral
 <p style="margins:0"><h5>Collateral</h5>
 <p><input type="text" placeholder="Amount" id="collateral" name="collateral" 
  size="10" /></p>

</div> 
<div class="column">

//Server IP
<p style="margins:0"><h5>Server IP</h5>
<p><input type="text" placeholder="IP Address" id="serverip" name="serverip" 
 size="20" /></p>

//Server Port`<br>
<p style="margins:0"><h5>Port</h5>
<p><input type="text" placeholder="Port" id="port" name="port" size="10" /> 
</p>

//Explorer
<p style="margins:0"><h5>Explorer link to default address</h5>
<p><input type="text" placeholder="e.g. https://explore.creativecoin.design/address/" id="explorer" name="explorer" size="50" /></p>

//Ext/getbalance
<p style="margins:0"><h5>API link for balance</h5>
<p><input type="text" placeholder="e.g. https://explore.creativecoin.design/ext/getbalance/" id="apigetbalance" name="apigetbalance" size="50" /></p>

</div></div>

<input type="submit" name="submit">
</form>

表单操作是必需的,这就是它显示404错误的原因
你也可以试试

action=""
action="same page url"
dfddblmv

dfddblmv2#

这应该是一个评论,而不是一个答案,但我还没有足够的观点来评论。
我觉得问题很可能出在你的“行动”形式上。因为它不在你的代码里,我不能测试它。但是,它是决定提交时发布到哪个页面的操作。因为您得到一个404错误,这意味着您已经将操作设置为一个不存在的页面,或者您使用了错误的路径。如果该错误在函数中,则会进入正确的页面,因此不会出现404,然后会出现sql或php错误或意外结果,但不会出现404。
我创建了一个非常简单的测试页面,使用了您精确的提交输入,它的工作方式与我预期的一样:

<html>
    <body>

        <?php
            if(isset($_POST['submit'])) {
                echo "submit isset";
            } else {
                echo "submit !isset";
            }
        ?>
        <form method="post">
            <input type="submit" name="submit">
        </form>
    </body>
</html>

如果你想张贴“行动”声明,我也许能找出它的错误,但是,它可能是一个简单的打字错误。

相关问题