Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обрезаются слова при сохранении их в базу данных
 
 автор: Soneks   (15.02.2007 в 15:43)   письмо автору
 
 

Вот это форма для заполнения посетителю:


<p align="left">
<div class="zz">
<form class="form" action="check/" method="post">
</div>




<div class="z">
Nick name<br/>
</div>

<div class="zz">
Ваше будущее прозвище, виртуальное имя, состоящее из англ. символов (2-20 симв.):<br/>
<input class="input" name="username" value=""><br/>
</div>





<div class="z">
Password<br/>
</div>

<div class="zz">
Ваш пароль, разрешаются только англ. символы и цифры (5-20 симв.):<br/>
<input class="input" name="userpassword" value=""><br/>
<input class="submit" value="Продолжить" type="submit"/>
</form>
</div>
</p>





Далее делаю проверку, она работает - писать не буду.





Далее если всё хорошо пишу в базу


    ////////////////////////
    // record | запись
        else
        {
        $username = substr($_POST['username'],2,20);
        $username = htmlspecialchars(stripslashes($username));
        $userpassword = substr($_POST['userpassword'],5,20);
        $userpassword = htmlspecialchars(stripslashes($userpassword));


////////////////////////
// record | запись
mysql_query("INSERT INTO all_authorized_users set username='$username', userpassword='$userpassword'");
                ////////////////////////////////////////////////////////////////////////////////////////////////////

        print '
        <p align="left">
        <div class="zz">
        Операция успешно завершена!<br/>
        </div>
        </p>
        ';
        }
        //





И ГЛАВНАЯ ПРОБЛЕМА в том, что в столбец пароль он ВООБЩЕ НИЧЕГО не пишет! А в столбец имя пользователя пишет, но обрезает! притом не понять как: то ли первые 3 буквы, то ли последние 2, даже не понять.













Мне очень нужна ваша помощь!!!!!!!!!!

   
 
 автор: alek_chita   (15.02.2007 в 15:48)   письмо автору
 
   для: Soneks   (15.02.2007 в 15:43)
 

первым делом нужно проверить типы полей таблицы.

   
 
 автор: Soneks   (15.02.2007 в 15:54)   письмо автору
 
   для: alek_chita   (15.02.2007 в 15:48)
 

у обоих стоит varchar(20)

   
 
 автор: Trianon   (15.02.2007 в 16:20)   письмо автору
 
   для: Soneks   (15.02.2007 в 15:54)
 

Вы наворотили всякой фигни

        $username = substr($_POST['username'],2,20); 
        $username = htmlspecialchars(stripslashes($username)); 
        $userpassword = substr($_POST['userpassword'],5,20); 
        $userpassword = htmlspecialchars(stripslashes($userpassword)); 

а теперь удивляетесь.

Зачем все эти substr, stripslashes, htmlspecialchars ?
Что за страсть применять функции, не понимая, что они делают, и зачем используются?!

   
 
 автор: Soneks   (15.02.2007 в 16:22)   письмо автору
 
   для: Trianon   (15.02.2007 в 16:20)
 

HTML-теги удаляет!

   
 
 автор: Trianon   (15.02.2007 в 16:37)   письмо автору
 
   для: Soneks   (15.02.2007 в 16:22)
 

Кто-то Вас ввел в заблуждение. Не делают они этого.

   
 
 автор: t4f   (15.02.2007 в 15:57)   письмо автору
 
   для: Soneks   (15.02.2007 в 15:43)
 

Проверь sql синтаксис
INSERT INTO all_authorized_users set username='$username', userpassword='$userpassword'
и попробуй так
INSERT INTO all_authorized_users (username, userpassword) VALUES ('$username', '$userpassword')

   
 
 автор: Soneks   (15.02.2007 в 16:20)   письмо автору
 
   для: t4f   (15.02.2007 в 15:57)
 

Все равно обрезает!!!!!!
Может как-то с кодировкой связано? Страница в utf-8 сохраняется!

   
 
 автор: cheops   (15.02.2007 в 16:31)   письмо автору
 
   для: Soneks   (15.02.2007 в 15:43)
 

Вот эта строка
<?php
 $userpassword 
substr($_POST['userpassword'],5,20);
?>

означает, что из пароля вырезаются первые пять символов и все символы после 25 позиции. Лучше вообще убрать эту строку.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования