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
En wat als een of andere grappenmaker nou in 1x bij gebruikersnaam het volgende invoerd:quote:Op dinsdag 22 augustus 2006 14:54 schreef mschol het volgende:
[..]
![]()
![]()
![]()
dat ik daar niet eerder op gekomen ben![]()
![]()
thnx in iedereval voor dit heldere licht
en ik weet wat SQL injectens zijn
en ik ben niet echt bang dat me dat overkomt simpel weg door het feit dat je maar eerst eens de url moet gaan proberen te raden(as in: Succes, lukt je nooit)
En ik trek toch niet veel volk naar me site
1 |
Lijkt me niet praktisch/logisch nee, maar je hebt gelijk--> bij wachtwoord hoeft het nietquote:Op dinsdag 22 augustus 2006 16:19 schreef JeRa het volgende:
[..]
Dus een spatie op het begin of eind van mijn wachtwoord is geen geldig teken?
Die methode werkt niet meerquote:Op dinsdag 22 augustus 2006 16:24 schreef t-x-m het volgende:
[..]
En wat als een of andere grappenmaker nou in 1x bij gebruikersnaam het volgende invoerd:
[ code verwijderd ]
Daar hoeftie geen url voor te raden, verder, een beetje sql-injector kan jouw url wel vinden hoor!
uhh waar wil hij/zij dat invoeren..quote:Op dinsdag 22 augustus 2006 16:24 schreef t-x-m het volgende:
[..]
En wat als een of andere grappenmaker nou in 1x bij gebruikersnaam het volgende invoerd:
[ code verwijderd ]
Daar hoeftie geen url voor te raden, verder, een beetje sql-injector kan jouw url wel vinden hoor!
nee, dat bedoel ik niet. wat ik wel bedoel is, ik heb ditquote:Op dinsdag 22 augustus 2006 15:30 schreef Tuvai.net het volgende:
Je kunt in MySQL queries een paar ingebouwde functies gebruiken. sum() is bijvoorbeeld voor het totaal van alle kolommen op te tellen, en je hebt ook avg() voor bijvoorbeeld het gemiddelde van alle kolommen in een tabel te berekenen. Op http://www.tizag.com/mysqlTutorial/ staan deze functies vrij goed uitgelegd.
Dus in jouw voorbeeld, als je van een hele tabel van alle records het aantal hits wil optellen, doe je gewoon het volgende:
SELECT sum(hits) FROM jouwtabel
1 2 3 4 5 6 | image_id (int) | image(blob) --------------------------------- 0 | [image] 1 | [image] --------------------------------- |
En jij gelooft echt dat niemand de webpagina in kwestie kan vinden, die wel gewoon voor iedereen toegankelijk is en op het Internet staat?quote:Op dinsdag 22 augustus 2006 16:45 schreef mschol het volgende:
[..]
uhh waar wil hij/zij dat invoeren..
dan moettie de url naar me login form weten, suc6
Het is een combinatie van weten waar de pagina staat, kwaad willen doen, weten hoe je kwaad moet doen, en weten welke tabelnamen er zijn, wil je uberhaubt ergens kunnen komen. Voor sommige dingen kan je dat risico maaaakkkelijk nemen.quote:Op dinsdag 22 augustus 2006 16:55 schreef Tuvai.net het volgende:
[..]
En jij gelooft echt dat niemand de webpagina in kwestie kan vinden, die wel gewoon voor iedereen toegankelijk is en op het Internet staat?![]()
Hier is een tip: d'r zijn meer methodes voor het vinden van webpagina's, wachtwoorden, e.d. dan raden.![]()
google is your friend ??quote:Op dinsdag 22 augustus 2006 16:55 schreef Tuvai.net het volgende:
[..]
En jij gelooft echt dat niemand de webpagina in kwestie kan vinden, die wel gewoon voor iedereen toegankelijk is en op het Internet staat?![]()
Hier is een tip: d'r zijn meer methodes voor het vinden van webpagina's, wachtwoorden, e.d. dan raden.![]()
1 2 3 4 | echo date("D d M Y H:i:s", strtotime("Mon, 21 Aug 2006 01:00:08 -0400e")); // ik krijg dus: Thu 01 Jan 1970 00:59:59 ?> |
de e op het eind erachter weghalen, doet ie het wel (bij mij dan, php4 thuis)quote:Op woensdag 23 augustus 2006 15:04 schreef Mr_Zoidberg het volgende:
Kan iemand me vertertellen waarom dit niet op mijn server werkt??
<?php
echo date("D d M Y H:i:s", strtotime("Mon, 21 Aug 2006 01:00:08 -0400e"));
// ik krijg dus: Thu 01 Jan 1970 00:59:59
?>
Die server draait op php4, thuis op php5 werkt het prima. Volgens php.net zou het ook prima moeten werken op php4
Kan iemand me dit uitleggen?
Als ik de "e" weg laat, dan geeft ie idd een datum, maar die is niet goed. Het goede antwoord is namelijk: Sun 20 Aug 2006 22:00:08.quote:Op woensdag 23 augustus 2006 15:09 schreef ralfie het volgende:
[..]
de e op het eind erachter weghalen, doet ie het wel (bij mij dan, php4 thuis)
php5 behandeld tijdzones op een totaal andere manier als php4, je zult dus wat aan moeten passen
[CSS] voor dummies - Deel 5quote:Op woensdag 23 augustus 2006 17:03 schreef qu63 het volgende:
waarom werkt dit wel in FF en niet in IE?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |