[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. arless

    arless New Member

    Joined:
    22 May 2013
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Подскажите как защитить base.php ?
     
  2. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    файл можно паролем защитить в .htaccess password
    можно проверять по useragent
    разные варианты могут быть...
     
  3. arless

    arless New Member

    Joined:
    22 May 2013
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Хотел изменить название и путь,но не пойму где нужно путь менять? Есть файл index.php там говорят,но он не редактируется ошибку выдает,вообще ни один файл не редактируется в файл менеджер.
     
  4. Vlad&slav

    Vlad&slav Member

    Joined:
    1 Jan 2009
    Messages:
    207
    Likes Received:
    41
    Reputations:
    9
    какой самый простой способ слить 2 папки так, чтобы если файл уже есть, сверялся размер, если размер одинаковый, файл заменялся, а если разный переименовывался?
    в идеале даже не размер а хеш
    может что-то на скриптовых
     
  5. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    serjio_5 читайте iconv
    Vlad&slav http://www.php.net/manual/ru/function.md5-file.php
     
  6. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    короче такой вопросец,

    есть число 99999999999999999999999 , умножаю его на 5 и отнимаю 4 , в итоге скрипт показывает 5.0E+23 что это за хyйня и какполучить нормально число?
     
  7. Sum.cogitans

    Sum.cogitans Elder - Старейшина

    Joined:
    7 Sep 2013
    Messages:
    173
    Likes Received:
    32
    Reputations:
    19
    Потому, что значение результата превышает допустимый размер integer, за сим он так его и интерпретирует. Обычно максимальное значение определяется платформой или еще в php.ini 5+ можно глянуть PHP_INT_MAX.
     
  8. sashasib

    sashasib New Member

    Joined:
    12 Feb 2014
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Либо через апачевскую авторизацию (.htaccess, .htpasswd).

    Либо выставь в нём:

    PHP:
    if (!defined('_PROTECT'))
    {
        die(
    'Go away!');
    }
    А там, где инклюдишь base.php, поставь:

    PHP:
    define('_PROTECT'true);
     
  9. icemaxim1

    icemaxim1 Banned

    Joined:
    13 Mar 2013
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    Ребят, подскажите на PHP:

    Нужно принять запрос отправленный в виде XML в теле POST XML и записать его в базу mysql.

    Пример запрса который будет отправляться:

    <?xml version="1.0" encoding="UTF-8"?>
    <cell1='data1'>
    <cell2>data2</cell2>
    <cell3>data3</cell3>
    <cell4>data4</cell4>
    </subscribe>

    При входящем запросе нужно подключиться к mysql базе, распарсить его и записать значения ... синтаксис php я вообще не бум-бум..)
     
  10. qw1mb1

    qw1mb1 Member

    Joined:
    8 Feb 2013
    Messages:
    113
    Likes Received:
    16
    Reputations:
    8
    выделенная строка является одинарным тегом, которые в XML не используются
     
  11. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    как для окрытия сайта через fopen вывести не ip хостинга а ip открывшего сайт ?
     
  12. Sum.cogitans

    Sum.cogitans Elder - Старейшина

    Joined:
    7 Sep 2013
    Messages:
    173
    Likes Received:
    32
    Reputations:
    19
    GAiN
    Поясни пожалуйста подробней, не понятна формулировка вопроса. Тебе нужен IP сайта? Если да, то это не обязательно подвязывать на fopen, просто:

    Code:
    <?
    $g_url = parse_url('http://site.ru/');
    foreach (gethostbynamel($g_url['host']) as $ip)
       echo $ip, "\n";
    ?>
    Если речь идет о инициаторе, тогда это в любом случае host твоего php интерпретатора. Если нужен IP пользователя текущей сессии, бери его из $_SERVER:

    Code:
    <?
    $g_uip = $_SERVER['REMOTE_ADDR']; 
    ?>
    Или я вовсе не понял вопроса, тогда поправь.
     
    #22072 Sum.cogitans, 15 Feb 2014
    Last edited: 15 Feb 2014
  13. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    Sum.cogitans, мне нужно что бы при открытии url страницы через fopen оставался ip мой, а не хостинговый - он по умолчанию приписывается и открывается с егошним ip страница
     
  14. mironich

    mironich Elder - Старейшина

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Не выйдет.. Т.к php работает на сервере, соответсвенно с его ip и открывается стр.
     
  15. Sum.cogitans

    Sum.cogitans Elder - Старейшина

    Joined:
    7 Sep 2013
    Messages:
    173
    Likes Received:
    32
    Reputations:
    19
    В таком случае у тебе есть три варианта:
    - Захостить у себя сайт o_o
    - Захостить у себя скрипт с fopen и отдавать его в iframe на хостинг o_O
    - Запустить у себя проксю и через нее зацепить сервер, а это конечно в случае vps \ colocation etc O_O

    По средствам php, как верно подметил mironich, ты этот вопрос к сожалению не решишь.
     
    #22075 Sum.cogitans, 16 Feb 2014
    Last edited: 16 Feb 2014
  16. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    открытые через fopen url страницы, ссылки все которые там есть имеющие вид:
    PHP:
    <a href="/example/kn.html">Относительная ссылка</a>
    при клике получают домен не своего сайта а хостинга - где стоит скрипт

    ссылки можно заменить на другие? заставить при клике не к моему домену подставлять их, а к своему?
     
  17. antras2007

    antras2007 New Member

    Joined:
    4 Jul 2013
    Messages:
    33
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток! возник вот такой вопрос! После самостоятельного изучения php начал наконец-то писать свой сайт. Более опытные люди посмотрев на мой код посоветовали мне изменить структуру так что бы в отдельной папке был только начальный файл (index.php) а все обработчики и файлы в других папках по полочкам и настроить виртуальный хост на ту папку в кторой лежит (index.php) начальный файл. После перенастроки хоста и изменения структуры файлов я не могу зайти в свою админку и половина сайта не работает, хотя пути все прописаны верно. При вводе пароля для админа мне пишет что такого файла не существует, хотя пути прописаны все верно. Вот код:
    Index.php:
    PHP:
    <?php
    require "system/lib.inc.php";
    require 
    "system/data.inc.php";
    ?>

    <!DOCTYPE html>
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Моя первая страница</title>
    </head>
    <body>
    <style type="text/css">
        .right_form{
            position:absolute;
            right:0px;
            margin-top: -135px;
            margin-right: 10px;
        }

    </style>
    <table width="100%" border="1">
        <tr>
            <td colspan="2" align="center">
                <!-- Верхняя часть страницы -->
                <p align="center"><h1><big>Моя семья</big></h1></p>
                <?php
                
    //Верхнее меню
                
    getMenu($topMenufalse)
                
    ?>
                <div class="right_form">
                    <table>
                        <form action="admin/admin.php" method="POST">
                            <tr>
                                <td>Логин:</td>
                                <td><input type="text" name="login"></td>
                            </tr>
                            <tr>
                                <td>Пароль:</td>
                                <td><input type="password" name="password"></td>
                            </tr>
                            <tr>
                                <td>&nbsp</td>
                                <td><input type="submit" name="submit" value="Отправить"></td>
                            </tr>
                        </form>
                    </table>
                </div>
            </td>
        </tr>
        <tr>
            <td width="20%" valign="top">
                <?php
                
    //Боковое вертикальное меню
                
    getMenu($leftMenu)
                
    ?>
            </td>

            <td>
                <!-- Область основного контента -->
                <?php
                
    if (isset($_GET['id']) && !empty($_GET['id']) ){
                    
    $id strip_tags($_GET['id']);
                }
                if(isset(
    $id)){
                    switch(
    $id){
                        case 
    'myWife':
                            include 
    'biography_top_menu/myWife.php';break;
                        case 
    'misha':
                            include 
    'biography_top_menu/misha.php';break;
                        case 
    'vlad':
                            include 
    'biography_top_menu/vlad.php';break;
                        case 
    'dima':
                            include 
    'biography_top_menu/dima.php';break;
                        case 
    'about':
                            include 
    'system/form.php';break;
                        case 
    'myWife_photo':
                            include 
    'file_left_menu/myWife_photo.php';break;
                        case 
    'misha_photo':
                            include 
    'file_left_menu/misha_photo.php';break;
                        case 
    'vlad_photo':
                            include 
    'file_left_menu/vlad_photo.php';break;
                        case 
    'dima_photo':
                            include 
    'file_left_menu/dima_photo.php';break;
                        default:
                            echo 
    '<p><h1><center><big>Привет всем!!!</big></center></h1>';
                    }
                }
                
    ?>
                &nbsp;
            </td>
        </tr>
    </table>
    </body>
    </html>
    вот код admin.php
    PHP:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <?php
    $login 
    trim(strip_tags($_POST['login']));
    $password md5(trim(strip_tags($_POST['password'])));
    session_start();

    $mysqli = new mysqli("localhost""root""""myCms") or die(mysqli_error($mysqli));
    if (
    mysqli_connect_errno()) {
        
    printf("Не удалось подключиться: %s\n"mysqli_connect_error());
        exit();
    }
    $mysqli->query("set names 'utf8'") or die(mysqli_error($mysqli));
    $query "SELECT login, password FROM admin";
    $result $mysqli->query($query);
    $data =  mysqli_fetch_assoc($result);

    if(
    $data['login'] == $login and $data['password'] == $password){
        
    $_SESSION['admin'] = true;
        
    header("location: edit.php");
        die();
    }
    else{
        
    $_SESSION['admin'] = false;
        
    header("location: ../index.php");

    }
    вот код edit.php
    PHP:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <html>
    <head>
        <title></title>
    </head>
    <body>
    <table>
        <tr>
            <td><a href="../index.php">На главную</a></td>
            <td>&nbsp</td>
            <td><a href="edit_about.php">Отзывы</a></td>
        </tr>
    </table>
    <form enctype="multipart/form-data" action="edit.php" method="POST">
        <p><input type="file" name="userfile"></p>
        <p><select required name="select"><option></option>
                <option value="1">Галина</option>
                <option value="2">Михаил</option>
                <option value="3">Владушка</option>
                <option value="4">Димасик</option>
            </select>
        <p><textarea rows="8" cols="25" name="about"></textarea>
        <p><input type="submit" value="Send"><hr>
    </form>
    </body>
    </html>
    <?php
    //TODo вынести php в отдельный файл
    session_start();
    if(@
    $_SESSION['admin'] != true) {
        
    header("location: fuck.php");
        die();
    }

    $path "../images";
    $fileName uniqid();
    if(!empty(
    $_FILES['userfile']['name'])){
        
    $file $path.'/'.$fileName$_FILES['userfile']['name'];
    }
    if(!empty(
    $_FILES['userfile']['name'])){
        
    $uploaded_file move_uploaded_file($_FILES['userfile']['tmp_name'], $file );
    }

    //if(isset($file)){
    //    echo "<img style='width:200px;heigth:200px;' src=".$file."><br/>";
    //}
    if(isset($_POST['about']) && !empty($_POST['about'])){
        
    $about $_POST['about'];
    }
    if(isset(
    $_POST['select']) && !empty($_POST['select'])){
        
    $select $_POST['select'];
    }
    if(isset(
    $_FILES['userfile']['name'])){
        
    $save_file $fileName$_FILES['userfile']['name'];
    }
    $mysqli = new mysqli("localhost""root""""myCms");
    $mysqli->query("set names 'utf8'") or die(mysqli_error($mysqli));
    if(isset(
    $select)){
        
    $select $mysqli->real_escape_string($select);
    }
    if(isset(
    $about)){
        
    $about $mysqli->real_escape_string($about);
    }
    if(isset(
    $file$select$about)){
        
    $sql $mysqli->query("INSERT `images` SET  `owner`='$select', `filename`='$save_file',`about`='$about'");
    }

    $query "SELECT * FROM images where owner in(1,2,3,4) ORDER BY id DESC";
    $result $mysqli->query($query);

    $photos = array();
    $i 0;
    while (
    $row mysqli_fetch_assoc($result)) {
        
    $photos[$i]['filename'] = $row['filename'];
        
    $photos[$i]['about'] = $row['about'];
        
    $photos[$i]['id'] = $row['id'];
        
    $i++;
    }
    //var_dump($photos);
    foreach($photos as $photo){
        echo 
    "<br/>";
        echo 
    '<img style="width:150px;heigth:150px;" src=../images/'.$photo['filename'].'>';
        echo 
    "<br/>";
        echo 
    $photo['about'];
        echo 
    "<p align='right'>";
        echo 
    "<a href=deletefile.php?del=".$photo["id"].">Удалить</a>";
        echo 
    "</p>";
        echo 
    "<hr>";
    }
    ?>
    Подскажите, кто может знает в чем причина?
     
    #22077 antras2007, 19 Feb 2014
    Last edited by a moderator: 19 Feb 2014
  18. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,170
    Likes Received:
    1,155
    Reputations:
    202
    В относительных путях к файлам при инклудах. И еще было бы неплохо если бы погуглил что такое ББ-коды, а то как в 1990 году пишешь
     
  19. GAiN

    GAiN Elder - Старейшина

    Joined:
    2 Apr 2011
    Messages:
    2,550
    Likes Received:
    172
    Reputations:
    99
    почему вместо клиентского ip отображается ip хостинга ?
    сегодня обнаружил такое
    $ip = getRealIpAddr();
    проверял
    PHP:
    <?php
    echo $_SERVER['REMOTE_ADDR'];
    ?>
    косяк хостинга ?
     
    #22079 GAiN, 20 Feb 2014
    Last edited: 20 Feb 2014
  20. Sum.cogitans

    Sum.cogitans Elder - Старейшина

    Joined:
    7 Sep 2013
    Messages:
    173
    Likes Received:
    32
    Reputations:
    19
    Да. Скорее всего, realip_module апача отключен или тому подобные - в зависимости от площадки.
    Пиши в support, если не vps/collocation/etc.
     
    #22080 Sum.cogitans, 21 Feb 2014
    Last edited: 21 Feb 2014
Thread Status:
Not open for further replies.