Note that there are some explanatory texts on larger screens.

plurals
  1. POPHP Registration script using prepared statements
    primarykey
    data
    text
    <p>I have got the following registration code, it SEEMS to be working but it isn't actually inserting the entered information into my table. It all runs with no errors showing up, and the "echo 'end';" is displaying. </p> <p><strong>Edit, updated code:</strong> Now get this error</p> <blockquote> <p>Warning: mysqli_stmt::bind_param(): Number of elements in type definition string doesn't match number of bind variables in C:\xampp\htdocs\ppa\test.php on line 19</p> </blockquote> <p>Which is this line:</p> <pre><code>$insert_stmt-&gt;bind_param($email, $password, $random_salt, $user); </code></pre> <p>PHP: </p> <pre><code> &lt;?php include "includes/db_connect.php"; if (isset($_POST['email'], $_POST['p'])) { $email = $_POST['email']; //Default user perms $perms = "user"; $password = hash('sha512', $_POST['p']); //Need to add JavaScript to hash password before it gets here //Create random salt $random_salt = hash('sha512', uniqid(mt_rand(1, getrandmax()), true)); //Create salted password $password = hash('sha512', $password.$random_salt); //Add insert to database script //Use prepared statements! if ($insert_stmt = $mysqli-&gt;prepare("INSERT INTO users (email, password, salt, perms) VALUES (?, ?, ?, ?)")) { $insert_stmt-&gt;bind_param($email, $password, $random_salt, $perms); $insert_stmt-&gt;execute(); } echo "Email: ".$email."&lt;br /&gt;"; echo "Password: ".$password."&lt;br /&gt;"; echo "Random Salt: ".$random_salt."&lt;br /&gt;"; echo "Permissions: ".$perms."&lt;br /&gt;"; } ?&gt; </code></pre> <p>This is my db_connect.php page</p> <pre><code>&lt;?php define("HOST", 'localhost'); define("USER", 'ppa_user'); define("PASSWORD", 'password'); define("DATABASE", 'ppa'); $mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE); if ($mysqli-&gt;connect_errno) { //No database found, redirect to setup $url = "http://".$_SERVER['HTTP_HOST'].'/ppa/setup.php'; header('Location: '.$url); } ?&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload