доступ к переменной из другого файла?

Тема в разделе "PHP", создана пользователем sunyang, 30 мар 2011.

Модераторы: latteo
  1. sunyang

    sunyang

    Регистр.:
    25 апр 2009
    Сообщения:
    440
    Симпатии:
    30
    У меня в первом php файле написан скрипт, в котором определена переменная $a. Во втором написан скрипт в который нужно взять значение $a из первого файла. Как достучаться до переменной и взять ее значение во второй файл?
     
  2. Liver

    Liver

    Регистр.:
    24 сен 2008
    Сообщения:
    316
    Симпатии:
    91
    сделать include первого файла во втором.
     
  3. gres_18

    gres_18 Pythonобандерівець®

    Регистр.:
    26 апр 2009
    Сообщения:
    407
    Симпатии:
    206
    Вызвать второй файл с передачей переменной методом POST или GET.
    В 1.php:
    PHP:
    $query '/2.php?a='.$a;
    file_get_contents($query);
     
  4. sunyang

    sunyang

    Регистр.:
    25 апр 2009
    Сообщения:
    440
    Симпатии:
    30
    Ясно. Спасибо.
    Допустим я подгрузил в 2.php переменную $a из 1.php , изменил ее значение в 1.php, теперь мне нужно новое значение этой переменной записать снова в 2.php
    (например значение из формы:

    PHP:
    <form  name=change_val id=new>
    <
    input  type=text name=newvalue />
    <
    input id=change type=submit value="изменить">
    )

    Как это можно реализовать?
     
  5. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    363
    Симпатии:
    117

    PHP:
    // file name  2.php

    $a 2;
    include 
    "1.php";
    echo 
    $a;
    PHP:
    // file name  1.php
    $a 1;
    так как переменные являются глобальными то изменение их в 1 файле повлечет за собой их "автоматическое" изменение в 2 файле ...
     
  6. sunyang

    sunyang

    Регистр.:
    25 апр 2009
    Сообщения:
    440
    Симпатии:
    30
    блин, не правильно написал...

    Допустим я подгрузил в 2.php переменную $a из 1.php , изменил ее значение в 2.php, теперь мне нужно новое значение этой переменной записать снова в 1.php

    в таком случае я должен в 1.php include "2.php", а в 2.php include "1.php" ?

    Сделать include друг на друга?)

    Добавлено через 9 минут
    так долго объяснять.

    У меня два файла maxids.php и admin.php:

    первый: maxids.php
    В нем переменная с выставленным значением, которое нужно изменить.

    содержание:
    PHP:
    <?php
    include('/mode/admin.php');
    //переменная максимального количества юзеров для реги
    $max_id 3;
    ?>
    второй admin.php
    в нем форма значение которой записывается в переменную значением которой нужно изменить значение $max_id в файле maxids.php

    содержание:

    PHP:
    <?
    include(
    $doc_root.'libs/maxids.php');
    ?>

    <form action="" method="post"> 
    <input  type=text name=newvalue /> 
    <input name=change type=submit value="изменить"> 
    </form>

    <?
    $new_id = !empty($_POST['newvalue'])?$_POST['newvalue']:null;
    $max_id = $new_id;
    echo('Количество участников изменено на ' . '<b>' . $max_id . '</b>');
    ?>
    где я накосячил?)

    Добавлено через 26 минут
    тут наверное для записи нового значения в maxids.php
    нужно юзать функции
    fopen
    fwrite
    Верно?
     
  7. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    363
    Симпатии:
    117
    будет зацикливание и сервак повиснет ...
    если только в каком-то из файлов не будет выход по условию, типа

    if( условие ) exit;



    в файле maxids.php есть какой-то пхп-код кроме присвоения переменной значения ?
    т.е. выполняются еще какие-то действия?

    если не выполняются - то использовать ф-ции fopen, fwrite ...
    более того в том файле тогда нужно хранить лишь само значение, без присвоения или тегов "<?php", а тупо само число.
    и в файле admin.php просто его считывать .... ну и если его изменили то перезаписывать

    если выполняются то можно попробовать как-то так
    PHP:
    <?php 
    //maxids.php
    $max_id 3

    if(isset(
    $new_id))
    {
        
    $max_id $new_id;
        
        
    // а тут соответственно действия с обновленным $max_id
    }
    // ну или тут  
    ?>

    PHP:
    <?php  
    //admin.php
    // есил в  admin.php  нужна переменная которая находится в maxids.php
    // делаем инклюд    
        
    include($doc_root.'libs/maxids.php'); 
    ?>

    <form action="" method="post">  
    <input type=text name=newvalue />  
    <input name=change type=submit value="изменить">  
    </form> 


    <?php
    if(isset($_POST['newvalue']))  
    {
        
    $new_id = !empty($_POST['newvalue'])?$_POST['newvalue'] : null;     
        echo(
    'Количество участников изменено на ' '<b>' $new_id '</b>');     
        
    //так походу 
        
    include($doc_root.'libs/maxids.php');
        
    }else {
        echo 
    "количество участников " $max_id
    }
    ?>
     
  8. sunyang

    sunyang

    Регистр.:
    25 апр 2009
    Сообщения:
    440
    Симпатии:
    30
    походу лучше в базу записать значение $max_id и от туда ее выцеплять)
     
  9. sunyang

    sunyang

    Регистр.:
    25 апр 2009
    Сообщения:
    440
    Симпатии:
    30
    Помогите пожалуйста значение $max_id записать в поле maxid таблицы gs_maxusers базы golos вот в этом скрипте:
    PHP:
    <form action="" method="post"> 
    <input  type=text name=newvalue value="<?=$max_id?>"/> 
    <input name=change type=submit value="изменить"> 
    </form>
    <?
    $new_id = !empty($_POST['newvalue'])?$_POST['newvalue']:null;
    $max_id = $new_id;
    // если введенное значение числовое...
    if(is_numeric($max_id)&&settype($max_id, "integer")==true) {
    // Записываем в поле maxid  таблицы gs_maxusers базы golos значение $max_id
    echo('Количество участников изменено на ' . '<b>' . $max_id . '</b>'); }
    // а ежели нет, то...
    else { echo('Вы ввели не числовое значение. Введите целое число.');}
    ?>
    Содержимое таблицы gs_maxusers базы golos :
    PHP:
    CREATE TABLE IF NOT EXISTS `gs_maxusers` (
      `
    idint(6unsigned NOT NULL AUTO_INCREMENT,
      `
    maxidint(6unsigned NOT NULL,
      
    PRIMARY KEY (`id`)
    ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=;
    пробовал вот так:
    PHP:
    $new_id = !empty($_POST['newvalue'])?$_POST['newvalue']:null;
    $max_id $new_id;
    // если введенное значение числовое...
    if(is_numeric($max_id)&&settype($max_id"integer")==true) {
    mysql_query("INSERT INTO gs_maxids('id','idmax') VALUES('1', '5')");
    ....
    чета не записывает((