Z jakiegoś powodu ten formularz nie wstawia do mojej bazy danych.

HTML

<form action="../php/register.php" method="post">
    <div id ="personal-form">
        <h4><b>Personal Details:</b></h4>
        <hr>

        <div class="form-group">
            <label class="sr-only" for="first-name">First name</label>
            First Name

            <input type="text" name="firstname" placeholder="" 
                   class="form-control" id="firstname">

            <button type="submit" class="btn btn-next" id="submit">
                Submit
            </button>
        </center>
        </div>
    </div>
</form>

php / rejestracja.php

<?php
    include('connect.php');

    if(isset($_POST["submit"])) {
        $firstname = $_POST["firstname"];
        $stmt = $conn->prepare("INSERT INTO storeowners (firstname) VALUES 
(:firstname)");

        $stmt->bindParam(':firstname', $firstname);
        $stmt->execute();

        header("location: next.php");
    }
?>

To jest connect.php

<?php
    $servername = "localhost";
    $username = "root";
    $password = "";

    try {
        $conn = new PDO("mysql:host=$servername;dbname=blaza", $username, 
$password);
        //set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        echo "success";
    } catch(PDOException $e) {
        echo "Connection failed: " . $e->getMessage();
    }
?>

Po kliknięciu przycisku Prześlij pokazuje stronę PHP / Register.php z wiadomością Sukces , który jest komunikatem Thesame w Connect.php kod, jeśli połączenie DB zakończyło się powodzeniem. Nie wiem, gdzie problem jest powodem, ponieważ nie przechowuje nazwiska do bazy danych i żaden błąd nie został podany.

0
Ibrahim 4 czerwiec 2018, 15:37

3 odpowiedzi

Najlepsza odpowiedź

Dodaj name="submit" do przycisku.

<form action="../php/register.php" method="post">
      <div id ="personal-form">
        <h4><b>Personal Details:</b></h4>
        <hr>
        <div class="form-group">
           <label class="sr-only" for="first-name">First name</label>
              First Name
           <input type="text" name="firstname" placeholder="" class="form-control" id="firstname">
           <button name="submit" type="submit" class="btn btn-next" id="submit">Submit</button></center>
       </div>
     </div>
 </form>
1
Jacob 4 czerwiec 2018, 12:40
if(isset($_POST["submit"]))

Nie masz elementów sterujących formami z name=submit, więc ten stan nigdy nie będzie prawdziwy.

Łączysz się do bazy danych bezwarunkowo, ale nigdy nie używasz połączenia, aby nic zrobić.

5
Quentin 4 czerwiec 2018, 12:39

Zamiast $ _Post ["Prześlij"] Dodaj to

if(isset($_POST["firstname"]))
0
DsRaj 4 czerwiec 2018, 12:42