2015-01-08 2 views
-1

Я пытаюсь вставить данные в таблицу MySQL с PHP. У меня есть форма, которую я хотел бы отправить данные формы, такие как имя пользователя и пароль. Кажется, все идет хорошо, но данные не публикуются в базе данных. Моя подключение к базе данных просто ... Вот она из файла под названием db_connection.php:Почему мои данные формы не отправляются в базу данных в php

<?php 
    define("DB_SERVER", "localhost"); 
    define("DB_USER", ""); 
    define("DB_PASS", ""); 
    define("DB_NAME", "global_gl"); 

    // 1. Create a database connection 
    $connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME); 
    // Test if connection succeeded 
    if(mysqli_connect_errno()) { 
    die("Database connection failed: " . 
     mysqli_connect_error() . 
     " (" . mysqli_connect_errno() . ")" 
    ); 
    } 
?> 

страница, которая имеет вид называется newUser.php и отправляет к себе. Вот страница:

<?php 
    require_once("/includes/session.php"); 
    require_once("includes/db_connection.php"); 
    require_once("includes/functions.php"); 
    require_once("includes/validation_functions.php"); 
?> 

<?php 
    if (isset($_POST['submit'])) { 
    // Process the form 

    // validations 
    $required_fields = array("firstName", "lastName", "email", "username", "password");//TODO: add country and birthday to this after debugging 
    validate_presences($required_fields); 

    $fields_with_max_lengths = array("username" => 30); 
    validate_max_lengths($fields_with_max_lengths); 

    if (empty($errors)) { 
     // Perform Create 
     $firstName = mysql_prep($_POST["firstName"]); 
     $lastName = mysql_prep($_POST["lastName"]); 
     $email = mysql_prep($_POST["email"]); 
     $username = mysql_prep($_POST["username"]); 
     $hashed_password = mysql_prep($_POST["password"]); 

     $query = "INSERT INTO useradmin ("; 
     $query .= " firstName, lastName, email, username, hashed_password, "; 
     $query .= ") VALUES ("; 
     $query .= " '{$firstName}','{$lastName}','{$email}','{$username}','{$hashed_password}'"; 
     $query .= ")"; 

     $result = mysqli_query($connection, $query); 

     if ($result) { 
     // Success 
     $_SESSION["message"] = "User created."; 
     redirect_to("manage_admin.php");//TODO: After cretion choose a page to return to. 
     } else { 
     // Failure 
     $_SESSION["message"] = "User creation failed."; 
     } 
    } 
    } else { 
    // This is probably a GET request 

    } // end: if (isset($_POST['submit'])) 

?> 

<?php include("includes/layouts/header.php"); ?> 

<head> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js"></script> 
<script type="text/javascript" src="scripts/bday-picker.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
    $("#createUserDatePicker").birthdaypicker({}); 

    }); 
</script> 

</head> 
<div id="main"> 
    <div id="navigation"> 
<?php// echo navigation($current_subject, $current_page); ?> 
    </div> 
    <div id="page"> 
    <form action="newUser.php" method ="post"> 
    <p>First Name: 
    <input type = "text" name ="firstName" value=""/> 
    </p> 
    <p>Last Name: 
    <input type = "text" name ="lastName" value=""/> 
    </p> 
    <p>Email: 
    <input type = "email" name ="email" value=""/> 
    </p> 
    <p>Username: 
    <input type = "username" name ="username" value=""/> 
    </p> 
    <p>Password: 
    <input type = "password" name ="password" value=""/> 
    </p> 
    Counntry: 
<?php 

    include("countrySelect/index.html"); 

?><br> 

    </p> 
    <p>Birthday: 

    <div class="picker" id="createUserDatePicker"></div> 

    </p> 

    <p> 
    <input type = "radio" name ="contactMe" value="0"/>&nbsp; Contact me with news and exclusive conent about Global Gaming League and West Coast Chill products. 
    </p> 

    <p> 
    <input type = "checkbox" name ="accept" value="0"/> &nbsp;I accept the terms of service and privacy policy. 
    </p> 
    <p> 
    <input type="submit" name="submit" value="Create User" /> 
    </p> 
    </form> 

    <p> 
    <a href ="createUser.php">Cancel</a> <!--Note: this should take us back to a previous page 
    </p> 

    </div> 
</div> 

<?php include("includes/layouts/footer.php"); ?> 

При нажатии на кнопку отправки, поля формы очищаются и ничего не сохраняется в базе данных. Не могли бы вы помочь определить, почему данные не опубликованы? Благодаря!

+0

все ошибки указаны? – violator667

+1

Проделать какую-либо базовую отладку, например 'var_dump ($ result)', чтобы определить, является ли она логической ложью? Вы просто ПРИНИМАЕТЕ, что ваш запрос всегда будет успешным. Потому что, если вы даже проверили ошибку BASIC, вам сказали бы о синтаксической ошибке, вызванной дополнительной запятой после 'hashed_password' в вашем списке полей. –

+0

Разбойная запятая для одной вещи hashed_password, '<=' $ result = mysqli_query ($ connection, $ query) или die (mysqli_error ($ connection)); 'сказал бы вам, что, как и http://php.net /manual/en/function.error-reporting.php –

ответ

3

попытка изменения

<input type="username" name ="username" value=""/> изменение type="text"

Здесь

<form action="newUser.php" method ="post">newUser.php где он, что он делает ??

+0

** Почему ** добавить 'enctype =" multipart/form-data "'? OP не загружает и не прикрепляет ничего. Это избыточно. –

+1

Посмотрите на [принятый ответ] (http://stackoverflow.com/a/4526286/), и я цитирую: * «Когда вы пишете код на стороне клиента, все, что вам нужно знать, это использование' multipart/form- data' **, когда ваша форма содержит ** любой '' elements. "* - OP не имеет никаких ** входных файлов. ** Поэтому, пожалуйста, удалите это из своего ответа, оно не обслуживает цели и вводит в заблуждение. –

+0

@ Fred-ii- спасибо чуть более уверенным в этом –

Смежные вопросы