[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод в пхп из формы
veka2006
Не выводится содержимое password. Причем результат работы пхп из html документа отображается в нем, в sendpay.php он его тоже передает (проверял другим скриптом, а выводить не выводит.

"test1.html"


<?php
session_start();
$password=md5(uniqid(rand(),true));
?>

<form
action="sendpay.php" method="POST">

<p>
<td><EM>
<input
type="text" name="password" maxlength="100" value="<?php echo $password;?>"></td></tr>
</p>
<td><input
type="submit" name="sendMail" value="Заказать" /></td></tr>



"sendpay.php"


<?
if (isset($_POST['password'])) print $_POST['password'];
?>




Спустя 24 минуты, 34 секунды (13.01.2010 - 12:02) ИНСИ написал(а):
veka2006 попробуй в файле sendpay.php прописать это:
if($_POST['password']) $password = $_POST['password'];
if($password) {
echo $password;
}


а вот это
$password=md5(uniqid(rand(),true));


не совсем понимаю smile.gif по идее, сама функция uniqid() уже создает случайный набор символом. Так что. можешь сделать просто так:
$password = md5(uniqid);

просто зачем лишний раз функцию еще гонять smile.gif

Спустя 3 минуты, 52 секунды (13.01.2010 - 12:06) jetistyum написал(а):
Выводит.. просто не все браузеры могут работать с жутко невалидной версткой.
я смотрел в хроме.

Спустя 1 минута, 36 секунд (13.01.2010 - 12:07) ИНСИ написал(а):
jetistyum у меня такое было, потому что сервер не работал на прямую с $_POST $_GET. Надо было их заносить в переменную, а потом к ним обращаться.

Быть может у veka2006 такая же ситуация.

Спустя 45 секунд (13.01.2010 - 12:08) jetistyum написал(а):
Сори, вроде не правильно понял, а где он его выводить должен?
во втором файле ("sendpay.php") ????
1.как же ты знаешь что он туда передается, если не можешь посмотреть что туда передалось?
2. сделай валидную разметку формы и проверь еще раз


Спустя 1 минута, 16 секунд (13.01.2010 - 12:09) jetistyum написал(а):
welbox2
Впервые такое слышу... ИМХО не может быть такого !
елси переменная содержит в себе что-то что можно присвоить другой переменной, то это можно и через echo вывести.

Спустя 2 минуты, 36 секунд (13.01.2010 - 12:12) veka2006 написал(а):
Спасибо, заработало, но без скрипта, а в сочетании с моим скриптом не пашет sad.gif
Вот полностью скрипт:

<?php

if($_POST['password']) $password = $_POST['password'];
if($password) {
echo $password;
}

session_start();
$admin = 'info@123.ru';

if ( isset( $_POST['sendMail'] ) ) {
$name = substr( $_POST['name'], 0, 64 );
$country = substr( $_POST['country'], 0, 64 );
$index = substr( $_POST['index'], 0, 64 );
$respublic = substr( $_POST['respublic'], 0, 64 );
$area = substr( $_POST['area'], 0, 64 );
$rayon = substr( $_POST['rayon'], 0, 64 );
$city = substr( $_POST['city'], 0, 64 );
$street = substr( $_POST['street'], 0, 64 );
$phone = substr( $_POST['phone'], 0, 64 );
$denr = substr( $_POST['denr'], 0, 64 );
$zakaz = substr( $_POST['zakaz'], 0, 64 );
$kolvo = substr( $_POST['kolvo'], 0, 64 );
$dom = substr( $_POST['dom'], 0, 64 );
$korp = substr( $_POST['korp'], 0, 64 );
$hata = substr( $_POST['hata'], 0, 64 );
$month = substr( $_POST['month'], 0, 64 );
$year = substr( $_POST['year'], 0, 64 );
$email = substr( $_POST['email'], 0, 64 );
$password = substr( $_POST['password'], 0, 64 );

$error = '';
if ( empty( $name ) ) $error = $error.'<li>Не заполнено поле "ФИО"</li>';
if ( empty( $country ) ) $error = $error.'<li>Не заполнено поле "Страна"</li>';
if ( empty( $city ) ) $error = $error.'<li>Не заполнено поле "Город"</li>';
if ( empty( $street ) ) $error = $error.'<li>Не заполнено поле "Улица"</li>';
if ( empty( $dom ) ) $error = $error.'<li>Не заполнено поле "Дом"</li>';
if ( empty( $hata ) ) $error = $error.'<li>Не заполнено поле "Квартира"</li>';
if ( empty( $kolvo ) ) $error = $error.'<li>Не заполнено поле "Количество"</li>';
if ( !empty( $error ) ) {
$_SESSION['sendMailForm']['error'] = '<p>При заполнении формы были допущены ошибки:</p><ul>'.$error.'</ul>';
$_SESSION['sendMailForm']['phone'] = $phone;
$_SESSION['sendMailForm']['name'] = $name;
$_SESSION['sendMailForm']['kolvo'] = $kolvo;
$_SESSION['sendMailForm']['country'] = $country;
$_SESSION['sendMailForm']['city'] = $city;
$_SESSION['sendMailForm']['street'] = $street;
$_SESSION['sendMailForm']['hata'] = $hata;
$_SESSION['sendMailForm']['dom'] = $dom;
header( 'Location: sendpay.php' );
die();
}

$body = "ДАННАЯ ФОРМА ЗАПОЛНЕНА НА САЙТЕ MAXIFAL.RU\r\n".$no."\r\n";
$body .= "E-Mail:\r\n".$email."\r\n";
$body .= "ФИО:\r\n".$name."\r\n";
$body .= "Индекс:\r\n".$index."\r\n";
$body .= "Страна:\r\n".$country."\r\n";
$body .= "Республика:\r\n".$respublic."\r\n";
$body .= "Область:\r\n".$area."\r\n";
$body .= "Район:\r\n".$rayon."\r\n";
$body .= "Город:\r\n".$city."\r\n";
$body .= "Улица:\r\n".$street."\r\n";
$body .= "Дом:\r\n".$dom."\r\n";
$body .= "Корпус:\r\n".$korp."\r\n";
$body .= "Квартира:\r\n".$hata."\r\n";
$body .= "Телефон:\r\n".$phone."\r\n";
$body .= "День рождения:\r\n".$denr."\r\n";
$body .= "Месяц рождения:\r\n".$month."\r\n";
$body .= "Год рождения:\r\n".$year."\r\n";
$body .= "Заказ:\r\n".$zakaz."\r\n";
$body .= "Кол-во:\r\n".$kolvo."\r\n";
$body .= "password:\r\n".$password."\r\n";
$body .= "Дополнительня информация:\r\n".$message;
$body = quoted_printable_encode( $body );

$theme = '=?windows-1251?B?'.base64_encode('Оформлен заказ').'?=';
$headers = "From: ".$_SERVER['SERVER_NAME']." <".$email.">\r\n";
$headers = $headers."Return-path: <".$email.">\r\n";
$headers = $headers."Content-type: text/plain; charset=\"windows-1251\"\r\n";
$headers = $headers."Content-Transfer-Encoding: quoted-printable\r\n\r\n";

if ( mail($admin, $theme, $body, $headers) )
$_SESSION['success'] = true;
else
$_SESSION['success'] = false;
header( 'Location: sendpay.php' );
die();
}

function quoted_printable_encode ( $string ) {
$string = preg_replace_callback (
'/[^\x21-\x3C\x3E-\x7E\x09\x20]/',
'quoted_printable_encode_character',
$string
);
$newline = "=\r\n"; // '=' + CRLF (rule #4)
$string = preg_replace ( '/(.{73}[^=]{0,3})/', '$1'.$newline, $string);
return $string;
}

function quoted_printable_encode_character ( $matches ) {
$character = $matches[0];
return sprintf ( '=%02x', ord ( $character ) );
}
?>


Если начиная с session_start(); все убрать, то выводит, но сам скрипт убрать нельзя. Что можете посоветовать?

Спустя 1 минута, 24 секунды (13.01.2010 - 12:13) veka2006 написал(а):
Через echo тоже пробовал - не выводит sad.gif

Спустя 1 минута, 28 секунд (13.01.2010 - 12:15) jetistyum написал(а):
может у тебя падает скрипт на mail () ??? по таймауту? если локально запускаешь, наверняка не настроена mail()

Спустя 2 минуты, 16 секунд (13.01.2010 - 12:17) ИНСИ написал(а):
jetistyum говорил же!!! очень странно, но есть такие серверы smile.gif
veka2006 что именно не работает?

Спустя 26 секунд (13.01.2010 - 12:18) veka2006 написал(а):
Зпускаю на хостинге, все работает, и письмо приходит!
(Все кроме вывода значения password)

Спустя 5 минут, 1 секунда (13.01.2010 - 12:23) veka2006 написал(а):
Именно не отображается на странице вывод password. (хотя через post приходит, судя по тому что письмо приходит с выводом password).

Спустя 4 минуты, 32 секунды (13.01.2010 - 12:27) VolCh написал(а):
Выводить-то он может и выводит, просто твои
  header( 'Location: sendpay.php' );
die();
браузер обрабатывает быстрее, чем ты успеваешь прочитать wink.gif

Спустя 4 минуты, 57 секунд (13.01.2010 - 12:32) veka2006 написал(а):
С другими заголовками не работает, это уже проверено. Есть способ исправить?

Спустя 1 минута, 57 секунд (13.01.2010 - 12:34) jetistyum написал(а):
welbox2
не ! не верю!!!!


давай запустим тестовый скрипт и проверим! smile.gif

Спустя 12 минут, 20 секунд (13.01.2010 - 12:46) VolCh написал(а):
Цитата (veka2006 @ 13.01.2010 - 12:32)
С другими заголовками не работает, это уже проверено. Есть способ исправить?

Закомменти header и die свои все - будет выводить?

Спустя 31 секунда (13.01.2010 - 12:47) jetistyum написал(а):
Сохраняешь в файле testform.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>
test</title>
</head>
<body>
<form
method ="POST" action ="formsubmit.php">
<label
for="login">Login</label>
<input
type="text" name="login" id="login"/><br/>

<label
for="password">Password</label>
<input
type="text" name="password" id="password"/><br/>

<input
type="submit" name="submit" value="Test"/>
</form>
</body>
</html>



сохраняешь в файле formsubmit.php

<?php
print_r($_POST);
echo '<br/><br/>';
echo 'Password is: <b>'.$_POST['password'].'</b>';


Спустя 2 минуты, 55 секунд (13.01.2010 - 12:50) veka2006 написал(а):
http://maxifal.ru/zakaz4.html -тут первая форма, после ее заполнения переходим сюда:
http://maxifal.ru/sendpay.php и вот тут как раз должно отобразится password

Спустя 13 минут, 27 секунд (13.01.2010 - 13:03) veka2006 написал(а):
Всем ОГРОМНОЕ спасибо за участие!
Проблема решилась удалением заголовков header
Метод предложенный VolCh.

Итак. Удалил из скрипта в обоих местах

header( 'Location: sendpay.php' );
die();


Как итог отображается вывод password в sendpay.php, и в письмо приходит.

password выводится с помощью:

if($_POST['password']) $password = $_POST['password'];
if($password) {
echo $password;
}

Спустя 4 минуты, 24 секунды (13.01.2010 - 13:08) jetistyum написал(а):
попробуй всетаки сделать вместо

if($_POST['password']) $password = $_POST['password'];
if($password) {
echo $password;
}




echo 'Password:<b>'. $_POST['password'].'</b>';



Спустя 8 минут, 40 секунд (13.01.2010 - 13:16) veka2006 написал(а):
Да, и через echo заработало.

Спустя 6 минут, 39 секунд (13.01.2010 - 13:23) jetistyum написал(а):
Цитата (welbox2 @ 13.01.2010 - 12:17)
jetistyum говорил же!!! очень странно, но есть такие серверы

tongue.gif tongue.gif tongue.gif tongue.gif

Спустя 4 минуты, 24 секунды (13.01.2010 - 13:27) veka2006 написал(а):
Это мой хостинг - знать бы еще в чем дело, но на данный момент проблема решена и лекарство найдено.

Спустя 5 минут, 2 секунды (13.01.2010 - 13:32) VolCh написал(а):
Да проблемы собственно и не было, имхо, запустил бы firebug например и увидел бы что сервер выдает. Другое дело, что ты ожидал увидеть что-то другое wink.gif

Спустя 15 минут, 11 секунд (13.01.2010 - 13:48) veka2006 написал(а):
Ну да, наверное я слишком много от него хочу smile.gif
Еще раз всем спасибо за помощь!

Тема закрыта.

Спустя 5 часов, 15 минут, 19 секунд (13.01.2010 - 19:03) ИНСИ написал(а):
jetistyum ну, ну.... не веришь... ок. заметь, что ты сделал просто echo, если он попробует сделать
 if(isset($_POST['password'])) { echo $_POST['password'] }
, то ничего не выведется.

Спустя 18 часов, 42 секунды (14.01.2010 - 13:04) jetistyum написал(а):
Цитата (welbox2 @ 13.01.2010 - 19:03)
jetistyum ну, ну.... не веришь... ок. заметь, что ты сделал просто echo, если он попробует сделать
if(isset($_POST['password'])) { echo $_POST['password'] }
, то ничего не выведется.

Откуда такая информация????
если элемент массива существует, то он вернет true на isset ... соответственно код сработает, а не выведется если только password придет пустой строкой.
готов поспорить!!! smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.