Versio

Extra forum/Scripts categorie: Tips/Snippets

Overzicht Reageren

Pagina: 1 2 volgende »

PHP Newbie

PHP Newbie

21/07/2008 15:16:00
Quote Anchor link
Heey allemaal,

Ik zat me te bedenken dat het misschien wel handig is om gewoon een forum-categorie of script-categorie "Tips" aan te maken. Hierin kunnen dan kleine handige snippets in geplaatst worden die eigenijk niet in de huidige scriptlib thuis horen, maar wel gewoon handig zijn.

Daarnaast zouden hier gewoon tips gepost kunnen worden van dingen die vaak mis gaan tijdens het scripten. Gewoon even een simpel voorbeeldje van wat ik bedoel:


-------------------
Bij een inlogcontrole wordt vaak de volgende SQL-code gebruikt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    $sql
= "SELECT
                id
            FROM
                users
            WHERE
                username = '"
.mysql_real_escape_string($_POST['username'])."'
                AND password = MD5('"
.mysql_real_escape_string($_POST['password'])."')";
?>


In eerste instantie lijkt hier niets mis mee, maar veel mensen weten niet dat op deze manier het wachtwoord keurig netjes onbeschermd in de SQL-logs komt te staan.
Gebruik daarom liever:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
    $sql
= "SELECT
                id
            FROM
                users
            WHERE
                username = '"
.mysql_real_escape_string($_POST['username'])."'
                AND password = '"
.md5($_POST['password'])."'";
?>


Op deze manier komt het md5() gehashte wachtwoord in de logs te staan en kan niemand het wachtwoord dus nog achterhalen.
------------------

Dit is toch iets waarmee mensen redelijk vaak de fout in gaan en er is geen echte plek om dit soort tips/snippets te posten.

Laat eens horen wat je van het idee vindt.

Groet
Newb

edit:
Thx SanThe
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie
 
PHP hulp

PHP hulp

24/05/2012 15:01:42
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
- SanThe -

- SanThe -

21/07/2008 15:43:00
Quote Anchor link
Ik vind dat wel een goed idee.
Quote:
password = ..... $_POST['username']

=> password = ..... $_POST['password']
 
- -

- -

21/07/2008 15:44:00
Quote Anchor link
Inderdaad, in de scriptlib hoort niet alleen volledige scripts, maar ook kleine snippets.
 
Jacco Engel

Jacco Engel

21/07/2008 15:50:00
Quote Anchor link
iChris.nl schreef op 21.07.2008 15:44:
Inderdaad, in de scriptlib hoort niet alleen volledige scripts, maar ook kleine snippets.


Heb je het topic en de reactie uberhaupt gelezen?
 
- -

- -

21/07/2008 15:52:00
Quote Anchor link
Quote:
Hierin kunnen dan kleine handige snippets in geplaatst worden die eigenijk niet in de huidige scriptlib thuis horen, maar wel gewoon handig zijn.
 
Jacco Engel

Jacco Engel

21/07/2008 15:54:00
Quote Anchor link
Quote:
Ik zat me te bedenken dat het misschien wel handig is om gewoon een forum-categorie of script-categorie "Tips" aan te maken. Hierin kunnen dan kleine handige snippets in geplaatst worden die eigenijk niet in de huidige scriptlib thuis horen, maar wel gewoon handig zijn.

Quote:
Inderdaad, in de scriptlib hoort niet alleen volledige scripts, maar ook kleine snippets.


Die staan er nu ook al in regelmatig om keihard te worden afgeschoten. Zoals jij het zegt moet het blijven zoals het is en dat is het punt van TS dat het nie zo is
 
Jelmer rrrr

Jelmer rrrr

21/07/2008 15:55:00
Quote Anchor link
Kleintje die vooral handig kan zijn bij formpjes:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
function ifset(&$x, $y = null) {
    return isset($x) ? $x : $y;
}

?>

Dan kan je gemakkelijk voor-ingevulde waarden in je formulier zetten, tenzij de gebruiker al iets gepost heeft:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<input type="text" name="naam" value="' . htmlentities(ifset($_POST['naam'], 'je voornaam'), ENT_QUOTES) . '">';
?>


Dankzij de reference (het &-tekentje voor $x) kan je niet-bestaande variabelen meegeven zonder dat PHP boos wordt. Nadeel is wel dat je alleen maar variabelen mee kan geven, en dit bijvoorbeeld niet zal werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo ifset('a', 'b'); // levert error op
?>


edit: En omdat ik de bestanden toch toevallig open heb staan, deze 2 heb ik gisteren nog gemaakt. Bleken wel handig te zijn:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
function array_validate($callback, array $input) {
    foreach($input as $value) {
        if(!call_user_func($callback, $value)) return false;
    }

    
    return true;
}

?>

Hiermee kan je gemakkelijk een hele array testen tegen een bepaalde functie. Zodra een enkele waarde niet voldoet, stopt hij met testen en geeft hij 'false' terug. Voorbeeldje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$nummers
= array(1, 2, 3, 4, 5);
var_dump(array_validate('is_int', $nummers)); // geeft true

$meer_nummers = array(1, "2", 3.1);
var_dump(array_validate('is_int', $meer_nummers)); // geeft false
?>

Het verbaasde me een beetje dat PHP niet standaard zo soort functie heeft.

En als laatste, een one-liner om je gegenereerde code een beetje netjes te houden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
function str_indent($text, $depth = 1) {
    return implode("\n", array_map(create_function('$s', 'return "' . str_repeat("\t", $depth) . '$s";'), explode("\n", $text)));
}

?>

Je gooit er een lap tekst in, en er komt een lap tekst met $depth maal een tab teken op iedere regel uit.
Gewijzigd op 01/01/1970 01:00:00 door Jelmer rrrr
 
- -

- -

21/07/2008 15:55:00
Quote Anchor link
Sorry, je hebt gelijk Jacco, ik formuleerde het verkeerd; Ik bedoelde dat er een aparte categorie voor de snippets moet komen :)
 
Jacco Engel

Jacco Engel

21/07/2008 15:59:00
Quote Anchor link
Jelmer kan aan mij liggen maar kun je jou probleem niet oplossen door gewoon

function ifset($var = null)
{
return $var;
}

Te doen? in dat geval krijg je met een gevulde waarde de waarde terug en anders krijg je null terug. en nu kun je wel vaste waarden doen zoals ifset('a')
 
PHP Newbie

PHP Newbie

21/07/2008 16:04:00
Quote Anchor link
Inderdaad Jelmer, dat soort dingen!

Maar dit topic was alleen om even het idee aan te dragen, niet om hier al allerlei scripts neer te gooien. Dat kan altijd nog als de meerderheid het géén goed idee vindt.
 
Jelmer rrrr

Jelmer rrrr

21/07/2008 16:05:00
Quote Anchor link
Jacco, dan zal je een Notice van PHP krijgen omdat je een variabele aanroept die niet bestaat.
 
Karl Karl

Karl Karl

21/07/2008 16:56:00
Quote Anchor link
Jelmer schreef op 21.07.2008 15:55:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
function array_validate($callback, array $input) { ?>

Bedoel je niet:
function array_validate(array $input, $callback) {

Verder vind ik het ook wel een goed id, maar het moeten dan wel goede snippetes zijn dus niet iets van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
for ( $i=0; $i <= 10; $counter++) {
    echo "blaat" . $i;
}
?>

Om maar een veel te simpel en lomp voorbeeld te geven.
Gewijzigd op 01/01/1970 01:00:00 door Karl Karl
 
Jelmer rrrr

Jelmer rrrr

21/07/2008 16:58:00
Quote Anchor link
Eerst wel, maar toen dacht ik, "laat ik dezelfde volgorde gebruiken als array_map" en heb ik het verandert. Ik heb de voorbeelden even verandert zodat de volgorde weer klopt ;)
 
Bas Kreleger
Beheerder

Bas Kreleger

21/07/2008 19:19:00
Quote Anchor link
Heb een categorie 'snippets' aangemaakt. Als je nu scripts toevoegt kun je deze kiezen :). Goed idee, tnx!
 
Luuk Schakenraad

Luuk Schakenraad

21/07/2008 22:18:00
Quote Anchor link
Ik neem aan dat de nieuwe categorie er nog niet bij staat omdat er nog geen snippets in staan?

Goed idee trouwens, is ook leuk om die kleine dingetjes, zoals van Jelmer, te ontdekken, dat met ifSet() vind ik wel leuk. Daar kun je nog eens in gaan bladeren als je niets te doen hebt, ontdek je toch nog leuke dingen.
 
- -

- -

21/07/2008 22:27:00
 
Luuk Schakenraad

Luuk Schakenraad

21/07/2008 22:35:00
Quote Anchor link
Ja, dit is denk ik een goeie toevoeging voor PHP Hulp!

Lol @ iCrhis.nl tekst-onder-naam-gedoe..
 
- -

- -

21/07/2008 22:38:00
Quote Anchor link
Het is iChris.nl voor jou Tommy! :) hehe
 
Nicoow Unknown

Nicoow Unknown

21/07/2008 22:40:00
Quote Anchor link
En dat was het moment waarop het niveau daalde \
 
Luuk Schakenraad

Luuk Schakenraad

21/07/2008 23:00:00
Quote Anchor link
Het zijn denk ik niet de 'normale' snippets, maar toch echt de wat beknoptere, kleine, nuttige en effeciënte (?) stukjes code die de programmeurs hier gebruiken om hun code te verbeteren, aan te vullen en hun programmeren te versnellen.
 
Bas Kreleger
Beheerder

Bas Kreleger

22/07/2008 01:26:00
Quote Anchor link
Mooie nietszeggende stelling Tommy, maar mooi geprobeerd ;-).

Nice snippets Jelmer! De MD5 is ook nieuws voor mij..
 

Pagina: 1 2 volgende »



Overzicht Reageren