Elendor Posted March 2, 2008 Report Share Posted March 2, 2008 У меня опять где-то ошибка, помогите найти, плз!<?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 More sharing options...
0 D.S.Denton Posted March 2, 2008 Report Share Posted March 2, 2008 а текст ошибки сообщать типа как не надо?возможно дело в опечатке $handler = new Content_Hendler(); при названии класса Content_Handler Link to comment Share on other sites More sharing options...
0 Elendor Posted March 2, 2008 Author Report Share Posted March 2, 2008 Warning: DOMDocument::save(/file/docinfo.xml) [function.DOMDocument-save]: failed to open stream: No such file or directory in Z:homesitewwwscripts.txt on line 92Warning: 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 More sharing options...
0 D.S.Denton Posted March 2, 2008 Report Share Posted March 2, 2008 ну так бы сразу:+)fopen(/file/docinfo.xml)а теперь попробу открыть "мой компьютер" и ввести этот адрес. разумеется такого не существует, так что или указывать надо без первого слеша, или поставить перед этим слешем точку для использования относительного пути Link to comment Share on other sites More sharing options...
0 Elendor Posted March 2, 2008 Author Report Share Posted March 2, 2008 Щас попробую! Link to comment Share on other sites More sharing options...
0 Elendor Posted March 2, 2008 Author Report Share Posted March 2, 2008 поставил точку перед слэшом, но он выда?т другую ошибку: 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 38Warning: 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 38Fatal 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 More sharing options...
0 D.S.Denton Posted March 2, 2008 Report Share Posted March 2, 2008 проверяй теперь сво xml, который разбираешь, ведь он ругается что в этой иксмлке отсутствует Start tag expected, ' Link to comment Share on other sites More sharing options...
0 D.S.Denton Posted March 2, 2008 Report Share Posted March 2, 2008 Блин, какой я не внимательный, тут нада так:неа, так не надо. в коде у тебя ниже правильно вроде написано, т.к. функция она такая в принципе:function название(аргументы) { текст функции} Link to comment Share on other sites More sharing options...
0 Elendor Posted March 2, 2008 Author Report Share Posted March 2, 2008 проверяй теперь сво xml, который разбираешь, ведь он ругается что в этой иксмлке отсутствует <Start tag expected, '<' not found in file:///Z%3A/home/site/www/file/docinfo.xmlxml у меня пустой, я фиг знаю ч? в него писать, я xml не знаю.А на сч?т " } " так и надо, у меня Bred стоит и он подч?ркивет, например, начальный и конечный тег, точно также и с этим, вот такую " { " он поодчеркнул, а такую " } " нет потому, что е? небыло.Подскажи, что в xml'e надо писать? Link to comment Share on other sites More sharing options...
0 Elendor Posted March 2, 2008 Author Report Share Posted March 2, 2008 УУУУУУУУУУУУУУУУУРРРРРРРРРРРРРРРРРРРРРРАААААААААААААААААААААААААААОй простите, что так громко, но у меня получилось!!!!!!!!!!! Link to comment Share on other sites More sharing options...
0 D.S.Denton Posted March 2, 2008 Report Share Posted March 2, 2008 ну у меня аналогично только цветом, 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 More sharing options...
0 Elendor Posted March 2, 2008 Author Report Share Posted March 2, 2008 (((((((((Он его загружает, но когда ещ? один файл загружаю он переписывает стрый и сохраняет в www, а не www/file, ч? делать?в xml я написал:<?xml version="1.0"?><site> <statistics> </statistics></site> Link to comment Share on other sites More sharing options...
0 D.S.Denton Posted March 2, 2008 Report Share Posted March 2, 2008 когда ещ? один файл загружаю он переписывает стрыйтак и должно быть, ведь имя задаешь то же самое. если не принципиально название файла, лучше имя генерировать как-нибудь типа $name = md5(time());ну а если надо чтоб имя было все же достаточно читабельным, примерно так:$fname = 1;while (file_exists('my_xml_file_'.$fname.'xml')) {$fname++;} Link to comment Share on other sites More sharing options...
0 Elendor Posted March 2, 2008 Author Report Share Posted March 2, 2008 ч? та я не пойму Link to comment Share on other sites More sharing options...
Question
Elendor
У меня опять где-то ошибка, помогите найти, плз!
Link to comment
Share on other sites
13 answers to this question
Recommended Posts