aanmeld systeem verandert maar if gaat verkeerd

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Pagina: 1 2 volgende »

Michael Visser

Michael Visser

19/09/2017 07:59:59
Quote Anchor link
Hallo allemaal , ik heb een aanmeld systeem op mijn website waarbij ik het wachtwoord automatisch genereer maar nu kom ik er dus achter dat er iets niet goed gaat met de mailing van de login gegevens , bij sommige providers kom de mail niet binnen heel apart maar ok , nu wil ik mijn systeem aanpassen wat op zich goed gaat maar heb ik een if{ else} verkeerd geplaatst vermoed ik , ik zit er al uren naar te kijken maar ik zie de fout helaas niet ik hoop dat iemand hem wel ziet en mij erop kan wijzen alvast bedankt


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
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?
if ( !@include('_config.php') )
{

    die('Fatal Error: Please contact admin if you keep getting this error.');
}

$msg1 = '';
if(getenv('REQUEST_METHOD') == 'POST')
{

if ( isset($_POST['aanmelden_y']) )
{

    if ( isset($_POST['signup_akkoord']) )
    {

        if ( !empty($_POST['signup_login']) && !empty($_POST['signup_email']) && !empty($_POST['signup_wachtwoord']) )
        {

            $result = mysql_query('SELECT id FROM users WHERE ip=\''. $clientIP.'\'');
            if ( mysql_num_rows($result) == 0 )
            {

                $wachtwoord = $_POST['signup_wachtwoord'];
                if ( preg_match('/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]{2,6}$/', $wachtwoord) )
                {

                    $email = $_POST['signup_email'];
                    if ( preg_match('/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]{2,6}$/', $email) )
                    {

                    $result = mysql_query('SELECT user_id FROM newsletter WHERE email=\''.$email.'\'');
                    if ( mysql_num_rows($result) == 0 )
                    {

                        $login = $_POST['signup_login'];
                        if ( preg_match('/^[a-zA-Z0-9_-]{3,16}$/', $login) )
                        {

                            $result = mysql_query('SELECT id FROM users WHERE login=\''.$login.'\'');
                            if ( mysql_num_rows($result) == 0 )
                            {

                                $refferal_id = 0;
                                $refferal = ( isset($_GET['crimineeltje']) ) ? trim($_GET['crimineeltje']) : '' ;
                                if ( preg_match('/^[a-zA-Z0-9_-]{3,16}$/', $refferal) )
                                {

                                    $result = mysql_query('SELECT id FROM users WHERE login=\''.$refferal.'\'');
                                    if ( $row = mysql_fetch_assoc($result) )
                                    {

                                        $refferal_id = $row['id'];
                                    }
                                }

                                mysql_query('');
                                $user_id = mysql_insert_id();
                                mysql_query('INSERT INTO users_login (user_id,pass)VALUES(' . $user_id . ',\''.md5($wachtwoord).'\')')OR die(mysql_error());
                                sms(1,$user_id, "Welkom", "Welkom $login<br>
$msg1 = 'Je bent zojuist aangemeld op de website<br><br>Hieronder vind u de login gegevens <br><br><b><font color="
#00ff00">Login: '.$login.'<br>Wachtwoord: '.$wachtwoord.'</font></b>';
                            }
                            else
                            {
                                $msg1 = 'Er is al iemand met deze login.';
                            }
                        }

                        else
                        {
                            $msg1 = 'Je login mag alleen letters, nummers, _ en - bevatten.';
                        }
                    }

                    else
                    {
                        $msg1 = 'Dit email adres is al gebruikt.';
                    }
                }

                else
                {
                    $msg1 = 'Je moet je geldig email adres geven.';
                }
            }

            else
            {
                $msg1 = 'Er is al iemand geregistreerd op dit ip.';
            }

          //nieuwe else controle voor ww
            }
            else
            {
                $msg1 = 'Wachtwoord niet goed.';
            }

          // einde nieuwe controle voor ww
        }
        else
        {
            $msg1 = 'Je hebt niet alles ingevoerd.';
        }
    }

    else
    {
        $msg1 = 'Je hebt de regels niet geaccepteerd.';
    }
}
}

?>
 
PHP hulp

PHP hulp

12/11/2024 20:42:51
 
- SanThe -

- SanThe -

19/09/2017 08:10:31
Quote Anchor link
Michael Visser op 19/09/2017 07:59:59:
.. nu kom ik er dus achter dat er iets niet goed gaat met de mailing ..
.. maar heb ik een if{ else} verkeerd geplaatst vermoed ik ..


Niet echt duidelijk.
En wat is nou het probleem?
 
Michael Visser

Michael Visser

19/09/2017 08:32:03
Quote Anchor link
ik heb het script omgebouwd dat men zelf een wachtwoord kan invullen maar blijkbaar heb ik een if{else} niet goed staan want hij geeft aan er is al een account op dit ip wat onmogelijk is want mijn ip staat niet in het systeem
 
- Ariën  -
Beheerder

- Ariën -

19/09/2017 08:38:35
Quote Anchor link
Waar komt $ClientIP vandaan?

Waarom een beperking op IP-adressen als ik vragen mag? Een IP is vaak gebonden aan een netwerk, en niet aan een computer.

Verder ben ik benieuwd waarom je nog mysql-functies gebruikt. In PHP 7 moet je mysqli of PDO gebruiken.
 
- SanThe -

- SanThe -

19/09/2017 08:39:03
Quote Anchor link
Regel 71 en 77 wisselen.
 
Michael Visser

Michael Visser

19/09/2017 08:44:52
Quote Anchor link
$client komt vd config
 
- Ariën  -
Beheerder

- Ariën -

19/09/2017 08:46:40
Quote Anchor link
Ga verder...
 
Michael Visser

Michael Visser

19/09/2017 08:50:51
Quote Anchor link
en in config staat $clientIP = $_SERVER['REMOTE_ADDR'];

maar dat is het probleem niet , uhmm ik heb de regels omgedraaid nu geeft hij aan wachtwoord niet goed , lijkt me toch wel goed te gaan of zie ik het nu verkeerd ?

$wachtwoord = $_POST['signup_wachtwoord'];
if ( preg_match('/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]{2,6}$/', $wachtwoord) )
{


html gedeelte heb ik
<label>Wachtwoord:</label><input type="text" name="signup_wachtwoord" />

als wachtwoord heb ik gebruikt qwerty123789
Gewijzigd op 19/09/2017 08:53:16 door Michael Visser
 
- Ariën  -
Beheerder

- Ariën -

19/09/2017 08:54:00
Quote Anchor link
Een wachtwoord met een (verouderde) reguliere expressie voor e-mail?? Dan zal qwerty123789 niet werken, nee.

Met andere woorden: Je staat alleen wachtwoorden toe in de vorm van een e-mailadres. En dat klopt niet.
Gewijzigd op 19/09/2017 08:57:04 door - Ariën -
 
Michael Visser

Michael Visser

19/09/2017 09:04:02
Quote Anchor link
nee idd dat klopt niet nu zie ik het ook haha , maar je zegt (verouderde) reguliere expressie voor e-mail kan je dat nader omschrijven ? misschien dat dat mijn probleem met mailen wel is ?
 
- SanThe -

- SanThe -

19/09/2017 09:07:45
Quote Anchor link
Wat is je mailscript?
 
- Ariën  -
Beheerder

- Ariën -

19/09/2017 09:12:34
Quote Anchor link
'[email protected]' is bijv. niet mogelijk.
 
Michael Visser

Michael Visser

19/09/2017 09:13:00
Quote Anchor link
ik mail uit met

mail($email,'Website',$bericht,'MIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1\r\nFrom: website<[email protected]>\r\n');

Toevoeging op 19/09/2017 09:13:38:

- Ariën - op 19/09/2017 09:12:34:
'[email protected]' is bijv. niet mogelijk.


hoe kan ik dit oplossen want dit is natuurlijk wel essentieel
 
- SanThe -

- SanThe -

19/09/2017 09:14:52
 
Michael Visser

Michael Visser

19/09/2017 09:17:15
Quote Anchor link
thx ga het gelijk doorlezen :)
 
- Ariën  -
Beheerder

- Ariën -

19/09/2017 09:17:40
Quote Anchor link
Gebruik filter_var om je e-mailadressen te valideren, en zorg dat je een recente PHP-versie draait.

Bij zeer sterke voorkeur raad ik aan om je eens te verdiepen in de functies van mysqli en deze te gebruiken. In PHP 7 zijn de mysql-functies niet meer beschikbaar, en zal je script direct vastlopen.
Gewijzigd op 19/09/2017 09:19:57 door - Ariën -
 
Michael Visser

Michael Visser

19/09/2017 09:21:10
Quote Anchor link
gelukkig heb ik een dedicted server dus heb ik zelf in de hand wanneer ik ga updaten maar ik ga me daar zeker in verdiepen en alle scripts updaten dank je wel voor jullie hulp en tips , aanmeld systeem werkt gelukkig weer , nu uitzoeken en lezen de mysqli versie thanks...

Toevoeging op 19/09/2017 09:22:40:

dus

if ( preg_match('/^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]{2,6}$/', $email) )
{

word gewoon enkel

$email = filter_var($email, FILTER_SANITIZE_EMAIL);

en dan natuurlijk de if etc aanpassen
 
- Ariën  -
Beheerder

- Ariën -

19/09/2017 09:27:25
Quote Anchor link
Lees mijn link eens goed, het is
FILTER_VALIDATE_EMAIL. En dit geheel moet in plaats van de reguliere-expressie.

Nog wat tips:
- Ik zie een hoop queries die gevoelig zijn voor SQL-injection. Dus escape deze POST/GET waardes met mysqli_real_escape_string()
- md5() als hashing voor passworden is niet meer van deze tijd en eenvoudig te kraken. Gebruik password_hash() en password_verify(). Uiteraard moet je alle huidige wachtwoorden resetten.
Gewijzigd op 19/09/2017 09:29:39 door - Ariën -
 
Michael Visser

Michael Visser

19/09/2017 09:59:55
Quote Anchor link
thx voor de tips arien

Toevoeging op 19/09/2017 10:11:47:

ik zag het tik foutje haha

Toevoeging op 19/09/2017 10:11:47:

ik zag het tik foutje haha
 
Frank Nietbelangrijk

Frank Nietbelangrijk

20/09/2017 00:00:46
Quote Anchor link
Als ik meer dan drie if's in elkaar zie staan dan ga ik het niet meer lezen. Lang leve de functies ;-)
 
- Ariën  -
Beheerder

- Ariën -

20/09/2017 00:09:10
Quote Anchor link
Ikzelf zou de foutmeldingen van de validaties in een array verzamelen, en die dan doorlopen op het moment dat er foutmeldingen in bestaat. Je hoeft dan ook geen geneste if-else's te gebruiken, maar enkel steeds een if'je, omdat je niet steeds genest verder gaat kijken als die ene validatie goed gekeurd is.

Als er geen foutmeldingen in de array staan, dan is alles goed, en kan de afhandeling van je script beginnen.

Zoiets is niet alleen een stuk beter onderhoudbaar, maar ook eens gebruiksvriendelijker omdat de gebruiker meteen ziet wat er fout is ingevuld.
 

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.