singlepost

FAQ: вопросы и ответы << На главную или назад  

Помогите еще разок
<?php

function MakeDirectoryName ($arg1){
$dirname = mt_rand(1,9999) . $arg1 ;
return $dirname ;
}

function WriteToFile ($name, $pass){
$pass = md5($pass);
$Dir ="Users/" . MakeDirectoryName($name);
$Dir2 = str_replace('Users/','',$Dir);
$fp = fopen('usr.res','a');
fwrite($fp,$name."\t".$pass."\t".$Dir2."\r\n");
if ($fp){
fclose ($fp);
$DoDir = mkdir($Dir);
}
}
$username = $_POST['username'];
$password =$_POST['password'];

if (isset($_POST['username'])&&isset($_POST['password'])){
$Proverka = WriteToFile ($username, $password);
if (isset($Proverka)){
print "Вы зарегестрированы успешно и $DoDir";
}
else {
print "Ошибка регистрации";
}
}
else {
print "Пожалуйста введите Логин и Пароль для регистрации";
}

?>

Я не пойму почему мне всегда пишет что ошибка регистрации? Даже если переменные(В данном случаи массив) пустая совсем.

P.S Появились определенные успехи в php )

65 ответов в теме “FAQ: вопросы и ответы”

  1. 64
    Илья Ленин ответил:

    #63 заголовок keep-alive рулит, хотя в такой ресурсоемкой процедуре он тебе вряд ли поможет

  2. 63
    Булат Базаргуруев ответил:

    а где мне найти эти файлы:
    lang_admin.php
    lang_admin_attach.php
    lang_admin_bt.php
    lang_admin_rebuild_search.php
    Заранее благодарю!!!

  3. 62
    Сергей Афанасьев ответил:

    #57 Алексей aka~Android Вишняков, вроде на выполнение в браузере отводится по умолчанию 30 или 45 с, за это время наверное должно хоть сколько-то обработаться? Или я немного не о том?

  4. 61
    Екатерина Афонина ответил:

    ага) спасибо) вчера так и сделала) все получилось. но это начало. буду, чуть позже, вас дальше мучить

  5. 60
    Алексей Вишняков ответил:

    Бэкапы(Backup) – резервные копии данных. Скопируй файлы с фтп и сохрани их где-нибудь далеко. И если обновления испортят сайт просто скопируй обратно те файлы которые изменились и попробуй снова =)

  6. 59
    Екатерина Афонина ответил:

    Алексей aka~Android Вишняков, понимаю, но ужно разобраться самой) очень)

    что такое бекапы, про которые не надо забывать?

    и спасибо за ответ)

  7. 58
    Алексей Вишняков ответил:

    Екатерина, все может быть. Все зависит от того, что именно Вы измените и как сделан сам сайт. Делайте резервные копии перед изменением. Не редактируйте там, где не понимаете, к чему это приведет.

    PS Дримвейвер это текстовый редактор с наваротами. PHP – язык на котором пишут сайты в любом текстовом редакторе. Так что писать Вам сайт (или изменения) нужно на PHP. Дримвейвер может проявить самостоятельность(теоретически) и добавить какой-то лишний код, который может испортить сайт. Поэтому проверяйте файлы которые вы хотите залить на наличие только нужных изменений. И не забывайте про бекапы=)))

    PSS Лучше все-таки поручить это дело человеку, который в этом разбирается.

  8. 57
    Екатерина Афонина ответил:

    Вопрос такой, если сайт прописан в php, но нет возможности его редактировать тем языком, которым прописан. Не возникнет ли проблем при редактировании сайта с помощью Adobe Dreamweaver? Это первый опрос.
    Далее, если отредактировать в том же Adobe Dreamweaver и загрузить в ftp не полетит ли сайт? Не возникнет незапланированных изменений?
    И третий вопрос. Возможно ли не прописывать в php, а в этой же программе подкорректировать таблицы сайта, опять же при скидывании в ftp не будет он выглядеть иначе, чем в Adobe Dreamweaver?
    Заранее всем спасибо))
    И поясните пожалуйста не проф языком, тобы обойтись без моих доп опросов))

  9. 56
    Алексей Вишняков ответил:

    #56 думаю скрипт прерывается, раньше чем заканчивается перекодировка. Поставь set_time_limit по-больше или равный нулю. И еще ignore_user_abort включи.

    PS по хорошему такие трудоемкие задачи нужно кроном делать.

    PPS Я не знаю, как ты запускал – просто предположение, что ты запускаешь скрипт из браузера.

  10. 55
    Сергей Афанасьев ответил:

    Добрый день! Подскажите пожалуйста в чем проблема. Пытаюсь конвертировать видео в flv с помощью ffmpeg но получается фаил нулевого размера.
    Код
    exec("ffmpeg -i ff.avi -f flv ff.flv");

  11. 54
    Ибраим Алибай ответил:

    Подскажите пожалуста, почему у меня на php 5.2.9 не работает __autoload В чем могут быть причины?

  12. 53
    Александр Шуйский ответил:

    кто что в базу не заносит? ща проверил, сообщения отправляются

  13. 52
    Irakli Mikaya ответил:

    pastebin.ru/306318
    не заносит в базу помогите

  14. 51
    Алексей Вишняков ответил:

    Я использую Tamper Data. Плагин для FireFox

  15. 50
    Станислав Борисов ответил:

    firebug тебе в помощь)

  16. 49
    Степан Грязнов ответил:

    Не подскажите, какой программой можно словить пост запрос и с помощью неё воспроизвести запрос еще раз?

  17. 48
    Алексей Вишняков ответил:

    Репликация БД

  18. 47
    Айрат Ибрагимов ответил:

    Люди подскажите как правильно организовать зеркало сайта? Не знаю правильно или не правильно я сделал. В моем случае в кроне раз в неделю выполняется задача, в которой с помощью file_get_contents записываю в переменную содержимое страницы основного сайта, с помощью регулярок извлекаю нужные данные, затем сравниваю их с данными из бд сайта-зеркала, если они не равны, то записываю в бд новые данные. Пока протестировал на одной странице, вроде все работает. Но как бы эти же действия нужно осуществить примерно со 150-ю страницами, могут ли возникнуть какие-нибудь проблемы?

  19. 46
    Константин Град ответил:

    подскажите
    имеется БД на MYSQL и эксель(там фирмы забиты)…нужна страничка расширенного поиска жтих фирм по критериям при помощи галочек или выпадающего меню…..типа как //kaliningrad.net/findfirm/
    киньте скрпит….в личку…заранее спасибо!

  20. 45
    Станислав Борисов ответил:

    я первый сайт как халтуру вааще за 500р наверстал… а за такой реально 1000р это мало :)

  21. 44
    Александр Тарантей ответил:

    Как сделать красивые урлы на сайте
    //js-php.ru/web-development/apache-mod_rewrite-...

  22. 43
    Айрат Ибрагимов ответил:

    Всем хай. У меня такая проблема файлы с русскими именами не скачиваются с ФТП. Дык вот скажем на входе есть HTML полученный с визивиг редактора, на выходе должен быть тот же код, только с заменой <a href="ссылка"></a> на <a href="urlencode(ссылка)"></a>. Напишите, если не сложно правило замены

  23. 42
    Алексей Вишняков ответил:

    Был бы я школьником – я бы взялся)
    Первый сайт вроде за 1,5к делал)
    Правда сайтом это назвать сложно было)

  24. 41
    Денис Щеголев ответил:

    Дешево берешь..

  25. 40
    Денис Щеголев ответил:

    Или даешь.. Хз.. Но за такую работу явно мало..

  26. 39
    Василий Шевченко ответил:

    Ребят, помогите!
    Бюджет – 1 000 руб.

    Задача:
    Есть сайт: //krasota-bez-granic.ru/ Онлайн конкурс "Красота без границ"

    Итак, что нужно доделать:

    1. Форма-анкета – посетитель заполняет анкету (имя, рубрика из списка, о себе, и т.д) загружает фотки – это все отправляется в БД, откуда потом показывается на сайте

    3. Как то выровнять фоты и текст напротив них, ибо в некоторых рубриках там то фотки друг на друга наплывают, то текст то выше то ниже, и т.д…. Плюс надо продумать что то типа каталога, чтобы когда было много анкет (например больше 10) что бы они разделялись по страницам

    4.1. При добавлении анкеты, хотелось бы что бы кроме слов "Анкета добавлена", было ещё типа :

    " Ссылка на Вашу анкету – ….
    Что бы проголосовать за вас необходимо … "

    4.2. После отправки анкеты на мыло участнику должно отправятся сообщение, типа :

    "Уважаемый *имя*, участник конкурса Красота без границ (ссылка на сайт) в рубрике *рубрика* ! Спасибо за Участие!
    Напоминаем, что бы проголосовать, надо ….

    Адрес Вашей анкеты – …. "

    5. Сделать почтового робота, который раз в месяц отсылал всем участниками письма на e-mail, типа :

    "Уважаемый *имя*, участник конкурса Красота без границ (ссылка на сайт) в рубрике *рубрика* ! На *дата* у вас *рейтинг* голосов, и вы находитесь на ** месте.
    Напоминаем, что бы проголосовать, надо ….

    Адрес Вашей анкеты – …. "

    6. Сделать автоматическое сжатие фоток. Что бы когда человек отправляет фотку в 3 мегабайта, что бы она автоматически до 200 кб примерно сжималась…

    7. Сделать, чтобы если человек загружал менее 3х фоток, что бы не показывалось пустых рамок для незагруженных фоток

    e-mail: soulofmetal@mail.ru
    tel: +7 (921) 582-84-10
    ICQ: 356-352-650

  27. 38
    Денис Щеголев ответил:

    Вобщем при следующем коде выводит фото только одного юзера, добавляю while на исполнение базы данных так фоток получается бесконечное количество. Помогите сделать нормально….
    $topm = mysql_fetch_array(mysql_query("select * from `user` where `pol`='m'"));
    $qi = mysql_query("select * from `ufoto` where `uid`='".$topm['id']."' order by `id` desc limit $startan,$num_msgs_an;;");
    $b=mysql_affected_rows();
    if ($b==0)
    {
    echo "Нет фотографий!<br/>";
    print '<a href="top_foto.php">Назад</a><br/>';

    }
    else
    {
    while($row=mysql_fetch_array($qi))
    {
    print '<hr/><a href="index.php?fmode=info_foto_big&fid='.$row['id'].'&uid='.$row['uid'].'&'.SID.'"><img src="func/resize_foto.php?img=../user/foto/'.$row['uid'].'/'.$row['namefile'].'.jpg" alt="foto"/></a><br/>';

  28. 37
    Александр Тарантей ответил:

    Ну незнаю, когда нужно выбрать и значения с лимтом и узнать сколько их всего, как-то юзаю SQL_CALC_FOUND_ROWS и особо не парюсь, был тут один молодой талант, для которого потеря во времени в 52 раза несущественный проигрыш :) ) лично я юзаю SQL_CALC_FOUND_ROWS

  29. 36
    Айрат Ибрагимов ответил:

    Версия мускула

  30. 35
    Константин Хренов ответил:

    хм, так какие причины неработы могут было уSQL_CALC_FOUND_ROWS ?

  31. 34
    Алексей Вишняков ответил:

    Я как-то раз написал с SQL_CALC_FOUND_ROWS на MySQL 5
    Все прекрасно работало, а потом вдруг перестало. Сначала покопался, поискал причину, а потом просто переписал все без этого.

  32. 33
    Александр Янцен ответил:

    "SQL_CALC_FOUND_ROWS and FOUND_ROWS() are available starting at MySQL 4.0.0."
    у меня как то напарник написал штуку с применением SQL_CALC_FOUND_ROWS, а потом оказалось что сервер под сайт только с mysql 3.23, пришлось мне переписывать запросы, а за ними и код частично…

  33. 32
    Алексей Вишняков ответил:

    Второе лучше не юзать без особого повода.

  34. 31
    Алексей Вишняков ответил:

    select count(*) from table

  35. 30
    Александр Тарантей ответил:

    Совсем недавно спорили по этому поводу в другой группе. есть count(*) и есть SQL_CALC_FOUND_ROWS смотри что тебе лучше юзать

  36. 29
    Роман Афанасьев ответил:

    Есть ли функция которая возвращает количество записей в таблице mysql?

  37. 28
    Александр Тарантей ответил:

    ExtJs юзал на одном проекте, красоты впечатляют, как для админки пойдет, кастомизировать эти все окошки-формочки не пытался

  38. 27
    Александр Янцен ответил:

    2Антон MoRToR Ерёменко
    обратите внимание например на jquery, куча плагинов.
    или ExtJS(сам не использовал) говорят мощный фреймворк "для построения интерактивных и красивых визуальных интерфейсов"

    2Константин Владимирович
    в любом редакторе с подсветкой синтаксиса: Bred, Notepad++, Komodo Edit, их много разных
    "то минут 5 надо, что бы вернуть все на место" – хорошо если 5, но сначала надо еще место найти где накосячил…

  39. 26
    Константин Владимирович ответил:

    Скажите где лучше писать код PHP для начинающих…
    А то в Битрексе, если сделал ошибку, то минут 5 надо, что бы вернуть все на место… напишите ответ мне в личку плз..

  40. 25
    Антон Ерёменко ответил:

    какие решения?

  41. 24
    Александр Тарантей ответил:

    так есть же готовые решения для этого, и не представляю все-равно зачем столько движений совершать для такого скрипта

  42. 23
    Антон Ерёменко ответил:

    не помогает….

    зачем? ну я не сайтики рисую… а по сути переношу приложение с win forms на web… в данном случае – контрол, на котором двигается шкала…

  43. 22
    Александр Тарантей ответил:

    не понимю задачи, что-то в голову не приходит даже зачем это может пригодится…. ну задай для td величину в пикселях и сделай overflow: hidden

  44. 21
    Антон Ерёменко ответил:

    фаерфокс тож самое как и опера себя ведёт((

  45. 20
    Антон Ерёменко ответил:

    я не только картинки туда кидаю… а например ещё одну таблицу… её мне тоже надо сдвигать и чтобы то что зашкалит – обрезалось… а бэкграундом таблицу не сделаешь))

  46. 19
    Александр Тарантей ответил:

    сделай эту картину бэкграундом, его легно позиционировать

  47. 18
    Антон Ерёменко ответил:

    вопрос наверное по html… в таблицу кидаю рисунки… мне нужно чтобы по маргину "зашкаливающая" часть рисунка обрезалась… так делает эксплорер… а во опера не обрезает, а просто выводит его дальше за грань ячейки.

    кто-нть может подсказать как заставить оперу делать обрезание 0_о ??

  48. 17
    Алексей Вишняков ответил:

    Че-та у меня такое чувство, что ты все усложнил!

    Зачем тебе трригер?

    сделай таблицу городов и таблицу зданий и свяжи их.
    сделай уникальный ключ на 2 столбца таблицы здания (город, ячейка)

    и все. обычный запрос
    Select * from buildings where town_id = $n

  49. 16
    Александр Неберекутин ответил:

    Всем привет! у меня такая ситуация:
    есть три таблицы: towns, buildings, links. Я триггером прописал чтобы при создании нового города (это онлайн игра) данные о id города вставлялись в links.id. Также в links.id есть 15 столбцов, каждый из которых обозначает ячейку для размещения здания, т.е. при нажатии на странице на ячейку b1 и постройке в ней здания с id=3 в links.b1 вносится номер здания как и в таблице buildings = 3. Вопрос в следующем: как составить запрос, чтобы анализ шел по links.id (т.е. номеру города), потом брался номер здания из столбца обозначающего ячейку (к примеру b1) и по полученным данным выводился результат из таблицы buildings.construction? как я понимаю поиск должен проходить по номеру здания, помогите плиз – никак не могу составить :(

  50. 15
    Алексей Вишняков ответил:

    А какая ошибка? и в какой строке?

  51. 14
    Милан Абдулханов ответил:

    Чо за ошибка то ?

  52. 13
    Милан Абдулханов ответил:

    <?php
    $result=mysql_query("SELECT * FROM subscrib",$db);
    if(!$result)
    {
    echo "<p class='red'>Запрос на выборку не прошел! Напишите об этом админу goper@tut.by </br> код ошибки:</p>";
    exit(mysql_error());
    }

    if(mysql_num_rows($result )>0 )
    {

    //
    ////Думаю проблеиа в этом проблема//>$myrow=mysql_fetch_array($result);
    //
    $headers="Content-type:text/plain; Charset=windows-1251\r\n";
    // адрес сервера
    $server_name=$_SERVER['SERVER_NAME'];
    // определяем переменную с темой письма
    $subject="Появился новый текст на сайте";
    // само сообщение
    $message="На сайте $server_name появился новый текст $title. Автор $author. Время добавления $date";

    while ($myrow=mysql_fetch_array($result))
    {
    $adress=trim($myrow['mail']);
    echo $adress;
    // здесь адрес отображается в цикле,если убрать or die()
    @mail($adress,$subject,$message,$headers)
    or die("<p class='red'>ошибка рассылки сообщений подписчикам </p>");

    }

    //print_r($adress);

    }
    else
    {
    //если в базе по запросу нет записей
    echo "<p class='red'>Информация не извлекается,нет записей!</p>";
    exit(mysql_error());
    }

    }
    ?>
    Объеснять долго это уже на подсознательном уровне

  53. 12
    Александр Железновский ответил:

    Алксей, вод код, но он не работает
    $result=mysql_query("SELECT * FROM subscrib",$db);
    if(!$result)
    {
    echo "<p class='red'>Запрос на выборку не прошел! Напишите об этом админу goper@tut.by </br> код ошибки:</p>";
    exit(mysql_error());
    }

    if(mysql_num_rows($result )>0 )
    {

    $myrow=mysql_fetch_array($result);
    $headers="Content-type:text/plain; Charset=windows-1251\r\n";
    // адрес сервера
    $server_name=$_SERVER['SERVER_NAME'];
    // определяем переменную с темой письма
    $subject="Появился новый текст на сайте";
    // само сообщение
    $message="На сайте$server_name появился новый текст$title. Автор $author. Время добавления $date";

    while ($myrow=mysql_fetch_array($result))
    {
    $adress=trim($myrow['mail']);
    echo $adress;
    // здесь адрес отображается в цикле,если убрать or die()
    @mail($adress,$subject,$message,$headers)
    or die("<p class='red'>ошибка рассылки сообщений подписчикам </p>");

    }

    //print_r($adress);

    }
    else
    {
    //если в базе по запросу нет записей
    echo "<p class='red'>Информация не извлекается,нет записей!</p>";
    exit(mysql_error());
    }

    }

  54. 11
    Александр Железновский ответил:

    я уж в мистику стал верить, вроде все прозрачно, а выдает ошибку.

  55. 10
    Алексей Вишняков ответил:

    Вот посмотрел TODO list php6
    Бетой там даже не пахнет =)

    //wiki.php.net/todo/php60

  56. 9
    Алексей Вишняков ответил:

    > а функция mail работает в цикле ? будет рабоать код типа
    Куда она денется ;-)
    сделай только цикл с предусловием, а то при первом проходе ошибка будет выдаваться.

    > Нах тогда в групе написанно php5/6 ?
    php 6 вроде беты выходят какие-то. Релиза еще не было. Видимо на будущее

  57. 8
    Александр Железновский ответил:

    слушайте, а функция mail работает в цикле ? будет рабоать код типа:
    …..
    $myrow=mysql_fetch_array($result);
    // адрес сервера
    $server_name=$_SERVER['SERVER_NAME'];
    // определяем переменную с темой письма
    $subject="Появился новый текст на сайте";
    // само сообщение
    $message="На сайте$server_name появился новый текст$title. Автор $author. Время добавления $date";

    do
    {
    $adress=$myrow['mail'];
    echo $adress;
    @mail($adress,$subject,$message,"Content-type:text/plain; Charset=windows-1251\r\n");
    //or die("<p class='red'>ошибка рассылки сообщений подписчикам </p>");

    }
    while ($myrow=mysql_fetch_array($result));

  58. 7
    Милан Абдулханов ответил:

    Нах тогда в групе написанно php5/6 ?

  59. 6
    Алексей Вишняков ответил:

    Еще не вышел!

  60. 5
    Милан Абдулханов ответил:

    Народ я ток с армии недавно пришол php 6ой когда вышел ?

  61. 4
    Милан Абдулханов ответил:

    с файлами не советую работать , замедляет время выполнения , да процес более ресурсоёмкий .

  62. 3
    Милан Абдулханов ответил:

    <?php

    function MakeDirectoryName ($arg1){
    $dirname = mt_rand(1,9999) . $arg1 ;
    return $dirname ;
    }

    function WriteToFile ($name, $pass){
    $pass = md5($pass);
    $Dir ="Users/" . MakeDirectoryName($name);
    $Dir2 = str_replace('Users/','',$Dir);
    $fp = fopen('usr.res','a');
    fwrite($fp,$name."\t".$pass."\t".$Dir2."\r\n");
    if ($fp){
    fclose ($fp);
    $DoDir = mkdir($Dir);
    }
    }
    $username = $_POST['username'];
    $password =$_POST['password'];

    if (isset($_POST['username'])&&isset($_POST['password'])){
    $Proverka = WriteToFile ($username, $password);
    if (isset($Proverka)){
    $mes="Вы зарегестрированы успешно и $DoDir";
    }
    else {
    $mes="Ошибка регистрации";
    }
    }
    else {
    $mes="Пожалуйста введите Логин и Пароль для регистрации";
    return $mes;
    }

    ?> яб так поступил

  63. 2
    Виктор Семенов ответил:

    Примного благодарен.

  64. 1
    Алексей Вишняков ответил:

    функция WriteToFile не возвращает никаких значений
    поэтому в $Proverka = WriteToFile ($username, $password);
    $Proverka всегда будет равна null
    следовательно условие никогда не выполнится

    решение – добавь в функцию return true;

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.