2014-01-15 5 views
0

==> index.php данные.PHP сохранение в базе данных

==> anotherpage.php

<?php 

define('DB_NAME', 'test'); 
define('DB_USER', 'root'); 
define('DB_PASSWORD', ''); 
define('DB_HOST', 'localhost'); 

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 

if (!$link) { 
    die('Could not connect: '. mysql_error()); 
} 

$db_selected = mysql_select_db(DB_NAME, $link); 

if (!$db_selected) { 
    die('Can\'t use '.DB_NAME.': '.mysql_error()); 
} 

echo 'Connected successfully!<br>'; 

$username = mysql_real_escape_string($_POST['user_name']); 
$password = mysql_real_escape_string($_POST['pwd']); 
$sexuality = mysql_real_escape_string($_POST['sex']); 

$sql = "INSERT INTO users (username, password, sexuality) VALUES ('".$username."','".$password."','".$sexuality."')"; 

if (!mysql_query($sql)) { 
    die('Error: '. mysqli_error($con)); 
} 

if(isset($_POST['user_name']) &&! empty($_POST['user_name']) && isset($_POST['pwd2']) &&! empty($_POST['pwd2']) && isset($_POST['pwd']) &&! empty($_POST['pwd']) && isset($_POST['sex']) &&! empty($_POST['sex']) or die('PART\'S ARE NOT FILLED!')) 
{ 
    $user_name = $_POST['user_name']; 
    $user_name_up = strtoupper($user_name); 
    $pwd = $_POST['pwd']; 
    $pwd2 = $_POST['pwd2']; 
    $sex = $_POST['sex']; 

    $fp = fopen("formdata.txt", "a"); 
    $savestring = $user_name . "," . $pwd.",".$pwd2.",".$sex." - "; 
    fwrite($fp, $savestring); 
    fclose($fp); 
} 
if($pwd == $pwd2 or die('DIFFERENT PASSWORDS!')) 
{ 
    echo $user_name_up.' ALL TAKEN!<BR>THANK YOU!!!<br><h1>You data has been saved!</h1>'; 
} 


?> 

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

Если я меняю место своего кода, я получаю сообщение об ошибке.

МНОГО СПАСИБО СЕЙЧАС! :)

+1

Ну, вы открываете текстовый файл, записываете данные в файл и закрываете его, как только убедитесь, что все в порядке. php имеет [функции файла] (http://be2.php.net/manual/en/function.fputs.php), поэтому я действительно не могу понять, где ваша проблема? – fvu

+1

Возможно, вы захотите изучить базу данных, такую ​​как [MySQL] (http://www.freewebmasterhelp.com/tutorials/phpmysql). – Aust

+1

Ну, есть 'fwrite()' и 'file_put_contents()', для которых вы можете использовать Google. Вы обязательно найдете OODLES в Google ;-) –

ответ

0

Обратите внимание на SQL инъекций, пожалуйста, прочитайте лакомство How can I prevent SQL injection in PHP?

СКП неуместна, ниже часть должна положить в то же самое, если заявление, как, где вы сохраните файл.

$sql = 'INSERT INTO users (username, password, sexuality) VALUES ("$_POST[user_name]","$pwd","$sex")'; 

if (!mysql_query($sql)) { 
     die('Error: '. mysqli_error($con)); 
} 

Вы также изменить кавычки и добавить строку concats, чтобы он правильно работал

$sql = "INSERT INTO users (username, password, sexuality) VALUES ('".$_POST['user_name']."','".$pwd."','".$sex."')"; 

if (!mysql_query($sql)) { 
     die('Error: '. mysqli_error($con)); 
} 

Но знайте, приведенный выше код еще небезопасно, приведенный ниже код является немного более безопасным

$username = mysql_real_escape_string($_POST['user_name']); 
$password = mysql_real_escape_string($pwd); 
$sexuality = mysql_real_escape_string($sex); 

$sql = "INSERT INTO users (username, password, sexuality) VALUES ('".$username."','".$password."','".$sexuality."')"; 

Не рекомендуется сохранять пароли непосредственно в базе данных, пожалуйста, следуйте инструкциям ниже: How to change a SALT password in a database using PHP?

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