Запись в базу данных. Регистрационные данные.

Тема в разделе "PHP", создана пользователем pasha814, 5 сен 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. pasha814

    pasha814 Постоялец

    Регистр.:
    11 апр 2009
    Сообщения:
    61
    Симпатии:
    9
    Начинаю изучать php.
    Делаю элементарную регистрацию.

    Есть два файла:
    index.htm

    HTML:
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    
    <head>
    	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    	<meta name="author" content="Pavel Yahimovich" />
    
    	<title>Форма регистрации</title>
    </head>
    
    <body>
    <div align="center">
    	<form method="post" action="reg.php">
    		Логин:<br />
    		<input type="text" value="" size="49" maxlength="15" name="name"/><br />
    		Электронная почта:<br />
    		<input type="text" value="" maxlength="63" size="49" name="email"/><br />
    		Пароль:<br />
    		<input type="password" maxlength="24" size="49" name="pass"/><br /><br />
    		<input type="hidden" value="create" name="action"/>
    		<input class="btn" type="submit" value="Зарегистрироваться" name="btn"/>
    </form>
    </div>
    </body>
    </html>
    
    и собственно reg.php

    PHP:
    <?php

    $db 
    mysql_connect('localhost''root''2364154') or die('Ошибка соединения с сервером');
    mysql_select_db("test"$db) or die('Ошибка при выборе базы данных');

    $result mysql_query ("INSERT INTO user (name, email, pass) VALUES ('[name]', '[email]', '[pass]')") or die(mysql_error());

    if (
    $result == 'true')
    {
    echo 
    "Информация в базу добавлена успешно!";

    }
    else 
    {
    echo 
    "Информация в базу не добавлена!";

    }
       
    ?>
    Но в базу он записывает совсем не те данные, которые я ввожу.
    Помогите пожалуйста!
     
  2. Rigor

    Rigor

    Регистр.:
    1 июн 2008
    Сообщения:
    202
    Симпатии:
    33
    Это
    INSERT INTO user (name, email, pass) VALUES ([name]', '', '[pass]

    Замени на это

    INSERT INTO user (name, email, pass) VALUES ('".$_POST[name]."', '".$_POST[email]."', '".$_POST[pass]."'

    $_POST - это глобальный массив, в котором сохраняются данные из формы. Синтаксис - $_POST['здесь name поля']


    Кстати, if ($result == 'true') - можно записать прост if ($result), т.к. $result булевая переменная. Если хочешь проверить на ложь, то соответственно if (!$result)
     
    pasha814 нравится это.
  3. dobs

    dobs Создатель

    Регистр.:
    5 янв 2007
    Сообщения:
    40
    Симпатии:
    12
    О да и кул хацкер сможет добавить свой злобный ПХП код прям в БД :smmne:
     
  4. Rigor

    Rigor

    Регистр.:
    1 июн 2008
    Сообщения:
    202
    Симпатии:
    33
    Ну так это же пример типа) Человек пока тренеруется, и если такие простые вещи пока вызывают вопросы, зачем грузить моск регурками :)? Пусть пока просто вставляет,читает данные из бд. Эксперементируем. А потом уже можно заботиться об этом.

    Добавлено через 13 минут
    PHP:
    <?php 
    $name 
    $_POST['name'];
    $mail $_POST['mail'];
    $pass $_POST['pass'];


    $db mysql_connect('localhost''root''2364154') or die('Ошибка соединения с сервером'); 
    mysql_select_db("test"$db) or die('Ошибка при выборе базы данных'); 

    $result mysql_query ("INSERT INTO `user` (`name`, `email`, `pass`) VALUES ('".$name."', '".$mail."', '".$pass."')") or die(mysql_error()); 

    if (
    $result

    echo 
    "Информация в базу добавлена успешно!"


    else  

    echo 
    "Информация в базу не добавлена!"


        
    ?>
     
Статус темы:
Закрыта.