[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: "Предполагается наличие объекта"
Fess
Доброго времени суток! После переноса на новый хостинг в программе стали вылезать ошибки сценария:

user posted image

user posted image

CreateKey.php:

<?php
require_once("User.php");

$public_key = "-----BEGIN PUBLIC KEY-----
******
-----END PUBLIC KEY-----
"
;

?>
<html>
<
head>
******
</
head>
<
body style="overflow: hidden;">
<
div id="modalContent" style="width:400px; height:300px; overflow: hidden;">

<
a href="" onclick="parent.closeModalWindow(); return false;" class="close_modal">X</a>
<?php

if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) :
do {
$str = $_POST['sign'];
$msg = User::DecodeSignature($str);
if( !empty($msg) )
break;
$new_user = new User;
list( $new_user->id, $new_user->timestamp ) = User::ParseSignature($str);
if( !isset($new_user->timestamp) ) {
$msg = $new_user->id;
break;
}
$new_user->person = $_POST['fio'];
$new_user->email = $_POST['email']; //строка 69
$new_user->phone = $_POST['phone'];
$new_user->org = $_POST['org'];
$new_user->is_admin = array_key_exists('isadmin', $_POST);
//print_r($new_user);
$new_user->WriteFile(); //строка 74
} while(0);
?>
<p>Ключ инициализирован и зарегистрирован в системе.</p>
<
p>Вставьте административный ключ перед тем как закрыть окно или нажмите
<a href="javascript:void(0);" onclick="navigate('CreateKey.php'); return false;">подготовка нового ключа</a>.
</
p>
<?php
else : // Not POST
?>
<p>Подготовка и регистрация нового ключа. <b>Замените рабочий ключ на новый.</b></p>
<
form method="post" action="CreateKey.php">
<
input type="hidden" value="" id="sign" name="sign">

<
div class="field">
<
div class="header">Организация:</div>
<
div class="content"><input type="text" value="" id="org" name="org"></div>
</
div>
<
div class="field">
<
div class="header">Представитель:</div>
<
div class="content">
<
input type="text" value="" id="fio" name="fio">
<
span class="obligatory">*</span>
</
div>
</
div>
<
div class="field">
<
div class="header">Телефон:</div>
<
div class="content"><input type="text" value="" id="phone" name="phone"></div>
</
div>
<
div class="field">
<
div class="header">Эл.почта:</div>
<
div class="content">
<
input type="text" value="" id="email" name="email">
<
span class="obligatory">*</span>
</
div>
</
div>
<
div class="field">
<
div class="header">Администратор:</div>
<
div class="content"><input type="checkbox" value="" id="isadmin" name="isadmin" class="chk_box"></div>
</
div>
<
div class="field">
<
div class="header"> </div>
<
div class="content"><input type="button" value="Зарегистрировать" onclick="InitKey();" id="register"></div>
</
div>
</
form>
<
script type="text/javascript">//<![CDATA[

var key = '<?= str_replace( "\r\n", "\\n\\\r\n", $public_key ) ?>';
parent.external.AutoClosing = 0;

function InitKey()
{
var emlVal = trim( document.getElementById( "email" ).value );
var fioVal = trim( document.getElementById( "fio" ).value );
if ( emlVal.length > 0 && fioVal.length > 0 )
{
try {
parent.external.PublicKey = key;
}
catch(err) {
alert("Ошибка!\n" + err.description );
return;
}
document.getElementById( "sign" ).value = parent.external.Signature;

document.forms[0].submit();

} else if ( fioVal.length == 0 )
{
document.getElementById( "fio" ).focus();

} else if ( emlVal.length == 0 )
{
document.getElementById( "email" ).focus();
}
}


function trim( val )
{
return val.replace("^\s*|\s*$", '');
}
//]]></script>
<?php
endif;
?>
</div>
</
body>


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



Спустя 15 минут, 50 секунд (18.08.2011 - 10:18) Michael написал(а):
Это ошибки javascript и поэтому показывать надо исходный код в браузере.

Спустя 18 минут, 17 секунд (18.08.2011 - 10:36) Fess написал(а):
Дело в том, что это все работает не через браузер, а через отдельную программку

Спустя 59 минут (18.08.2011 - 11:35) Fess написал(а):
после удаления части:

 <?php
require_once("User.php");

$public_key = "-----BEGIN PUBLIC KEY-----
******
-----END PUBLIC KEY-----
"
;

?>


Получил такой исходный код:

 <html>
<head>
<link
href="Theme/main.css" rel="stylesheet" type="text/css" />
<style
type="text/css">
.field
{ width: 400px;
overflow: hidden;
margin: 2px 0;
}
.field .header
{ width: 110px;
float: left;
}
.field .content
{ margin-left: 120px;
}
.field .content input
{ width: 200px;
}
.field #register
{ margin-top: 10px;
}
.field .content .chk_box
{ width: auto;
margin-left: -5px;
}
span.obligatory
{
color: red;
}

</style>
</head>
<body
style="overflow: hidden;">
<div
id="modalContent" style="width:400px; height:300px; overflow: hidden;">
<a
href="" onclick="parent.closeModalWindow(); return false;" class="close_modal">X</a>
<p>
Подготовка и регистрация нового ключа. <b>Замените рабочий ключ на новый.</b></p>
<form
method="post" action="CreateKey.php">
<input
type="hidden" value="" id="sign" name="sign">

<div
class="field">
<div
class="header">Организация:</div>
<div
class="content"><input type="text" value="" id="org" name="org"></div>
</div>
<div
class="field">
<div
class="header">Представитель:</div>
<div
class="content">
<input
type="text" value="" id="fio" name="fio">
<span
class="obligatory">*</span>
</div>
</div>
<div
class="field">
<div
class="header">Телефон:</div>
<div
class="content"><input type="text" value="" id="phone" name="phone"></div>
</div>
<div
class="field">
<div
class="header">Эл.почта:</div>
<div
class="content">
<input
type="text" value="" id="email" name="email">
<span
class="obligatory">*</span>
</div>
</div>
<div
class="field">
<div
class="header">Администратор:</div>
<div
class="content"><input type="checkbox" value="" id="isadmin" name="isadmin" class="chk_box"></div>
</div>
<div
class="field">
<div
class="header"> </div>
<div
class="content"><input type="button" value="Зарегистрировать" onclick="InitKey();" id="register"></div>
</div>
</form>
<script
type="text/javascript">//<![CDATA[

var key = '';
parent.external.AutoClosing = 0;

function InitKey()
{
var emlVal = trim( document.getElementById( "email" ).value );
var fioVal = trim( document.getElementById( "fio" ).value );
if ( emlVal.length > 0 && fioVal.length > 0 )
{
try {
parent.external.PublicKey = key;
}
catch(err) {
alert("Ошибка!\n" + err.description );
return;
}
document.getElementById( "sign" ).value = parent.external.Signature;

document.forms[0].submit();

} else if ( fioVal.length == 0 )
{
document.getElementById( "fio" ).focus();

} else if ( emlVal.length == 0 )
{
document.getElementById( "email" ).focus();
}
}


function trim( val )
{
return val.replace("^\s*|\s*$", '');
}
//]]></script>
</div>
</
body>


Причем ошибки сценария не вылезают, но при нажатии "Зарегистрировать" выползает ошибка:

Индекс находился вне границ массива

Спустя 3 часа, 6 минут, 40 секунд (18.08.2011 - 14:42) Fess написал(а):
Касательно незавершенной строковой константы ругается очевидно на этот код:

<?php
require_once("User.php");

$public_key = "-----BEGIN PUBLIC KEY-----
************RRLjbsiyeSuONA0
************Ja4wSgC6pp/UG
************306FxAsr+7yvxS
************FV4iQIDAQAB
-----END PUBLIC KEY-----
"
;

?>


Попробовал повыставлять в концестрок "\\" ошибка ушла само собой, но далее получил вот такую адскую ошибку сценария:
error:0906D06C:PEM routines:PEM_read_bio:no start line

Спустя 24 минуты, 55 секунд (18.08.2011 - 15:06) linker написал(а):
Это ошибка Javascript и вам ясно всё написали в тексте ошибки. Проблема здесь
var key = '<?= str_replace( "\r\n", "\\n\\\r\n", $public_key ) ?>';
, возникает она из-за того, что внутри $public_key скорее всего есть символ ' и вообще не понятно, нафига нужен здесь str_replace()

Спустя 23 минуты, 58 секунд (18.08.2011 - 15:30) Fess написал(а):
внутри $public_key ничего кроме цифр, букв, "/" и "+" нет

Цитата
и вообще не понятно, нафига нужен здесь str_replace()


а как можно по-другому сделать?

Спустя 18 минут, 7 секунд (18.08.2011 - 15:49) linker написал(а):
var key = '<?php echo preg_replace("/\n/", '\' + "\n" + \'', $public_key); ?>';

Спустя 16 минут, 4 секунды (18.08.2011 - 16:05) Fess написал(а):
linker, спасибо огромное, все заработало smile.gif
Быстрый ответ:

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