Вводить данные в Mysql с PHP в формуляре реестра

У меня есть формульный HTML, который он послал с PHP, но чего попробовал добиться, дело в том, что данные, которые вводят информацию в компьютер в формуляре, были введены в компьютер автоматически в базу данных во время посылания формуляра, и также, что я послал почту с данными о формулярах.

В этом случае я уже расположил в порядке все, ты наполняешь формуляр и все данные посланы правильно в электронную почту, но не вводятся в компьютер в базу данных. Я хочу знать, в котором он исходит из моего кода, я плохо, или что мне надо добавлять.

Так как этот формуляр считает с email,confirmaemail,contraseña и confirmacontraseña и я надеюсь, что они могут помогать мне применять соответствующие утверждения для того, чтобы это смогло функционировать.

<?

$C_FIRST_NAME=$_POST['C_FIRST_NAME'];
$C_SECOND_NAME=$_POST['C_SECOND_NAME'];
$C_FIRST_LAST_NAME=$_POST['C_FIRST_LAST_NAME'];
$C_SECOND_LAST_NAME=$_POST['C_SECOND_LAST_NAME'];
$C_EMAIL=$_POST['C_EMAIL'];
$C_EMAIL_CONFIRMATION= $_POST['C_EMAIL_CONFIRMATION'];
$C_PASSWORD=$_POST['C_PASSWORD'];
$C_PASSWORD_CONFIRMATION=$_POST['C_PASSWORD_CONFIRMATION'];
$C_CELLPHONE=$_POST['C_CELLPHONE'];
$C_ADDRESS=$_POST['C_ADDRESS'];
$C_CITY=$_POST['C_CITY'];
$C_STATE=$_POST['C_STATE'];
$C_ZIP_CODE=$_POST['C_ZIP_CODE'];
$C_COUNTRY=$_POST['C_COUNTRY'];
$C_CREDIT_CARD_TYPE=$_POST['C_CREDIT_CARD_TYPE'];
$C_CARD_NUMBER=$_POST['C_CARD_NUMBER'];
$C_CARD_EXP_MONTH=$_POST['C_CARD_EXP_MONTH'];
$C_CARD_EXP_YEAR=$_POST['C_CARD_EXP_YEAR'];
$C_CARDHOLDER_NAME=$_POST['C_CARDHOLDER_NAME'];
$C_CARD_SECURITY_CODE=$_POST['C_CARD_SECURITY_CODE'];
$C_CARD_ZIP_CODE=$_POST['C_CARD_ZIP_CODE'];
$R1_FIRST_NAME=$_POST['R1_FIRST_NAME'];
$R1_SECOND_NAME=$_POST['R1_SECOND_NAME'];
$R1_FIRST_LAST_NAME=$_POST['R1_FIRST_LAST_NAME'];
$R1_SECOND_LAST_NAME=$_POST['R1_SECOND_LAST_NAME'];
$R1_EMAIL=$_POST['R1_EMAIL'];
$R1_EMAIL_CONFIRMATION=$_POST['R1_EMAIL_CONFIRMATION'];
$R1_CELLPHONE=$_POST['R1_CELLPHONE'];
$R1_ADDRESS=$_POST['R1_ADDRESS'];
$R1_CITY=$_POST['R1_CITY'];
$R1_STATE=$_POST['R1_STATE'];
$R1_ZIP_CODE=$_POST['R1_ZIP_CODE'];
$R1_COUNTRY=$_POST['R1_COUNTRY'];
$R1_BANKING_CTR=$_POST['R1_BANKING_CTR'];
$R1_DELIVERY_METHOD=$_POST['R1_DELIVERY_METHOD'];
$R1_BNK_ACCT_NBR=$_POST['R1_BNK_ACCT_NBR'];
$R1_BNK_ACCT_NBR_CONFIRMATION=$_POST['R1_BNK_ACCT_NBR_CONFIRMATION'];
$R1_BANK_CITY=$_POST['R1_BANK_CITY'];
$R1_BANK_STATE=$_POST['R1_BANK_STATE'];

require("connect_db.php");

mysql_query("INSERT INTO usuarios (C_FIRST_NAME,C_SECOND_NAME,C_FIRST_LAST_NAME,C_SECOND_LAST_NAME,C_EMAIL,C_PASSWORD,C_CELLPHONE,C_ADDRESS,C_CITY,C_STATE,C_ZIP_CODE,
C_COUNTRY,C_CREDIT_CARD_TYPE,C_CARD_NUMBER,C_CARD_EXP_MONTH,C_CARD_EXP_YEAR,C_CA   RDHOLDER_NAME,C_CARD_SECURITY_CODE,C_CARD_ZIP_CODE,R1_FIRST_NAME,R1_SECOND_NAME,
R1_FIRST_LAST_NAME,R1_SECOND_LAST_NAME,R1_EMAIL,R1_CELLPHONE,R1_ADDRESS,R1_CITY,R1_STATE,R1_ZIP_CODE,R1_COUNTRY,R1_BANKING_CTR,R1_DELIVERY_METHOD,R1_BNK_ACCT_NBR,
R1_BANK_CITY,R1_BANK_STATE) VALUES ('.$C_FIRST_NAME.', '.$C_SECOND_NAME.'
, '.$C_FIRST_LAST_NAME.', '.$C_SECOND_LAST_NAME.', '.$C_EMAIL.'
, '.$C_PASSWORD.', '.$C_CELLPHONE.', '.$C_ADDRESS.', '.$C_CITY.'
, '.$C_STATE.', '.$C_ZIP_CODE.', '.$C_COUNTRY.'
, '.$C_CREDIT_CARD_TYPE.', '.$C_CARD_NUMBER.', '.$C_CARD_EXP_MONTH.
, '.$C_CARD_EXP_YEAR.', '.$C_CARDHOLDER_NAME.', '.$C_CARD_SECURITY_CODE.'
, '.$C_CARD_ZIP_CODE.', '.$R1_FIRST_NAME.', '.$R1_SECOND_NAME.'
, '.$R1_FIRST_LAST_NAME.', '.$R1_SECOND_LAST_NAME.', '.$R1_EMAIL.'
, '.$R1_CELLPHONE.', '.$R1_ADDRESS.'
, '.$R1_CITY.', '.$R1_STATE.', '.$R1_ZIP_CODE.'
, '.$R1_COUNTRY.', '.$R1_BANKING_CTR.', '.$R1_DELIVERY_METHOD.'
, '.$R1_BNK_ACCT_NBR.', '.$R1_BANK_CITY.'
, '.$R1_BANK_STATE.')");
?>
<?php
if ($_POST['submit'] != "")
    {
    // reciever
    $to = 'bajalodigital@gmail.com';

    // subject
    $subject = 'NEW ENROLLMENT';
    // message
    $message = '
    <html>
    <head>
      <title>'.$subject.'</title>
    </head>
    <body>
        <b>NEW CUSTOMER REGISTRATION FORM</b><br>
        <br>
        <strong>CUSTOMER INFORMATION</strong><br>

        FIRST NAME : <b>'.$_POST["C_FIRST_NAME"].'</b><br>
        SECOND NAME : <b>'.$_POST["C_SECOND_NAME"].'</b><br>
        FIRST LAST NAME : <b>'.$_POST["C_FIRST_LAST_NAME"].'</b><br>
        SECOND LAST NAME : <b>'.$_POST["C_SECOND_LAST_NAME"].'</b><br>
        EMAIL : <b>'.$_POST["C_EMAIL"].'</b><br>
        EMAIL CONFIRMATION : <b>'.$_POST["C_EMAIL_CONFIRMATION"].'</b><br>
        PASSWORD : <b>'.$_POST["C_PASSWORD"].'</b><br>
        PASSWORD CONFIRMATION : <b>'.$_POST["C_PASSWORD_CONFIRMATION"].'</b><br>
        CELLPHONE NUMBER : <b>'.$_POST["C_CELLPHONE"].'</b><br>
        ADDRESS : <b>'.$_POST["C_ADDRESS"].'</b><br>
        CITY : <b>'.$_POST["C_CITY"].'</b><br>
        STATE : <b>'.$_POST["C_STATE"].'</b><br>
        ZIP CODE : <b>'.$_POST["C_ZIP_CODE"].'</b><br>
        COUNTRY OF RESIDENCE : <b>'.$_POST["C_COUNTRY"].'</b><br>
        <br>
        <b>CUSTOMER PAYMENT METHOD</b><br>

        PAYMENT CARD TYPE : <b>'.$_POST["C_CREDIT_CARD_TYPE"].'</b><br>
        PAYMENT CARD NUMBER : <b>'.$_POST["C_CARD_NUMBER"].'</b><br>
        PAYMENT CARD EXP DATE : <b>'.$_POST["C_CARD_EXP_MONTH"].' / '.$_POST["C_CARD_EXP_YEAR"].'</b><br>
        PAYMENT CARDHOLDER NAME : <b>'.$_POST["C_CARDHOLDER_NAME"].'</b><br>
        PAYMENT CARD SECURITY CODE : <b>'.$_POST["C_CARD_SECURITY_CODE"].'</b><br>
        PAYMENT CARD ZIP CODE : <b>'.$_POST["C_CARD_ZIP_CODE"].'</b><br>
        <br>
        <b>RECEIVER INFORMATION</b><br>

        FIRST NAME : <b>'.$_POST["R1_FIRST_NAME"].'</b><br>
        SECOND NAME : <b>'.$_POST["R1_SECOND_NAME"].'</b><br>
        FIRST LAST NAME : <b>'.$_POST["R1_FIRST_LAST_NAME"].'</b><br>
        SECOND LAST NAME : <b>'.$_POST["R1_SECOND_LAST_NAME"].'</b><br>
        EMAIL : <b>'.$_POST["R1_EMAIL"].'</b><br>
        EMAIL CONFIRMATION : <b>'.$_POST["R1_EMAIL_CONFIRMATION"].'</b><br>
        CELLPHONE NUMBER : <b>'.$_POST["R1_CELLPHONE"].'</b><br>
        ADDRESS : <b>'.$_POST["R1_ADDRESS"].'</b><br>
        CITY : <b>'.$_POST["R1_CITY"].'</b><br>
        STATE : <b>'.$_POST["R1_STATE"].'</b><br>
        ZIP CODE : <b>'.$_POST["R1_ZIP_CODE"].'</b><br>
        COUNTRY OF RESIDENCE : <b>'.$_POST["R1_COUNTRY"].'</b><br>
        <br>
        <b>RECEIVER BANK ACCOUNT INFORMATION</b><br>

        BANKING INSTITUTION : <b>'.$_POST["R1_BANKING_CTR"].'</b><br>
        DELIVERY METHOD : <b>'.$_POST["R1_DELIVERY_METHOD"].'</b><br>
        BANK ACCOUNT NUMBER : <b>'.$_POST["R1_BNK_ACCT_NBR"].'</b><br>
        ACCOUNT NUMBER CONFIRMATION : <b>'.$_POST["R1_BNK_ACCT_NBR_CONFIRMATION"].'</b><br>
        BANK CITY OF LOCATION : <b>'.$_POST["R1_BANK_CITY"].'</b><br>
        BANK STATE OF LOCATION : <b>'.$_POST["R1_BANK_STATE"].'</b><br>
    </body>
    </html>
    ';
    // To send HTML mail, the Content-type header must be set
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    // Additional headers
    $headers .= 'To: '.$to. " \r\n";
    $headers .= 'From: REMESAS ENVIA <from_our@customer.com>' . "\r\n";
    // Mail it
    mail($to, $subject, $message, $headers);
    }
?>

<script type="text/javascript">
var pagina = 'ending_page.php';
var segundos = 0;
function redireccion() {
document.location.href=pagina;
}
setTimeout("redireccion()",segundos);
</script>

В базе данных все поля позволяют NULL, Кроме эта идентификация - autoincrementable, но не, если этот создается только всякий раз когда вводятся в компьютер данные нового пользователя или должен создавать для того, чтобы это смогло функционировать. Я надеюсь, что они помогают мне решать эту проблему, спасибо.

0
задан 08.04.2016, 11:00
2 ответа

Заметь: Пожалуйста, не бери этот ответ отрицательного способа. Я знаю, что он будет звучать плохо, но гарантирую тебя, что мое намерение хорошее, и что она конструктивная. Я буду отвечать общим способом на вопрос "Я хочу знать, в котором он исходит из моего кода, я плохо, или что мне надо добавлять".

Я не знаю, что он исходит из твоего кода, он способствует тому, чтобы он побил козырем вставление данных (возможно, что мы это открываем так же как, пишите, что ответ, который мне кажется, будет являться длинным) Я Нашел неудачу и я помещу решение в конце концов, но да я буду указывать тебе на какие-то части твоего кода, который ты был бы должен менять как можно раньше. Существенно, чтобы ты реализовал какие-то из этих изменений раньше даже продолжения продвигаться в проекте, потому что какие-то из них - действительно тяжелые проблемы безопасности.

Список не ни в каком порядке в особенности.

Прекрати использовать функции mysql_*, используй mysqli_* или PDO

Ты используешь функции mysql_* что пошли deprecadas/desechadas в PHP 5.5 и удаленные полностью с версии 7.0 из PHP. В Вашем месте ты был бы должен использовать PDO или MySQLi. Не имеет смысл разрабатывать в технологии, у которой нет опоры и которую с самой официальной страницы PHP рекомендует не использовать.

Дезинфицируй твои параметры ввода

Никогда, никогда, никогда не доверяй тексту, который тебе посылает пользователь. Возьми на себя ответственность каждый раз, когда пользователь - порочный человек, который пробует разрушить твою базу данных и твой веб сайт и относится к Вашим как таковым поступающим данным. 99.9 % твоих пользователей будут являться хорошими людьми, которые хотят посетить твою страницу, но достаточен 1 плохой человек, чтобы разрушать годы твердой работы в едва секундах.

Это не будет такая тяжелая проблема, если ты использовал консультации parametrizadas, что он приносит ко мне в следующую точку.

Не используй динамических SQL, используй готовые консультации

Эта неудача - благодаря тому, что ты используешь функции mysql_* что не выносят консультации preparadas/parametrizadas. Когда ты изменишься в mysqli_* или PDO, ты сможешь (и ты будешь должен) использовать готовые консультации. Это избежит того, чтобы твой код был восприимчивым в атаки вставки SQL, и да, твой код восприимчивый в атаки вставки SQL.

И уже не только с точки зрения безопасности, но также с точки зрения usabilidad: вероятность совершения человеческой неудачи, и которые консультация побила козырем, - выше с динамическими SQL чем с готовыми консультациями.

Дезинфицируй твои параметры вывода

Так важно как дезинфицировать параметры ввода, значит дезинфицировать параметры вывода, если ты не знаешь Ваш шрифт. Прямо сейчас ты пишешь на твоей веб-странице поступающие данные, которые написал пользователь, не дезинфицируя их, это делает твой восприимчивый код в атаки XSS (Кросс Сите Scripting), в которых: порочные пользователи могли бы вводить их собственный код язык сценариев JavaScript для того, чтобы он работал на твоей странице как будто это был твой собственный код!

Лучший сноп использовал перенаправления

Эта не связана прямо с безопасностью, это больше рекомендация usabilidad: не делай перенаправление с языком сценариев JavaScript, когда ты мог бы делать их с PHP или с HTML (используя этикетки meta).

Как у тебя есть код, ты реализуешь твои операции и производишь JavaSCript для redireccionar во вторую страницу, это плохое потому что: a) у пользователя мог бы быть выведенный из строя язык сценариев JavaScript и тогда только он увидит чистый лист; и b) ты производишь ненужный трафик для пользователя, который должен получать страницу, которую единственное, что он делает, состоит в том, чтобы пересылать, когда ты мог бы получать сходный результат, они используют header в PHP без необходимости того, чтобы были посланы данные клиенту, и тебя получать новую просьбу страницы.


Как решать проблему со вставлением?

Проблема, - в как ты производишь консультацию SQL динамического способа (что-то, что ты не был бы должен делать, как я объясняю наверху):

mysql_query("INSERT INTO usuarios (C_FIRST_NAME,C_SECOND_NAME,C_FIRST_LAST_NAME,C_SECOND_LAST_NAME,C_EMAIL,C_PASSWORD,C_CELLPHONE,C_ADDRESS,C_CITY,C_STATE,C_ZIP_CODE,
C_COUNTRY,C_CREDIT_CARD_TYPE,C_CARD_NUMBER,C_CARD_EXP_MONTH,C_CARD_EXP_YEAR,C_CA   RDHOLDER_NAME,C_CARD_SECURITY_CODE,C_CARD_ZIP_CODE,R1_FIRST_NAME,R1_SECOND_NAME,
R1_FIRST_LAST_NAME,R1_SECOND_LAST_NAME,R1_EMAIL,R1_CELLPHONE,R1_ADDRESS,R1_CITY,R1_STATE,R1_ZIP_CODE,R1_COUNTRY,R1_BANKING_CTR,R1_DELIVERY_METHOD,R1_BNK_ACCT_NBR,
R1_BANK_CITY,R1_BANK_STATE) VALUES ('.$C_FIRST_NAME.', '.$C_SECOND_NAME.'
, '.$C_FIRST_LAST_NAME.', '.$C_SECOND_LAST_NAME.', '.$C_EMAIL.'
, '.$C_PASSWORD.', '.$C_CELLPHONE.', '.$C_ADDRESS.', '.$C_CITY.'
, '.$C_STATE.', '.$C_ZIP_CODE.', '.$C_COUNTRY.'
, '.$C_CREDIT_CARD_TYPE.', '.$C_CARD_NUMBER.', '.$C_CARD_EXP_MONTH.
, '.$C_CARD_EXP_YEAR.', '.$C_CARDHOLDER_NAME.', '.$C_CARD_SECURITY_CODE.'
, '.$C_CARD_ZIP_CODE.', '.$R1_FIRST_NAME.', '.$R1_SECOND_NAME.'
, '.$R1_FIRST_LAST_NAME.', '.$R1_SECOND_LAST_NAME.', '.$R1_EMAIL.'
, '.$R1_CELLPHONE.', '.$R1_ADDRESS.'
, '.$R1_CITY.', '.$R1_STATE.', '.$R1_ZIP_CODE.'
, '.$R1_COUNTRY.', '.$R1_BANKING_CTR.', '.$R1_DELIVERY_METHOD.'
, '.$R1_BNK_ACCT_NBR.', '.$R1_BANK_CITY.'
, '.$R1_BANK_STATE.')");

Если ты обращаешь внимание в '.$C_CARD_EXP_MONTH. ты увидишь, что тебе не хватает кавычек завершения, что они способствуют тому, чтобы консультация была плохая sintácticamente и не работала.

Но еще есть больше, даже решив эту проблему, есть больше проблем: или тебе не хватает двойных кавычек во многих сайтах, или тебе хватает точек в этих же самых сайтах. И это будет способствовать тому, чтобы у твоих полей не было длины ни, контент, что ты думаешь, что они имеют (у них будет точка сначала и в конце концов). В самом деле, если какое-либо из твоих полей не будет varchar/text а числом, вставление прямо не удастся.

Мы увидим прямо пример с годом бренности кредитной карты ([, вводить значок с лицом паники, увидев, что формуляр обрабатывает информацию с чувствительными данными и у него есть серьезные проблемы безопасности]):

, '.$C_CARD_EXP_YEAR.',

Реализовав замену он останется как , '.2018.',. Если поле в твоей базе данных будет númerico или один год, он не удастся, потому что стоимость неправильная.

9
ответ дан 24.11.2019, 14:37

прицел файл связи реализует связь... Межгосударственный союз искать что-то в основании или взгляде связи базы данных mysql используя MySqlWorkbench.

require("connect_db.php");

Смотреть MySqlWorkbench также сможет смотреть команду INSERT будь правилен. MySqlWorkbench->Management->Client Connections.

Я думаю, что твоя команда Insert плохая, сделайте один я начинаю, чтобы упорядочивать. Другой способ состоит в том, чтобы склонять сделать твой Insert com мало полей в начало и добавить, сделав первые inserts.

Привет,

0
ответ дан 24.11.2019, 14:37