Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Создание PHP-кода с сотового телефона
 
 автор: olegoleg   (22.04.2010 в 19:49)   письмо автору
 
 

здраствуйте. я новичёк в пхп. изучаю только неделю. да и хтмл учу недели 2))) это к тому, чтоб вас не ошарашили мои глупые вопросы.
так вот. на каком-то сайте нашёл инструкцию по созданию гостевой книги. переписал код, исправил ошибки, переделал под себя, что-то удалил, что-то добавил - заработало. но проблема одна. я в нете с телефона. максимум в опере можно 2500 символов вставить. код пхп в хтмл документе. решил сделать отдельно страницу с формой и отображениям комментариев, и отдельно пхп код в файле. но как сделать так, чтоб комментарии отображались на странице с формой - не знаю. когда отправляешь комментарий, то они отображаются на другой странице. что можно сделать? или возвращаться к пхп и хтмл на одной странице?

  Ответить  
 
 автор: psychomc   (22.04.2010 в 20:17)   письмо автору
 
   для: olegoleg   (22.04.2010 в 19:49)
 

знаете такие вопросы задаете, на которые нельзя однозначно ответить не видя в глаза вашего кода. да и если увидят, то не многие захотят помочь, т.к то, что здесь выкладывают в таких случаях (нашел где-то скрипт и переделал) как правило вызывает ужас.
самый лучший вариант - выучить сначала нормально html, css и основы js (опционально), и уже потом только браться за php, т.к толком не понимая сути html за php садиться вообще не стоит. и кстати еще желательно какие-то основы программирования до php

>код пхп в хтмл документе. решил сделать отдельно страницу с формой и отображениям комментариев, и отдельно пхп код в файле. но как сделать так, чтоб комментарии отображались на странице с формой - не знаю.

видимо совместить вывод комментариев и формы на одной странице. можно сделать в одном файле, можно подключать с помощью php

  Ответить  
 
 автор: olegoleg   (22.04.2010 в 22:06)   письмо автору
 
   для: 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("<","&lt",$mess);
$mess=str_replace(">","&gt",$mess);
$name=str_replace("<","&lt",$name);
$name=str_replace(">","&gt",$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(); ?>

  Ответить  
 
 автор: bab-nike   (23.04.2010 в 02:23)   письмо автору
 
   для: olegoleg   (22.04.2010 в 22:06)
 

скорее всего это поможет, если я правильно понял
<?php include('путь_к_скрипту'); ?>

  Ответить  
 
 автор: Trianon   (22.04.2010 в 22:25)   письмо автору
 
   для: olegoleg   (22.04.2010 в 19:49)
 

Знаете, в инет сейчас можно выйти хоть с телефона, хоть с часов, хоть с микроволновки.
Но это не повод в таком аппаратном окружении заниматься разработкой.

Топором тоже можно бриться. Обычно как-то избегают.

  Ответить  
 
 автор: olegoleg   (22.04.2010 в 22:49)   письмо автору
 
   для: Trianon   (22.04.2010 в 22:25)
 

если нет бритвы, то это не повод не бриться.
кто-нибудь может дать совет, кроме аля учите хтмл, покупайте комп и т.п.?

  Ответить  
 
 автор: Николай2357   (23.04.2010 в 02:27)   письмо автору
 
   для: olegoleg   (22.04.2010 в 22:49)
 

>кто-нибудь может дать совет, кроме аля учите хтмл, покупайте комп и т.п.?
Ну вообще то да, я могу. Хотя комп купить таки надо... И "аля" кое что учить придется.

  Ответить  
 
 автор: cheops   (23.04.2010 в 13:50)   письмо автору
 
   для: olegoleg   (22.04.2010 в 19:49)
 

>но как сделать так, чтоб комментарии отображались на странице с формой - не знаю. когда
>отправляешь комментарий, то они отображаются на другой странице. что можно сделать?
>или возвращаться к пхп и хтмл на одной странице?
Хм... может просто вставить блок отображения комментариев на страницу с формой при помощи оператор include?

  Ответить  
 
 автор: olegoleg   (24.04.2010 в 02:21)   письмо автору
 
   для: cheops   (23.04.2010 в 13:50)
 

спасибо. уже сам разобрался. пхп это сила!

  Ответить  
 
 автор: olegoleg   (26.04.2010 в 19:38)   письмо автору
 
   для: 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')
Что-то можно сделать?

  Ответить  
 
 автор: Красная_шляпа   (27.04.2010 в 14:13)   письмо автору
 
   для: olegoleg   (26.04.2010 в 19:38)
 

Самой первой строкой допиши: <? ob_start(); ?>

  Ответить  
 
 автор: olegoleg   (27.04.2010 в 23:34)   письмо автору
 
   для: Красная_шляпа   (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)   письмо автору
 
   для: Красная_шляпа   (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>
Объясните что я не понял. При первом обращении к странице с этим кодом нет переменной переменной СЕРВЕР(ПХП-АУС-ЮЗЕР), тобишь если пусто, выдаётся окноно авторизации. Когда юзер отправил данные, то идёт то, что в елсе - объявлен асоциативный масив с ключами логины и значениями пароли. Оператором форич он считывается. Идёт проверка. Если совпадает логин который ввёл юзер с одним из логинов с масива и пароль, который ввёл юзер с паролем с масива, то должна открыться страница. Если что-то не совпало, то опять авторизация. Что я не въехал? Ибо при вводе правильных пар логин/пароль всеодно открывается окно авторизации.

  Ответить  
 
 автор: Николай2357   (28.04.2010 в 06:43)   письмо автору
 
   для: olegoleg   (27.04.2010 в 23:34)
 

Цикл надо остановить. break
Но и то, если только первый вводится. Вообще вот тут подробно все описано.

  Ответить  
 
 автор: olegoleg   (29.04.2010 в 16:07)   письмо автору
 
   для: Николай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   (05.05.2010 в 18:11)   письмо автору
 
   для: 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 имеет не то значение, которое было до отправки формы, а то, которое она получила после отправки формы. Что сделать???

  Ответить  
 
 автор: Красная_шляпа   (09.05.2010 в 19:00)   письмо автору
 
   для: olegoleg   (05.05.2010 в 18:11)
 

Это от ботов не спасет http://upwap.ru/820443 вот это изучи, графические простые(без поворота букв тоже не спасают)

  Ответить  
 
 автор: Dark_Wektor   (06.05.2010 в 20:39)   письмо автору
 
   для: olegoleg   (26.04.2010 в 19:38)
 

Cannot modify header information - headers already sent by (output started at 'pyt')

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

  Ответить  
 
 автор: olegoleg   (06.05.2010 в 22:53)   письмо автору
 
   для: Dark_Wektor   (06.05.2010 в 20:39)
 

спасибо за совет. наверное эта проблема была из-за кодировки. на другом хостинге всё работает отлично.

  Ответить  
 
 автор: olegoleg   (09.05.2010 в 11:54)   письмо автору
 
   для: olegoleg   (06.05.2010 в 22:53)
 

перешёл на другой хостинг и появилась новая проблема. если я вношу на хтмл страницу скрипт или часть страницы с помощью include(), то того нет. хотя раньше всё работало. что можно сделать?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования