Php encryptie wertk niet

Pagina: 1
Acties:
  • 389 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • MarluXiaXl
  • Registratie: September 2009
  • Laatst online: 07-09 11:13

MarluXiaXl

Moshi Moshi!

Topicstarter
Hallo tweakers,

laatst ben ik begonnen met een encryptie te maken in php. Hierbij heb ik het volgende scriptje:

PHP: filename
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 <form action="crypt.php" method="post">
Naam: <input type="text" name="naam" />
<input type="submit" />
</form>

<?php
$string = $_POST['naam'];
echo $string;
class Encoding_Algoritme
{
    public function encode ($string)
    {
        $strlen = strlen ($string);
        $strarr = array (  

        'a' => '1',
        'b' => '9',
        'c' => '8',
        'd' => '5',
        'e' => '3',
        'f' => '4',
        'g' => 'f',
        'h' => '7',
        'i' => 'n',
        'j' => 'h',
        'k' => 'x',
        'l' => '0',
        'm' => 'o',
        'n' => '2',
        'o' => 'b',
        'p' => 'c',
        'q' => 'd',
        'r' => 'e',
        's' => 'i',
        't' => 'g',
        'u' => 'v',
        'v' => 'm',
        'w' => 'p',
        'x' => '6',
        'y' => 'j',
        'z' => 'r',
        '1' => 'k',
        '2' => 'a',
        '3' => 'u',
        '4' => 'w',
        '5' => 'l',
        '6' => 's',
        '7' => 'z',
        '8' => 'q',
        '9' => 't',
        '0' => 'y'  

 );
    
        for ($i = 0; $i < $strlen; $i++)
            {
            $strnew= $strarr($string[$i]);
            }
        return $strnew;
        echo $strnew;

    }
    
}
?> 


Nou krijg ik heel mooi een tekstveld te zien, en als ik op enter druk krijg wel terug de tekst die ik heb ingevoerd, maar niet de encryptie ervan. Zou iemand me hiermee kunnen helpen?
Alvast bedankt :)

Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Nu online

Onbekend

...

Regel 57: $strnew= $strarr($string[$i]);

Wat komt uit deze regel na de eerste loop?
En na de tweede en derde?

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • Chesta
  • Registratie: November 2004
  • Laatst online: 27-08 06:55
echo $string;


je gebruikt je class/functie helemaal niet ;)

End of Transmission


Acties:
  • 0 Henk 'm!

  • afraca
  • Registratie: April 2009
  • Laatst online: 13-08 16:46

afraca

Open Source!

edit: nevermind, ga eerst maar lekker tutorials doorlopen. Vóór je je mag bezighouden met "encryptie" (wat het niet echt is... ) mag je gaan uitvogelen hoe classes werken... en hoe parentheses ( haakjes ) werken in php. Puur uit verveling, maar ik meen echt dat je eerst wat tutorials mag doorlopen, zoiets wil je:

PHP:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php

function encode($string){
    $strarr = array (   
        'a' => '1', 
        'b' => '9', 
        'c' => '8', 
        'd' => '5', 
        'e' => '3', 
        'f' => '4', 
        'g' => 'f', 
        'h' => '7', 
        'i' => 'n', 
        'j' => 'h', 
        'k' => 'x', 
        'l' => '0', 
        'm' => 'o', 
        'n' => '2', 
        'o' => 'b', 
        'p' => 'c', 
        'q' => 'd', 
        'r' => 'e', 
        's' => 'i', 
        't' => 'g', 
        'u' => 'v', 
        'v' => 'm', 
        'w' => 'p', 
        'x' => '6', 
        'y' => 'j', 
        'z' => 'r', 
        '1' => 'k', 
        '2' => 'a', 
        '3' => 'u', 
        '4' => 'w', 
        '5' => 'l', 
        '6' => 's', 
        '7' => 'z', 
        '8' => 'q', 
        '9' => 't', 
        '0' => 'y'   
        ); 
        $chars = str_split($string);
        $new = '';
        foreach ($chars as $key => $value)
        {
            $new .= $strarr[$value];
        }
        return $new;
}


Om maar even een paar puntjes te noemen:
  • Onnodig variabelen kopiëren op line 7. Vaak doe je dit in de praktijk echter wel, maar met een functie eromheen omdat je nooit direct met $_POST wilt werken, de user kan er de meest gekke dingen instoppen die je script een beetje in de war kunnen kooien.
  • Voor je encode functie heb je geen klasse nodig. Een klasse komt in de praktijk vaak voor als een verzameling functies die samen op 1 object werken. Helemaal leuk word het als je netjes OOP (Object Orientated Programming) gaat hanteren. Dan krijg je classes die bijvoorbeeld "user" of whatever heten. (niet het punt hier)
Hier pauzeren we even, we gaan kijken hoe we een class eventueel wel gebruiken (indien nodig)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class ClassName
{
    private $somevar;
    
    function __construct ($constructparam)
    {
        $this->somevar = $constructparam; 
    }
    
    public function FunctionName($param)
    {
        // doe iets op $param
        return $resultvar;
    }   

}

$object = new ClassName('something');
$resultaat = $object->FunctionName('string');
echo $resultaat;


Ja, daar zijn ongetwijfeld 47 dingen aan fouten, houd me nergens aan nette syntax of iets dergelijks, maar het is ter illustratie dat je (TS, MarluXiaXi) momenteel nog even goed moet inlezen.Verder:
  • Op line 57 moet je even goed kijken naar het verschil tussen ( ) en [ ] , nu spreek je namelijk een functie aan...
  • Ook controleer je niet of een variabele bestaat. Je error reporting staat waarschijnlijk uit en dus zie je er niks van, maar toch is het zeker niet netjes. Je kan helemaal niet bij $_POST als je pagina nog niet gepost hebt.
Ik laat het hier even bij. Ik bedoel het zeker niet negatief, en ben tevens niet de beste tweaker in dit subforum om je hiermee te helpen, maar uiteindelijk zal iedereen hetzelfde bedoelen die in dit topic zou reageren: tutorial

[ Voor 195% gewijzigd door afraca op 18-02-2011 21:15 ]

IMDB vote history | Next-gen OS, audio en video player, search engine en Movie DB


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Kun je sowieso niet beter de http://nl3.php.net/manual/en/function.strtr.php functie gebruiken?

En deze simpelste vorm van encryptie is op deze manier vrij waardeloos...

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Tsja, debuggen mag je toch echt zelf doen. Arrays werken met [ ] en niet met ( ) in PHP. Ga je die wel gebruiken, dan krijg je rare dingen ja. Een goede editor (bijvoorbeeld PhpStorm of zelfs en aanzienlijk minder fijn product als Zend Studio) vertelt je dat soort foutjes ook. ;)

Zie ook Programming FAQ - Debuggen: hoe doe ik dat?

'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.

Pagina: 1

Dit topic is gesloten.