Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

Открыть новую тему     Написать ответ в эту тему

ManderX



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
поставил PHP и APACHE.  
написал index.html:  
<html><body> <form action=test.php> Name: <input type=text name="name"><br>  
Year: <input type=text name="year"><br> <input type=submit value="ГОТОВО"> </form>  
</body></html>  
И test.php в том же каталоге:  
echo "$name i $year";  
выполняю, говорит, что переменыее undefined  
в чём трабла??? и ещё гдя взять extensions???




Цитата:
 
Внимание!
 
Эта тема будет закрыта, поэтому по конкретным вопросам по PHP
создаём новые темы, либо используем существующие (один вопрос — одна тема)

Кто-нибудь пытался что-то в этих сeмидесяти страницах найти?
 
В этой теме только отвечаем на оставшиеся без ответа вопросы...

 
 

Всего записей: 84 | Зарегистр. 11-06-2002 | Отправлено: 05:36 11-06-2002 | Исправлено: Svarga, 04:17 23-07-2003
raven



Черный ворон
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Advanced_Guest
Что так нравится моя статья, что ты geroyasfalta уже второй раз ссылку на нее даешь!
 
 
geroyasfalta
Пробегись по поиску...

----------
n/a

Всего записей: 992 | Зарегистр. 13-08-2002 | Отправлено: 23:22 03-12-2002
Advanced_Guest



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
raven
Я её даже не читал )
 
Сори за оффтопик

----------
The Abyss - UO, LA2, Ботва, BSFG

Всего записей: 2446 | Зарегистр. 14-04-2002 | Отправлено: 23:28 03-12-2002
raven



Черный ворон
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Advanced_Guest
Как ты мог...
Хотя многим помогло...  
 
Это в СисАдм!

----------
n/a

Всего записей: 992 | Зарегистр. 13-08-2002 | Отправлено: 23:40 03-12-2002
NT



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Человеки, вот трабл с хаком для пхпББ2.
значит так, вот код:

Код:
// Show First Post on Start of Every Page
// Written by: Robbie Marsh
//  
// Start Hack
 
// Get First Post Information
$sql = "SELECT u.username, u.user_id, u.user_from, u.user_viewemail, u.user_sig, u.user_sig_bbcode_uid, p.*,  pt.post_text, pt.post_subject, pt.bbcode_uid
    FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
    WHERE p.topic_id = $topic_id
        $limit_posts_time
        AND pt.post_id = p.post_id
        AND u.user_id = p.poster_id
    ORDER BY p.post_time $post_time_order
    LIMIT 0, 1";
if ( !($result = $db->sql_query($sql)) )
{
    message_die(GENERAL_ERROR, "Could not obtain post/user information.", '', __LINE__, __FILE__, $sql);
}
 
if ( $row = $db->sql_fetchrow($result) )
{
    $postrow1 = array();
    $postrow1[] = $row;
    $db->sql_freeresult($result);
}
else
{
    message_die(GENERAL_MESSAGE, $lang['No_posts_topic']);
}
 
// Get Poster Name, ID and Post Date
$poster_id1 = $postrow1[0]['user_id'];
$poster1 = ( $poster_id1 == ANONYMOUS ) ? $lang['Guest'] : $postrow1[0]['username'];
$post_date1 = create_date($board_config['default_dateformat'], $postrow1[0]['post_time'], $board_config['board_timezone']);
 
// Get the Page Number - if it is the first page
// don't show the first post preview
if (floor( $start / $board_config['posts_per_page'] ) + 1 == 1 OR $userdata['user_allowfirstmsg'] == 0) {
    $startfm = "<!--";
    $endfm = "-->";
}else{
    $startfm = "";
    $endfm = "";
}
 
// Assign Template variables
$template->assign_vars(array(
        'POSTER_NAME' => $poster1,
        'POST_DATE' => $post_date1,
        'POST_SUBJECT' => $postrow1[0]['post_subject'],
        'FIRST_MESSAGE' => $postrow1[0]['post_text'],  
        'STARTFM' => $startfm,
        'ENDFM' => $endfm )
);
// End Hack
 

так вот, при выводе на страницу  

Код:
{FIRST_MESSAGE}

то он выравнивает весь текст из post_text в одну линию, то есть не соблюдает переновы линий записанные в таблице. что делать?

----------
A que jode no entender lo que pone?

Всего записей: 1861 | Зарегистр. 27-07-2002 | Отправлено: 01:09 04-12-2002
Sergeant

Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Advanced_Guest,

Цитата:
В настройках PHP есть переменная максимальное выполнение скрипта.  
Длинее этого времени скрипт не сможет работать.

Да, это переменная max_execution_time из php.ini
 
Но если PHP запущен не в safe mode, то время исполнения скрипта можно задавать через set_time_limit(секунды);
 
Если поставить 0 - будет выполняться бесконечно.

----------
Если вы спорите с идиотом,
Наверняка, он занимается тем же самым.

Всего записей: 1553 | Зарегистр. 06-08-2001 | Отправлено: 02:53 04-12-2002
sailor



Advanced sailor
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Advanced_Guest

Цитата:
Попробуй этот код:
назови файл как например cookie.php и вызывай по cookie.php?n=что-то


Цитата:
(тут была маааленькая ошибка, убрал её)
Что код выдаст ?

Попробовал твой код и.. ещё больше запутался.. Дело в том, что твой примерчик отлично работает! Вернее почти отлично. Опишу что было. Во-первых я немного модифицировал твой код:

Цитата:
<?php
$manual=0;
@$name=$_REQUEST['n'];
if (is_null($name)){  
$name="Имя!";
$manual=1;
}
$cookname=setcookie ("username", $name,time()+3600);
if ($manual==1){echo "вручную поставили name";};
echo "Переменная name имеет значение:|$name|.<br>\n";
if ($cookname) {
echo "Set cookie завершенно успешно ";
echo $username;
} else{
echo "Set cookie НЕ завершенно успешно!!";
};
чтобы проверить сразу, что записалось в куки.
?>

Итак, запускаю свой cookie.php?n=3 пишет, что мол  

Цитата:
Переменная name имеет значение:|3|.
Set cookie завершенно успешно  

Интересно, что поначалу echo $username ничего не выдаёт. Зато при последующем вызове (например с параметром 4) выдаёт предыдущее значение:

Цитата:
Переменная name имеет значение:|4|.
Set cookie завершенно успешно 3

Странненько.
Но главное - куки работают, записываются! Далее копирую кусок твоего кода в мой скрипт (чтоб уж наверняка). Один раз записался куки, а потом не хочет. Т.е. не перезаписывается при новом обращении (ещё раз повторю, что переменные для записи в куки присылаются из другого скрипта с помощью Form action - submit ). Непонятно. Слушай, а может многое зависит от того, что дальше после setcookie в скрипте идёт?

----------
Microphotostocker

Всего записей: 6229 | Зарегистр. 31-05-2001 | Отправлено: 10:55 04-12-2002
Slippery



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sailor

Цитата:
Интересно, что поначалу echo $username ничего не выдаёт. Зато при последующем вызове (например с параметром 4) выдаёт предыдущее значение:  

ты не можешь на одной странице положить и прочитать одну и туже куку потому что тебе надо послать с ней хеадер клиенту и получить хеадер от него - поэтому во втором заходе ты читаешь ранее положенную куку
 Так же ,ты можешь положить куку только от своего домена или от его родителя (т.е. от "чтото.ещечтото.ру" или от "ещечтото.ру" и не наоборот)
значит если ты положил куку от mysite.com она не прочтется на www.mysite.com
 И ещё если у тебя на странице есть фрэйм или картина-скрипт и его сорс пытается положить куку - то новые браузеры (ИЕ6 Нетскэйп7)
заблокируют её если отсутствует Р3Р полис у сайта от которого кладется кука
 - это и есть плюс/минус основные проблемсы с куками - посмотри свой конкретный случай -где могет быть дырка и пиши -попробую помочь
в траблах с куками мало показать сорс - надо тосно описать где и как он бежит


----------
... - говорите, говорите, я всегда зеваю, когда мне интересно!
---
халявный генератор анимации на мобилу

Всего записей: 326 | Зарегистр. 31-10-2002 | Отправлено: 12:11 04-12-2002 | Исправлено: Slippery, 12:16 04-12-2002
sailor



Advanced sailor
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Slippery
Буду очень и очень признателен за помощь.. а то я уже теряю надежду, что удастся заставить эти куки работать нормально.
 
Итак, для начала, на чём я остановился:
1) я модифицировал код Advanced_Guestа ещё раз и он заработал. Но странно.

Код:
<?php
$manual=0;
@$name=$_REQUEST['n'];
if (is_null($name))
{  
$name=$n;
$mail=$e;
$manual=1;
}
$cookname=setcookie ("nameffa", $name,time()+36);
$cookname=setcookie ("mailffa", $mail,time()+36);
echo "n= $n , e= $e <br>\n";
echo "name= $name , mail= $mail <br>\n";
if ($cookname) {
echo "Set cookie ok";
echo "nameffa= $nameffa , mailffa = $mailffa";
} else{
echo "Set cookie not ok";
};
?>

 
При таком коде обрабатывался первый оператор после if а остальные  как будто забывались (что за дела кстати?). Т.е. $name=$n - работал, а вот значение $e не присваивалось переменной $mail и 1 не присваивалась переменной  $manual. Ладно.. модифицировал так:

Код:
<?php
$manual=0;
@$name=$_REQUEST['n'];
if (is_null($name))
{  
$name=$n;
$mail=$e;
$manual=1;
}
$name=$n;
$mail=$e;
$manual=1;
$cookname=setcookie ("nameffa", $name,time()+3600);
$cookname=setcookie ("mailffa", $mail,time()+3600);
echo "n= $n , e= $e <br>\n";
echo "name= $name , mail= $mail <br>\n";
if ($cookname) {
echo "Set cookie ok";
echo "nameffa= $nameffa , mailffa = $mailffa";
} else{
echo "Set cookie not ok";
};
?>

немного бестолково, но главное заработало! Куки отсылаются и т.д. Правда только со второго раза. Т.е. запускаю скрипт, он отсылает переменные $n и $e  (о чём говорит эха). Собственно после первого использования скрипта я вижу следущее:

Цитата:
n= na3 , e= ma4
name= na3 , mail= ma4
Set cookie ok nameffa= , mailffa =  

После второго запуска пишется наконец-то nameffa= na3, mailffa =ma4 .
 
Ты вроде объяснил в чём дело. А вот запускаю свой скрипт cm - и ничего не работает.
 
Кажется я даже понимаю в чём дело. В конце cm.php у меня стоит код:

Код:
 
$file="../comment/1.php";
header ("location: $file");
exit;

Если я вставляю этот код в работающий пример, то он тоже перестаёт работать. А редирект то нужен! Зачем? Ну добавил чел новость и его из окна добавления новости перебрасывает в окно где эта новость (как на руборде). А вот куки не меняются в этом случае. Зато если эту операцию проделать вручную (т.е. набрать http://.../1.php т.е. обновить страничку, то куки работают и в окнах имя мыло  пишутся изменнёные значения). Как быть и в чём проблема?
 
Advanced_Guest
Спасибо. Твой код для преобразования HTML текста заработал!

----------
Microphotostocker

Всего записей: 6229 | Зарегистр. 31-05-2001 | Отправлено: 12:54 04-12-2002 | Исправлено: sailor, 12:55 04-12-2002
Slippery



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sailor

Цитата:
значение $e не присваивалось переменной $mail и 1 не присваивалась переменной  $manual.  

потому что после $name=$_REQUEST['n'];  
скрипт уже не заходил в if (is_null($name)) и ещё если у тебя  несколько реквест-переменных и первый раз ты обратился к ним как $_REQUEST['n']; то дальше и к остальным надо также обращаться (в твоем случае надо написать
Код:
 
$name=$n;  
$mail=$e;  
или
$name=$_REQUEST['n'];
$mail=$_REQUEST['е'];
 

тоже самое если например у тебя две переменных Х и Y передаются через GET то нельзя в одном сорсе к одной обращаться $_GET['X'] а к другой $Y - выбирай один способ обращения

Цитата:
Если я вставляю этот код в работающий пример, то он тоже перестаёт работать. А редирект то нужен

 
дело в том что хеадер с локейшеном должен вылетать первым поэтому если ты сделаешь какой-нибудь принт до того как пошлешь
header ("location: $file"); , то сервер отправит свой хеадер и значит твой уже не сможет работать ю Установка кук - тоже хеадер т.е. это

Код:
setcookie ("nameffa", "name",time()+3600);  

 тоже примерно что и это

Код:
header ("Set-Cookie: nameffa=name; expires=Wed, 04-Dec-02 12:22:11 GMT ");  

а значит куки не станут после принта (но это вааще, а не к твоему случаю)
чтоб избежать отсылки аутпута клиенту до нужного момента
можно воспользоваться буфером вывода так:

Код:
 
ob_start();  
...
...
...
header ("location: $file");
ob_end_flush();
 

 
 
 
Добавлено
если я чего криво обьясняю или сам не сможешь исправить - спрашивай -  расскажу или напишу этот сорс посвоему

----------
... - говорите, говорите, я всегда зеваю, когда мне интересно!
---
халявный генератор анимации на мобилу

Всего записей: 326 | Зарегистр. 31-10-2002 | Отправлено: 14:51 04-12-2002
sailor



Advanced sailor
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Slippery
Спасибо. Все свои вопросы я отослал тебе на ПМ.

----------
Microphotostocker

Всего записей: 6229 | Зарегистр. 31-05-2001 | Отправлено: 20:23 04-12-2002
NT



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
человеки, а на меня 0 внимания? ну пмогите плизз.

----------
A que jode no entender lo que pone?

Всего записей: 1861 | Зарегистр. 27-07-2002 | Отправлено: 20:45 04-12-2002
Advanced_Guest



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NT
перед выводом на печать тебе нужно заменить \n на <br>
 
Я думаю это надо сделать так:
(не проверял)
перед

Код:
$template->assign_vars(array(   

пишешь:

Код:
$first_message = str_replace ("\n", "<br>", $postrow1[0]['post_text']);

 
и вместо  

Код:
'FIRST_MESSAGE' => $postrow1[0]['post_text'],  

пишешь:
 

Код:
'FIRST_MESSAGE' => $first_message,  

 
примерно так


----------
The Abyss - UO, LA2, Ботва, BSFG

Всего записей: 2446 | Зарегистр. 14-04-2002 | Отправлено: 21:58 04-12-2002
NT



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Advanced_Guest
извини, ты наверное не понял.  
пост выглядит так:

Цитата:
Первая линия
 
Третья линия
 
 
 
Через много линий

он же мне ее через этот хак выдает как:

Цитата:
Первая линияТретья линияЧерез много линий

понял?

----------
A que jode no entender lo que pone?

Всего записей: 1861 | Зарегистр. 27-07-2002 | Отправлено: 22:28 04-12-2002
Advanced_Guest



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NT
Загляни в HTML Sources.
там показываеться правильно ?
Или тоже  

Цитата:
Первая линияТретья линияЧерез много линий  

?

----------
The Abyss - UO, LA2, Ботва, BSFG

Всего записей: 2446 | Зарегистр. 14-04-2002 | Отправлено: 22:36 04-12-2002
NT



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вопрос снаят, в HTML все правильно.

----------
A que jode no entender lo que pone?

Всего записей: 1861 | Зарегистр. 27-07-2002 | Отправлено: 23:12 04-12-2002
sailor



Advanced sailor
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Slippery
Жду, когда же ты появишься. Надеюсь ПМку получишь нормально...

----------
Microphotostocker

Всего записей: 6229 | Зарегистр. 31-05-2001 | Отправлено: 10:06 05-12-2002
sailor



Advanced sailor
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Очень рад, что ты согласился мне помочь. Но честно говоря я в силу
малого опыта и недостаточных знаний не очень понял, как ты мне  
советуешь обойти эту "хедерную" проблему.. Потому считаю, что тебе проще будет слегка
модифицировать скрипт, чем объяснить, что мне нужно сделать. Вот, что мне нужно: файл с  
HTML-формой присылает некие переменные ($n, $e, $st1, $nu) в мой скрипт. $n - имя, $e - e-mail, $nu - номер мессаги,
$st1 - текст... Они гарантированно "приходят" в скрипт, так что можно их просто напросто
задать в самом начале ($n=.. и т.д.)
А вот собственно и сам скрипт (добавляет запись в файл и отсылает куки):
 
 

Код:
<?php
$cooknam1=setcookie ("nameffa", $n,time()+25920000);
$cooknam2=setcookie ("mailffa", $e,time()+25920000);
$file="../comment/";
$file.=$nu;
$file.=".php";
if(($n=="")||($st1==""))
{header ("location: $file");
exit;}
function safeHTML($text){
$text = strip_tags($text, '<b><i><u><a><img><br><center>');
$text = str_replace ("\n", "<br>", $text);
return $text;
}
$st1=safeHTML($st1);
$file="../com1/";
$file.=$nu;
$file.=".txt";
$uk=fopen($file,"r");
$st=fread($uk,filesize($file));
fclose($uk);
$t=explode("&{",$st);
$s=sizeof($t);
$t[0]+=1;
$m=$t[0];
$st=implode("&{",$t);
$uk=fopen($file,"w");
fwrite($uk,$st);
fclose($uk);
 
$st=$n."&{".$e."&{".$m."&{";
$st.=$st1;
$st.="&{";
 
 
$uk=fopen($file,"a");
fwrite($uk,$st);
fclose($uk);
$file="../com2/";
$file.=$nu;
$file.=".php";
header ("location: $file");
exit;
?>

 
Насколько я понимаю вся проблема в последних строках. Т.е. если
вставляю хедеры локейшн в тот работающий скрипт Адванцед Гуеста, то
тоже перестают куки записываться. Хотя с другой стороны дома всё
работало и так...  будут вопросы по коду - пиши... (можно в ПМ, можно
в асю и т.д.).
 
P.S. У тебя ни мыло ни ПМ не работают Ужас!

----------
Microphotostocker

Всего записей: 6229 | Зарегистр. 31-05-2001 | Отправлено: 09:52 06-12-2002
zabudkin



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Очень прошу Всех помочь мне в разрешение возникшей проблемы, надеюсь на Ваше понимание и помощь. Язык PERL.
 
Имеется два файла с записями (своего рода база данных).
Записи разделены между собой разделителем \x1D (в таблице ASCII 29-ый код), а не \n (в таблице ASCII 13-ый код) как у обычных тектовых данных.
 
Первый файл (1-Новые) содержит только НОВЫЕ записи за текущий день, а второй (2-Все) содержит ВСЕ записи, которые когда либо только были добавлены, т.е является архивом.
Стоит задача поместить записи из (1-Новые) во второй (2-Все), заменяя соответствующие по содержанию записи во (2-Все) на соответствующие записи из (1-Новые), а отсутствующие в (2-Все), но присутствующие во (1-новые), добавлять во (2-Все).
Наглядно:
<(1-Новые) - файл с новыми записями>
запись один новая\x1D
запись четыре новая\x1D
запись пять новая\x1D
 
<(2-Все) - файл со всеми записями>
запись один\x1D
запись два\x1D
запись три\x1D
запись четыре\x1D
 
<(3-Все&Новые) - новый файл, который потом заменит собой (2-Все)>
запись один новая\x1D
запись два\x1D
запись три\x1D
запись четыре новая\x1D
запись пять новая\x1D
 
Очень прошу помочь.
Рассмотрю любые примеры или ссылки на соответствующие статьи.
 

Всего записей: 347 | Зарегистр. 23-09-2002 | Отправлено: 11:25 06-12-2002
NT



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
человеки, напишите мне скритик плз.
что надо: надо чтоб при отправки формы на этот скрипт, он посылал мыло на адрес указанный в input name="mail", с темой "subject" (которая уже будет в скриптике прописана и не будет менятся) и с текстом типа:
Имя: 'input name="name"'
Фамилия: 'input name="second_name"'
 
я так понимаю это одним mail() + что то для приема формы делается.
помогите плз.

----------
A que jode no entender lo que pone?

Всего записей: 1861 | Зарегистр. 27-07-2002 | Отправлено: 20:27 06-12-2002
raven



Черный ворон
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
NT
Это не так уж сложно!
 

Код:
<?
$to=$_REQUEST['mail'];
$subject='блаблабла';
$message='Имя: '.$_REQUEST['name'].'
Фамилия: '.$_REQUEST['second_name'];
 
mail($to, $subject, $message);
?>


----------
n/a

Всего записей: 992 | Зарегистр. 13-08-2002 | Отправлено: 00:23 07-12-2002
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru