Forum » Server-Side scripting » PHP Probleem [OPGELOST]
Berichten: 780
avatar
Offline Stuur privebericht
check laatste reactie
Laatst gewijzigd door Alex op 2010-09-04 21:34:31
04-09-2010 18:13
Dit topic is 252 keer bekeken door 36 verschillende leden
Reacties op: "PHP Probleem [OPGELOST]"
1
RS
Berichten: 116
avatar
Offline Stuur privébericht
Ten eerste zou ik gewoon talen in een ini, conf of wat ook voor bestand zetten en daar een parser voor schrijven...

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
elseif(empty($_GET['hl'])){ 
     
$Hl 'ENG'
}else{ 
     
$Hl 'ENG'
}

Aan dat gedeelte ligt het
04-09-2010 18:15
aka Twan - oldmod
Berichten: 22
avatar
Offline Stuur privébericht
Ten eerste,
mysql_num_rows geeft een integer, dus je hoeft die 1 niet als een string te zetten.

Voorbeeld
Code | Selecteer Alles
minimaliseren
1
if(mysql_num_rows($query) < 1)


Ten tweede, die if/else structuur ziet er niet uit, zelf zou ik het zo doen:
Code | Selecteer Alles
minimaliseren
1
$Hl addslashes(htmlspecialchars($_GET['hl']));

Maar, dan is het niet helemaal goed beveiligd.

Verder komt hij in het engels uit door die else, om een of andere reden (die hier niet zichtbaar is) sprint hij naar de else.
04-09-2010 18:58
Berichten: 780
avatar
Offline Stuur privébericht
Quote: Xaphire

Ten eerste,
mysql_num_rows geeft een integer, dus je hoeft die 1 niet als een string te zetten.

Voorbeeld

Code | Selecteer Alles
minimaliseren
1
if(mysql_num_rows($query) < 1)


Ten tweede, die if/else structuur ziet er niet uit, zelf zou ik het zo doen:
Code | Selecteer Alles
minimaliseren
1
$Hl addslashes(htmlspecialchars($_GET['hl']));

Maar, dan is het niet helemaal goed beveiligd.

Verder komt hij in het engels uit door die else, om een of andere reden (die hier niet zichtbaar is) sprint hij naar de else.


1. Wat heeft dat met het topic te maken?

2. Waarom zou het beveiligd moeten zijn als het niets uit de database haalt,..?

3. :/


Quote: RS

Ten eerste zou ik gewoon talen in een ini, conf of wat ook voor bestand zetten en daar een parser voor schrijven...

Code | Selecteer Alles
1
2
3
4
5

elseif(empty($_GET['hl'])){
$Hl = 'ENG';
}else{
$Hl = 'ENG';
}

Aan dat gedeelte ligt het



Dankje
04-09-2010 19:00
aka Twan - oldmod
Berichten: 22
avatar
Offline Stuur privébericht
Quote: Alex

Quote: Xaphire

Ten eerste,
mysql_num_rows geeft een integer, dus je hoeft die 1 niet als een string te zetten.

Voorbeeld

Code | Selecteer Alles
minimaliseren
1
if(mysql_num_rows($query) < 1)


Ten tweede, die if/else structuur ziet er niet uit, zelf zou ik het zo doen:
Code | Selecteer Alles
minimaliseren
1
$Hl addslashes(htmlspecialchars($_GET['hl']));

Maar, dan is het niet helemaal goed beveiligd.

Verder komt hij in het engels uit door die else, om een of andere reden (die hier niet zichtbaar is) sprint hij naar de else.


1. Wat heeft dat met het topic te maken?

2. Waarom zou het beveiligd moeten zijn als het niets uit de database haalt,..?


1. Is het verboden mensen te laten weten dat het een verkeerde manier is van programmeren?

2.
Het zegt No news has yet been posted.. Dit betekend dat het een nieuws systeem is, daarvan uitgaande word het nieuws in de database gezet. Meestal is het dan ook het geval dat je dus je nieuws berichten in engels en belgish hebt.

