quote:Op zondag 20 augustus 2006 18:04 schreef freiss het volgende:
SELECT COUNT(DISTINCT(datum)) FROM `tabel` ?
Nu ben ik bezig met 100 rows aanmaken, met iedere keer andere 'id' (van 1 t/m 100). Ik wil via ons CMS heel gemakkelijk deze top 100 in een keer kunnen wijzigen. Dus 100 rijen onder elkaar met invulveldjes voor:quote:tabel 'top100' met volgende rows:
id (uniek)
userid
datum
artist
titel
weken
vorigeweek
type
label
quote:<?
$query = mysql_query("SELECT * FROM top100 ORDER BY 'id' ASC");
$result = mysql_num_rows($query);
if(!$result){
echo "<tr><td colspan='6'>Geen ingave.</td></tr>";
}
else {
$i = 0;
while($object = mysql_fetch_object($query)){
$i++;
?>
<tr>
<td><? echo $i ?></td><input type="hidden" name="id<? echo $i ?>" value="<? echo $object->id ?>">
<td><input type="text" name="artist<? echo $object->id ?>" value="<? echo $object->artist ?>" size="10"></td>
<td><input type="text" name="titel<? echo $object->id ?>" value="<? echo $object->titel ?>" size="10"></td>
<td><input type="text" name="weken<? echo $object->id ?>" value="<? echo $object->weken ?>" size="2"></td>
<td>
<select name="type<? echo $object->id ?>">
<option value=""></option>
<option value="stijger" <? if($object->type == "stijger"){ ?> selected="selected" <? } ?>>stijger</option>
<option value="daler" <? if($object->type == "daler"){ ?> selected="selected" <? } ?>>daler</option>
</select>
</td>
<td><input type="text" name="label<? echo $object->id ?>" value="<? echo $object->label ?>" size="5"></td>
</tr>
<?
}
}
?>
Zou het niet veel mooier zijn om het zo te doen:quote:Op maandag 21 augustus 2006 22:29 schreef RiderXXX het volgende:
[...veel regels...]
haha wel een goeie ja, maar dan doet diegene het maar mooi opnieuw, aangezien dan alles gewoon wel opgeslagen is.. het is UPDATE en in die tekstveldjes is er een value="" met de huidige invoer wat in de DB staat opgeslagen.. dus erg veel moeite kost het niet..quote:Op maandag 21 augustus 2006 23:00 schreef SuperRembo het volgende:
[..]
Zou het niet veel mooier zijn om het zo te doen:
- laat alle regels zien, maar read-only
- op elke regel een edit knop.
- de edit knop verandert m.b.v. javascript de regel in edit veldjes.
- de wijzigingen van die regel kan je m.b.v. ajax opslaan.
Dan voorkom je ook dat iemand 100 regels voor niets heeft zitten invoeren als er iets fout gaat.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $user = addslashes(strip_tags($_POST['Username'])); $pass = md5($_POST['Password']); $Ucheck = mysql_query("SELECT * FROM `users` WHERE `Username` = '".$user."'"); if(mysql_num_rows($Ucheck) == 1) { $check = mysql_query("SELECT * FROM `users` WHERE `Username` = '".$user."' AND `Password` = '".$pass."'"); ifif(mysql_num_rows($check) == 1) { ... } } ?> |
1 2 3 4 5 6 7 | $user = mysql_real_escape_string(trim($_POST['Username'])); $pass = md5(trim($_POST['Password'])); $check = mysql_query("SELECT * FROM `users` WHERE `Username` = '".$user."' AND `Password` = '".$pass."'"); if(mysql_num_rows($check) == 1) print "succesvol ingelogd!"; else print "Gebruikersnaam of wachtwoord incorrect!"; ?> |
zo ver was ik nog niet, en echt bang voor injections ben ik nietquote:Op dinsdag 22 augustus 2006 13:07 schreef t-x-m het volgende:
[ code verwijderd ]
Mysql_real_escape_string werkt prima tegen sql-injecties. Verder werk ik altijd even de (perongeluk) ingetypede spaties weg dmv trim
Effe on a side note, SQL injection is de term voor (vaak kwaadaardige) truukjes waarmee je query beïnvloed kan worden. Stel je hebt een veld waar je een gebruikersnaam moet invullen in een formulier, als je dit formulier submit dan wordt er door middel van een MySQL query gekeken of die gebruikersnaam voorkomt in een database. Als je deze query niet beveiligt tegen SQL injection dan kan iemand door middel van dat simpele invoerveldje je hele database beïnvloeden, of erger, deleten. En dat gebeurt op Internet hoor.quote:Op dinsdag 22 augustus 2006 13:54 schreef mschol het volgende:
[..]
zo ver was ik nog niet, en echt bang voor injections ben ik niet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | function quote_smart($value) { // Stripslashes if (get_magic_quotes_gpc()) { $value = stripslashes($value); } // Quote if not a number or a numeric string if (!is_numeric($value)) { $value = "'" . mysql_real_escape_string($value) . "'"; } return $value; } if($_POST['action']=='login'){ if( mysql_result(mysql_query(" SELECT count(*) FROM gebruikers WHERE gebruikersnaam='".quote_smart($_POST['gebruikersnaam'])."' AND wachtwoord='".quote_smart($_POST['wachtwoord'])."' "),0,0) ) { echo 'ingelogd'; }else{ echo 'foutieve combinatie gebruikersnaam/wachtwoord'; } } ?> |
quote:Op dinsdag 22 augustus 2006 14:49 schreef ralfie het volgende:
[..]
maak gewoon een query voor de username en trek daar het wachtwoord uit. dat wachtwoord kun je dan in php controleren, en als de username fout is failed de query.
Heel simpel: niet doen. Hoe meer informatie je terug geeft, hoe makkelijker is om te hacken. Als je eerst een melding krijgt dat de gebruiker niet bestaat, en dan na een tijdje random usernames proberen krijg je de melding dat het wachtwoord niet bestaat, dan weet je dus dat de username klopt. Dan hoef je daarna alleen nog het wachtwoord te raden. Het is veiliger om alleen de melding te geven dat de gebruikersnaam of het wachtwoord niet correct is.quote:Op dinsdag 22 augustus 2006 12:27 schreef mschol het volgende:
klein vraagje:
wat is een goede manier om een username + password te controleren maar op zo'n manier dat je ook nog kan aangeven waar het fout gaat
ik zat zelf aan het volgende te denken:
[ code verwijderd ]
dit lijkt me eigenlijk niet echt efficent aangezien ik eigenlijk net zo goed alleen de 2de query hoef uit te voeren,
iemand?
dat ben ik wel met je eens (maar ja aangezien niemand er zomaar gaat komen, en de info die er staat niet echt leuk is om te bewerken mogen ze van mij best proberen..quote:Op dinsdag 22 augustus 2006 15:52 schreef SuperRembo het volgende:
[..]
Heel simpel: niet doen. Hoe meer informatie je terug geeft, hoe makkelijker is om te hacken. Als je eerst een melding krijgt dat de gebruiker niet bestaat, en dan na een tijdje random usernames proberen krijg je de melding dat het wachtwoord niet bestaat, dan weet je dus dat de username klopt. Dan hoef je daarna alleen nog het wachtwoord te raden. Het is veiliger om alleen de melding te geven dat de gebruikersnaam of het wachtwoord niet correct is.
Dus een spatie op het begin of eind van mijn wachtwoord is geen geldig teken?quote:Op dinsdag 22 augustus 2006 13:07 schreef t-x-m het volgende:
Verder werk ik altijd even de (perongeluk) ingetypede spaties weg dmv trim
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |