abonnement Unibet Coolblue Bitvavo
pi_39746693
quote:
Op woensdag 12 juli 2006 10:13 schreef Desdinova het volgende:
[edit] @ dinges met snelste mysql_resultaat [/edit]
Dinges
quote:
$sql_styles = "SELECT * FROM css_selectedstyle WHERE `id` = '".$id."' LIMIT 0,1";
$result = mysql_query($sql_styles);
$row = mysql_fetch_object($result);

elke databasekolom van de gepakte rij is nu bereikbaar via $row->kolomnaam. Door de limit zou hij meteen moeten stoppen na de eerste vondst
Klinkt logisch! Ga er gelijk mee aan de slag.
quote:
[edit2]
misschien dat mysql_fetch_array() ipv mysql_fetch_object() sneller is. dan benader je je kolommen met $row['kolomnaam'].
dat zou je eigenlijk ff moeten benchmarken. maar dit is verwaarloosbaar want je hebt t volgens mij op codeer-snelheid en niet over executiontime
Ik had het inderdaad over codeer-snelheid. Naja, en het feit dat ik geen lelijke omwegen wil maken om 1 waarde uit een database te vissen.

Maarreh: thnx
  FOK!-Schrikkelbaas woensdag 12 juli 2006 @ 11:09:56 #202
1972 Swetsenegger
Egocentrische Narcist
pi_39747224
quote:
Op woensdag 12 juli 2006 10:15 schreef Desdinova het volgende:

[..]

ja hoe werkt dat precies? is het gewoon een hidden field ofzoiets die je een random waarde geeft, alsmede een selectie afbeeldingen met dezelfde tekens maar dan wat onduidelijker?
Het werkt eigenlijk ernstig simpel.
Je maakt met de GD library een image waar je een random string op print. Diezelfde random string sla je op in een sessie. In het form laat je iemand die string overtikken en na de submit vergelijk je de overgetikte string met de sessie string
  woensdag 12 juli 2006 @ 12:01:02 #203
62215 qu63
..de tijd drinkt..
pi_39748749
1
2
3
4
5
<?php
if (($_POST['km_nieuw'] &gt; 0) && ($_POST['tijd_nieuw'] &gt;0) && ($_POST['prijs_nieuw'] &gt;0)) { mysql_query('INSERT INTO qu63 (prijs, tijd, km) VALUES ('.$_POST['prijs_nieuw'].','.$_POST['tijd_nieuw'].','.$_POST['km_nieuw'].')');
                
$aangepast++;
                }
?>


dat is een stukje code uit mn script. als ik maar 1 tabelregel toe te voegen heb (dus 1x km, 1x tijd en 1x prijs) dan werkt de code goed. Maar bij 2 of meer regels gaat het dus fout want hij pakt alleen de laatste regel dan. hoe kan ik dit oplossen?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_39749024
@qu63

Je zult ook in het formulier moeten aangeven dat je meer regels (dus een array) wilt:

1<input type="text" name="km_nieuw[]" ... />
pi_39749099
quote:
Op woensdag 12 juli 2006 10:31 schreef mschol het volgende:
ben aan het kutten met sessies en het onthouden van een login doe ik nu als volgt:
bij login wordt:

  • een hash aangemaakt (md5 van huidige tijd + IP adres)
  • de hash + Session id worden samne met IP en timestamp in database opgeslagen
  • er wordt een cookie gezet met daarin het hash nummer
    is dit een correcte manier om sessies te gebruiken (veilig genoeg enzo?)
  • Van wat ik nu van jouw methode begrijp, gebruik je dus alleen de hash (en niet de SID) om een session te verifiëren? Lijkt me niet slim (makkelijk te misbruiken) en nogal overbodig.

    Beter maak je een goede random SID aan en sla je dié op in een cookie. In de database sla je diezelfde SID op samen met andere dingen die je wilt verifiëren (zoals IP-adres, user agent, etc).
    pi_39749233
    quote:
    Op woensdag 12 juli 2006 12:13 schreef JeRa het volgende:

    [..]

    Van wat ik nu van jouw methode begrijp, gebruik je dus alleen de hash (en niet de SID) om een session te verifiëren? Lijkt me niet slim (makkelijk te misbruiken) en nogal overbodig.

    Beter maak je een goede random SID aan en sla je dié op in een cookie. In de database sla je diezelfde SID op samen met andere dingen die je wilt verifiëren (zoals IP-adres, user agent, etc).
    de SID is in mijn script me echte session id die door de server wordt gegenereerd en ik neem aan dat je die juist NIET in je cookie wilt hebben staan?
    en hoe wil je een md5 hash vn IP + tijd gaan misbruiken (tijd is op seconde precies)
    en ik kan uiteraard ook checken of IP klopt (staat in DB)
      woensdag 12 juli 2006 @ 12:19:37 #207
    62215 qu63
    ..de tijd drinkt..
    pi_39749271
    quote:
    Op woensdag 12 juli 2006 12:10 schreef JeRa het volgende:
    @qu63

    Je zult ook in het formulier moeten aangeven dat je meer regels (dus een array) wilt:


    [ code verwijderd ]
    er staat nu name="km_nieuw[$i]"

    ik probeerde net al wat met foreach, maar dat ging ook niet helemaal
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_39749583
    quote:
    Op woensdag 12 juli 2006 12:18 schreef mschol het volgende:

    [..]

    de SID is in mijn script me echte session id die door de server wordt gegenereerd en ik neem aan dat je die juist NIET in je cookie wilt hebben staan?
    Waarom zou je die niet in je cookie willen hebben staan? Dat doen werkelijk alle sites die met SIDs werken. Bovendien is die hash die je nu opslaat het equivalent van een session ID, dus sla je die alsnog op.
    quote:
    en hoe wil je een md5 hash vn IP + tijd gaan misbruiken (tijd is op seconde precies)
    Als ik jouw IP-adres weet dan kan ik een tijdsbestek gaan afscannen door heel veel hashes uit te proberen en zodoende jouw session te stelen. Érg gevoelig voor hijacking dus, wat je bij een SID niet hebt.
    pi_39749597
    quote:
    Op woensdag 12 juli 2006 12:19 schreef qu63 het volgende:

    [..]

    er staat nu name="km_nieuw[$i]"

    ik probeerde net al wat met foreach, maar dat ging ook niet helemaal
    Doe eens een print_r($_POST) en kom erachter wat er nu eigenlijk naar PHP wordt gestuurd die $i kun je dus achterwege laten.
    pi_39749694
    quote:
    Op woensdag 12 juli 2006 12:30 schreef JeRa het volgende:

    [..]

    Waarom zou je die niet in je cookie willen hebben staan? Dat doen werkelijk alle sites die met SIDs werken. Bovendien is die hash die je nu opslaat het equivalent van een session ID, dus sla je die alsnog op.
    [..]

    Als ik jouw IP-adres weet dan kan ik een tijdsbestek gaan afscannen door heel veel hashes uit te proberen en zodoende jouw session te stelen. Érg gevoelig voor hijacking dus, wat je bij een SID niet hebt.
    hmm ik ging er juist vanuit dat je je session id nooit moet opslaan in je cookie...
    en dat je dus een eigen radom iets moet hebben om je session id op te halen...
    maar die hash zou je opzich moeten kunnen blijven gebruikenm, mits je er maar genoeg unieke dingen in propt tohch (ik doe eens gek: username+wachtwoord +email er ook nog bij )
    pi_39749845
    quote:
    Op woensdag 12 juli 2006 12:33 schreef mschol het volgende:

    [..]

    hmm ik ging er juist vanuit dat je je session id nooit moet opslaan in je cookie...
    en dat je dus een eigen radom iets moet hebben om je session id op te halen...
    maar die hash zou je opzich moeten kunnen blijven gebruikenm, mits je er maar genoeg unieke dingen in propt tohch (ik doe eens gek: username+wachtwoord +email er ook nog bij )
    Wat heb je nou aan een random session ID als je er nog een random hash (nog een session ID) tegenaan gooit? Laat die hele hash achterwege en gebruik gewoon één session ID
      woensdag 12 juli 2006 @ 12:53:49 #212
    62215 qu63
    ..de tijd drinkt..
    pi_39750276
    quote:
    Op woensdag 12 juli 2006 12:30 schreef JeRa het volgende:

    [..]

    Doe eens een print_r($_POST) en kom erachter wat er nu eigenlijk naar PHP wordt gestuurd die $i kun je dus achterwege laten.
    [tijd_nieuw] => 1 [km_nieuw] => 1 [prijs_nieuw] => 1

    en dat terwijl ik in totaal 5 nieuwe regels heb ingevuld.
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_39750465
    quote:
    Op woensdag 12 juli 2006 12:53 schreef qu63 het volgende:

    [..]

    [tijd_nieuw] => 1 [km_nieuw] => 1 [prijs_nieuw] => 1

    en dat terwijl ik in totaal 5 nieuwe regels heb ingevuld.
    En dat was in een formulier met namen voor de velden als km_nieuw[], tijd_nieuw[], etc? Laat eens de HTML zien
      woensdag 12 juli 2006 @ 13:09:00 #214
    62215 qu63
    ..de tijd drinkt..
    pi_39750800
    quote:
    Op woensdag 12 juli 2006 12:59 schreef JeRa het volgende:

    [..]

    En dat was in een formulier met namen voor de velden als km_nieuw[], tijd_nieuw[], etc? Laat eens de HTML zien
    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
    <?php
    function form() {
        if (
    $_GET['order'] == 'km' ) { $result = mysql_query('SELECT tijd, km, prijs FROM qu63 ORDER BY km, tijd');    }
        elseif (
    $_GET['order'] == 'tijd') {    $result = mysql_query('SELECT tijd, km, prijs FROM qu63 ORDER BY tijd, km'); }
        else {
    $result = mysql_query('SELECT tijd, km, prijs FROM qu63 ORDER BY km, tijd');    }    
        
        &
    lt;form method="get" action="update.php"&gt;
        &
    lt;input type="text" name="an" value="0" maxlength="2" size="1"&gt;&lt;input type="submit" value="Submit"&gt;
        &
    lt;/form&gt;
        &
    lt;form method="post" action="update.php"&gt;
        &
    lt;table&gt;
        &
    lt;tr&gt;&lt;td&gt;&lt;a href="update.php?order=tijd"&gt;Tijd (uren)&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="update.php?order=km"&gt;Afstand (km)&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Prijs&lt;/td&gt;&lt;/tr&gt;
        
    php
        
    while ($row = mysql_fetch_assoc($result)) {
            echo
    '<tr><td>'.$row['tijd'].'</td>';
            echo
    '<td>'.$row['km'].'</td>';
            echo
    '<td><input type="text" name=prijs['.$row['tijd'].']['.$row['km'].'] value='.$row['prijs'].'>';
            echo
    '<input type="hidden" name=oud['.$row['tijd'].']['.$row['km'].'] value='.$row['prijs'].'></td></tr>';
        }
        for(
    $i = 0; $i &lt; $_GET['an']-1; $i++) {
        echo
    "<tr><td><input name=\"tijd_nieuw[$i]\"></td>";
        echo
    "<td><input name=\"km_nieuw[$i]\"></td>";
        echo
    "<td><input name=\"prijs_nieuw[$i]\"></td></tr>";
        }
        
        &
    lt;tr&gt;&lt;td&gt;&lt;input name="tijd_nieuw"&gt;&lt;/td&gt;
        &
    lt;td&gt;&lt;input name="km_nieuw"&gt;&lt;/td&gt;
        &
    lt;td&gt;&lt;input name="prijs_nieuw"&gt;&lt;/td&gt;&lt;/tr&gt;
        &
    lt;/table&gt;
        &
    lt;input type="submit" value="Update"&gt;
        &
    lt;/form&gt;
        
    php
    }

    function
    update() {
        
    $aangepast = 0;
        echo
    print_r($_POST);
        
    nieuwe waarden?
        if ((
    $_POST['km_nieuw'] &gt; 0) && ($_POST['tijd_nieuw'] &gt;0) && ($_POST['prijs_nieuw'] &gt;0)) { mysql_query('INSERT INTO qu63 (prijs, tijd, km) VALUES ('.$_POST['prijs_nieuw'].','.$_POST['tijd_nieuw'].','.$_POST['km_nieuw'].')');
                    
    $aangepast++;
                    }
        
    //Bij het begin beginnen :)
        
    reset($_POST['oud']);
        
    //De array bevat tijd, afstand en prijs.
        //Dat is niet in 1 lus uit te lezen, dus doen we het met twee.
        
    while (list($tijd, $tmp) = each($_POST['oud'])) {
            while (list(
    $km, $prijs) = each($tmp)) {
                
    //Als er een andere prijs staat dan zetten we die in de database
                
    if($_POST['prijs'][$tijd][$km] != $prijs) {
                    
    mysql_query('UPDATE qu63 SET prijs = '.intval($_POST['prijs'][$tijd][$km]).' WHERE tijd = '.$tijd.' AND km = '.$km);
                    
    $aangepast++;
                }
            }
        }
        
    $refresh = 3;
        echo
    '<meta http-equiv="refresh" content="'.$refresh.'; URL="'.$_SERVER['PHP_SELF'].'" />';
        echo
    'Update uitgevoerd, '.$aangepast.' waarden aangepast.<br />';
        echo
    'Refresh in '.$refresh.' seconden.';
    }

    //Een eventuele addslashes ongedaan maken. Niet echt nuttig met alleen cijfers, maar wel zo duidelijk.
    if (get_magic_quotes_gpc()) {
        function
    stripslashes_deep(&$value, $key)
        {
            if(
    is_array($value)) {
                
    array_walk($value, 'stripslashes_deep');
            } else {
                
    $value = stripslashes($value);
            }
        }
        
        
    array_walk($_GET, 'stripslashes_deep');
        
    array_walk($_POST, 'stripslashes_deep');
        
    array_walk($_COOKIE, 'stripslashes_deep');
    }


    mysql_connect(DB_HOST, DB_USER, DB_PASS);
    mysql_select_db(DB_DATABASE);

    {
    if (
    count($_POST)) {
        
    update();
    } else {
        
    form();
    }
    ?>
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_39751812
    @qu63

    Zet de veldnamen tussen aanhalingstekens, grote kans dat het dan wél werkt.

    Sowieso doe je er goed aan alle attributes tussen aanhalingstekens te zetten.
      woensdag 12 juli 2006 @ 13:50:01 #216
    62215 qu63
    ..de tijd drinkt..
    pi_39752570
    quote:
    Op woensdag 12 juli 2006 13:33 schreef JeRa het volgende:
    @qu63

    Zet de veldnamen tussen aanhalingstekens, grote kans dat het dan wél werkt.

    Sowieso doe je er goed aan alle attributes tussen aanhalingstekens te zetten.
    de whilie-loop werkt wel, die wordt gewoon geupdate

    1
    2
    3
    4
    5
    for($i = 0; $i < $_GET['an']-1; $i++) {
        echo "<tr><td><input name=\"tijd_nieuw[$i]\"></td>";
        echo "<td><input name=\"km_nieuw[$i]\"></td>";
        echo "<td><input name=\"prijs_nieuw[$i]\"></td></tr>";
        }

    dit werkt ook gewoon zoals t hoord.

    alleen kan ik die ene regel die alles in mn sql-tabel moet proppen niet goed maken, omdat er dus verschillende $_POST['km_nieuw'] waarden zijn.. dat is het enige punt eigenlijk.
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_39753181
    quote:
    Op woensdag 12 juli 2006 13:50 schreef qu63 het volgende:
    alleen kan ik die ene regel die alles in mn sql-tabel moet proppen niet goed maken, omdat er dus verschillende $_POST['km_nieuw'] waarden zijn.. dat is het enige punt eigenlijk.
    Dus je hebt wel verschillende waarden uit $_POST, maar je weet niet hoe je de INSERT/UPDATE-query moet schrijven voor meerdere waarden? Met een INSERT kun je standaard meerdere values meegeven (zie de MySQL manual) maar voor een UPDATE zul je een loopje moeten maken over alle waarden.
      woensdag 12 juli 2006 @ 14:14:39 #218
    62215 qu63
    ..de tijd drinkt..
    pi_39753503
    quote:
    Op woensdag 12 juli 2006 14:06 schreef JeRa het volgende:

    [..]

    Dus je hebt wel verschillende waarden uit $_POST, maar je weet niet hoe je de INSERT/UPDATE-query moet schrijven voor meerdere waarden? Met een INSERT kun je standaard meerdere values meegeven (zie de MySQL manual) maar voor een UPDATE zul je een loopje moeten maken over alle waarden.
    de Update loop zit er ook al in en werkt ook.
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      woensdag 12 juli 2006 @ 14:21:12 #219
    62215 qu63
    ..de tijd drinkt..
    pi_39753726
    quote:
    Op woensdag 12 juli 2006 14:06 schreef JeRa het volgende:

    [..]

    Dus je hebt wel verschillende waarden uit $_POST, maar je weet niet hoe je de INSERT/UPDATE-query moet schrijven voor meerdere waarden? Met een INSERT kun je standaard meerdere values meegeven (zie de MySQL manual) maar voor een UPDATE zul je een loopje moeten maken over alle waarden.
    INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

    die bedoel je? 1,2,3 doet ie nu dus al, maar hoe kan ik de rest er nog bij krijgen?
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
    pi_39754219
    precies zoals het er staat ipv in de while loopt steeds " INSERT INTO tbl_name (a,b,c) VALUES(1,2,3)" te doen voeg je achter (1,2,3) ,(4,5,6) toe.
    pi_39754524
    quote:
    Op woensdag 12 juli 2006 10:15 schreef Desdinova het volgende:

    [..]

    ja hoe werkt dat precies? is het gewoon een hidden field ofzoiets die je een random waarde geeft, alsmede een selectie afbeeldingen met dezelfde tekens maar dan wat onduidelijker?
    Normaal gesproken maakt ie de afbeelding 'on-the-fly'. Anders zou je er geen GD voor nodig hebben.
      woensdag 12 juli 2006 @ 15:47:37 #222
    62215 qu63
    ..de tijd drinkt..
    pi_39756623
    quote:
    Op woensdag 12 juli 2006 14:34 schreef Darkomen het volgende:
    precies zoals het er staat ipv in de while loopt steeds " INSERT INTO tbl_name (a,b,c) VALUES(1,2,3)" te doen voeg je achter (1,2,3) ,(4,5,6) toe.
    maar hoe kan ik er voor zorgen dat 4,5,6 niet hetzelfde is als 1,2,3?

    ik heb nu dit:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    if (($_POST['km_nieuw'] &gt; 0) && ($_POST['tijd_nieuw'] &gt;0) && ($_POST['prijs_nieuw'] &gt;0)) {
        foreach(
    $_POST['km_nieuw'] as $km_nieuw)
        {
    mysql_query('INSERT INTO qu63 (km) VALUES ('$km_nieuw')'); $aangepast++; }
        foreach(
    $_POST['tijd_nieuw'] as $tijd_nieuw)
        {
    mysql_query('INSERT INTO qu63 (tijd) VALUES ('$tijd_nieuw')'); $aangepast++; }
        foreach(
    $_POST['prijs_nieuw'] as $prijs_nieuw)
        {
    mysql_query('INSERT INTO qu63 (prijs) VALUES ('$prijs_nieuw')'); $aangepast++; }
    ?>


    kan dat
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      woensdag 12 juli 2006 @ 16:11:59 #223
    62215 qu63
    ..de tijd drinkt..
    pi_39757502
    quote:
    Op woensdag 12 juli 2006 15:47 schreef qu63 het volgende:

    [..]

    maar hoe kan ik er voor zorgen dat 4,5,6 niet hetzelfde is als 1,2,3?

    ik heb nu dit:

    [ code verwijderd ]

    kan dat
    niet dus
    It's Time To Shine
    [i]What would life be like without rhethorical questions?[/i]
      woensdag 12 juli 2006 @ 16:14:02 #224
    71919 wonderer
    Hung like a My Little Pony
    pi_39757579
    Mijn chatbox kwam ineens met de melding "no input file specified". Heeft iemand daar wel eens mee te maken gehad en hoe is dat op te lossen? Ik vermoed dat de host iets aan PHP heeft veranderd, maar ik snap de uitleg op internet niet zo goed.
    "Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
    "My brain is too smart for me."
    "We don't need no education." "Yes you do, you just used a double negative."
    pi_39758882
    quote:
    Op woensdag 12 juli 2006 15:47 schreef qu63 het volgende:

    [..]

    maar hoe kan ik er voor zorgen dat 4,5,6 niet hetzelfde is als 1,2,3?
    Ehm...door te controleren of ze hetzelfde zijn? Ik snap je niet.
    abonnement Unibet Coolblue Bitvavo
    Forum Opties
    Forumhop:
    Hop naar:
    (afkorting, bv 'KLB')