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

Форум PHP

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

 

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

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

тема: Сокеты.....я закипаю
 
 автор: Alph[p]a   (23.04.2007 в 22:15)   письмо автору
 
 

Ситуация...надо тупо передать данные методом POST в обработчик...вроде бы просто, еслиб обработчик был бы отдельно.....а в моем случае обработчик и форма в одном файле...непонимаю((( ткните носом....вот код формы
p/s вот только недавно взялся за сокеты

<tr><td><B>Username:</B></td><td align=left><input type="text" size=40 name="username" /></td></tr>
        <tr><td><B>Password:</B></td><td align=left><input type="password" size=40 name="password" /></td></tr>
        <tr><td colspan="2" align="center"><input type="submit" value="Login" class=btn>

помогите....
быля мысле что надо рефера подделать..делал но результат = 0(

   
 
 автор: Trianon   (23.04.2007 в 22:18)   письмо автору
 
   для: Alph[p]a   (23.04.2007 в 22:15)
 

Где тег <form> ?

   
 
 автор: Alph[p]a   (23.04.2007 в 22:40)   письмо автору
 
   для: Trianon   (23.04.2007 в 22:18)
 

да это просто забыл)

<form method="post" action="account-login.php">
    <div align="center">
    <table border="0" cellpadding=5>
        <tr><td><B>Username:</B></td><td align=left><input type="text" size=40 name="username" /></td></tr>
        <tr><td><B>Password:</B></td><td align=left><input type="password" size=40 name="password" /></td></tr>
        <tr><td colspan="2" align="center"><input type="submit" value="Login" class=btn><BR><BR><i>Cookies MUST be enabled for you to login.</i></td></tr>
    </table>
    </div>

</form>

   
 
 автор: Valick   (23.04.2007 в 22:43)   письмо автору
 
   для: Alph[p]a   (23.04.2007 в 22:40)
 

А где обработчик? (хотя бы те строки которыми вы принимаете данные?)

   
 
 автор: Alph[p]a   (23.04.2007 в 22:46)   письмо автору
 
   для: Valick   (23.04.2007 в 22:43)
 

да это все дело не на локалхосте..на сайте форма..надо с помощью сокетов кинуть данные в обработчик...

   
 
 автор: Valick   (23.04.2007 в 22:50)   письмо автору
 
   для: Alph[p]a   (23.04.2007 в 22:46)
 

... а в моем случае обработчик и форма в одном файле...непонимаю(((
Я тогда тоже не понимаю)), я тоже учусь как и вы, только вы задаёте вопрос, а я пытаюсь на него ответить.

   
 
 автор: Alph[p]a   (23.04.2007 в 22:58)   письмо автору
 
   для: Valick   (23.04.2007 в 22:50)
 

ну чувак мож я и туплю сильно....но я не знаю как объянить лучше........(
дано
1. Сайт с формой страница - account-login.php - там форма.
2. account-login.php - там же обработчик.
3. мне надо через сокеты обратиться к серваку...ну минуя форму через скрипт как бы передать в часть обработки имя и пароль чтоб войти в систему...

   
 
 автор: Valick   (23.04.2007 в 23:15)   письмо автору
 
   для: Alph[p]a   (23.04.2007 в 22:58)
 

Теперь всё понятно более чем :)

   
 
 автор: Valick   (23.04.2007 в 22:40)   письмо автору
 
   для: Alph[p]a   (23.04.2007 в 22:15)
 


    <form     aсtion="<?php echo $_SERVER['SCRIPT_NAME'];?>" method="POST">

p/s поздравляю, а при чём тут сокеты?

   
 
 автор: acdcee   (23.04.2007 в 23:00)   письмо автору
 
   для: Valick   (23.04.2007 в 22:40)
 


<? 
global $username,$password,$auth,$stop;
if(isset(
$stop)){
  if(
$stop == "1"){
      echo
"Вы не заполнили поля!";
}elseif(
$stop==2){
      echo
"Введый Вами пароль не верный";
}elseif(
$stop==3){
      echo 
"Такого имени нет!";
}elseif(
$stop==4){
      echo
"В доступе отказано!";


?>

<form method="post" action="account-login.php"> 
    <div align="center"> 
    <table border="0" cellpadding=5> 
        <tr><td><B>Username:</B></td><td align=left><input type="text" size=40 name="username" /></td></tr> 
        <tr><td><B>Password:</B></td><td align=left><input type="password" size=40 name="password" /></td></tr> 
        <tr><td colspan="2" align="center"><input type="hidden" name="auth" value="1"><input type="submit" value="Login" class=btn><BR><BR><i>Cookies MUST be enabled for you to login.</i></td></tr> 
    </table> 
    </div> 

</form>
<?php 
if(isset($auth)){
   
$username=htmlspecialchars(stripslashes($username));
    
$password htmlspecialchars(md5($password));
 
$sql mysql_query("SELECT username,password FROM users WHERE username='$username'");
  list(
$users,$pass) = mysql_fetch_array($sql);
   if(empty(
$username) | | empty($password)){
      
Header("Location:account-login.php?stop=1");
}elseif(
$password != $pass){
      
Header("Location:account-login.php?stop=2");
}elseif(
$username != $users){
      
Header("Location:account-login.php?stop=3");
}elseif(
$password==$pass && $username==$users){
      
Header("Location:бла бла бла");
      
setcookie("бла бла бла !");
}else{
      
Header("Location:account-login.php?stop=4"); 
     }
}
?>


Такой скрипт писал на гостевую книгу.....

   
 
 автор: Alph[p]a   (23.04.2007 в 23:06)   письмо автору
 
   для: acdcee   (23.04.2007 в 23:00)
 

2acdcee совсем не то....блин походу никто не понимает...((((((((((
p/s форму менять нельзя....она не у меня...она где то там на серваке.......)

   
 
 автор: Unkind   (23.04.2007 в 23:14)   письмо автору
 
   для: Alph[p]a   (23.04.2007 в 23:06)
 

вроде бы просто, еслиб обработчик был бы отдельно.....а в моем случае обработчик и форма в одном файле
А что у Вас не получается?

   
 
 автор: Valick   (23.04.2007 в 23:17)   письмо автору
 
   для: Unkind   (23.04.2007 в 23:14)
 

Просто и форма и обработчик "чужие" и надо там зарегиться при помощи сокетов с другого сервака. (2Альфа - я правильно понял?)

   
 
 автор: Unkind   (23.04.2007 в 23:33)   письмо автору
 
   для: Valick   (23.04.2007 в 23:17)
 

Valick
вроде бы просто, еслиб обработчик был бы отдельно

   
 
 автор: Valick   (23.04.2007 в 23:42)   письмо автору
 
   для: Unkind   (23.04.2007 в 23:33)
 

Согласен, что отдельно, что вместе - разницы никакой.

   
 
 автор: Alph[p]a   (24.04.2007 в 15:47)   письмо автору
 
   для: Valick   (23.04.2007 в 23:42)
 

ну что здесь неправильно?


<?php
// Текст
$text='';
// Цель
$hostname "site.ru";
$path "/account-login.php";
// Соединяемся
$open=fsockopen ('site.ru'80$errno$error); 
if (!
$open) echo 'Ошибка Соединения';
else
{
// Данные которые отправляем
$data ="username=".urlencode("xxx")."&password=".urlencode("xxx")."\r\n\r\n";
$headers "GET $path HTTP/1.1\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Referer: http://".$hostname.$path."\r\n";
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
$headers .= "Content-Length: ".strlen($data)."\r\n";
$headers .= "Connection: Close\r\n\r\n";
// Отправляем
fwrite ($open,$headers);
// fwrite ($open,$headers.$data);
// Получаем и читаем ответ
while (!feof($open))
{
    
$text.=fgets($open,1024);
}
fclose($open);
}
echo 
$text;
?>


вот так вообще не отправляет..а если убрать

$headers .= "Content-Length: ".strlen($data)."\r\n";

то отправляет но результат нулевой...ну тоесть грузиться обратно страница с формой ввода...( там серв должен мне куки дать чтоб я смог дальше работать.....помогите люди.
да и выплёвывает мне эти заголовки

HTTP/1.1 200 OK Date: Tue, 24 Apr 2007 11:45:53 GMT Server: Apache/2.0.59 (FreeBSD) PHP/4.4.4 with Suhosin-Patch X-Powered-By: PHP/4.4.4 Set-Cookie: uid=null; expires=Tue, 24 Apr 2007 11:45:53 GMT; path=/ Set-Cookie: pass=null; expires=Tue, 24 Apr 2007 11:45:53 GMT; path=/ Content-Length: 4151 Connection: close Content-Type: text/html; charset=windows-1251 Content-Language: ru 
site.ru

   
 
 автор: Trianon   (24.04.2007 в 16:11)   письмо автору
 
   для: Alph[p]a   (24.04.2007 в 15:47)
 

Здесь неправильно считается длина передаваемых данных, и вероятно, неправильно выбирается версия протокола.

   
 
 автор: Unkind   (24.04.2007 в 16:19)   письмо автору
 
   для: Alph[p]a   (24.04.2007 в 15:47)
 

fwrite ($open,$headers.$data);

   
 
 автор: Alph[p]a   (24.04.2007 в 16:25)   письмо автору
 
   для: Unkind   (24.04.2007 в 16:19)
 

Unkind - непомогло...я так делал...
2Trianon - а как надо правильно считать?

   
 
 автор: Unkind   (24.04.2007 в 16:28)   письмо автору
 
   для: Alph[p]a   (24.04.2007 в 16:25)
 

Смените протокол на HTTP/1.0.

   
 
 автор: Alph[p]a   (24.04.2007 в 16:33)   письмо автору
 
   для: Unkind   (24.04.2007 в 16:28)
 

сменил....непомогло...(

   
 
 автор: Trianon   (24.04.2007 в 16:47)   письмо автору
 
   для: Alph[p]a   (24.04.2007 в 16:25)
 

без учета терминирующих CRLF
и наконец, выбран метод, не соответствующий форме.

   
 
 автор: Alph[p]a   (24.04.2007 в 17:16)   письмо автору
 
   для: Trianon   (24.04.2007 в 16:47)
 

а какой метод...а код привести можеш а то ч0то я размыто понимаю о ч0м ты говоришь)

   
 
 автор: Unkind   (24.04.2007 в 21:30)   письмо автору
 
   для: Alph[p]a   (24.04.2007 в 17:16)
 

В форме указан метод POST: method="post".
А Вы посылаете данные методом GET: $headers = "GET $path HTTP/1.1\r\n";
Замените на $headers = "POST $path HTTP/1.1\r\n";

   
 
 автор: Trianon   (24.04.2007 в 21:39)   письмо автору
 
   для: Unkind   (24.04.2007 в 21:30)
 

HTTP/1.0 !!!!!!!!!!

   
 
 автор: Unkind   (24.04.2007 в 21:44)   письмо автору
 
   для: Trianon   (24.04.2007 в 21:39)
 

Я просто скопировал :))

   
 
 автор: Trianon   (24.04.2007 в 21:49)   письмо автору
 
   для: Unkind   (24.04.2007 в 21:44)
 

Ага. мотороллер не твой.


Зла не хватает.

   
 
 автор: Alph[p]a   (24.04.2007 в 23:12)   письмо автору
 
   для: Unkind   (24.04.2007 в 21:30)
 

Unkind большое спасибо ... открыл глаза на мою глупость) теперь все доходит токо говорит что пасс неверный но это уже моя проблема...)хотя пишу вроде правильный...)))
Trianon спасибо тоже...насч0т http 1.0 тоже помогло..)

   
Rambler's Top100
вверх

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