Ik kan niet opmaken uit 9 regels code of jij wel of niet een database hebt. Stel jij had het wel, en ik zei niets dan was het ook weer gedonder, hm?
04-09-2010 19:11
Berichten: 470
avatar
Offline Stuur privébericht
Je kan het ook zo doen.

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$h1 
$_GET['h1'];

if(!empty(
$h1)){
// h1 is ingevuld dus kijken wat de keuze is

if($h1 == 'ENG'){
$h1 "ENG";
} elseif (
$h1 == 'BE'){
$h1 "BE";
} else {
// onbekende keuze en dus standaard laten zien
$h1 "ENG";
}

} else {
// h1 is leeg dus standaard keuze gebruiken (ENG)
$h1 "ENG";
}
?>


Edit: mysql_real_escape_string ook niet nodig in dit stukje omdat de keuzes hardcoded staan
Scheelt weer onnodige code.
04-09-2010 19:21
Berichten: 780
avatar
Offline Stuur privébericht
Quote: Xaphire

Quote: Alex

Quote: Xaphire

Ten eerste,
mysql_num_rows geeft een integer, dus je hoeft die 1 niet als een string te zetten.

Voorbeeld

Code | Selecteer Alles
minimaliseren
1
if(mysql_num_rows($query) < 1)



Ten tweede, die if/else structuur ziet er niet uit, zelf zou ik het zo doen:
Code | Selecteer Alles
minimaliseren
1
$Hl addslashes(htmlspecialchars($_GET['hl']));

Maar, dan is het niet helemaal goed beveiligd.

Verder komt hij in het engels uit door die else, om een of andere reden (die hier niet zichtbaar is) sprint hij naar de else.


1. Wat heeft dat met het topic te maken?

2. Waarom zou het beveiligd moeten zijn als het niets uit de database haalt,..?


1. Is het verboden mensen te laten weten dat het een verkeerde manier is van programmeren?

2.
Het zegt No news has yet been posted.. Dit betekend dat het een nieuws systeem is, daarvan uitgaande word het nieuws in de database gezet. Meestal is het dan ook het geval dat je dus je nieuws berichten in engels en belgish hebt.

Ik kan niet opmaken uit 9 regels code of jij wel of niet een database hebt. Stel jij had het wel, en ik zei niets dan was het ook weer gedonder, hm?


ik probeerde je niet af te breken, bedankt voor je reactie, maar,
ik heb idd een database
maar kijk nu
ik heb twee tabellen, nieuws-be en nieuws-eng dus er gaat niets in de database van $_GET['hl']
04-09-2010 19:53
RS
Berichten: 116
avatar
Offline Stuur privébericht
Nogmaals: ik zou je vertalingen gewoon in een apart bestand zetten en daar een parser voor schrijven. Vertaling wel even beschermen tegen lezen van buitenaf natuurlijk.
04-09-2010 19:59
Berichten: 780
avatar
Offline Stuur privébericht
Quote: pekelterror

Je kan het ook zo doen.

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$h1 
$_GET['h1'];

if(!empty(
$h1)){
// h1 is ingevuld dus kijken wat de keuze is

if($h1 == 'ENG'){
$h1 "ENG";
} elseif (
$h1 == 'BE'){
$h1 "BE";
} else {
// onbekende keuze en dus standaard laten zien
$h1 "ENG";
}

} else {
// h1 is leeg dus standaard keuze gebruiken (ENG)
$h1 "ENG";
}
?>


Edit: mysql_real_escape_string ook niet nodig in dit stukje omdat de keuzes hardcoded staan
Scheelt weer onnodige code.


wat heeft dat voor nut,
dat is onnutige code,

je zegt als h1 gelijk is aan BE dan h1 is gelijk aan BE

Nieuwe reactie samengevoegd met originele reactie op 04.09.10 20:58:03:
heb het opgelost;

Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
<?php
function Print_Language($ENG$BE$HL){
    if(
$HL == 'ENG'){
        echo 
$ENG;
    }elseif(
$HL == 'BE'){
        echo 
$BE;
    }
}



04-09-2010 20:51
Reageer op: "PHP Probleem [OPGELOST]"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden