Toon posts:

$_GET[''] probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey luitjes,
Ik wil mijn site in verschillende talen aanbieden, nu wou ik dat doen doormiddel van $_GET. Dat lukt allemaal prima behalve als de link index.php wordt ipv index.php?lang=english. Dan krijg ik deze meldig: Notice: Undefined index: lang. Opzich logisch lijkt me. Maar hoe verhinder ik dat dit te voorschijn komt? >:)

Stukje van het scriptje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
if ($_GET['lang'] == 'nederlands') {
    echo "hey gozer!";
}
else {
if ($_GET['lang'] == 'english') {
    echo "hi dude!";
    }   
else {
if ($_GET['lang'] == 'papiamentu') {
    echo "y0 fuwaka!";
    }
else {
    echo "hey gozer!";
    }
    }
    }   
?>

  • Tys
  • Registratie: Januari 2003
  • Laatst online: 19-05 10:12

Tys

Je hebt de error handler op E_ALL staan.
php.ini en dan de uitleg lezen.

of bovenaan je script:

PHP:
1
error_reporting(E_ALL & ~E_NOTICE);

[ Voor 35% gewijzigd door Tys op 08-12-2004 19:48 ]

My flight statistics: (449.638km in 124 flights) Next trips: Estonia, Latvia, Lithuania


Verwijderd

Nou ik krijg toch echt 'hey gozer ' te zien })

[ Voor 45% gewijzigd door Verwijderd op 08-12-2004 19:49 ]


  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

Verwijderd schreef op woensdag 08 december 2004 @ 19:43:
Hey luitjes,
Ik wil mijn site in verschillende talen aanbieden, nu wou ik dat doen doormiddel van $_GET. Dat lukt allemaal prima behalve als de link index.php wordt ipv index.php?lang=english. Dan krijg ik deze meldig: Notice: Undefined index: lang. Opzich logisch lijkt me. Maar hoe verhinder ik dat dit te voorschijn komt? >:)

Stukje van het scriptje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
if ($_GET['lang'] == 'nederlands') {
    echo "hey gozer!";
}
else {
if ($_GET['lang'] == 'english') {
    echo "hi dude!";
    }   
else {
if ($_GET['lang'] == 'papiamentu') {
    echo "y0 fuwaka!";
    }
else {
    echo "hey gozer!";
    }
    }
    }   
?>
Probeer eens

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
if ($_GET['lang'] == 'nederlands') {
    echo "hey gozer!";
}elseif ($_GET['lang'] == 'english') {
    echo "hi dude!";
    
}elseif ($_GET['lang'] == 'papiamentu') {
    echo "y0 fuwaka!";
}else{
    echo "hey gozer!";
 }   
?>

Verwijderd

Gewoon met isset kijken of de get-waarde bestaat:
PHP:
1
2
3
4
5
6
if (isset($_GET["lang"])) {
 // kijken welke taal ie mee heeft gegeven
}
else {
 // geen taal opgegeven
}


Enne, niet de error_reporting uitzetten als je een error krijgt die je ook kan oplossen :P

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Thiaz schreef op woensdag 08 december 2004 @ 19:45:
Je hebt de error handler op E_ALL staan.
php.ini en dan de uitleg lezen.

of bovenaan je script:

PHP:
1
error_reporting(E_ALL & ~E_NOTICE);
Die notice komt niet voor niks, al zie ik niet waar het dan door komt. Zomaar notices uitzetten is nooit een optie, dat is symptoombestreiding. Ik heb het vermoeden dat TS ergens een tikfoutje heeft gemaakt in het tikken van de variabelenamen in zijn GET array.

offtopic:
WyBo, weet je dat er ook een elseif bestaat i.p.v. else if? Scheelt je een hoop compound statements. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

Verwijderd schreef op woensdag 08 december 2004 @ 19:51:
Gewoon met isset kijken of de get-waarde bestaat:
PHP:
1
2
3
4
5
6
if (isset($_GET["lang"])) {
 // kijken welke taal ie mee heeft gegeven
}
else {
 // geen taal opgegeven
}


Enne, niet de error_reporting uitzetten als je een error krijgt die je ook kan oplossen :P
Dat kan natuurlijk ook, hij had zijn if en ifelse een beetje gaar gemaakt

Verwijderd

Topicstarter
Thomasje schreef op woensdag 08 december 2004 @ 19:49:
[...]


Probeer eens

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
if ($_GET['lang'] == 'nederlands') {
    echo "hey gozer!";
}elseif ($_GET['lang'] == 'english') {
    echo "hi dude!";
    
}elseif ($_GET['lang'] == 'papiamentu') {
    echo "y0 fuwaka!";
}else{
    echo "hey gozer!";
 }   
?>
nope werkt niet :) Zelfde resultaat
dit werkt wel:

PHP:
1
error_reporting(E_ALL & ~E_NOTICE);


_/-\o_

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Verwijderd schreef op woensdag 08 december 2004 @ 19:51:
Gewoon met isset kijken of de get-waarde bestaat:
PHP:
1
2
3
4
5
6
if (isset($_GET["lang"])) {
 // kijken welke taal ie mee heeft gegeven
}
else {
 // geen taal opgegeven
}
Dat lost waarschijnlijk de error wel op, maar het zal ook resulteren in het niet weergeven van tekst, in welke taal dan ook. Lang is niet gezet, en dus blijft het fout gaan tot de echte fout eruit is, vermoedelijk een tikfout in een linkje.
Verwijderd schreef op woensdag 08 december 2004 @ 19:53:
[...]


nope werkt niet :) Zelfde resultaat
dit werkt wel:

PHP:
1
error_reporting(E_ALL & ~E_NOTICE);


_/-\o_
Lees asjeblieft mijn eerste post in dit topic. :| Dit onderdrukt het bericht, het lost de fout niet op.

[ Voor 25% gewijzigd door NMe op 08-12-2004 19:55 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

Verwijderd schreef op woensdag 08 december 2004 @ 19:53:
[...]


nope werkt niet :) Zelfde resultaat
dit werkt wel:

PHP:
1
error_reporting(E_ALL & ~E_NOTICE);


_/-\o_
Bij mij werkt hij wel gewoon, draai je hem op eigen server of ergens bij een hosting? Is toch niet de oplossing om de fout weg te werken.

[ Voor 9% gewijzigd door Thomasje op 08-12-2004 19:56 ]


  • Tys
  • Registratie: Januari 2003
  • Laatst online: 19-05 10:12

Tys

-NMe- schreef op woensdag 08 december 2004 @ 19:52:
[...]

Die notice komt niet voor niks, al zie ik niet waar het dan door komt. Zomaar notices uitzetten is nooit een optie, dat is symptoombestreiding. Ik heb het vermoeden dat TS ergens een tikfoutje heeft gemaakt in het tikken van de variabelenamen in zijn GET array.

offtopic:
WyBo, weet je dat er ook een elseif bestaat i.p.v. else if? Scheelt je een hoop compound statements. ;)
Hij vraagt, ik geef antwoord.
En overigens zet de PHP install default op alles zonder notices, als het allemaal zo erg is als jij omschrijft dan zouden ze dat niet doen.

Meestal komen deze notices naar voren als er ineens een variable naar voren komt uit het niets.

My flight statistics: (449.638km in 124 flights) Next trips: Estonia, Latvia, Lithuania


Verwijderd

Topicstarter
Thomasje schreef op woensdag 08 december 2004 @ 19:55:
[...]


Bij mij werkt hij wel gewoon, draai je hem op eigen server of ergens bij een hosting? Is toch niet de oplossing om de fout weg te werken.
@ eigenserver :*)

  • Yupsie
  • Registratie: December 2004
  • Laatst online: 27-01 14:32
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
if (isset($_GET['lang'])) {
if ($_GET['lang'] == 'nederlands') {
    echo "hey gozer!";
}elseif ($_GET['lang'] == 'english') {
    echo "hi dude!";
    
}elseif ($_GET['lang'] == 'papiamentu') {
    echo "y0 fuwaka!";
}
}else{
    echo "hey gozer!";
 }   
?>


Zoiets? Zonder error aanpassing welteverstaan :)

[ Voor 49% gewijzigd door Yupsie op 08-12-2004 20:02 ]


  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

Vandaar. Ik zit bij een hosting en heb geen last van die fout.

  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

Yupsie schreef op woensdag 08 december 2004 @ 19:58:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
if (isset($_GET['lang']) {
if ($_GET['lang'] == 'nederlands') {
    echo "hey gozer!";
}elseif ($_GET['lang'] == 'english') {
    echo "hi dude!";
    
}elseif ($_GET['lang'] == 'papiamentu') {
    echo "y0 fuwaka!";
}
}else{
    echo "hey gozer!";
 }   
?>


Zoiets?
Is toch hetzelfde dan die ik gepost heb eerder, die else zorgt er toch wel voor dat hij standaar ned is.

[ Voor 21% gewijzigd door Thomasje op 08-12-2004 20:00 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:44

Creepy

Tactical Espionage Splatterer

Thiaz schreef op woensdag 08 december 2004 @ 19:56:
[...]


Hij vraagt, ik geef antwoord.
En overigens zet de PHP install default op alles zonder notices, als het allemaal zo erg is als jij omschrijft dan zouden ze dat niet doen.

Meestal komen deze notices naar voren als er ineens een variable naar voren komt uit het niets.
Die notices geeft ie niet voor niets. Als je bijv. geen rekening mee houdt dat die variabele niet bestaat of geen inhoud heeft, dan is dat een bug. Deze notice helpt die bug te voorkomen. In dat geval is die notice uitzetten alleen symptoon bestijden (ik zie de notice meer, en wat je niet ziet is er ook niet ;) ) i.p.v. de echte oplossing: controleren of die var bestaat en daar actie op ondernemen.

Zeker op het web moet je nooit zomaar gebruikinput vertrouwen. Nooit.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Topicstarter
Thomasje schreef op woensdag 08 december 2004 @ 19:59:
[...]


Vandaar. Ik zit bij een hosting en heb geen last van die fout.
mja maar zo werkt het iets sneller ;)

Met if (isset($_GET ["lang"])) { is het ook gelukt :) Bedankt >:)

Verwijderd

Eh ik volg het allemaal even niet hoor :\

Errors uitzetten is natuurlijk niet het probleem oplossen :X

En buiten dat, wat is er mis met mijn oplossing.. Hij krijgt de error als lang niet gezet is dat de waarde niet bestaat. Dus controleer je of de waarde gezet is met isset, en zo ja kijk je welke waarde lang is.

edit:
D'r waren al een hoop post tussen mn reactie en wat ik allemaal gelezen had.. maargoed het is opgelost nu dus :P

[ Voor 17% gewijzigd door Verwijderd op 08-12-2004 20:02 ]


  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

Verwijderd schreef op woensdag 08 december 2004 @ 20:01:
Eh ik volg het allemaal even niet hoor :\

Errors uitzetten is natuurlijk niet het probleem oplossen :X

En buiten dat, wat is er mis met mijn oplossing.. Hij krijgt de error als lang niet gezet is dat de waarde niet bestaat. Dus controleer je of de waarde gezet is met isset, en zo ja kijk je welke waarde lang is.
Er is helemaal niks mis mee, je hebt volkomen gelijk.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Thomasje schreef op woensdag 08 december 2004 @ 20:03:
Er is helemaal niks mis mee, je hebt volkomen gelijk.
Niet helemaal hoor. Als je hier isset() gebruikt, dan geeft ie die melding weliswaar niet, maar kun je ook vreemd gedrag verwachten. Ik denk dat TS beter kan opzoeken waarom die notice optreedt, en daarna pas een oplossing zoeken.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

-NMe- schreef op woensdag 08 december 2004 @ 20:06:
[...]

Niet helemaal hoor. Als je hier isset() gebruikt, dan geeft ie die melding weliswaar niet, maar kun je ook vreemd gedrag verwachten. Ik denk dat TS beter kan opzoeken waarom die notice optreedt, en daarna pas een oplossing zoeken.
Over wat voor gedrag praat je dan. Met deze code krijgt hij toch geen error dan is het toch goed. Controleert eerst of de waarde bestaat en gaat dan pas verder. en anders default nederlands

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Thomasje schreef op woensdag 08 december 2004 @ 20:08:
Over wat voor gedrag praat je dan. Met deze code krijgt hij toch geen error dan is het toch goed. Controleert eerst of de waarde bestaat en gaat dan pas verder. en anders default nederlands
Geen error wil niet zeggen dat je code doet wat je wil.

Stel, het volgende:
HTML:
1
<a href="pagina.php?lagn=engels">blaat</a>

Let hier op de tikfout in de variabelenaam.

Bij de code die jullie nu in elkaar hebben geklopt, zal de site werken zonder errors, maar je zal geen Engelstalige site zien, maar een Nederlandstalige. Waarom? Omdat de variabele lang niet bestaat, maar in plaats daarvan lagn wel. Lijkt me zeer onwenselijk gedrag, en niet geheel ondenkbaar. Pas dus op voordat je aan symptoombestreiding begint, en kijk eerst waar een fout vandaan komt, voordat je hem op probeert te lossen.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

-NMe- schreef op woensdag 08 december 2004 @ 20:14:
[...]

Geen error wil niet zeggen dat je code doet wat je wil.

Stel, het volgende:
HTML:
1
<a href="pagina.php?lagn=engels">blaat</a>

Let hier op de tikfout in de variabelenaam.

Bij de code die jullie nu in elkaar hebben geklopt, zal de site werken zonder errors, maar je zal geen Engelstalige site zien, maar een Nederlandstalige. Waarom? Omdat de variabele lang niet bestaat, maar in plaats daarvan lagn wel. Lijkt me zeer onwenselijk gedrag, en niet geheel ondenkbaar. Pas dus op voordat je aan symptoombestreiding begint, en kijk eerst waar een fout vandaan komt, voordat je hem op probeert te lossen.
Maar dat voorbeeld wat je geeft is het zelfde als je met php een ; vergeet. Dit zijn gewoon stomme typefouten. Maar geef je wel gelijk dat je eerst naar zulke dingen moet zoeken. Ze zijn soms lastig te vinden maar als je gestructureerd werkt is dat een betere oplossing dan op forums te gaan rondvragen.

  • Bartjuh
  • Registratie: Oktober 2001
  • Niet online

Bartjuh

Hej

Waarom niet zo :) :
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$lang = $_GET['lang'];
if($lang)
{
  if($lang == "nederlands") echo "hey gozer!";
  if($lang == "english") echo "yo dude";
  if($lang == "papiamentu") echo "y0 fuwaka!";
}
else
{
  echo "go back and select a language!";
}
?>


sorry, lijkt eigenlijk al op iets wat eerder gepost is...

[ Voor 51% gewijzigd door Bartjuh op 08-12-2004 20:22 ]


  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

Bartjuh schreef op woensdag 08 december 2004 @ 20:20:
Waarom niet zo :) :
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$lang = $_GET['lang'];
if($lang)
{
  if($lang == "nederlands") echo "hey gozer!";
  if($lang == "english") echo "yo dude";
  if($lang == "papiamentu") echo "y0 fuwaka!";
}
else
{
  echo "go back and select a language!";
}
?>
IS ook een goeie oplossing maar de ts heeft zijn antwoord al als je gelzen had :P

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Waarom niet zo?
PHP:
1
2
3
4
5
6
7
8
9
<?php 
$lang = (isset($_GET['lang']))?$_GET['lang']:'nederlands'; 
switch($lang){
  case 'nederlands': echo "hey gozer!"; break;
  case 'english': echo "yo dude"; break;
  case 'papiamentu': echo "y0 fuwaka!"; break;
  default: echo "go back and select a language!";
} 
?>

Blog [Stackoverflow] [LinkedIn]


  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

Wolfboy schreef op woensdag 08 december 2004 @ 20:25:
Waarom niet zo?
PHP:
1
2
3
4
5
6
7
8
9
<?php 
$lang = (isset($_GET['lang']))?$_GET['lang']:'nederlands'; 
switch($lang){
  case 'nederlands': echo "hey gozer!"; break;
  case 'english': echo "yo dude"; break;
  case 'papiamentu': echo "y0 fuwaka!"; break;
  default: echo "go back and select a language!";
} 
?>
Dat is een van de 1001 manieren die er zijn om het te doen. Zijn allemaal goed maar het ging hier meer om de fout van de ts die bij andere niet was met zijn code.

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Thomasje schreef op woensdag 08 december 2004 @ 20:29:
[...]


Dat is een van de 1001 manieren die er zijn om het te doen. Zijn allemaal goed maar het ging hier meer om de fout van de ts die bij andere niet was met zijn code.
Dat was met de nadruk op de switch eigenlijk, als je meer dan 2 mogelijkheden hebt lijkt het me handiger om een switch te gebruiken (doe ik iig meestal wel)

Blog [Stackoverflow] [LinkedIn]


  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 22-04 07:04
Tja en waarom dan niet meteen zo. Is het beetje overzichtelijker en uitbreidbaarder.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
--- text_nederlands.php ---
$text['greeting'] = 'hey gozer';
$text['login'] = 'inloggen';

--- text_english.php ---
$text['greeting'] = 'yo dude';
$text['login'] = 'login';

--- text_papiamento.php ---
$text['greeting'] = 'yo fuwaka';
$text['login'] = '...';

--- index.php ---
$languages = array('nederlands' ,'english', 'papiamento');
if (isset($_GET['lang']) && in_array($_GET['lang'], $languages)) {
    include('text_'.$_GET['lang'].'.php');
} else {
    include('text_english.php');
}

echo $text['greeting'];

[ Voor 22% gewijzigd door Sjaaky op 08-12-2004 20:38 ]


Verwijderd

-NMe- schreef op woensdag 08 december 2004 @ 19:52:
[...]
offtopic:
WyBo, weet je dat er ook een elseif bestaat i.p.v. else if? Scheelt je een hoop compound statements. ;)
offtopic:
Nee, het scheelt een spatie. Je bent niet verplicht je clauses tussen braces te zetten (in tegenstelling tot bijvoorbeeld Perl), dus het volgende is allebei toegestaan en equivalent:


PHP:
1
2
3
4
5
6
7
8
9
if ($cond1) {
  // ...
}
else if ($cond2) {
  // ...
}
else {
  // ...
}


of

PHP:
1
2
3
4
5
6
7
8
9
if ($cond1) {
  // ...
}
elseif ($cond2) {
  // ...
}
else {
  // ...
}


offtopic:
Evenveel braces, het verschil is 1 spatie bij de else if.

[ Voor 4% gewijzigd door Verwijderd op 08-12-2004 20:39 ]


  • Bartjuh
  • Registratie: Oktober 2001
  • Niet online

Bartjuh

Hej

Wolfboy schreef op woensdag 08 december 2004 @ 20:25:
Waarom niet zo?
PHP:
1
2
3
4
5
6
7
8
9
<?php 
$lang = (isset($_GET['lang']))?$_GET['lang']:'nederlands'; 
switch($lang){
  case 'nederlands': echo "hey gozer!"; break;
  case 'english': echo "yo dude"; break;
  case 'papiamentu': echo "y0 fuwaka!"; break;
  default: echo "go back and select a language!";
} 
?>
Wedstrijdje wie het in het kortste aantal regels code kan ofzo :P

Maar goed, dit is ook een manier... maar een klein foutje... want als de waarde van 'lang' niet wordt meegegeven dan neemt ie standaard "nederlands" , en zal dus ook de case met "nederlands" pakken en nooit bij default komen...

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Verwijderd schreef op woensdag 08 december 2004 @ 20:38:
offtopic:
Nee, het scheelt een spatie. Je bent niet verplicht je clauses tussen braces te zetten (in tegenstelling tot bijvoorbeeld Perl), dus het volgende is allebei toegestaan en equivalent:
Dan kijk nog eens goed naar de topicstart. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Bartjuh schreef op woensdag 08 december 2004 @ 20:40:
[...]

Wedstrijdje wie het in het kortste aantal regels code kan ofzo :P

Maar goed, dit is ook een manier... maar een klein foutje... want als de waarde van 'lang' niet wordt meegegeven dan neemt ie standaard "nederlands" , en zal dus ook de case met "nederlands" pakken en nooit bij default komen...
Niet waar, het kan zijn dat iemand eens iets anders dan engels, nederlands of papiamentu invult, dan krijg je dus default (bij frans oid.)
Zoals ik het nu heb gedaan was het een beetje net zoals de TS het deed (default NL)
Verwijderd schreef op woensdag 08 december 2004 @ 20:38:
offtopic:
Nee, het scheelt een spatie. Je bent niet verplicht je clauses tussen braces te zetten (in tegenstelling tot bijvoorbeeld Perl), dus het volgende is allebei toegestaan en equivalent:
Evenveel braces, het verschil is 1 spatie bij de else if.
offtopic:
De ts deed dit:
PHP:
1
2
3
4
5
6
7
if(true){
/////////
}else{
   if(true){
     /////
   }
}
offtopic:
En dat is wel degelijk anders :P

[ Voor 3% gewijzigd door Wolfboy op 08-12-2004 20:44 ]

Blog [Stackoverflow] [LinkedIn]


  • Bartjuh
  • Registratie: Oktober 2001
  • Niet online

Bartjuh

Hej

Wolfboy schreef op woensdag 08 december 2004 @ 20:43:
[...]
Niet waar, het kan zijn dat iemand eens iets anders dan engels, nederlands of papiamentu invult, dan krijg je dus default (bij frans oid.)
Zoals ik het nu heb gedaan was het een beetje net zoals de TS het deed (default NL)


[...]
offtopic:
De ts deed dit:
[php]if(true){
/////////
}else{
if(true){
/////
}
}[/]En dat is wel degelijk anders :P
Ik zeg dat als er geen waarde wordt meegegeven (niet set)hij gewoon standaard nederlands pakt, en niet zegt dat je terug moet gaan en de taal moet veranderen ...

Maar als je "frans" meestuurd dan komt er true uit de isset functie, en dus pakt ie dan default...

  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

Wolfboy schreef op woensdag 08 december 2004 @ 20:43:
[...]
Niet waar, het kan zijn dat iemand eens iets anders dan engels, nederlands of papiamentu invult, dan krijg je dus default (bij frans oid.)
Zoals ik het nu heb gedaan was het een beetje net zoals de TS het deed (default NL)


[...]
offtopic:
De ts deed dit:
PHP:
1
2
3
4
5
6
7
if(true){
/////////
}else{
   if(true){
     /////
   }
}
offtopic:
En dat is wel degelijk anders :P
Ik denk dat ze maar even op het topic hebben geklikt en het laatste bericht gelzen en dan ff wat reageren. De topic starter had het gewoon zoals het niet moet.

Verwijderd

Topicstarter
jullie lullen maar een end weg :P

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Bartjuh schreef op woensdag 08 december 2004 @ 20:48:
[...]

Ik zeg dat als er geen waarde wordt meegegeven (niet set)hij gewoon standaard nederlands pakt, en niet zegt dat je terug moet gaan en de taal moet veranderen ...

Maar als je "frans" meestuurd dan komt er true uit de isset functie, en dus pakt ie dan default...
Wolfboy schreef op woensdag 08 december 2004 @ 20:43:
Zoals ik het nu heb gedaan was het een beetje net zoals de TS het deed (default NL)
Dat zei ik toch al ;)
maja ik had de variabele idd ook gewoon leeg kunnen laten bij de else ;)

Blog [Stackoverflow] [LinkedIn]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Als dat je instelling is, waarom stel je dan überhaupt een vraag? :? :/

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

-NMe- schreef op woensdag 08 december 2004 @ 20:53:
[...]

Als dat je instelling is, waarom stel je dan überhaupt een vraag? :? :/
Opzich gaat het ook nergens meer over. Zijn vraag is toch beantwoord. We kunnen maar beter ophouden met posten van nieuwe stukjes of verbeterde stukjes code

  • Bartjuh
  • Registratie: Oktober 2001
  • Niet online

Bartjuh

Hej

Wolfboy schreef op woensdag 08 december 2004 @ 20:53:
[...]

[...]
Dat zei ik toch al ;)
maja ik had de variabele idd ook gewoon leeg kunnen laten bij de else ;)
Ik snap je.. :) En aan de ene kant is het misschien ook maar slim om het zo te doen als 99% van je bezoekers nederlands is... krijg je ook geen gezeur dat je terug moet gaan enzo.. ;)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Thomasje schreef op woensdag 08 december 2004 @ 20:56:
Opzich gaat het ook nergens meer over. Zijn vraag is toch beantwoord. We kunnen maar beter ophouden met posten van nieuwe stukjes of verbeterde stukjes code
Zijn vraag is beantwoord, maar het is al zeker 10x aangewezen door verschillende mensen dat de gebruikte oplossing niet optimaal is. Dan mag een topicstarter van mij best eigenwijs zijn, maar dan vraag ik me wel af waarom ie überhaupt het topic over.

En het gaat wel degelijk ergens over. Er wordt nu gediscussiëerd over degelijke, onderhoudbare code. Iets waar het in de topicstart aan ontbrak, en één van de belangrijkste onderdelen van programmeren.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Thomasje
  • Registratie: Augustus 2002
  • Laatst online: 29-05-2024

Thomasje

Semacode

-NMe- schreef op woensdag 08 december 2004 @ 21:00:
[...]

Zijn vraag is beantwoord, maar het is al zeker 10x aangewezen door verschillende mensen dat de gebruikte oplossing niet optimaal is. Dan mag een topicstarter van mij best eigenwijs zijn, maar dan vraag ik me wel af waarom ie überhaupt het topic over.

En het gaat wel degelijk ergens over. Er wordt nu gediscussiëerd over degelijke, onderhoudbare code. Iets waar het in de topicstart aan ontbrak, en één van de belangrijkste onderdelen van programmeren.
Kunnen we daar beter een nieuw topic over maken of een titel change, kan er over een groter publiek worden gediscussiëerd. En de ts zal niet zoveel ervaring hebben en heeft snel de neiging om het meteen te vragen dan het zelf uit te proberen.

@ -NMe- ik mag jou :) je weet waar je over praat maar weet niet of dit nu echt het juiste topic is. kunnen beter overnieuw doen.

  • Dutchmega
  • Registratie: September 2001
  • Niet online
Waarom niet?

code:
1
2
3
4
5
6
7
8
9
if (1==1) {
if (1==1) {
if (1==1) {
if (1==1) {
if (1==1) {
if (1==1) {
if (1==1) {
if (isset($_GET["lang"] && $_GET["lang"] == "engels") echo ":D";
}}}}}}


Got my point?

Verwijderd

-NMe- schreef op woensdag 08 december 2004 @ 20:42:
[...]
Dan kijk nog eens goed naar de topicstart. ;)
Wolfboy schreef op woensdag 08 december 2004 @ 20:43:
[...]
offtopic:
De ts deed dit:
PHP:
1
2
3
4
5
6
7
if(true){
/////////
}else{
   if(true){
     /////
   }
}
offtopic:
En dat is wel degelijk anders :P
Jah, de TS gebruikte meer braces dan nodig was.

Alleen de reacties die daarop kwamen (en met name die van NMe): Gebruik elseif dan heb je al die braces niet nodig.

Het punt is dat niet het probleem is. Het probleem zit hem niet in het gebruik van het keyword `elseif' in plaats van `else if', maar in het weglaten van overbodige braces. Iets wat de leesbaarheid van je code ten goede komt (mits je het goed doet), maar het lijkt me dat de TS nog niet zo heel veel ervaring heeft met programmeren/onderhoudbare systemen schrijven.

De reactie zoals deze er stond impliceerde min of meer dat voor else if's wèl braces nodig waren (en dat het enige alternatief is elseif te gebruiken), en dit is eenvoudigweg niet het geval. Daarmee riskeer je de TS in de war te brengen over de principes achter de taalconstructies.

En dan moet ik wel toegeven, mea culpa, dat ik mijn bedoelingen in mijn vorige post niet voldoende toegelicht heb, waardoor deze waarschijnlijk niet echt hulpvol was.


offtopic:
Persoonlijk gebruik ik nooit het keyword elseif, ik schrijf altijd else if.

Maar in Python heet het else-if keyword elif en dat vind ik er dermate geil uitzien dat ik het daarin wel altijd gebruik ;)

[ Voor 15% gewijzigd door Verwijderd op 08-12-2004 21:29 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Mijn filosofie is om achter elk taalelement een compound statement te gebruiken, dus inderdaad zoals topicstarter het deed. Als ik streng volgens die regel leef, dan is de enige manier om wat accolades te sparen, het gebruik van elseif. Mijn post impliceerde inderdaad dat het gebruik van elseif direct het aantal accolades terugbrengt, maar natuurlijk geldt dat inderdaad alleen wanneer je code aanvankelijk zo uitziet als in de topicstart.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
mja ik geef toe dat ik niet zo perfectionistisch ben, maarja het werkt, so who cares? Jullie misschien, maar de gemiddelde bezoeker van de toekomstige website niet :)

Verwijderd

Verwijderd schreef op woensdag 08 december 2004 @ 22:54:
mja ik geef toe dat ik niet zo perfectionistisch ben, maarja het werkt, so who cares? Jullie misschien, maar de gemiddelde bezoeker van de toekomstige website niet :)
Misschien niet, maar de gemiddelde onderhoudstechnicus[1] van je website zeker wel. Heb je al eens iets in de code van iemand moeten aanpassen of oplossen? Dan weet je wat voor verschrikking dat is. En zelfs met je eigen code van een aantal maanden terug is het even slikken als je daar later weer in moet zijn. (En dan kun je nagaan wat dat voor jou moet betekenen als zelfs `wij perfectionisten' dat al vinden...)

En al geef je daar nu bij het bouwen misschien niets om, onderhoudbaarheid van een systeem is minstens zo belangrijk als `bouwbaarheid'...


[1] `onderhouder' is volgens mij geen Nederlands woord :)

[ Voor 8% gewijzigd door Verwijderd op 09-12-2004 01:26 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

Verwijderd schreef op woensdag 08 december 2004 @ 22:54:
mja ik geef toe dat ik niet zo perfectionistisch ben, maarja het werkt, so who cares? Jullie misschien, maar de gemiddelde bezoeker van de toekomstige website niet :)
Als je op zo'n manier te werk wil gaan, ga je gang. Je krijgt er spijt van. Ik denk niet dat er veel serieuze programmeurs zijn die diezelfde fout niet ook ooit hebben gemaakt in hun carrièrre.

Het is trouwens al minder erg als je weet waarom de oplossing die je gebruikt werkt ten opzichte van de code die je al had, en vooral ook, als je weet waarom de 'perfectionistische' (om jouw woord maar te hergebruiken) oplossing uiteindelijk beter is. Maar om de één of andere reden maak ik uit je posts niet op dat je dat begrip hebt, aangezien je zo achteloos met je code omgaat. :)

Laat ik eens een extreem voorbeeld noemen dat ik mee heb gemaakt. Ik kwam ergens te werken waar ik een website moest uitbreiden en verbeteren. Er was voor mij een jongen geweest die een zoekfunctie had gemaakt, die prima werkte. Totdat de site groter werd, waardoor er meer documenten doorzocht moesten worden. Ineens had zijn zoekscript letterlijk 24 uur nodig om resultaten terug te kunnen geven, die vervolgens niet eens gesorteerd waren op bruikbaarheid. Die jongen had zijn script duidelijk niet getest op fouten, niet voordat hij het implementeerde, maar ook niet erna. Toen ik zijn script onder handen genomen had, gaf het resultaten in minder dan een seconde, tegenover zijn 24 uur.

Concluderend is het maken van goede, doorzichtige en onderhoudbare code erg belangrijk, belangrijker dan het feit dat het werkt. Jij ziet dat misschien als perfectionisme of zelfs mierenneukerij, maar je zal er snel genoeg achter komen dat het pure noodzaak is. Goedschiks of kwaadschiks. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Dat lost waarschijnlijk de error wel op, maar het zal ook resulteren in het niet weergeven van tekst, in welke taal dan ook. Lang is niet gezet, en dus blijft het fout gaan tot de echte fout eruit is, vermoedelijk een tikfout in een linkje.
Ik heb alles even gelezen en ook de start post en daar zie je toch duidelijk in dat hij doolt op het feit
dat als hij op index.php uitkomt.
Dus bevoorbeeld als iemand intypt www.siteje.com, dan is het dus index.php en niet met 'lang' er bijgevoegd. Dus hoogst waarschijnlijk geen tikfoutje...

Verwijderd

Een goede error-afhandeling is wel zo nuttig bij het programmeren. Probeer het zo eens.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if (IsSet($_GET['lang']))
{
    switch ($_GET['lang'])
    {
        case "english":      echo "yo dude"; break;
        case "papiamentu":  echo "y0 fuwaka!"; break;
        default:             echo "hey gozer!"; break;
    }
}
else
{
  echo "Go back and select a language!";
}
?>


[EDIT]
Oops.. Excuus. Ik zag te laat dat er nog een tweede pagina met posts achteraan kwam. (Tis een beetje laat/vroeg)

[ Voor 26% gewijzigd door Verwijderd op 09-12-2004 04:24 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Verwijderd schreef op woensdag 08 december 2004 @ 22:54:
mja ik geef toe dat ik niet zo perfectionistisch ben, maarja het werkt, so who cares? Jullie misschien, maar de gemiddelde bezoeker van de toekomstige website niet :)
Van dit soort opmerkingen krijg ik dus echt zin om je website op te zoeken en middels SQL injection je databases leeg te knikkeren en me via HTML injection ook nog even adminrechten op je systeem toe te eigenen :/ Gezien het feit dat je als enige eis stelt dat iets oppervlakkig werkt zullen beiden vast ruim mogelijk zijn....

Professionele website nodig?

Pagina: 1