Wat is beter?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Jordi Kroon

Jordi Kroon

10/10/2011 15:58:04
Quote Anchor link
Even een kleine discussie.

Wij hebben een leraar.

Hij zegt het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
// goed
$naam = $_POST['naam'];
$_SESSION['naam'] = $naam;

//fout
$_SESSION['naam'] = $_POST['naam'];

?>


Citaat: Als je dit op een toets doet (de foute manier) dan krijg je een onvoldoende
Wat zeggen jullie
 
PHP hulp

PHP hulp

27/11/2024 17:46:39
 
- SanThe -

- SanThe -

10/10/2011 16:12:59
Quote Anchor link
Persoonlijke mening: Complete onzin.

Geheugenverspilling en veel meer typwerk. Tevens meer kans op fouten door typfouten.
 
- Ariën  -
Beheerder

- Ariën -

10/10/2011 16:14:09
Quote Anchor link
En waarom vindt je leraar het onderstaande fout? Als het om leesbaarheid en het afkorten van variabelen gaat is dat een heel fout argument.
Gewijzigd op 10/10/2011 16:14:51 door - Ariën -
 
Jordi Kroon

Jordi Kroon

10/10/2011 16:39:11
Quote Anchor link
Eigenlijk word er gezegd dat dat veiliger is .
 
Gerhard l

gerhard l

10/10/2011 16:39:52
Quote Anchor link
Lol, dan mag hij mij wel eens uitleggen waarom...
 
- SanThe -

- SanThe -

10/10/2011 16:42:30
Quote Anchor link
Gerhard l op 10/10/2011 16:39:52:
Lol, dan mag hij mij wel eens uitleggen waarom...


Ja, en mij ook.
 
Maikel  B

Maikel B

10/10/2011 16:46:25
Quote Anchor link
Vraag eens aan hem waarom het bovenste veiliger is dan? :p
 
Joakim Broden

Joakim Broden

10/10/2011 17:50:53
Quote Anchor link
Meeste leraren stammen af van een tijdperk van 20 jaar geleden toen er nog hele andere methodes waren :)
 
Ozzie PHP

Ozzie PHP

10/10/2011 21:51:13
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
// goed
$naam = $_POST['naam'];
$_SESSION['naam'] = $naam;

//fout
$_SESSION['naam'] = $_POST['naam'];

?>


Dit is complete onzin. Hetgene wat hier als "fout" staat is beter dan hetgene wat als "goed" staat, omdat zoals SanThe al zei, er onnodige geheugenverspilling plaatsvindt.

Wanneer het argument van de leraar eventueel wel zou opgaan is in dit geval:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
// goed
$naam = strip_tags($_POST['naam']);
$_SESSION['naam'] = $naam;

//fout
$_SESSION['naam'] = $_POST['naam'];

?>


Hier voer je eerst een beveiligingshandeling uit, voordat je de variabele in de sessie stopt. Dit heeft een meerwaarde, maar het voorbeeldje van jouw leraar raakt kant noch wal.
 
Jordi Kroon

Jordi Kroon

10/10/2011 21:54:47
Quote Anchor link
Hij zegt ook dat $_SESSION vars niet direct in een query mogen staan . Omdat je dan errors krijgt.
Gewijzigd op 11/10/2011 09:22:30 door Jordi Kroon
 
Vincent Huisman

Vincent Huisman

10/10/2011 21:57:06
Quote Anchor link
lol, die kerel faalt dan wel heel erg hard
 
Ozzie PHP

Ozzie PHP

10/10/2011 22:13:08
Quote Anchor link
Jordi kroon op 10/10/2011 21:54:47:
Hij zegt ook dat $_SESSION vars niet in een query mogen staan . Omdat je dan errors krijgt.

Misschien eens even met de directie van je school praten en zeggen dat die leraar klinkklare onzin verkoopt?
 
Max van den Bosch

Max van den Bosch

10/10/2011 22:14:39
Quote Anchor link
Ozzie PHP op 10/10/2011 22:13:08:
Jordi kroon op 10/10/2011 21:54:47:
Hij zegt ook dat $_SESSION vars niet in een query mogen staan . Omdat je dan errors krijgt.

Misschien eens even met de directie van je school praten en zeggen dat die leraar klinkklare onzin verkoopt?


Idd...
 
- SanThe -

- SanThe -

10/10/2011 23:03:30
Quote Anchor link
Is het soms je geschiedenisleraar?
 
Gerhard l

gerhard l

10/10/2011 23:25:07
Quote Anchor link
- SanThe - op 10/10/2011 23:03:30:
Is het soms je geschiedenisleraar?


I lolled
 
Roel Sluper

Roel Sluper

11/10/2011 09:38:55
Quote Anchor link
Ik zit bij Jordi in de klas. Onze docente zegt dat de onderstaande code een onvoldoende zou krijgen. Simpelweg omdat er _POST data in een query word gebruikt. :S

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
session_start();
unset($_SESSION['id']);
include 'config.php';

if($_SERVER['REQUEST_METHOD'] == "POST"){
        if(empty($_POST['username'])){
            echo "Geen username op gegeven.<br />";
        }
else{
            if(empty($_POST['password'])){
                echo "Geen password op gegeven.<br />";
            }
else{            
            $query = mysql_query("INSERT INTO members(username,password) VALUES('".mysql_real_escape_string($_POST['username'])."','".mysql_real_escape_string(md5($_POST['password']))."')");
                
            if($query){
            header("location: index.php");    
            }
else{
                echo "Registratie mislukt.<br />Probeer het opnieuw, klik <a href='index.php'>hier</a>";
            }
            
            }        
            
        }
    
    }
else{
        // terug form
    }

?>
 
Gerhard l

gerhard l

11/10/2011 09:40:56
Quote Anchor link
Je code is dan niet helemaal goed, maar $_POST data in een query is niets mis mee als je het beveiligd?
 
Roel Sluper

Roel Sluper

11/10/2011 09:43:29
Quote Anchor link
@gerhard, ben pas 4 weken bezig met php. Geloof graag dat het hier en daar niet klopt. Maar deze discussie lezende weet ik niet hoe ik nu door moet gaan met programmeren. Haar methodes hanteren of luisteren naar het advies van Jordi en andere klasgenoten.
 
- SanThe -

- SanThe -

11/10/2011 10:46:40
Quote Anchor link
Doe op de examens wat de school wil zien. Hou in je achterhoofd dat het anders/beter kan.

Toevoeging op 11/10/2011 13:43:54:

Rick van Hout op 11/10/2011 13:35:12:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$bedrag_inc
= 13.03;
$btw = 19; // 0 - 6 - 19

echo 'Bedrag inclusief: '.$bedrag_inc .'<br>';

$bedrag_ex = $bedrag_inc/(100+$btw)*100;
echo 'Bedrag exclusief: '.$bedrag_ex.'<br>'; //totaal

$bedrag_ex = round($bedrag_ex, 2); //totaal afgerond
echo 'Eindbedrag: '.$bedrag_ex.'<br>';
?>


Dit scriptje van Rick (uit een ander topic gehaald) is een mooi voorbeeld van het nuttig gebruik van een extra variable. Hier geeft het een helder en duidelijk overzicht. Zeer netjes.
 
Ozzie PHP

Ozzie PHP

11/10/2011 14:44:56
Quote Anchor link
Roel Sluper op 11/10/2011 09:38:55:
Ik zit bij Jordi in de klas. Onze docente zegt dat de onderstaande code een onvoldoende zou krijgen. Simpelweg omdat er _POST data in een query word gebruikt. :S

Het hangt er vanaf of je de _POST data hebt gecontroleerd. Als bezoekers van jouw website zich moeten inschrijven en daarbij een gebruikersnaam en wachtwoord moeten verzinnen, dan wil je dat de gebruikersnaam en het wachtwoord aan bepaalde eisen voldoen. Bijvoorbeeld: de gebruikersnaam moet minimaal 6 en hooguit 8 tekens bevatten en het wachtwoord moet minimaal 6 en hooguit 8 tekens bevatten, en daarnaast moet het wachtwoord bestaan uit tenminste 1 letter en tenminste 1 cijfer.

Als je nu de _POST data meteen in de query zet, dus zonder deze te controleren, dan kan het zijn dat iemand een gebruikersnaam van 100 tekens invoert, of het kan zo zijn dat iemand een wachtwoord invoert waar geen cijfers inzitten. Daarom is het een goede gewoonte om _POST data altijd eerst te controleren zodat je weet of de data voldoet aan jouw eisen. Ik denk dat dat is wat jouw lerares bedoelt. Dat je dus niet zomaar de _POST data in een query mag gebruiken zonder deze data eerst gecontroleerd te hebben. Echter, als je de _POST data hebt gecontroleerd en deze aan jouw eisen voldoet, dan mag je de _POST data wel in de query gebruiken. Ik hoop dat het zo wat duidelijker is.
Gewijzigd op 11/10/2011 14:46:29 door Ozzie PHP
 
Jordi Kroon

Jordi Kroon

11/10/2011 19:26:04
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    $naam = $_POST['naam'];
    $error = array();
    if(!strlen($naam) <5 || !strlen($naam) > 20)
    {

        $error[] = 'veld naam is niet goed';
    }

    
    if(!$error)
    {

        //insert query met $naam
    }
}

?>

    
    
<form method='post' action=''>
    <input type='text' name='naam' />
    <input type='submit' value='submit' />
</form>


Dit is dus een voldoende voor mij want $naam is gedefineerd met $_POST['naam'];
ook al vind ik is dat $_POST['naam'] ook direct in de controle + query kan
waarom staat bas kreleger als last post? ik zie hem hier niet tussen staan.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.