|
|
|
| здраствуйте. я новичёк в пхп. изучаю только неделю. да и хтмл учу недели 2))) это к тому, чтоб вас не ошарашили мои глупые вопросы.
так вот. на каком-то сайте нашёл инструкцию по созданию гостевой книги. переписал код, исправил ошибки, переделал под себя, что-то удалил, что-то добавил - заработало. но проблема одна. я в нете с телефона. максимум в опере можно 2500 символов вставить. код пхп в хтмл документе. решил сделать отдельно страницу с формой и отображениям комментариев, и отдельно пхп код в файле. но как сделать так, чтоб комментарии отображались на странице с формой - не знаю. когда отправляешь комментарий, то они отображаются на другой странице. что можно сделать? или возвращаться к пхп и хтмл на одной странице? | |
|
|
|
|
|
|
|
для: olegoleg
(22.04.2010 в 19:49)
| | знаете такие вопросы задаете, на которые нельзя однозначно ответить не видя в глаза вашего кода. да и если увидят, то не многие захотят помочь, т.к то, что здесь выкладывают в таких случаях (нашел где-то скрипт и переделал) как правило вызывает ужас.
самый лучший вариант - выучить сначала нормально html, css и основы js (опционально), и уже потом только браться за php, т.к толком не понимая сути html за php садиться вообще не стоит. и кстати еще желательно какие-то основы программирования до php
>код пхп в хтмл документе. решил сделать отдельно страницу с формой и отображениям комментариев, и отдельно пхп код в файле. но как сделать так, чтоб комментарии отображались на странице с формой - не знаю.
видимо совместить вывод комментариев и формы на одной странице. можно сделать в одном файле, можно подключать с помощью php | |
|
|
|
|
|
|
|
для: psychomc
(22.04.2010 в 20:17)
| | спасибо за совет учить хтмл и сиесес - знаем немного и дальше учим.
мне не мешалобы, чтобы пхп скрипт был в хтмл документе. но я в нете с телефона, макс в редактор влазит 2.5тыс символок. дальше не выходит експерементировать. можно ли внести как-то скрипт в хтмл документ на подобии <script type="..." src="путь к скрипту"></script> чтобы скрипт обрабатывался на той же странице, но был в файле?
<?php
require("config.php");
function output_err($num)
{ global $err;
echo "<h2>owibka!</h2>$err[$num]"; show_mess(); exit();
}
$name=$_POST["name"]; $mess=$_POST["mess"];
$a=$_POST["a"];
function check_mess()
{ global $a, $name, $mess, $MessLength;
$mess=trim($mess); $name=trim($name);
$mess=str_replace("<","<",$mess);
$mess=str_replace(">",">",$mess);
$name=str_replace("<","<",$name);
$name=str_replace(">",">",$name);
$name=substr($name, 0, 60);
if (empty($name)) output_err(2);
if (empty($mess)) output_err(1);
if (strlen($mess)>$MessLength) output_err(3);
if ($a!=11) output_err(4);
}
function save_mess() { global $base, $name, $mess;
$date=date("d/m/y - H:i");
$text=$name."^^".$date."^^".$mess."\n"; $fp=fopen($base,"a"); fputs($fp, $text); fclose($fp); }
function show_mess() { global $base, $MessOnScreen; $file=file($base); $file=array_reverse($file); if(sizeof($file)<$MessOnScreen) $MessOnScreen=sizeof($file); for($i = 0; $i<$MessOnScreen; $i++) { $mess=explode("^^",$file[$i]);
echo "<hr>napisal: "; echo "<font style color='#0000aa'>$mess[0]</font><br>"; echo "<font style color='#aa0000'>$mess[1]</font><br>"; echo "<div style='width:500px;color:#f00;background:#fff;'>$mess[2]</div>"; } }
if($mess) { check_mess();
save_mess(); }
show_mess(); ?> | |
|
|
|
|
|
|
|
для: olegoleg
(22.04.2010 в 22:06)
| | скорее всего это поможет, если я правильно понял
<?php include('путь_к_скрипту'); ?>
|
| |
|
|
|
|
|
|
|
для: olegoleg
(22.04.2010 в 19:49)
| | Знаете, в инет сейчас можно выйти хоть с телефона, хоть с часов, хоть с микроволновки.
Но это не повод в таком аппаратном окружении заниматься разработкой.
Топором тоже можно бриться. Обычно как-то избегают. | |
|
|
|
|
|
|
|
для: Trianon
(22.04.2010 в 22:25)
| | если нет бритвы, то это не повод не бриться.
кто-нибудь может дать совет, кроме аля учите хтмл, покупайте комп и т.п.? | |
|
|
|
|
|
|
|
для: olegoleg
(22.04.2010 в 22:49)
| | >кто-нибудь может дать совет, кроме аля учите хтмл, покупайте комп и т.п.?
Ну вообще то да, я могу. Хотя комп купить таки надо... И "аля" кое что учить придется. | |
|
|
|
|
|
|
|
для: olegoleg
(22.04.2010 в 19:49)
| | >но как сделать так, чтоб комментарии отображались на странице с формой - не знаю. когда
>отправляешь комментарий, то они отображаются на другой странице. что можно сделать?
>или возвращаться к пхп и хтмл на одной странице?
Хм... может просто вставить блок отображения комментариев на страницу с формой при помощи оператор include? | |
|
|
|
|
|
|
|
для: cheops
(23.04.2010 в 13:50)
| | спасибо. уже сам разобрался. пхп это сила! | |
|
|
|
|
|
|
|
для: olegoleg
(22.04.2010 в 19:49)
| | Вот в этом коде - <html><head><title>admin panel</title></head>
<body>
<?php
$admins=array('admin'=>'password');
if(empty($_SERVER['PHP_AUTH_USER']))
{ header('WWW-Authenticate: Basic realm="Admin Page"');
header('HTTP/1.0 401 Unauthorized');
exit(); }
$key=false;
foreach($admins as $admin=>$password)
if($_SERVER['PHP_AUTH_USER']===$admin&&$_SERVER['PHP_AUTH_PW']===$password)
$key=tru);
if(!key) exit('v prolete');
</body></html>
Выдаёт такую ошибку - Cannot modify header information - headers already sent by (output started at 'pyt')
Что-то можно сделать? | |
|
|
|
|
|
|
|
для: olegoleg
(26.04.2010 в 19:38)
| | Самой первой строкой допиши: <? ob_start(); ?> | |
|
|
|
|
|
|
|
для: Красная_шляпа
(27.04.2010 в 14:13)
| | Спасибо. На другом хостинге и без этой функции работает. Вроде дело в кодировке. А код выше ничего не даёт. Вот переделал -
<html><head><title>admin panel</title></head>
<body>
<?php
if(!isset($_SERVER['PHP_AUTH_USER']))
{ header('WWW-Authenticate: Basic realm="Admin Page"');
header('HTTP/1.0 401 Unauthorized');
exit(); } else { $admins=array("login1"=>"password1", "login2"=>"password2");
foreach($admins as $login=>$password)
{ if($_SERVER['PHP_AUTH_USER']===$login&&$_SERVER['PHP_AUTH_PW']===$password) { echo"dobro pojalovat"; } else { header('WWW-Authenticate: Basic realm="Admin Page"');
header('HTTP/1.0 401 Unauthorized');
exit(); echo"v prolete"; }
}
}
echo "glavnaia";
?>
</body></html>
Объясните что я не понял. При первом обращении к странице с этим кодом нет переменной переменной СЕРВЕР(ПХП-АУС-ЮЗЕР), тобишь если пусто, выдаётся окноно авторизации. Когда юзер отправил данные, то идёт то, что в елсе - объявлен асоциативный масив с ключами логины и значениями пароли. Оператором форич он считывается. Идёт проверка. Если совпадает логин который ввёл юзер с одним из логинов с масива и пароль, который ввёл юзер с паролем с масива, то должна открыться страница. Если что-то не совпало, то опять авторизация. Что я не въехал? Ибо при вводе правильных пар логин/пароль всеодно открывается окно авторизации. | |
|
|
|
|
|
|
|
для: Красная_шляпа
(27.04.2010 в 14:13)
| | Спасибо. На другом хостинге и без этой функции работает. Вроде дело в кодировке. А код выше ничего не даёт. Вот переделал -
<html><head><title>admin panel</title></head>
<body>
<?php
if(!isset($_SERVER['PHP_AUTH_USER']))
{ header('WWW-Authenticate: Basic realm="Admin Page"');
header('HTTP/1.0 401 Unauthorized');
exit(); } else { $admins=array("login1"=>"password1", "login2"=>"password2");
foreach($admins as $login=>$password)
{ if($_SERVER['PHP_AUTH_USER']===$login&&$_SERVER['PHP_AUTH_PW']===$password) { echo"dobro pojalovat"; } else { header('WWW-Authenticate: Basic realm="Admin Page"');
header('HTTP/1.0 401 Unauthorized');
exit(); echo"v prolete"; }
}
}
echo "glavnaia";
?>
</body></html>
Объясните что я не понял. При первом обращении к странице с этим кодом нет переменной переменной СЕРВЕР(ПХП-АУС-ЮЗЕР), тобишь если пусто, выдаётся окноно авторизации. Когда юзер отправил данные, то идёт то, что в елсе - объявлен асоциативный масив с ключами логины и значениями пароли. Оператором форич он считывается. Идёт проверка. Если совпадает логин который ввёл юзер с одним из логинов с масива и пароль, который ввёл юзер с паролем с масива, то должна открыться страница. Если что-то не совпало, то опять авторизация. Что я не въехал? Ибо при вводе правильных пар логин/пароль всеодно открывается окно авторизации. | |
|
|
|
|
|
|
|
для: olegoleg
(27.04.2010 в 23:34)
| | Цикл надо остановить. break
Но и то, если только первый вводится. Вообще вот тут подробно все описано. | |
|
|
|
|
|
|
|
для: Николай2357
(28.04.2010 в 06:43)
| | а то, что у вас подробно описано, то я по тому делал. токо не работало оно. вот так переделал. работает. <html><head><title>admin panel</title></head>
<body>
<?php
if(!isset($_SERVER['PHP_AUTH_USER']))
{ header('WWW-Authenticate: Basic realm="Admin Page"');
header('HTTP/1.0 401 Unauthorized');
exit(); } else { $admins=array('login'=>'password', 'login1'=>'password1'); if($admins[$_SERVER['PHP_AUTH_USER']]===$_SERVER['PHP_AUTH_PW']) { echo"dobro pojalovat"; } else { header('WWW-Authenticate: Basic realm="Admin Page"');
header('HTTP/1.0 401 Unauthorized');
exit(); }
}
echo "glavnaia";
?>
</body></html> | |
|
|
|
|
|
|
|
для: olegoleg
(29.04.2010 в 16:07)
| | Объясните насчёт сессий. Вот сделал простой код от ботов - <?php session_start();
$a=array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
$b=array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
$a1=array_rand($a);
$b1=array_rand($b);
$c=$a1+$b1;
$_SESSION=$c;
echo $a1."+".$b1;
?>
Шо-то я вообще не въехал. Открываем сессию. Есть масив а и б. Функцией арейранд переменным а1 и б1 присваиваем случайные значения. Переменная с будет суммой а1 и б1. И записываем её в сессию. На екран выводится а1+б1.
Когда отправляешь данные из формы, то дальше в коде идёт проверка правильно ли введён ответ. if($_SESSION!==$_POST['proverka']) то выдаёт ошибку. Только вот переменная $_SESSION имеет не то значение, которое было до отправки формы, а то, которое она получила после отправки формы. Что сделать??? | |
|
|
|
|
|
|
|
для: olegoleg
(05.05.2010 в 18:11)
| | Это от ботов не спасет http://upwap.ru/820443 вот это изучи, графические простые(без поворота букв тоже не спасают) | |
|
|
|
|
|
|
|
для: olegoleg
(26.04.2010 в 19:38)
| | Cannot modify header information - headers already sent by (output started at 'pyt')
такая ошибка больше не появляется?
она может возникать при попытки отправить заголовки, когда оные уже были отправлены, попробуйте скрипт "пхп" размещать до любого "хтмл" | |
|
|
|
|
|
|
|
для: Dark_Wektor
(06.05.2010 в 20:39)
| | спасибо за совет. наверное эта проблема была из-за кодировки. на другом хостинге всё работает отлично. | |
|
|
|
|
|
|
|
для: olegoleg
(06.05.2010 в 22:53)
| | перешёл на другой хостинг и появилась новая проблема. если я вношу на хтмл страницу скрипт или часть страницы с помощью include(), то того нет. хотя раньше всё работало. что можно сделать? | |
|
|
|