php mysql INSERT INTO mysql с помощью формы регистрации - PullRequest
1 голос
/ 15 февраля 2012

Я новичок в php и пытаюсь сделать электронную коммерцию, используя php.Я пытаюсь сделать регистрационную форму, и я хочу сохранить эти данные на сервере MySQL.Кодировка выглядит хорошо, но данные не сохраняются на сервере MySQL.Не могли бы вы дать свой ответ на это?Язык php - это первый раз, когда я борюсь с этим.Пожалуйста, дайте несколько советов.Спасибо.

- registerForm.php -

<h4>Create a new account</h4>
                <div class="box">
                <form action="register.php" method="post">
                    <p>User ID: <input type="text" name="userId" size="30"/>*</p>
                    <p>Password: <input type="password" name="password" size="30"/>*</p>
                    <p>Retype Password: <input type="password" name="repassword" size="30"/>*</p>
                    <p>First Name: <input type="text" name="firstName" size="30"/>*</p>
                    <p>Last Name: <input type="text" name="lastName" size="30"/>*</p>
                    <p>Your Address (*):</p>
                    <p> <textarea name="address" rows="5" cols="30"></textarea></p>
                    <p>Phone: <input type="text" name="phone" size="20"/>*</p>
                    <p>E-mail: <input type="text" name="email" size="21"/>*</p>
                    <p><input type="submit" value="Create Account"/></p>
                </form>
                </div>

- register.php -

<?php
require "sql_connection.php";
if(isset($_POST['submit']))
{
if($_GET["userId"]==$_GET["repassword"]){
mysql_query("insert into customer (userId, password, firstName, lastName, address,
phone, email) 
values
  ('$_GET[userId]','$_GET[password]','$_GET[firstName]','$_GET[lastName]','$_GET[address]','$_GET[phone]','$_GET[email]')")
or die(mysql_error());
}
echo "Done!!!!";
}
?>

- sql_connection.php -

<?php
$db_host = "localhost";
$db_username = "root";
$db_pass = "**MY_PASS**";
$db_name = "**MY_DB**";

@mysql_connect("$db_host", "$db_username", "$db_pass", "$db_name") or die("connection is fail.");
@mysql_select_db("$db_name") or die("database does not exsist.");
echo "Successfully connection!!";
?>

Ответы [ 4 ]

3 голосов
/ 15 февраля 2012

Поскольку ваш метод формы определен как POST, поэтому используйте $_POST для получения значений после отправки вместо $_GET

require "sql_connection.php";
if(isset($_POST['submit']))
{
if($_POST["userId"]==$_POST["repassword"]){
mysql_query("insert into customer (userId, password, firstName, lastName, address,
phone, email) 
values
  ('$_POST[userId]','$_POST[password]','$_POST[firstName]','$_POST[lastName]','$_POST[address]','$_POST[phone]','$_POST[email]')")
or die(mysql_error());
}
echo "Done!!!!";
}
?>

Значения не указаны в кавычках.Вы должны процитировать затем перед вставкой.

mysql_query("insert into customer (userId, password, firstName, lastName, address,
phone, email) 
values
  ('".$_POST[userId]."','".$_POST[password]."','".$_POST[firstName]."','".$_POST[lastName]."','".$_POST[address]."','".$_POST[phone]."','".$_POST[email]."')")
3 голосов
/ 15 февраля 2012

Мало вещей.Ваши $_GET и $_POST перепутаны.и НИКОГДА не публикуйте свои db_pass и uername публично.Кроме того, вы подавляете ошибки, используя @.не делайте этого.

т.е.

if($_GET["userId"]==$_GET["repassword"]){

должно быть

if($_POST["userId"]==$_POST["repassword"]){

и меняет все это на $_POST

Ваш код:

$_GET[userId]','$_GET[password]','$_GET[firstName]','$_GET[lastName]','$_GET[address]','$_GET[phone]','$_GET[email]')

Должно быть:

$_POST[userId]','$_POST[password]','$_POST[firstName]','$_POST[lastName]','$_POST[address]','$_POST[phone]','$_POST[email]')"
3 голосов
/ 15 февраля 2012
if($_GET["userId"]==$_GET["repassword"])

Почему вы сравниваете идентификатор пользователя с полем pssword повторного ввода?

Я думаю, что это должно быть:

if($_GET["password"]==$_GET["repassword"])

Также убедитесь, что вы экранируете строки, чтобы предотвратить атаки SQL-инъекций.

http://php.net/manual/en/function.mysql-real-escape-string.php

И, как сказал Пол, для правильного получения данных используйте $ _POST

0 голосов
/ 15 февраля 2012

Я думаю, что вы пытаетесь сделать:

if($_GET["password"]==$_GET["repassword"]) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...