Als strlen kleiner is dan 1 moet er een string worden aangemaakt

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dimitri Geers

Dimitri Geers

12/03/2014 17:03:06
Quote Anchor link
Beste,

Ik heb de onderstaande code gemaakt.
Ik wil dat er een vooraf ingestelde afbeelding wordt gekoppeld aan de vrijwillger wanneer het veld profielfoto niet is ingevuld.
Als er wel iets is ingevuld moet hij deze link gebruiken inplaats van de vooraf ingestelde afbeelding.

Of te wel: je vult alle velden in inclusief het veld voor de profielfoto. Dan gebruikt hij die link. Anders een foto die hij automatisch moet koppelen. Alleen dit werkt niet helemaal, als je alle velden invult dan gebruikt hij toch de vooraf ingestelde afbeelding.

Hopelijk kan iemand mij helpen?

Met vriendelijke groet,
Dimitri

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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
<?php

if($_SESSION['username'])
{


    $submit = $_POST['submit'];
    $voornaam = $_POST['voornaam'];
    $tussenvoegsel = $_POST['tussenvoegsel'];
    $achternaam = $_POST['achternaam'];
    $mailadres = $_POST['mailadres'];
    $gsmnummer = $_POST['gsmnummer'];
    $personeelsnummer = $_POST['personeelsnummer'];
    
    if($submit){
    
        if($voornaam&&$achternaam&&$mailadres&&$gsmnummer){
        
            if(strlen($voornaam<0)&&strlen($voornaam>250)){
                echo "Voornaam moet tussen de 0 en 250 karakters lang zijn!";
            }
elseif(strlen($achternaam<0)&&strlen($achternaam>250)){
                echo "Achternaam moet tussen de 0 en 250 karakters lang zijn!";
            }
elseif(strlen($mailadres<0)&&strlen($mailadres>250)){
                echo "Mailadres moet tussen de 0 en 250 karakters lang zijn!";
            }
elseif(strlen($tussenvoegsel<0)&&strlen($tussenvoegsel>30)){
                echo "Tussenvoegsel mag niet langer dan 30 tekens zijn!";
            }
elseif(strlen($personeelsnummer<10)&&strlen($personeelsnummer>10)){
                echo "personeelsnummer moet uit 10 cijfers bestaan!";
            }
elseif(strlen($_POST['profielfoto']<1)){
                $profielfoto = "images/hoofd-onbekend.png";
            }
else{
            
            $profielfoto = $_POST['profielfoto'];
            
            }

            
            $PersoneelsNummerCheck = mysql_query("SELECT * FROM tbl_personeel WHERE personeelsnummer='".$personeelsnummer."'");
            $PersoneelsNummerCount = mysql_num_rows($personeelsnummerCheck);
            
            if($PersoneelsNummerCheck==0){
                echo "personeelsnummer bestaat al!";
            }

            else
            
            $UserId = mysql_query("SELECT * FROM tbl_gebruikers WHERE username='".$_SESSION['username']."'");
            $UserInfo = mysql_fetch_assoc($UserId);
            
            mysql_query("
            
                INSERT INTO tbl_personeel(id,personeelsnummer,voornaam,tussenvoegsel,achternaam,mailadres,gsmnummer,profielfoto,mailsend,rang,maker,maakdatum) VALUES ('','"
.$personeelsnummer."','".$voornaam."','".$tussenvoegsel."','".$achternaam."','".$mailadres."','".$gsmnummer."','".$profielfoto."','nee','vrijwilliger','".$UserInfo['voornaam']."',NOW())
            
            "
);
            
            echo "De vrijwilliger is toegevoegd!";
        
        }

        else
            echo "Je dient alle verplichte velden in te vullen!";
    
    }

    

?>


<div id="titel">Vrijwilliger toevoegen</div>

<form action="index.php?pagina=vrijwilliger-toevoegen" method="POST">

    <table>
        
        <tr>
            <td>Voornaam</td>
            <td><input type="text" name="voornaam" value="<?php echo $_POST['voornaam']; ?>" /></td>
        </tr>
        
        <tr>
            <td>Tussenvoegsel</td>
            <td><input type="text" name="tussenvoegsel" value="<?php echo $_POST['tussenvoegsel']; ?>" /><td>
        </tr>
        
        <tr>
            <td>Achternaam</td>
            <td><input type="text" name="achternaam" value="<?php echo $_POST['achternaam']; ?>" /></td>
        </tr>
        
        <tr>
            <td>Mailadres</td>
            <td><input type="text" name="mailadres" value="<?php echo $_POST['mailadres']; ?>" /></td>
        </tr>
        
        <tr>
            <td>Gsm-nummer</td>
            <td><input type="text" name="gsmnummer" value="<?php echo $_POST['gsmnummer']; ?>" /></td>
        </tr>
        
        <tr>
            <td>Personeelsnummer</td>
            <td><input type="text" name="personeelsnummer" value="P-" /></td>
        </tr>
        
        <tr>
            <td>Profielfoto</td>
            <td><input type="text" name="profielfoto" value="<?php echo $_POST['profielfoto']; ?>" /></td>
        </tr>
        
        <tr>
            <td></td>
            <td><input type="submit" name="submit" value="Voeg de vrijwilliger toe!!" /></td>
        </tr>
        
    </table>

</form>

<?php

}
else
    echo "U moet ingelogd zijn om deze pagina te bekijken!";

?>
 
PHP hulp

PHP hulp

21/11/2024 19:41:48
 
Erwin H

Erwin H

12/03/2014 17:15:06
Quote Anchor link
Misschien de haakjes even correct zetten?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
//niet
strlen($_POST['profielfoto']<1)
//maar
strlen($_POST['profielfoto']) < 1
?>


Toevoeging op 12/03/2014 17:16:38:

Verder zou ik overigens niet een default plaatje in de database opslaan. Dat is onnodige database vulling. Gewoon dat veld leeg laten en op het moment dat je het plaatje op het scherm moet zetten die lege waarde vervangen door de default.
 
D B

D B

12/03/2014 19:14:55
Quote Anchor link
Ik zou dit inderdaad niet opslaan.

Wil je dit wel zou ik de elseif op regel 28 vervangen door gewoon if.

Omdat de else dan ook alleen betrekking heeft op $profielfoto
 
Dimitri Geers

Dimitri Geers

12/03/2014 20:27:54
Quote Anchor link
Het werkt nu uitstekend!
Bedankt voor jullie reacties!
 
Michael -

Michael -

13/03/2014 08:15:11
Quote Anchor link
Dimitri; Let wel even op dat je code nu kwetsbaar is voor 'sql injection'. Dit kun je voorkomen door de waardes die je in je database opslaat door de functie mysql_real_escape_string() te halen.
Verder zijn de functie mysql_* die je nu gebruikt 'deprecated' (afgeschaft, gedeprecieerd, verouderd, afgekeurd) en zal uiteindelijk uit PHP verdwijnen. Voor nieuwe code wordt aangeraden MySQLi of PDO te gebruiken waarbij MySQLi het meest op MySQL lijkt en een eenvoudigere overstap zou zijn.
 



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.