|
|
|
| здрасьте,прошу вашего совета,я пишу такой скрипт наподобие блока новости,но немного другой,но дело не в этом,у меня возникла небольшая проблемка,ее суть отражается в названии этой темы,короче у меня есть два скрипта(я здесь приведу тот,который поменьше,а другой я закину к вам на сервер как файл)
<?
if($_POST['name']="") echo "<center><b> Ошибка,вы не ввели названия новости </b></center>";
if($_POST['body']="") echo "<center><b> Ошибка,вы не ввели текст новости </b></center>";
//вставляем http
$url = strtr($_POST['url'], "HTTP", "http");
if (!empty($url)) {
if (strtolower((substr($url, 0, 7))!="http://") && (strtolower(substr($url, 0, 7))!="ftp://")) $url="http://".$url;
}
$_POST['name'] = str_replace("'", "'", $_POST['name']);
$_POST['body'] = str_replace("'", "'", $_POST['body']);
//закачиваем файл на сервер
if (!empty($_FILES['url_pict']['tmp_name']) && $_FILES['url_pict']['tmp_name'] != "-")
{
// Закачиваем файл
$path="files/".date("YmdHis",time()).strrchr($_FILES['url_pict']['name'], ".");
// Путь указан верно, так как в админе нужно поднятся на два каталога вверх,
// а на сайте на один
if (copy($_FILES['url_pict']['tmp_name'], "../".$path)) $picture = $path;
}
?>
|
это код-обработчик,а код самого файла я прикрепил...
так вот проблема в том,как мне передать данные из прикрепленного фала в файл,который указан выше...как видно,методом get у меня ничего не получилось...и кстати,расскажите мне пожалуста,как сделать так,чтобы данные передавалисьв виде http;//localhost/site/news/admin/formaddpost.php?name=///&bode=///...........как это ваще мне сделать??? | |
|
|
|
|
|
|
|
для: LimP
(11.09.2004 в 18:38)
| | Я приложил ссылку там cheops очень хорошо все объесняет
Выбирай который тебе удобней
Если есть вопросы по какомонебуть из этих способов спрашивай
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=298&page=1 | |
|
|
|
|
|
|
|
для: LimP
(11.09.2004 в 18:38)
| | Хм... вообще происходит передача методом POST, передача через URL как вы пишете - это метод GET, для этого в тэге form следует вместо method='post' использовать method='get', а в обработчике, вместо суперглобального массива $_POST - суперглобальный массив $_GET.
PS А... я кажется жучок у вас нашёл
<?php
if($_POST['name']="") // Следует использовать == вместо =
if($_POST['body']="") // Следует использовать == вместо =
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(11.09.2004 в 19:01)
| | да,точно,спасибо,а то я как-то и не подумал...все работает... | |
|
|
|
|
|
|
|
для: LimP
(11.09.2004 в 21:08)
| | драсти опять всем,еше не поможете немного,у меня вот такой вот скриптик:
<?
include("../config.php");
if($_POST['name']=="") echo "<center><b> Ошибка,вы не ввели названия новости </b></center>";
if($_POST['body']=="") echo "<center><b> Ошибка,вы не ввели текст новости </b></center>";
//вставляем http
$url = strtr($_POST['url'], "HTTP", "http");
if (!empty($url)) {
if (strtolower((substr($url, 0, 7))!="http://") && (strtolower(substr($url, 0, 7))!="ftp://")) $url="http://".$url;
}
$_POST['name'] = str_replace("'", "'", $_POST['name']);
$_POST['body'] = str_replace("'", "'", $_POST['body']);
//закачиваем файл на сервер
if (!empty($_POST['file']))
{
// Закачиваем файл
$path="files/".date("YmdHis",time()).strrchr($_POST['file'], ".");
// Путь указан верно, так как в админе нужно поднятся на два каталога вверх,
// а на сайте на один
if (copy($_POST['file'], "../".$path)) $picture = $path;
}
$query = "INSERT INTO news VALUES (0,
'".$_POST['name']."',
'".$_POST['body']."',
now(),
'".$_POST['url']."',
'".$_POST['url_text']."',
'$picture',
'show');";
$ok = @mysql_query($query);
if(!$ok)
{
echo"<center><b>Ошибка при выполнении запроса...</b></center>";
}
else
{
[b][i]$id_mesag = mysql_query(select id_news from news where name='".$_POST['name']."');[/i]
if($id_mesag)
{
$id_msg = mysql_fetch_object($id_mesag);
}
echo "<meta http-equiv='refresh' content='0;url=index.php?start=$id_msg->id_news'>";[/b]
}
?>
|
у меня че-то не то с тем местом,которое выделено жирным,особенно не получается запрос к мускулу,который выделен жирным курсивом...мне надо,чоб мне мускул выдал id_news по имени новости $_POST['name'] или по его телу $_POST['body']
я делаю вот так,а он мне говорит,мол не получается,мол ошибка в запросе...но вроде все правильно... | |
|
|
|
|
|
|
|
для: LimP
(11.09.2004 в 23:21)
| | Хм... непорядок с сокобками, следует переписать на следующий манер:
<?php
$query = "select id_news from news where name=".$_POST['name'];
$id_mesag = mysql_query($query);
?>
|
| |
|
|
|
|
|
|
|
для: LimP
(11.09.2004 в 23:21)
| | А что выделенно жирным :) шучу :)
LimP а ошибочку тоже показалбы :) | |
|
|
|
|
|
|
|
для: Адоп Акробат
(12.09.2004 в 02:32)
| | вроде уже ошибку в запросе не пишет,но вот не работает передеача вот эта
<?php echo "<meta http-equiv='refresh' content='0;url=index.php?start=$id_msg->id_news'>" ?>
|
| |
|
|
|
|
|
|
|
для: LimP
(12.09.2004 в 09:54)
| | Тоже самое... не будет работать так как это эквивалентно:
<?php
echo "<meta http-equiv='refresh' content='0;url=index.php?start=".$id_msg."->id_news'>"
?>
|
Следует исправить на
<?php
echo "<meta http-equiv='refresh' content='0;url=index.php?start=".$id_msg->id_news."'>"
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(12.09.2004 в 10:09)
| | сделал,как вы сказали,но вот что мне отвечает сервер:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\www\scripts\site\news\admin\addpost.php on line 42
а line 42 это как раз и есть
<?php echo "<meta http-equiv='refresh' content='0;url=index.php?start=".$id_msg->id_news."'>";?>
|
| |
|
|
|
|
|
|
|
для: LimP
(12.09.2004 в 11:12)
| | Хм... попробуйте заменить участок:
<?php
if($id_mesag)
{
$id_msg = mysql_fetch_object($id_mesag);
}
echo "<meta http-equiv='refresh' content='0;url=index.php?start=".$id_msg->id_news."'>";
?>
|
на
<?php
if($id_mesag)
{
$id_msg = mysql_fetch_object($id_mesag);
echo "<meta http-equiv='refresh' content='0;url=index.php?start=".$id_msg->id_news."'>";
}
else
{
echo "Ошибка в SQL-запросе";
}
?>
|
PS Вместо mysql_fetch_object лучше использовать mysql_fetch_array - если элемент отсутствует, по крайней мере не будет синтаксической ошибки. | |
|
|
|
|
|
|
|
для: cheops
(12.09.2004 в 11:33)
| | я переписал вот так
<?php
$query = "select id_news from news where name=".$_POST['name'];
$id_mesag = mysql_query($query);
if($id_mesag)
{
$id_msg = mysql_fetch_array($id_mesag);
echo "<meta http-equiv='refresh' content='0;url=index.php?start=".$id_msg['id_news']."'>";
}
else
{
echo "Ошибка в SQL-запросе";
}
?>
|
но он мне пишет вот эту ошибку
Parse error: parse error, unexpected T_VARIABLE in C:\www\scripts\site\news\admin\addpost.php on line 40
а 40 строка это
$id_msg = mysql_fetch_array($id_mesag);
но че здеся неправильно,я даже и не знаю... | |
|
|
|
|
|
|
|
для: LimP
(12.09.2004 в 14:15)
| | Мда... убийственное заявление от интерпретатора... Вообще говоря, код чист. Хм... у вас в результате должна быть одна переменная... попрбуйте ещё через mysql_result()
<?php
$id_msg = mysql_result($id_mesag,0);
echo "<meta http-equiv='refresh' content='0;url=index.php?start=$id_msg'>";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(12.09.2004 в 16:53)
| | все таже ошибка на стоке 40...
$id_msg = mysql_result($id_mesag,0);
а вообще все это работает...(в смысле функции эти) | |
|
|
|
|
|
|
|
для: LimP
(12.09.2004 в 19:48)
| | Может у тебя ошибка чуть раньше этой строки может точку с запятой забыл поставить воеши перед ним | |
|
|
|
|
|
|
|
для: Адоп Акробат
(12.09.2004 в 20:02)
| | да нига,там все стоит,вот полный скрипт...
<?
include("../config.php");
if($_POST['name']=="") echo "<center><b> Ошибка,вы не ввели названия новости </b></center>";
if($_POST['body']=="") echo "<center><b> Ошибка,вы не ввели текст новости </b></center>";
//вставляем http
$url = strtr($_POST['url'], "HTTP", "http");
if (!empty($url)) {
if (strtolower((substr($url, 0, 7))!="http://") && (strtolower(substr($url, 0, 7))!="ftp://")) $url="http://".$url;
}
$_POST['name'] = str_replace("'", "'", $_POST['name']);
$_POST['body'] = str_replace("'", "'", $_POST['body']);
//закачиваем файл на сервер
if (!empty($_POST['file']))
{
// Закачиваем файл
$path="files/".date("YmdHis",time()).strrchr($_POST['file'], ".");
// Путь указан верно, так как в админе нужно поднятся на два каталога вверх,
// а на сайте на один
if (copy($_POST['file'], "../".$path)) $picture = $path;
}
$query = "INSERT INTO news VALUES (0,
'".$_POST['name']."',
'".$_POST['body']."',
now(),
'".$_POST['url']."',
'".$_POST['url_text']."',
'$picture',
'show');";
$ok = @mysql_query($query);
if(!$ok)
{
echo"<center><b>Ошибка при выполнении запроса...</b></center>";
}
else
{
$query = "select id_news from news where name=".$_POST['name'];
$id_mesag = mysql_query($query);
if($id_mesag)
{
$id_msg = mysql_fetch_array($id_mesag);
echo "<meta http-equiv='refresh' content='0;url=index.php?start=".$id_msg['id_news']."'>";
}
else
{
echo "Ошибка в SQL-запросе";
}
}
?>
|
| |
|
|
|
|
|
|
|
для: LimP
(12.09.2004 в 20:32)
| | :))) | |
|
|
|
|
|
|
|
для: LimP
(12.09.2004 в 20:32)
| | Мистика... Может русские буквы где просочились...
PS Остаётся только одно запакуйте форму, этот обработчик и кусочек базы в архив и выложите здесь или пошлите мне на почту - нужно отлаживать... Помнится, мы когда с вами MySQL настраивали там тоже какие-то несуразные ошибки ни с того, ни с сего вываливались... может опять... | |
|
|
|
|
|
|
|
для: cheops
(12.09.2004 в 21:06)
| | да ну,я думаю,все дело в отладке...вот вам три файла-это formaddpost-форма добавления записи addpost-непосредственно обработчик этой формы и файл-конфигуратор мускула... | |
|
|
|
|
|
|
|
для: LimP
(12.09.2004 в 21:18)
| | Там вместо пробелов в это строке и ещё парочке были какие-то левые символы - там как они невидимые, воспринимаются как пробелы, но PHP об них запинался... Исправленный вариант в аттаче...
PS Отлавливать их хорошо под кодировкой DOS, например в FAR. | |
|
|
|
|
|
|
|
для: cheops
(13.09.2004 в 10:20)
| | че-то вы тама перехимичили,я вам тута опять эти файлики и принтскрин "ошибочки" вложил ... | |
|
|
|
|
|
|
|
для: LimP
(13.09.2004 в 13:36)
| | :))) | |
|
|
|
|
|
|
|
для: LimP
(13.09.2004 в 13:36)
| | Хм... а у меня на ура идёт. Посмотрите на URL - он более чем странный, такое бывает когда PHP не прописан и не интерпретирует код... | |
|
|
|
|
|
|
|
для: cheops
(13.09.2004 в 23:27)
| | ну не знаю,у меня все другие скрипты работают и код интерпретируется...
> Посмотрите на URL - он более чем
>странный
какой URL ??? | |
|
|
|
|
|
|
|
для: LimP
(13.09.2004 в 23:55)
| | В строке запроса Opera на картинке - там же элементы PHP-кода | |
|
|
|
|
|
|
|
для: LimP
(13.09.2004 в 13:36)
| | У вас что то с обработкой php случилось или с сервером. Код в файле не выполняется. И он открыт как просто текстовый файл.
У вас в строке браузера
file://localhost/c:/www.....
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(14.09.2004 в 01:19)
| | а сейчас вообще пустая страница появляется,уже не пишет никаких ошибок...а может в php.ini нужно че-то настроить,чтоб передавать данные из одного скрипта в другой???хотя я не знаю,у меня в других скриптах все передается и работает без проблем...
так у вас вот именно вот эти работают??? | |
|
|
|
|
|
|
|
для: LimP
(14.09.2004 в 13:14)
| | Да брал из вашего последнего архива, не изменял ничего, только путь к config.php... | |
|
|
|
|
|
|
|
для: cheops
(14.09.2004 в 14:25)
| | я не знаю что и делать...у меня ваще ничего,белый лист,раньше хоть если поля были пустыми,писал ошибку,а теперь ваще мертвяк...может мне порробовать данные передавать через куки или сессии???или тоже самое будет??? | |
|
|
|
|
|
|
|
для: LimP
(14.09.2004 в 21:12)
| | Т.е. даже не воспроизводится раз от раза? А сервер MySQL не слетал, или php.ini случайно не переписался? | |
|
|
|
|
|
|
|
для: LimP
(14.09.2004 в 13:14)
| | Давайте уточним что происходит.
Вы запускаете файл formaddpost.php? Заполняете поля и нажимаете "Добавить"? И что происходит после этого?
Пустая страница? Или те краказаблы, что вы показывали в принскрине в предыдущем архиве?
Вот то что в принскрине - очень странно. Там не видно работы сервера. Там открыт локальный файл и php даже близко нет.
Когда вы открыли файл formaddpost.php у Вас какой путь в строке браузера стоял? Что нибудь вроде этого? Или другой?
http://localhost/news/formaddpost.php
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(14.09.2004 в 23:11)
| | да,когда я открыл страницу,абракадабры уже не было,но был чистый пустой лист,лана,ребят,не парьтесь,я уже начал заново писать,щас все вроде номана работает...я все по правилам делаю,наверное,как уже когда cheops проверял и удалил невидимые лишние символы,наверное тама еще были...но я щас все с нового пишу,вроде нифига не должно быть,спасибо за то,что подсказали с передачей переменных :))) | |
|
|
|
|
|
|
|
для: LimP
(15.09.2004 в 13:57)
| | драсьте,у меня вот к вам вопрос...вы в своем скрипте "новости" используете переменную $start не могли бы вы мне объяснить принцип ее функции,каким образом при ее поможи выводятся сооющения,в зависимости от последнего написанного,которое выводится первым,просто я задумал при добавлении скрипта сразу определять его id_news по названию новости и его теле...и непосредственно выводить ту новость первой у которой стоит тот id_news,что был передан этому скрипту обработчиком формы добавления сообщения,но я чую,что у меня будут проблемы с моим вариантом,так что,помогите,объясните принцип работы вашей переменной $start... | |
|
|
|
|
|
|
|
для: LimP
(16.09.2004 в 13:30)
| | :)) | |
|
|
|
|
|
|
|
для: LimP
(16.09.2004 в 19:08)
| | :))))))))) | |
|
|
|
|
|
|
|
для: LimP
(16.09.2004 в 13:30)
| | Тема уже очень длинная - не удобно отвечать, вынес вопрос в отдельную тему по ссылке...
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=326&page=1 | |
|
|
|