Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Что то делаю не так, но незнаю что и где :)

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
molchun201
Отправлено: 14 Апреля, 2011 - 12:41:47
Post Id



Посетитель


Покинул форум
Сообщений всего: 295
Дата рег-ции: Февр. 2011  
Откуда: Менеск


Помог: 5 раз(а)




Проблема такая:
В форму ввожу данные (ник, пароль) и они передаются в БД, но передаются только цифры, а строки просто игнорируются Огорчение
Вот код:

Страница 1, тут форма и запись в БД, проверка if(is_string) ничего не даёт
test.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. // открываем работу с сессиями
  4.     // ПОСТ данные передаём в сессии
  5.     $_SESSION['nick'] = $_POST['nick'];
  6.     $_SESSION['pass'] = $_POST['pass'];
  7.     // Для удобства закидываем в переменные
  8.     $nick = $_SESSION['nick'];
  9.     $pass = $_SESSION['pass'];
  10.     // Конэктимсо
  11.     mysql_connect("localhost", "root") or die("error_connect");
  12.     // Выбираем БазуДанных в которой будем работать
  13.     mysql_select_db("test");
  14.     // Устанавливаем кодировку UTF8
  15.     mysql_query("SET CHARACTER SET UTF8");
  16.     // Посылаем запрос, данные берутся из формы, которую заполнит юзер
  17.     if(is_string($nick) and is_string($pass)){
  18.         $insert = mysql_query("INSERT INTO user (nickname, password) VALUES ($nick, $pass)");
  19.     }else{
  20.         echo "Данные должны содержать буквы, цифры не допускаются";
  21.     }
  22.     // Дешёвая проверочка :)
  23.     if($insert){
  24.         // редиректос
  25.         header("location: user_info.php");
  26.     }
  27.     // Закрываем [необязательно], но по спецификации просят
  28.     mysql_close();
  29. ?>
  30. <form method="post">
  31.     Введите ник:<br/>
  32.     <input type="text" name="nick"><br/>
  33.     Введите пароль:<br/>
  34.     <input type="password" name="pass"><br/>
  35.     <input type="submit">
  36. </form>
  37.  



Страница 2, тут показываются данные которые ввёл юзер и через 2 сек редирект, на главную
user_inform.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.     header('Refresh: 2; url=index.php');
  4.     echo "Данные в БД успешно внесены<br/>";
  5.     // Вызываем сессию и показываем введённые на прошлой странице данные
  6.     echo "Ваш ник: {$_SESSION['nick']}<br/>Ваш пароль: {$_SESSION['pass']}<br/>
  7.          Через 2 секунды вы попадёте на главную страницу";
  8. ?>
  9.  



Страница 3, главная
index.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.     echo "Привет {$_SESSION['nick']}! Вы на главной странице";
  4. ?>
  5.  



Если вводить числа то всё работает, а строковое нет Огорчение


-----
Обрамляйте код тегами и читайте
 
 Top
valenok Модератор
Отправлено: 14 Апреля, 2011 - 12:45:17
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




тип полей в бд varchar ?


-----
Truly yours, Sasha.
 
My status
 Top
SAD
Отправлено: 14 Апреля, 2011 - 12:45:28
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




тип полей правильно в таблице базы задайте

(Отредактировано автором: 14 Апреля, 2011 - 12:45:41)

 
 Top
molchun201
Отправлено: 14 Апреля, 2011 - 12:54:07
Post Id



Посетитель


Покинул форум
Сообщений всего: 295
Дата рег-ции: Февр. 2011  
Откуда: Менеск


Помог: 5 раз(а)




угу, тип полей варчар

(Отредактировано автором: 14 Апреля, 2011 - 12:54:54)



-----
Обрамляйте код тегами и читайте
 
 Top
valenok Модератор
Отправлено: 14 Апреля, 2011 - 12:58:19
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Тогда тебе стоит быть в курсе о том, что строки нужно заключать в кавычки, даже в запросах.
Выполни и тебе станет ясно где кавычек нет.
PHP:
скопировать код в буфер обмена
  1. echo "INSERT INTO user (nickname, password) VALUES ($nick, $pass)";


-----
Truly yours, Sasha.
 
My status
 Top
molchun201
Отправлено: 14 Апреля, 2011 - 13:09:34
Post Id



Посетитель


Покинул форум
Сообщений всего: 295
Дата рег-ции: Февр. 2011  
Откуда: Менеск


Помог: 5 раз(а)




valenok спасибо, буду знать Улыбка
плюсанул бы в карму, да нельзя пока

(Отредактировано автором: 14 Апреля, 2011 - 13:10:16)



-----
Обрамляйте код тегами и читайте
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB