Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2009, 19:34   #1
reyn90
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 54
По умолчанию Запрос в Visal Basic.NET(Очень интересный код)

Всем привет! Я тут прогу написал. При нажатии на кнопку введённое в TextBox1 имя должно заноситься на сервер в базу данных. При работе с браузером в базу данных приходит имя, а при работе этой программы, в базу данных приходит пустое имя. Вот код.
Код:
Imports System
Imports System.IO
Imports System.Net
Imports System.Text
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim request As WebRequest = WebRequest.Create("http://localhost/www.warez.ru/1.php")
        request.Credentials = CredentialCache.DefaultCredentials
        request.Method = "POST"
        Dim dataStream
        request.ContentType = "?name=" & TextBox1.Text & "&bt=ok"
        dataStream = request.GetRequestStream()
        dataStream.Close()
        Dim response As WebResponse = request.GetResponse()
        Dim data As Stream = response.GetResponseStream
        response.Close()
    End Sub
End Class
Я знаю что я обращаюсь к файлу где нет имени, но ведь я чуть позже написал имя. Помогите мне.
Вот код страницы для ввода Index.html и 1.php
Код:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Start</title>
</head>

<body>
<form action="1.php" method="post" name="create">
<input name="name" type="text" />
<input name="bt" type="submit" value="ok" />
</form>
</body>
</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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>


<?php
 $hostname = "localhost"; 
$username = "root"; 
$password = "system"; 
$dbName = "reyn"; 
$userstable = "zasada"; 

mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); 
mysql_select_db($dbName) or die(mysql_error());  

echo "<CENTER>"; 
echo "Привет, ".$_POST['name']; 
echo "<BR><BR>"; 
echo "Спасибо за ваш интерес.<BR><BR>"; 
echo "</CENTER>"; 

$name = $_POST['name'];

$query = "INSERT INTO $userstable VALUES('$name')"; 
mysql_query($query) or die(mysql_error()); 
echo "Информация о вас занесена в базу данных."; 
mysql_close(); 
?>
Многим будет интересен этот код так что давайте думать вместе.
А вот скрин результатов занесения в базу данных.

дальше

дальше


А вот база данных если кому надо.
Код:
-- phpMyAdmin SQL Dump
-- version 2.11.6
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Июн 09 2009 г., 19:42
-- Версия сервера: 5.0.51
-- Версия PHP: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- База данных: `reyn`
--

-- --------------------------------------------------------

--
-- Структура таблицы `zasada`
--

CREATE TABLE `zasada` (
  `name` varchar(25) collate utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Дамп данных таблицы `zasada`
--
reyn90 вне форума Ответить с цитированием
Старый 09.06.2009, 23:03   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Попробуйте вот это из консоли (1.php Ваш):
Код:
Imports System
Imports System.IO
Imports System.Net
Imports System.Text

Module Module1

    Sub Main()
        Dim request As WebRequest = WebRequest.Create("http://localhost/denwer/1.php")
        request.Credentials = CredentialCache.DefaultCredentials
        request.Method = "POST"
        request.ContentType = "application/x-www-form-urlencoded"
        Dim S As String = "&name=5555555&bt=ok"
        request.ContentLength = S.Length
        Dim w As StreamWriter = New StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII)
        w.Write(S)
        w.Close()

        Dim response As WebResponse = request.GetResponse()
        Dim data As Stream = response.GetResponseStream

        Dim r As StreamReader = New StreamReader(data)
        Dim text As String = r.ReadToEnd()
        Console.WriteLine(text)

        response.Close()
    End Sub

End Module
-------------------
В WinForms то-же самое. Сравните с Вашим кодом

Последний раз редактировалось alexBlack; 10.06.2009 в 20:59. Причина: добавлена последняя фраза в ответ на "мне б без консоли"
alexBlack вне форума Ответить с цитированием
Старый 10.06.2009, 19:04   #3
reyn90
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 54
По умолчанию

Мне б без консоли если можно
reyn90 вне форума Ответить с цитированием
Старый 11.06.2009, 19:03   #4
reyn90
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 54
По умолчанию

Ваша консоль отлично работает. Но нельзяи как нибудь поменять консоль на форму. Что то вроде
заменить
Код:
Console.WriteLine(text)
на
Код:
TextBox1.Text = text
reyn90 вне форума Ответить с цитированием
Старый 11.06.2009, 22:11   #5
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Да, именно так, как Вы написали. Или RichTextBox1.Text = text. А нужна ли Вам эта часть. В моем примере так сделано чтобы проверить результат (соответственно из 1.php пришлось выкинуть все обращения к БД). У Вас же есть практически готовый код. Просто подправьте его. Что-то вроде (не проверял):

Код:
        Dim request As WebRequest = WebRequest.Create("http://localhost/www.warez.ru/1.php")
        request.Credentials = CredentialCache.DefaultCredentials
        request.Method = "POST"
        request.ContentType = "application/x-www-form-urlencoded"
        Dim S As String = "&name=" & TextBox1.Text & "&bt=ok"
        request.ContentLength = S.Length
        Dim w As StreamWriter = New StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII)
        w.Write(S)
        w.Close()
alexBlack вне форума Ответить с цитированием
Старый 13.06.2009, 06:25   #6
reyn90
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 54
По умолчанию

alexBlack я тут попытался отправить слова, а в базу данных пришли какие то цифры. Это наверное кадировака текста? Как можно обойти это?
Я пишу
Dim n As String
Console.Read(n)
Dim S As String = "&name=" & n & "&bt=ok"
Ввожу "renald" а получаю в базе цифры
Помогите.
reyn90 вне форума Ответить с цитированием
Старый 13.06.2009, 08:44   #7
reyn90
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 54
По умолчанию

Извени, ошибся. Все нормально работает.
Только русские буквы не принимает пишет в базе ??????? вместо Ренальд
а вот теперь вопрос. есть функция которая кодирут строки как в гугле. Например при поиске в гугле в его строке появляются символы %CD%FY%SJ
reyn90 вне форума Ответить с цитированием
Старый 13.06.2009, 10:59   #8
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Попробуйте:

Код:
 Dim S As String = "&name=" & HttpUtility.UrlEncode("русские символы") & "&bt=ok"
// Если будете пробовать в консоли, нужно добавить в Reference System.Web
alexBlack вне форума Ответить с цитированием
Старый 14.06.2009, 00:22   #9
reyn90
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 54
По умолчанию

Спосибо, а можно с помощью запросов картинку скачать?
Использовать два запроса подряд на один сайт с одной сессией?
А у тебя есть учебное пособие по созданию токого типа программ или ссылка? Очень надо.

Последний раз редактировалось reyn90; 14.06.2009 в 02:10.
reyn90 вне форума Ответить с цитированием
Старый 15.06.2009, 19:57   #10
reyn90
Пользователь
 
Регистрация: 30.05.2009
Сообщений: 54
По умолчанию

у тебя есть учебное пособие по созданию токого типа программ
пожалуста подкинь ссылки
reyn90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень интересный проект " The Battle For Middle-earth-3" Witch-Lord Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 23.06.2009 00:00
Отправка почты на Visual Basic .Net или в дельфи Alex88888 Помощь студентам 2 06.03.2009 18:29
Visual Basic .Net (2005) Amdy Помощь студентам 4 11.06.2008 13:49
Таблица заранее неизвестного размера в Basic.net byte916 Помощь студентам 1 02.04.2008 02:38