Jump to content
Sign in to follow this  
BooM

Duvida Php

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?

Share this post


Link to post
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

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

Obrigado. Vou queimar a pestana mais um bocado ^_^

Share this post


Link to post
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]

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
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...

Share this post


Link to post
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;

}

?>

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • 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.