Jump to content

Duvida Php


BooM
 Share

Recommended Posts

Boas pessoal tenho uma dúvida..

Tenho um ficheiro que fiz include numa página com o seguinte código:

<?php

    include("variaveis.php"); 

    function muda(){

    $id=$_GET['id'];

	if ($id==1) {

    echo $titulo;

    }

}
Dentro desse ficheiro fiz outro include para "variaveis.php" e fiz este código para testar:
<?php


$titulo="sdfgdsfg";




?>

Quando chamo a função não aparece nada.. Se puser o $titulo dentro do 1º ficheiro já funciona..

Não consigo detectar nenhum erro. Estou a fazer alguma coisa mal?

Link to comment
Share on other sites

Boas pessoal tenho uma dúvida..

Tenho um ficheiro que fiz include numa página com o seguinte código:

<?php

    include("variaveis.php"); 

    function muda(){

    $id=$_GET['id'];

	if ($id==1) {

    echo $titulo;

    }

}
Dentro desse ficheiro fiz outro include para "variaveis.php" e fiz este código para testar:
<?php


$titulo="sdfgdsfg";




?>

Quando chamo a função não aparece nada.. Se puser o $titulo dentro do 1º ficheiro já funciona..

Não consigo detectar nenhum erro. Estou a fazer alguma coisa mal?

Lol... eu percebo pouco de php e estou a tentar decifrar a tua pagina e fiquei com um nó no cérebro!!!

Pode ser de eu perceber pouco... mas podias explicar melhor?

lol

Edited by Piu_730
Link to comment
Share on other sites

Isso tem a ver com o scope.

Experimenta:


<?php

include 'variaveis.php';

function muda()

{

	global $titulo;


	$id = $_GET['id'];


	if ($id==1)

	{

		echo $titulo;

	}

}

?>

Se não lhe deres o global, ele vai tentar usar o $titulo de dentro da função... E isso não existe. No php.net esta cena do scope das variáveis é explicado bem.

:edit:

Também podes colocar o include dentro da função, como o HERi disse, mas se tiveres outras cenas no include, que sejam necessárias noutras funções, é melhor usares o global, penso eu de que.

Link to comment
Share on other sites

Ya, o global é melhor opção pq podes querer usar as variáveis que definiste no ficheiro noutro lado qq.

Foi só para mostrar que os includes só estão disponíveis ou dentro da função ou fora da função, nunca nos dois ao mesmo tempo, a não ser que assim o definas.

Link to comment
Share on other sites

Apareceu-me mais uma dúvida... Já à uns dias que ando a tentar resolver mas não consigo..

if ($id==1) {


            for ($i=1; $i<=$itens_anime; $i++) {


                echo $anime_titulo[$i];


            }


            echo $anime_codigo[$channel];

        }


        elseif ($id==2) {


            for ($i=1; $i<=$itens_desporto; $i++) {


                echo $desporto_titulo[$i];


            }

            echo $desporto_codigo[$channel];


        }

Basicamente as variáveis $anime_* e $desporto_* são iguais, não há erros de sintaxe, os id's estão certos e a minha pergunta é porque é que um dos ifs funciona e o outro não?.. o $id e o $channel vou buscar a um $_GET no link.. Tenho mais elseif a seguir a estes e funcionam todos menos os de desporto...

[FRUSTRAÇÃO]

Tenho quase a certeza que vai acabar por ser uma merdinha qualquer estupida que passa sempre despercebida

[/FRUSTRAÇÃO]

Link to comment
Share on other sites

Ok. A função completa está aqui:

function tv() {


        include("variaveis.php"); 


        $id=$_GET['id'];

        $channel=$_GET['chnl'];


        if ($id==1) {

            for ($i=1; $i<=$itens_anime; $i++) {

                echo $anime_titulo[$i];

            }

            echo $anime_codigo[$channel];

        }

        elseif ($id==2) {

            for ($i=1; $i<=$itens_desporto; $i++) {

                echo $desporto_titulo[$i];

            }

            echo $desporto_codigo[$channel];

        }

        elseif ($id==3) {

	       for ($i=1; $i<=$itens_series; $i++) {

                echo $series_titulo[$i];

            }

            echo $series_codigo[$channel];

        }

        elseif ($id==4) {

	       for ($i=1; $i<=$itens_filmes; $i++) {

                echo $filmes_titulo[$i];

            }

            echo $filmes_codigo[$channel];

        }

    }
Variáveis:
$anime_titulo[1]='<div id="titulos"><a href="tv.php?id=1&chnl=1" class="menulink">Sin the Movie</a></div>';


$anime_titulo[2]='<div id="titulos"><a href="tv.php?id=1&chnl=2" class="menulink">Gundam Seed</a></div>';


$anime_titulo[3]='<div id="titulos"><a href="tv.php?id=1&chnl=3" class="menulink">Love Hina</a></div>';


$anime_titulo[4]='<div id="titulos"><a href="tv.php?id=1&chnl=4" class="menulink">Lady Death</a></div>';


$anime_titulo[5]='<div id="titulos"><a href="tv.php?id=1&chnl=5" class="menulink">Vários Animes</a></div>';


$anime_codigo[1]='<br /><br /><center><div><iframe ... "></iframe></div></center>';


$anime_codigo[2]='<br /><br /><center><div><iframe ... "></iframe></div></center>';


$anime_codigo[3]='<br /><br /><center><div><iframe ... "></iframe></div></center>';


$anime_codigo[4]='<br /><br /><center><div><iframe ... "></iframe></div></center>';


$anime_codigo[5]='<br /><br /><center><div><iframe ... "></iframe></div></center>';




$itens_desporto=3;



$desporto_titulo[1]='<div id="titulos"><a href="tv.php?id=2&chnl=1" class="menulink">Sky Sports News HD</a></div>';


$desporto_titulo[2]='<div id="titulos"><a href="tv.php?id=2&chnl=2" class="menulink">Ajax Vs Atletico Madrid</a></div>';


$desporto_titulo[3]='<div id="titulos"><a href="tv.php?id=2&chnl=3" class="menulink">Ajax Vs Benfica</a></div>';



$desporto_codigo[1]='<br /><br /><center><div><iframe ... "></iframe></div></center>';


$desporto_codigo[2]='<br /><br /><center><div><iframe ... "></iframe></div></center>';


$desporto_codigo[3]='<br /><br /><center><div><iframe ... "></iframe></div></center>';

Edited by BooM
Link to comment
Share on other sites

experimenta fazer a verificação do $itens_desporto directamento no for. em vez da variavel põe lá 3 a ver se dá algum resultado.

Não dá .. se eu tirar a variável $desporto_titulo[$i] e puser uma coisa qualquer funciona..

porque não usas count(array) para o tamanho?

já não uso php há milhões mas normalmente uns print_r ajudam a fazer debug.. vê se o id e o chnl estão a ser bem passados, etc

Eu pensei nesse count mas não me apeteceu ir ver como se fazia. Tentei os print_r e nada.. o id e chnl passam sem espinhas..

Que noia.. Se estivesse na escola já estava a partir umas quantas peças...

Link to comment
Share on other sites

Boom, se tens a variave($itens_desporto)l definida dentro do variaveis.php que está no include e a queres usar dentro da função para ser chamada, torna-a global.

ex rapido:

variaveis.php

<?php

$clube= 'porto';

?>

da função

<?php

function func()

{

global $clube;

include 'variaveis.php';

echo $clube;

}

?>

Link to comment
Share on other sites

Foi das primeiras coisas que tive a experimentar. Aliás o resto das variaveis são tratadas da mesma maneira e funcam..

Edit:

AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH!!! Era o include que tinha que estar depois de declarar as globais e não antes !! :lamo:

Finalmente. Obrigado :D

Edited by BooM
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.