$_GET[''] vergelijken met data uit database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jasper Geelen

Jasper Geelen

09/03/2011 10:36:46
Quote Anchor link
Ik krijg het niet voor elkaar! Ik heb in mijn database een tabel Personen met wat persoonsgegevens en een uniek nummer. Nu heb ik al dat als er helemaal geen ?callid=<nummer> in de url staat dat ie een error geeft, maar ik wil nu ook dat als er een verkeerd nummer in de url staat, dat ie een error weergeeft (andere dan zonder nummer). Dit probeer ik op deze manier:
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
<?php

if (!empty($_GET['callid'])) {

    $callExistsQuery = "SELECT * FROM personen WHERE CallID = ".$_GET['callid'];
    $result1 = $mysqli->query($callExistsQuery);
    while($row1 = $result1->fetch_array()) {
    
        if($row1['CallID'] == $_GET['callid']) {
            echo "bestaat";
        }
else {
            echo "bestaat niet";
        }
    }
}
else {
    echo "<table><tr><th>Het call nummer in de URL ontbreekt.</th></tr></table>";
}


?>


Het resultaat wat ik hiermee krijg, is dat met een correct nummer geeft hij "bestaat" weer, maar met een foutief nummer echo'd hij helemaal niks.

Is er iets wat ik verkeerd doe of over het hoofd zie?
Gewijzigd op 09/03/2011 10:39:56 door Jasper Geelen
 
PHP hulp

PHP hulp

28/04/2024 22:04:02
 
- SanThe -

- SanThe -

09/03/2011 10:44:52
Quote Anchor link
Als er niks is gevonden zal de while() ook niet lopen. Kijk eens naar num_rows en affected_rows.
 
Jasper Geelen

Jasper Geelen

09/03/2011 11:17:29
Quote Anchor link
- SanThe - op 09/03/2011 10:44:52:
Als er niks is gevonden zal de while() ook niet lopen. Kijk eens naar num_rows en affected_rows.

Thnx! Ik had de oplossing gewoon voor me neus liggen, paar regels verderop pas ik namelijk precies hetzelfde toe.
 
Jordi Kroon

Jordi Kroon

09/03/2011 11:21:51
Quote Anchor link
Je script is wel bagger,

* is een wildcard , Selecteer wat je wilt.
MySQL injection mogelijk mysql_real_escape_string
!empty is overbodig gebruik isset
gebruik fetch_assoc ipv fetch_array
 
Jasper Geelen

Jasper Geelen

09/03/2011 12:06:07
Quote Anchor link
Jordi kroon op 09/03/2011 11:21:51:
Je script is wel bagger,

* is een wildcard , Selecteer wat je wilt.
MySQL injection mogelijk mysql_real_escape_string
!empty is overbodig gebruik isset
gebruik fetch_assoc ipv fetch_array

Heb wat aanpassigen gedaan n.a.v. de dingen die jij stelde. Dank je wel :)

Ik was al op de hoogte dat ik het nog moest beveiligen tegen SQL Injection maar was er nog niet toe gekomen. Wist ook eigenlijk niet dat dat kon gebeuren d.m.v. $_GET[''], dacht eigenlijk alleen d.m.v. text velden.

Wat is eigenlijk precies het verschil tussen fetch_array en fetch_assoc? Ze doen toch eigenlijk hetzelfde?

Ik gebruik !empty omdat met isset er een PHP error wordt weergegeven als ik ?call= invul zonder nummer. Met !empty gebeurd dit niet.
 



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.