abonnement Unibet Coolblue Bitvavo
  FOK!-Schrikkelbaas donderdag 12 januari 2006 @ 17:14:58 #151
1972 Swetsenegger
Egocentrische Narcist
pi_33979764
quote:
Op donderdag 12 januari 2006 17:06 schreef Ro�a� het volgende:
Je voegt een textveld toe aan je form waarin je in 1,2,3,4-format de regels aangeeft, vervolgens vervang je je php stuk:
[ code verwijderd ]

Zoiets ongeveer?
De vraag was meer hoe ik die unicode_functie schrijf
Overigens heb je hier ook niet implode toch?
pi_33980050
Moet je even bij http://nl2.php.net/ord, staat in de comments redelijk wat over uniord.
  FOK!-Schrikkelbaas donderdag 12 januari 2006 @ 17:28:53 #153
1972 Swetsenegger
Egocentrische Narcist
pi_33980304
quote:
Op donderdag 12 januari 2006 17:22 schreef Ro�a� het volgende:
Moet je even bij http://nl2.php.net/ord, staat in de comments redelijk wat over uniord.
Ik zie er inderdaad wel het een en ander tussen staan.
Bedankt!
pi_33981806
Ik gebruik al een tijd een manier om mysql hacks tegen te gaan..
1
2
3
4
5
6
7
8
9
10
11
function mysql_text($in)
{
    $remove = array("select ", "insert ", "update ", "delete ", "drop ", "'", "union ", "--");

    foreach ($remove as $key)
    {
        $in = str_replace($key, "", $in);
    }

    return addslashes($in);
}


maar denk dat dit niet de meest handige manier is... iemand een ander idee?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_33982141
Wat voor MySQL hacks wil je tegengaan? Ik neem aan dat je niet zomaar een mysql_query() uitvoert op user input?

De beste manier is je user input vailderen en op de juiste manier in een query te zetten:

1
2
3
4
$getal = intval($_GET['userGetal']);
$string = trim($_GET['userString'];

$result = mysql_query('SELECT FROM `tabel` WHERE `getal` = ' . $getal . ' AND `string` = \'' . mysql_real_escape_string($string) . '\'');

In plaats van mysql_real_escape_string() kun je ook addslashes() gebruiken, maar die houdt geen rekening met de collation van de database.
pi_33985218
collation? kun je dat nog even uitleggen?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_33985425
quote:
Op donderdag 12 januari 2006 19:41 schreef Chandler het volgende:
collation? kun je dat nog even uitleggen?
Dat is de character set van een database, tabel of kolom in latere versies van MySQL (vanaf 4 geloof ik, en die is stable). Zie ook deze pagina voor een betere uitleg
  FOK!-Schrikkelbaas donderdag 12 januari 2006 @ 22:08:18 #158
1972 Swetsenegger
Egocentrische Narcist
pi_33992568
quote:
Op donderdag 12 januari 2006 17:22 schreef Ro�a� het volgende:
Moet je even bij http://nl2.php.net/ord, staat in de comments redelijk wat over uniord.
Hier staat wel het een en ander, maar gaat veel te ver voor wat ik nodig heb, en is ook niet simpel te verbouwen tot wat ik nodig heb.

Ik hou eigenlijk 1 probleem over. Hoe vind ik in een string een htmlentitie ZONDER dat deze gelijk omgezet wordt naar z'n entity.

Kortom, hoe vind ik ä, zonder dat deze direkt omgezet wordt naar & auml;.

1
2
3
$str='hülp';
$entities = get_html_translation_table(HTML_ENTITIES,ENT_NOQUOTES);
foreach ($entities as $entity){


Ok, nu moet ik dus door de string stappen en ALS een karakter een entitie is, moet ik 'm omzetten naar ord(het karakter)

met strstr etc kom ik er niet. Die geven alles terug VANAF de gevonden entity .

-edit- stuk verder

1
2
3
4
5
6
7
8
9
$str='hülp';
$entities = get_html_translation_table(HTML_ENTITIES,ENT_NOQUOTES);
foreach ($entities as $entity){
    $pos=strpos($str,$entity);
    $char='\u00'.dechex(ord(substr($str,$pos+1,1)));
    $str=str_replace($entity,$char,$str);
}

echo $str;


output hülp ipv h\u00fclp

je moet natuurlijk wel op de key's van de $entities array checken

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
$str='hülp ü';
$entities = get_html_translation_table(HTML_ENTITIES,ENT_NOQUOTES);
foreach ($entities as $entity => $value){
    $pos=strpos($str,$entity);
    if($pos!==false){
        $char='\u00'.dechex(ord(substr($str,$pos,1)));
        $str=str_replace($entity,$char,$str);
    }
}

echo $str;

?>


[ Bericht 22% gewijzigd door Swetsenegger op 12-01-2006 22:44:50 ]
pi_34037392
In mysql.

Wanneer je ergens sorteert met ASC

Dan zou een waarde 0 toch boven de waarde 1 moeten staan?

Nu staat het als volgt:
1
1
0
0
10
10

Lijkt me niet de juiste volgorde (btw: er staat 0, geen NULL)
pi_34040456
quote:
Op zaterdag 14 januari 2006 01:49 schreef the_disheaver het volgende:
In mysql.

Wanneer je ergens sorteert met ASC

Dan zou een waarde 0 toch boven de waarde 1 moeten staan?

Nu staat het als volgt:
1
1
0
0
10
10

Lijkt me niet de juiste volgorde (btw: er staat 0, geen NULL)
normaal gesproken wel, hoe ziet je table eruit en hoe ziet je query er exact uit? Het is nooit zonder reden dat iets niet gaat zoals je het verwacht.
pi_34041289
quote:
Op zaterdag 14 januari 2006 07:39 schreef rickmans het volgende:

[..]

normaal gesproken wel, hoe ziet je table eruit en hoe ziet je query er exact uit? Het is nooit zonder reden dat iets niet gaat zoals je het verwacht.
Dat laatste zal wel het geval zijn. Het is een forum waar ik ff wat wou toevoegen, maar met een vreemd resultaat.

Ik ga het wel ff testen in phpmyadmin,
pi_34042041
Bovenstaande klopt niet geheel, maar de volgorde is in ieder geval niet juist. Maar 1 van de kolomnamen is 'open'. In phpmyadmin lijkt het net dat hij die open als een aparte functie ziet (er wordt een nieuwe regel geopend, en heeft dezelfde stijl als 'SELCET', 'WHERE' enzo). Wel is het in klein capitaal ingevoerd. Kan dit er iets mee te maken hebben?

1
2
3
4
5
6
7
SELECT icon.title AS icontitle, icon.iconpath, thread.threadid,
 thread.title, lastpost, forumid, pollid, open , replycount, postusername,
 postuserid, lastposter, thread.dateline, views, thread.iconid, notes,
 thread.visible, sticky, votetotal, attach
FROM thread
LEFT JOIN icon ON ( icon.iconid = thread.iconid ) 
ORDER BY sticky DESC , open DESC 


Hoe hij zou moeten sorteren is:
sticky DESC (waardes 1 bovenaan, 0 onderin)
vervolgens op OPEN
waardes 1 bovenin
waardes 0 onderin.
waardes 10 onderin of als 1 gesorteerd.
(open=10 zijn alle verplaatste topics. Het mooiste zou zoals het nu is dat ze gewoon tussen de open=1 (normale open topics) staan, en gesorteerd op tijd.
Eventueel zouden ze ook onderin mogen.

Kan ik ook iets sorteren via een andere volgorde dan ASC of DESC? (dus een eigen sorteerindex bepalen)

[ Bericht 7% gewijzigd door the_disheaver op 14-01-2006 11:29:55 ]
pi_34042118
Zet dan backticks om `open` heen.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_34042307
quote:
Op zaterdag 14 januari 2006 11:28 schreef SuperRembo het volgende:
Zet dan backticks om `open` heen.
Dank, dat geeft een logische volgorde aan.

maar dan de vervolgvraag (zie edit) kan ik ook een eigen sorteerindex maken, anders dan ASC of DESC zodat hij sorteert
1
1
0
0
10
10

Of misschien dat hij waardes met een 0 onderin zet, en waardes groter dan 0 bovenin?

Of moet je daarvoor phpcode voor gaan toevoegen?
pi_34042749
nee daarvoor hoef je geen phpcode toevoegen maar zou zeggen dat je sorteer index nooit een 0 is.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_34043225
@the_disheaver:
Ik dacht dat je probleem was dat de sorteervolgorde 1, 0, 10 werd. Maar het probleem is dus dat je wil dat de sorteervolgorde 1, 0, 10 wordt, maar dat je niet weet hoe je dat moet doen.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_34043342
1
2
3
4
5
6
7
8
ORDER BY
   sticky DESC,
   CASE `open` 
      WHEN 1 THEN 1 
      WHEN 0 THEN 2 
      WHEN 10 THEN 3 
      ELSE 4 
   END ASC
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_34043404
Leuk man, dat inline scripten in mysql.. altijd handig!!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  zaterdag 14 januari 2006 @ 20:05:25 #169
37634 wobbel
Da WoBBeL King
pi_34058797
met is_numeric() kan je kijken of een string numeriek is.
Maar is er ook een variant om te kijken of er alleen letters inzitten?
pi_34058937
Ik heb er nooit van gehoord, maar ik vond deze functie.
Ik gebruik er altijd een simpele preg_match voor, maar ik weet niet wat sneller/beter is.
pi_34066957
quote:
Op zaterdag 14 januari 2006 12:10 schreef SuperRembo het volgende:
@the_disheaver:
Ik dacht dat je probleem was dat de sorteervolgorde 1, 0, 10 werd. Maar het probleem is dus dat je wil dat de sorteervolgorde 1, 0, 10 wordt, maar dat je niet weet hoe je dat moet doen.
Die eerste post klopte idd niet echt. waarschijnlijk de volgorde waar hij weer gegeven werd, en hoe ik wou dat het weer gegeven werd door elkaar gehaald. Maar het was zeker wel een niet logische volgorde.

Dank voor je SQL, zal het ff proberen!
pi_34067076
quote:
Op zaterdag 14 januari 2006 12:14 schreef SuperRembo het volgende:

[ code verwijderd ]
Tof, in phpmyadmin doet hij het goed. Nu nog in het php-bestand veranderen. Dank!

edit: aangepast in het script en het werkt! Nogmaals dank
pi_34082273
Ik krijg dus verschillende $_POST waarden naam, wachtwoord etc.
maar nu staat er dit:

1
2
3
4
5
if ( get_magic_quotes_gpc () ) {
   foreach ( $_POST as $key => $value ) {
      $_POST [ $key ] = stripslashes ( $value );
   };
};

wat is hier de meerwaarde het $key invoegen?
De array $_POST wordt toch vanzelf doorgelopen, en daar hoef ik toch niet nog de $key vooor te gebruiken?
pi_34082406
foreach maakt een kopie van de array. Als je vervolgens value = stripslashes($value) alleen zou doen, zou er in $_POSt helemaal niets veranderd zijn. Daarom moet je met foreach expliciet terugschrijven naar de $_POST array.
pi_34084075
ohja natuurlijk omdat je de gestipte $_POST ook buiten de foreach wilt gebruiken
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')