Автор: Gamlet 20:01:2008, 07:19
Только начал изучать пхп, написал скрипт регистрации для одного своего сайта.
Кинул на хостинг скрипт для проверки, он показал наличие уймы ошибок. Начал исправлять, но хостинг откликается ошибкой даже на простейшие скрипты.
Помогите исправить ошибки в скрипте:
Код
<?php
$mkakk=$_Post['login'];
$mkpass=$_Post['password'];
if (file_exists($mkakk))
{
echo "Такой аккаунт есть";
}
else
{
$mkname=$_Post['name'];
$mksite=$_Post['site'];
$mkpost=$_Post['post'];
mkdir($mkakk);
$copypass=$mkakk."/pass.pl";
$copyname=$mkakk."/name.pl";
$copysite=$mkakk."/site.pl";
$copypost=$mkakk."/post.pl";
$copymoney=$mkakk."/money.pl";
$filename=fopen ($copyname, w);
$filepass=fopen ($copypass, w);
$filesite=fopen ($copysite, w);
$filepost=fopen ($copypost, w);
$filemoney=fopen ($copymoney, w);
fwrite($filename, $mkname);
fwrite($filepass, $mkpass);
fwrite($filesite, $mksite);
fwrite($filepost, $mkpost);
fwrite($filemoney, "0");
$filegnomer=fopen ("gsites/nomer.pl", "r+");
$gnomer=fread($filegnomer, 100);
$gnomer=$gnomer+1;
fwrite("gsites/nomer.pl", $gnomer);
$copynomer=$mkakk."/nomer.pl";
$filenomer=fopen ($copynomer, w);
fwrite($filenomer, $gnomer);
$gsite="gsites/".$gnomer.".pls";
//$copynomer=$mkakk."/nomer.pl";
$filegsite=fopen ($gsite, w);
fwrite($filegsite, $mksite);
$gbalans="gsites/".$gnomer.".plb";
//$copynomer=$mkakk."/nomer.pl";
$filegbalans=fopen ($gbalans, w);
fwrite($filegbalans, "0");
$glogin="gsites/".$gnomer.".pll";
//$copynomer=$mkakk."/nomer.pl";
$fileglogin=fopen ($glogin, w);
fwrite($fileglogin, $mkakk);
echo "Аккаунт создан";
}
?>
Очень надо.
Автор: MajestiC 20:01:2008, 14:18
Сам скрипт ужасен с точки зрения безопасности... Через POST тебе можно передать всё что угодно, а твой скрипт из этих данных создает директории и т.д....
А ошибки скорее всего у тебя из-за не правильных прав на директории в которых ты пытаешься создать файлы или скопировать туда файлы.
Покопай chmod
Автор: Vadik(R) 20:01:2008, 14:26
Я конечно в php не разбираюсь, но мой совет тебе - отрабатывать твой скрипт по шагам. То есть проверить поначалу
Код
<?php
$mkakk=$_Post['login'];
$mkpass=$_Post['password'];
if (file_exists($mkakk))
{
echo "Такой аккаунт есть";
}
?>
. Если работает, то проверить
Код
<?php
$mkakk=$_Post['login'];
$mkpass=$_Post['password'];
if (file_exists($mkakk))
{
echo "Такой аккаунт есть";
}
else
{
$mkname=$_Post['name'];
$mksite=$_Post['site'];
$mkpost=$_Post['post'];
echo "Скрипт пока работает наормально";
}
?>
Не смотря даже не то, что результат может и не изменится, мне кажеться всё равно так ты быстрее найдёшь свою ошибку. Такая "стратегия" отладки мне сегодня очень помогла в Делфи.
Автор: Ромко 23:03:2008, 21:06
Безопастность хромает....
Автор: olegSM 29:04:2008, 12:53
Да с безопасностью есть проблемка!
Нет проверки передаваемых параметров через метод POST !!!!!!!!
Не помешало бы использование СУБД(MySQL) с файлами много мороки да и не безопасно!
Будущее за СУБД. - во всем должен быть порядок!
--------------
smok on-line