probleme cu switch&include

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

Danutz
Average Member
Mesaje: 162
Membru din: Joi Iul 08, 2004 2:20 am
Contact:

probleme cu switch&include

Mesajde Danutz » Mie Iul 21, 2004 8:46 am

cu ce am gresit?

[php]
<?php
switch(strtolower($_GET['page']))
{
case "contact"; $page="contact.php"; break;
default: $page="home.php"; break;
}
include($page);
?>
[/php]

primesc urmatoarea erroare:

Notice: Undefined index: page in D:\WebServer\dTc\index.php on line 2

de ce?

sau exista vreo modalitate mai usoara pt creerea unui astfel de script?



eyecon
Average Member
Mesaje: 180
Membru din: Mar Noi 05, 2002 3:35 pm

Mesajde eyecon » Mie Iul 21, 2004 9:07 am

ai ";" dupa case "contact";

eyecon
Average Member
Mesaje: 180
Membru din: Mar Noi 05, 2002 3:35 pm

Mesajde eyecon » Mie Iul 21, 2004 9:09 am


Troto
PHPRomania Coder Professional
Mesaje: 249
Membru din: Mar Iun 29, 2004 2:11 am
Localitate: Brasov

Mesajde Troto » Mie Iul 21, 2004 4:04 pm


coditza
Senior Member
Mesaje: 298
Membru din: Vin Ian 23, 2004 7:30 pm
Localitate: cluj-napoca

Re: probleme cu switch&include

Mesajde coditza » Mie Iul 21, 2004 9:03 pm

function foo() { foo(); }

Danutz
Average Member
Mesaje: 162
Membru din: Joi Iul 08, 2004 2:20 am
Contact:

Mesajde Danutz » Joi Iul 22, 2004 2:05 am

deci nu stiu de ce a aparut ; in loc de : pe forum ca la mine in script sunt :
ma rog nu asta conteaza faza este ca mie nu imi merge scriptu din cate am inteles eu din ce mia zis troto sa ma uit ca ala decat ma avertizeaza de ceva dar scriptul ar trebui sa mearga. Eu cand pun link la buton www.site.ro/index.php?page=history imi apare tot indexul normal si nu reuses sa-i dau de cap de loc. Va mai dau scriptu odata cu : puse corect si toate cele

[php]
<?php
switch(strtolower($_GET['page']))
{
case "history": $page="history.php"; break;
default: $page="home.php"; break;
}
include($page);
?>
[/php]

Va multumesc

Troto
PHPRomania Coder Professional
Mesaje: 249
Membru din: Mar Iun 29, 2004 2:11 am
Localitate: Brasov

Mesajde Troto » Joi Iul 22, 2004 2:49 am

incearca asa:

[php]
<?php

error_reporting(E_ALL & ~E_NOTICE);

$pagina = strtolower($_GET['page']);

switch($pagina) {

case "history": $page="history.php"; break;
default: $page="home.php"; break;
}

include($page);

?>
[/php]

Danutz
Average Member
Mesaje: 162
Membru din: Joi Iul 08, 2004 2:20 am
Contact:

Mesajde Danutz » Joi Iul 22, 2004 3:01 am

saru`mana troto :D merge acum mersi mult

Troto
PHPRomania Coder Professional
Mesaje: 249
Membru din: Mar Iun 29, 2004 2:11 am
Localitate: Brasov

Mesajde Troto » Joi Iul 22, 2004 3:59 am

Sa cresti mare :P

Danutz
Average Member
Mesaje: 162
Membru din: Joi Iul 08, 2004 2:20 am
Contact:

Mesajde Danutz » Joi Iul 22, 2004 10:14 am

acum am dat de alta si iar am inebunit :cry:

am scriptu asa:

[php]
<?php

error_reporting(E_ALL & ~E_NOTICE);

$pagina = strtolower($_GET['page']);

switch($pagina) {

case "history": $page="history.php"; break;
case "members": $page="members.php"; break;
case "awards": $page="awards.php"; break;
case "downloads": $page="down.php"; break;
case "links": $page="links.php"; break;
case "contact": $page="contact.php"; break;
case "news": $page="news.php"; break;

$pagina = (strtolower($_GET['get']); // aici as vrea sa fie index.php?page=members&get=judy

switch($pagini) {

case "news19-03-2004": $page="news/news2.php"; break;
case "judy": $page="membri/judy.php"; break;

} break;


default: $page="re.php"; break;
}

include($page);
?>
[/php]

si primesc erroarea:

Parse error: parse error, unexpected ';' in D:\WebServer\dTc\index.php on line 17

ce masa nu-i mai convine acuma? :x

Avatar utilizator
arond
Senior Member
Mesaje: 580
Membru din: Joi Mar 11, 2004 2:00 am
Localitate: 127.0.0.1
Contact:

Mesajde arond » Joi Iul 22, 2004 10:49 am

Ai o paranteza in plus (sau una in minus, cum vrei s-o iei :) ).

[php]
...
$pagina = strtolower($_GET['page']);
...
[/php]

1. Nu mai postati, fratilor, lucruri de felul asta. Ce d-zeu, tre' sa va spuna cineva cum sa numarati paranteze ?

2. Solutia lui Troto:

[php]error_reporting(E_ALL & ~E_NOTICE); [/php]
nu iti rezolva problema (nu face decat sa elimine E_NOTICE din outputul PHP, si atat), ceea ce nu e tocmai tehnic.

Solutiile sunt multiple:

[php]
...
$pagina = empty($_GET['page']) ? '' : strtolower($_GET['page']);
...
[/php]
sau, mai aproape de solutia lui Troto (dar cu avantajul ca iti va afisa E_NOTICE in restul scriptului):

[php]
...
$pagina = @strtolower($_GET['page']);
...
[/php]

Numa' bune.
People ask for criticism, but they only want praise.
W. Somerset Maugham (1874 - 1965).

http://www.arond-design.ro

Troto
PHPRomania Coder Professional
Mesaje: 249
Membru din: Mar Iun 29, 2004 2:11 am
Localitate: Brasov

Mesajde Troto » Joi Iul 22, 2004 11:37 am

Eu am oferit solutia asta pt ca nu e tocmai o greseala si sunt sigur ca in configuratie el are E_ALL

Nu am inteles de ce vrei acolo sa fie index.php?page=members&get=judy.

Poate ne explici.

lordhell
PHPRomania Supporter
Mesaje: 21
Membru din: Mie Iul 07, 2004 9:58 am

Mesajde lordhell » Joi Iul 22, 2004 12:38 pm

unde ai linia $pagina = (strtolower($_GET['get']); trebuie sa mai pui o paranteza....

$pagina = (strtolower($_GET['get'])); ....asa este bine!!!!!!

Avatar utilizator
arond
Senior Member
Mesaje: 580
Membru din: Joi Mar 11, 2004 2:00 am
Localitate: 127.0.0.1
Contact:

Mesajde arond » Joi Iul 22, 2004 3:26 pm

People ask for criticism, but they only want praise.

W. Somerset Maugham (1874 - 1965).



http://www.arond-design.ro

Danutz
Average Member
Mesaje: 162
Membru din: Joi Iul 08, 2004 2:20 am
Contact:

Mesajde Danutz » Joi Iul 22, 2004 5:33 pm



Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 20 vizitatori