Jump to content
  • 0

Немогу((((((


Elendor
 Share

Question

У меня опять где-то ошибка, помогите найти, плз!

<?php

function validate($allSubmitted)
{
$message = "";

$passwords = $allSubmitted["pword"];
$firstPass = $passwords[0];
$secondPass = $passwords[1];
$username = $allSubmitted["name"];

if ($firstPass != $secondPass)
{$message = $message."Пароль подтвержд?н не верно.
";}

if (strlen($username) <5 || strlen($username) >20)
{$message = $message."Имя пользователя должно быть не меньше 5 и не больше 20 знаков.
";}

if ($message == "")
{$message = "OK";}

return $message;
}

function db_connect($user='Elendor', $password='758575', $db='site')


{mysql_connect('localhost', $user, $password)
or die('Попытка подключения к базе данных неудалась: ' . mysql_error());
mysql_select_db($db);}

define(UPLOADEDFILES, "/file/");

function save_document_info($fileinfo)

{$xmlfile = UPLOADEDFILES."docinfo.xml";

if(is_file($xmlfile))
{$doc = DOMDocument::load($xmlfile);
$siteElements = $doc->getElementsByTagName("site");
$root = $siteElements->item(0);

$statistics = $root->getElementsByTagName('statistics')->item(0);
$total = $statistics->getAttribute("total");
$statistics->setAttribute("total", $total + 1);}

else

{$doc = new DOMDocument('1.0');
$root = $doc->createElement('site');
$doc->appendChild($root);

$statistics = $doc->createElement("statistics");
$statistics->setAttribute("total", "1");
$statistics->setAttribute("approved", "0");
$root->appendChild($statistics);}

$filename = $fileInfo['name'];
$filetype = $fileInfo['type'];
$filesize = $fileInfo['size'];

$fileInfo = $doc->createElement("fileInfo");

$fileInfo->setAttribute("status", "pending");
$fileInfo->setAttribute("submittedBy", $_SESION["username"]);

$approvedBy = $doc->createElement("approvedBy");

$fileName = $doc->createElement("fileName");
$fileNameText = $doc->createTextNode($filename);
$fileName->appendChild($fileNameText);

$location = $doc->createElement("location");
$locationText = $doc->createTextNode(UPLOADEDFILES);
$location->appendChild($locationText);

$type = $doc->createElement("fileType");
$typeText = $doc->createTextNode($filetype);
$type->appendChild($typeText);

$size = $doc->createElement("size");
$sizeText = $doc->createTextNode($filesize);
$size->appendChild($sizeText);

$fileInfo->appendChild($approvedBy);
$fileInfo->appendChild($fileName);
$fileInfo->appendChild($location);
$fileInfo->appendChild($type);
$fileInfo->appendChild($size);

$root->appendChild($fileInfo);

$doc->save($xmlfile);}

class Content_Handler
{function start_element($parse, $name, $attrs)

{echo "Начальный элемент: ".$name."
";}

function end_element($parser, $name)

{echo "Конечный элемент: ".$name."
";}

function chars($parser, $chars)

{echo "Текст: ".$chars."
";}

}

function display_files()

{$handler = new Content_Hendler();

$doc_parser = xml_parser_create();

xml_set_object($doc_parser, $handler);

xml_set_element_handler($doc_parser,
"start_element",
"end_element");

xml_set_character_data_handler($doc_parser, "chars");

xml_parser_set_option($doc_parser,
XML_OPTION_CASE_FOLDING, 0);

$xmlfile = UPLOADEDFILES."docinfo.xml";

$file_to_parse = fopen($xmlfile, "r");
if(!$file_to_parse) die("Не получается открыть XML файл.");

while($data = fread($file_to_parse, 4096))
{xml_parse($doc_parser, $data, feof($file_to_parse));}
}

?>

Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Warning: DOMDocument::save(/file/docinfo.xml) [function.DOMDocument-save]: failed to open stream: No such file or directory in Z:homesitewwwscripts.txt on line 92

Warning: fopen(/file/docinfo.xml) [function.fopen]: failed to open stream: No such file or directory in Z:homesitewwwscripts.txt on line 128

Ту ошибку я ещ? вчера наш?л. Там где-то другая. А там где он пишет вроде вс? нормально. Ни ч? не пойму ч? он от меня хочет. Типа такого файла нет и вс?.

Я тут ещ? подумал, может он его не видит потому что у меня библиотека xml, или как там она, не установлена?

Link to comment
Share on other sites

  • 0

ну так бы сразу:+)

fopen(/file/docinfo.xml)

а теперь попробу открыть "мой компьютер" и ввести этот адрес. разумеется такого не существует, так что или указывать надо без первого слеша, или поставить перед этим слешем точку для использования относительного пути

Link to comment
Share on other sites

  • 0

поставил точку перед слэшом, но он выда?т другую ошибку:

Parse error: syntax error, unexpected T_FUNCTION in Z:homesitewwwscripts.txt on line 33

А это :

 function save_document_info($fileinfo)

Блин, какой я не внимательный, тут нада так:

 function save_document_info($fileinfo);

Забыл " ; " поставить. Он там ещ? какую-то ошибку вывел на 92 строке:

Parse error: syntax error, unexpected '}' in Z:homesitewwwscripts.txt on line 92

С этой ошибкой тоже разобрался, теперь появилось ещ? 3:

Warning: DOMDocument::load() [function.DOMDocument-load]: Document is empty in file:///Z%3A/home/site/www/file/docinfo.xml, line: 1 in Z:homesitewwwscripts.php on line 38

Warning: DOMDocument::load() [function.DOMDocument-load]: Start tag expected, '<' not found in file:///Z%3A/home/site/www/file/docinfo.xml, line: 1 in Z:homesitewwwscripts.php on line 38

Fatal error: Call to a member function getElementsByTagName() on a non-object in Z:homesitewwwscripts.php on line 39

Ещ? выведу исправленный код:

<?php

function validate($allSubmitted)
{
$message = "";

$passwords = $allSubmitted["pword"];
$firstPass = $passwords[0];
$secondPass = $passwords[1];
$username = $allSubmitted["name"];

if ($firstPass != $secondPass)
{$message = $message."Пароль подтвержд?н не верно.
";}

if (strlen($username) <5 || strlen($username) >20)
{$message = $message."Имя пользователя должно быть не меньше 5 и не больше 20 знаков.
";}

if ($message == "")
{$message = "OK";}

return $message;
}

function db_connect($user='Elendor', $password='758575', $db='site')


{mysql_connect('localhost', $user, $password)
or die('Попытка подключения к базе данных неудалась: ' . mysql_error());
mysql_select_db($db);}

define(UPLOADEDFILES, "file/");

function save_document_info($fileinfo)

{$xmlfile = UPLOADEDFILES."docinfo.xml";

if(is_file($xmlfile))
{$doc = DOMDocument::load($xmlfile);
$siteElements = $doc->getElementsByTagName("site");
$root = $siteElements->item(0);

$statistics = $root->getElementsByTagName('statistics')->item(0);
$total = $statistics->getAttribute("total");
$statistics->setAttribute("total", $total + 1);}

else

{$doc = new DOMDocument('1.0');
$root = $doc->createElement('site');
$doc->appendChild($root);

$statistics = $doc->createElement("statistics");
$statistics->setAttribute("total", "1");
$statistics->setAttribute("approved", "0");
$root->appendChild($statistics);}

$filename = $fileInfo['name'];
$filetype = $fileInfo['type'];
$filesize = $fileInfo['size'];

$fileInfo = $doc->createElement("fileInfo");

$fileInfo->setAttribute("status", "pending");
$fileInfo->setAttribute("submittedBy", $_SESION["username"]);

$approvedBy = $doc->createElement("approvedBy");

$fileName = $doc->createElement("fileName");
$fileNameText = $doc->createTextNode($filename);
$fileName->appendChild($fileNameText);

$location = $doc->createElement("location");
$locationText = $doc->createTextNode(UPLOADEDFILES);
$location->appendChild($locationText);

$type = $doc->createElement("fileType");
$typeText = $doc->createTextNode($filetype);
$type->appendChild($typeText);

$size = $doc->createElement("size");
$sizeText = $doc->createTextNode($filesize);
$size->appendChild($sizeText);

$fileInfo->appendChild($approvedBy);
$fileInfo->appendChild($fileName);
$fileInfo->appendChild($location);
$fileInfo->appendChild($type);
$fileInfo->appendChild($size);

$root->appendChild($fileInfo);

$doc->save($xmlfile);}

class Content_Handler
{function start_element($parse, $name, $attrs)

{echo "Начальный элемент: ".$name."
";}

function end_element($parser, $name)

{echo "Конечный элемент: ".$name."
";}

function chars($parser, $chars)

{echo "Текст: ".$chars."
";}

}

function display_files()

{$handler = new Content_Handler();

$doc_parser = xml_parser_create();

xml_set_object($doc_parser, $handler);

xml_set_element_handler($doc_parser,
"start_element",
"end_element");

xml_set_character_data_handler($doc_parser, "chars");

xml_parser_set_option($doc_parser,
XML_OPTION_CASE_FOLDING, 0);

$xmlfile = UPLOADEDFILES."docinfo.xml";

$file_to_parse = fopen($xmlfile, "r");
if(!$file_to_parse) die("Не получается открыть XML файл.");

while($data = fread($file_to_parse, 4096))
{xml_parse($doc_parser, $data, feof($file_to_parse));}
}

?>

Link to comment
Share on other sites

  • 0
проверяй теперь сво xml, который разбираешь, ведь он ругается что в этой иксмлке отсутствует <
Start tag expected, '<' not found in file:///Z%3A/home/site/www/file/docinfo.xml

xml у меня пустой, я фиг знаю ч? в него писать, я xml не знаю.

А на сч?т " } " так и надо, у меня Bred стоит и он подч?ркивет, например, начальный и конечный тег, точно также и с этим, вот такую " { " он поодчеркнул, а такую " } " нет потому, что е? небыло.

Подскажи, что в xml'e надо писать?

Link to comment
Share on other sites

  • 0

ну у меня аналогично только цветом, notepad++ выделяет

пример иксмл-документа:

<?xml version="1.0" standalone="yes"?>
<RaceDataset xmlns="http://tempuri.org/RaceDataset.xsd">
<xs:schema id="RaceDataset" targetNamespace="http://tempuri.org/RaceDataset.xsd" xmlns:mstns="http://tempuri.org/RaceDataset.xsd" xmlns="http://tempuri.org/RaceDataset.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="RaceDataset" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="RaceInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="RaceName" type="xs:string" minOccurs="0" />
<xs:element name="Nature" type="xs:string" default="Organics" minOccurs="0" />
<xs:element name="FirstResource" type="xs:string" default="Minerals" minOccurs="0" />
<xs:element name="SecondResource" type="xs:string" default="Energy" minOccurs="0" />
<xs:element name="MinT" type="xs:float" default="0" minOccurs="0" />
<xs:element name="MaxT" type="xs:float" default="99" minOccurs="0" />
<xs:element name="PopBonus" type="xs:float" default="0" minOccurs="0" />
<xs:element name="OutputBonus" type="xs:float" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<RaceInfo>
<RaceName>New race</RaceName>
<Nature>Organics</Nature>
<FirstResource>Minerals</FirstResource>
<SecondResource>Energy</SecondResource>
<MinT>1</MinT>
<MaxT>99</MaxT>
<PopBonus>0</PopBonus>
<OutputBonus>0</OutputBonus>
</RaceInfo>
</RaceDataset>

Link to comment
Share on other sites

  • 0
когда ещ? один файл загружаю он переписывает стрый

так и должно быть, ведь имя задаешь то же самое. если не принципиально название файла, лучше имя генерировать как-нибудь типа $name = md5(time());

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

$fname = 1;
while (file_exists('my_xml_file_'.$fname.'xml')) {$fname++;}

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy