Нужен простенький скрипт на пхп...
+-------+-------------+
|ссылка | комментарий |
+-------+-------------+
|ссылка | комментарий |
+-------+-------------+
и тд...
Кто нибудь может написать такой скрипт, или хотябы помоч как его сделать?
зы. я чайник в пхп ;)
Ладненько давай подробней и по-порядку..
По тому как сделать я могу, но мне в лому зазря время тратить.
Еще раз - конкретно потихооооньку с малого - что не получается, что хош?
Скрипт нужен в ближайшее время(в принципе он уже нужен, но пока я такую страничку сам руами делаю),а выучить сейчас пхп не представляется возможности - экзамены начинаются, времени просто не хватает... Ну если совсем влом, то мне хотябы как происходит запрос пароля, чтение-запись в файл, а там в принципе можно остальное самому как-нибудь сделать (я вообще на Вб программирую, так что проблема не в том что не могу выучить пхп, а просто нету времени для этого)
ps. если есть всетаки желание потратить свое время на решение моей проблемы, то можешь прям в асю постучаться - 330837479 . В асе бываю по Москве с 7 утра, и до 17 вечера...
Ну если совсем влом, то мне хотябы как происходит запрос пароля, чтение-запись в файл, а там в принципе можно остальное самому как-нибудь сделать (я вообще на Вб программирую, так что проблема не в том что не могу выучить пхп, а просто нету времени для этого)
ps. если есть всетаки желание потратить свое время на решение моей проблемы, то можешь прям в асю постучаться - 330837479 . В асе бываю по Москве с 7 утра, и до 17 вечера...
Что такое Вб( бейсик?)
На всякий случай - переменные в php - $var,$a,$b,...
1.Чтение запись в файл:
fopen(string $filename, string $mode, bool $use_include_path=false) - открытие файла
r — файл открывается только для чтения.
r r+ — файл открывается одновременно на чтение и запись.
r w — создает новый пустой файл....
r w+ — аналогичен r+, но ..
r a — открывает существующий файл в режиме записи, ...
r a+ — открывает файл в режиме чтения и записи, ...
Блочные чтение/запись
fread(int $f, int $numbytes);
fwrite(int $f, string $st);
Построчные чтение/запись
string fgets(int $f, int $length)
fclose(int $fp) - закрытие файла
2.А какого типа паролирование тебя интересует?
Есть же много всяких - для всяких особо секретный, неособосекретных,
особо несекретных и т.д...
Напр. самое распространенное - через сессии (я еще не пробовал)
Еще можно через cookie (мне больше всего нравится, но популярностью у нормальных :)
людей не пользуется)
А самое, вроде, лучшее(не учитывая всяких там https) это методами apache'a (тоже не пробовал)
Что там у тебя - конкретики побольше к о н к р е т и к и.
P.S. Гуру, мы тут пофлудим?Вы не против?
А насчет аськи - ....кх...у мня вообще напряги в городе в нетом..в плане оплаты..и счетов за телефон, так что ...
звыняй.
раз модем, то [email]fasco@nm.ru[/email] . Можешь скинуть сюда простенький скрипт? Страничка, есть два поля ввода, под каждым из них кнопка, при нажатии на кнопку 1, набранная информация в поле 1 сохраняется в файл(добавляется в конец файла), при нажатии на кнопку 2, отчищается поле ввода 2, и добавляется в него то что находится в файле... думаю на основе этого примера у меня не возникнет трудностей... хотя еще нужна проверка аутенфикации, так что если есть желание и время, буду благодарен за помощь...
ок..жди - кину.
Ты еще вот что скажи - ты енто дело где тестить собрался - на лок машине(винда, линух?) или сразу в нете? А, кстати, на nm.ru там же нельзя php скрипты исполнять - ты в курсе?
создан, чтобы меньше м.зг..бств. было..Очень удобно и гуру подсказать
всегда могут что-то..
Вот твой скрипт ниже..протести, попробуй..
Гуру, если не в лому тоже присоединяйтесь. Я вообще в
мелочи не вкапываюсь(пока)..Работает- и х..сним. А насчет
аутентификации после того как с этим разберемся..Угу?
Вот код php:
<?php
echo "
<FORM ACTION=\"./test.php\" METHOD=\"POST\">
<input type=\"text\" width=20 height=20 name=\"recordvar\">
<INPUT TYPE=\"submit\" VALUE=\"Введи чего нибудь и Записать\">
</FORM>";
if (@$recordvar) {
echo "write!";
$f=fopen("./yourfile.dat","a+");
flock($f,LOCK_EX); // Говорим, что дальше будем работать только мы
fputs($f,@$recordvar."\r"); //тут небольшой канфуз..., пусть гуру скажут..
fflush($f); // Сбрасываем файловый буфер
flock($f,LOCK_UN); // Отключаемся от блокировки
fclose($f);
}
echo "
<FORM ACTION=\"./test.php\" METHOD=\"POST\" name=\"read\">
<input type=\"text\" width=20 height=20 name=\"rdv\">
<INPUT TYPE=\"submit\" VALUE=\"Введи чего нибудь и Читать\">
</FORM>";
if (@$rdv) {
echo "read!";
$f=fopen("./yourfile.dat","a+");
flock($f,LOCK_EX); // Говорим, что дальше будем работать только мы
while (!feof($f))
$arr[]=fgets($f,100); //тут небольшой канфуз..., пусть гуру скажут..
fflush($f); // Сбрасываем файловый буфер
flock($f,LOCK_UN); // Отключаемся от блокировки
fclose($f);
@$i=0;
while (@$arr[$i]){
echo $arr[$i];
$i++;
}
}
?>
Щас пойду разбираться.
На счет аутенфикацичи - это я что-то загнал, там же всего 1 страничка...зачем ее проверять при переходе по страничкам...просто пароль поставлю там где скрипт соять будет...
ps. У тебя что еще и почты нету ? :)))
header("Pragma: no-cache");
if((!$PHP_AUTH_USER) || (!$PHP_AUTH_PW))
{
Header("WWW-Authenticate: Basic realm=\"Administration\"");
Header("HTTP/1.0 401 Unauthorized");
echo "Для входа вам необходимо ввести логин и пароль.";
exit;
}
else
{
$i=0 ;
for ($i = 2; $i <= 2; $i++) ;
{
include("configbl.inc");
$login[$i] = trim($login[$i]);
$pass[$i] = trim($pass[$i]);
}
//вот тут начинается проблема
if((($login[1] == $PHP_AUTH_USER) && ($pass[1] == $PHP_AUTH_PW)) or (($login[2] == $PHP_AUTH_USER) && ($pass[2] == $PHP_AUTH_PW)) )
{
include("configbl.inc");
?>
<body>
---
</body>
<?php
}
else
{
Header("WWW-Authenticate: Basic realm=\"Administration\"");
Header("HTTP/1.0 401 Unauthorized");
print "Вы ввели неверный/несуществующий пароль или логин. Сообщение о попытке проникнуть отправлено администратору на е-mail.";
exit;
}
}
?>
И файл configbl.inc в котором хранятся пароли:
$login[1] = "root";
$pass[1] = "1";
$login[2] = "root2";
$pass[2] = "2";
?>
как ты видишь, я проверку сделал руками... а тех кто должен иметь доступ будет порядка 20 человек... не буду же я руками прописывать все условия. Короче говоря не получается у меня цикл сделать. Пробовал сделать вот так:
for ($i = 2; $i <= 2; $i++) ;
{
if (($login[$i] == $PHP_AUTH_USER) && ($pass[$i] == $PHP_AUTH_PW))
Но он почему то не принимает пароли... в чем проблема?
... в чем проблема?
М-да...сам такого никогда не делал - тебе буду..:devil:
У меня работает - ХВАТАЙ, А ТО УБЕЖИТ!
header("Pragma: no-cache");
if((!@$PHP_AUTH_USER) || (!@$PHP_AUTH_PW))
{
Header("WWW-Authenticate: Basic realm=\"Administration\"");
Header("HTTP/1.0 401 Unauthorized");
echo "Для входа вам необходимо ввести логин и пароль.";
exit;
}
else
{
include_once("configbl.inc");
//Я тут лишнюю хренотень посносил - нах оно надо?!!! было..:)
//вот тут начинается проблема И ЗАКАНЧИВАЕТСЯ:)
for ($i = 1; $i <= 2; $i++)
if (($login[$i] == $PHP_AUTH_USER) && ($pass[$i] == $PHP_AUTH_PW))
{
// include("configbl.inc"); //ЗАЧЕМ ЗДЕСЬ ОПЯТЬ ИНКЛУДИТЬ, ЕСЛИ ОНО УЖЕ???
echo " //а у тебя тут ошибку не выдает?!!! без echo???
<body>
---
</body>";
exit;//ПОТОМУ КАК НАДО ЦИКЛ ПРЕРВАТЬ !!!
}
//тут тоже хрень какая-то была...
Header("WWW-Authenticate: Basic realm=\"Administration\"");
Header("HTTP/1.0 401 Unauthorized");
print "Вы ввели неверный/несуществующий пароль или логин. Сообщение о попытке проникнуть отправлено администратору на е-mail.";
}
?>
echo " //а у тебя тут ошибку не выдает?!!! без echo???
Нет, не выдает.
Ну значит едим дальше. Ни как не могу понять как устроена проверка на то что такое сообщение уже есть:
if(isset($add_comm)):
$data_array = file($comm);
$cnt = count($data_array) - 1;
for ($i = $cnt; $i >= 0; $i--)
{
list($my_dates,$my_name,$my_name_email,$my_mes) = explode("|||", $data_array[$i]);
$my_mes = trim($my_mes);
$comment = trim($comment);
$check = "$my_dates1|||$my_name|||$my_name_email|||$my_mes";
if($check == "$add_time1|||$name_comm|||$mail_comm|||$comment") { $error[] = "Такой уже есть.";}
}
endif;
В файл данные записываются вот так:
у меня же записываются другие данные и мне надо, чтобы только третья(здесь - мыло) часть не повторялась. Что надо сделать с кодом чтобы это осуществить? (я чтото наделал, и у меня заработал, а потом решил улучшить... короче так и не смог восстановить когда оно работало :)
Таксссс...скрипт я не тестил, так как ты только часть скрипта дал(как я понял)
да и формы задающей этот скрипт тоже не дал...Потому лови объяснение и возможные
ошибки, которые ты мог не увидеть или допустить:
$add_time = date('H:i, d.m.y'); //Это текущее время - правильно?
if(isset($add_comm)): // Это проверка на то, что введен новый текст
$data_array = file($comm); // Теперь создается массив из строк твоего файла
$cnt = count($data_array) - 1; //А $cnt это количество записей в файле
//хотя я ламо не понимаю почему надо вычесть 1??Гуру - объъсяните!, плиииизз
for ($i = $cnt; $i >= 0; $i--) //Теперь начинаем проверять все записи на совпадение
{
list($my_dates,$my_name,$my_name_email,$my_mes) = explode("|||", $data_array[$i]);
//С этой функцией я не общался, но как понимаю, она избавляет нашу строку от ||| и
//назначает каждой переменной значение даты, имени, мэйла и сообщения в строке.
$my_mes = trim($my_mes);// ВОТ ЭТУ ХР.Н.Т.НЬ Я БЫ ВООБЩЕ ВЫКИНУЛ. НЕ ЗНАЮ ЗАЧЕМ ОНА ЗДЕСЬ?!!
$comment = trim($comment);// ЧТО ЭТО ВООБЩЕ ЗА ФУНКЦИЯ trim? Гуру, объясните, плиииз.
//А ВОТ ДАЛЬШЕ НАВЕРНО ИДЕТ САМОЕ ИНТЕРЕСНОЕ:
$check = "$my_dates1|||$my_name|||$my_name_email|||$my_mes"; //Что это за переменная $my_dates1?
//Ее же вообще нигде нет?!!!Может быть там должно быть $add_time? Тобиш текущее время.
// Потому как дальше мы нашу запись будем сравнивать с новой, а время, как вы
//понимаете будет всегда разным.И мы его "искусственно" делаем одинаковым, чтобы оно нам не
// помешало! Наверно должно быть $add_time вместо $my_dates1
if($check == "$add_time1|||$name_comm|||$mail_comm|||$comment") { $error[] = "Такой уже есть.";}
//А здесь как я понимаю $add_time - время новой записи (кстати нафига $add_time1? ведь
// вверху текущее время определяется переменной $add_time! Должно быть наверно $add_time.
// А дальше переменные $name_comm,$mail_comm,$comment - это нововведенные переменные.
// Кстати проверь, чтобы имена этих переменных совпадали с именами форм.
}
endif;
[/code]
ты сказал, что тебе нужно проверять на совпадение только мыло:
$check = "$add_time|||$name_comm|||$my_name_email|||$comment";
if($check == "$add_time|||$name_comm|||$mail_comm|||$comment") { $error[] = "Такой уже есть.";}
тобиш все переменные делаешь "искусственно" совпадающими, а мыло получается сравниваешь!
..фух...все..
Дальше - "[php" это я криво написал... это для форума чтобы он распознал кусок как пхп скрипт
Не знаю как в пхп, но на ВБ функция trim$(value as string) убирает в текстовой строке все лишнии пробелы(в начал и конце, если я не ошибаюсь...вдруг нажал случайно при вводе логина/пароля), здесь наверное тоже самое.
На счет времни - это я тоже понял что чушь... но что ты у меня спрашиваешь? :) это чужой скрипт и его я переделываю под то что надо мне :)
На счет "искусственного" совпаденеия...попробую...
$cnt = count($data_array) - 1; //А $cnt это количество записей в файле, хотя я ламо не понимаю почему надо вычесть 1??Гуру - объъсяните!, плиииизз
объясняю :) когда он записывает в файл то образуется пустая строка в самом конце... ну думаю дальше понятно...