abonnement Unibet Coolblue Bitvavo
pi_38945740
quote:
Op zaterdag 17 juni 2006 15:52 schreef Ajaxfan het volgende:
Ik ben bezig met een simpel login script. Het is me al gelukt om een registratie te laten verwerken in een Mysql database. Alleen nu is het dus de bedoeling dat hij de username en het wachtwoord uit de database haalt. Ik krijg dan de melding die je krijgt als de connectie met de database mislukt is: Sorry kan niet inloggen dus. Ik heb zelf geen idee waar het aan ligt.


Dit is mijn login script:
[..]

En dit is me login verwerken script:
[..]
verander

1$query = ("select username, wachtwoord FROM leden WHERE username='$_POST[username]' AND wachtwoord='$_POST[wachtwoord]'");


eens in

1$query = "SELECT username, wachtwoord FROM leden WHERE username='".$_POST['username']."' AND wachtwoord='".$_POST['wachtwoord']."'";
pi_38946504
quote:
Op zaterdag 17 juni 2006 14:28 schreef Swetsenegger het volgende:

[ code verwijderd ]

werkt dit wel?
Nee dat werkt ook niet. Ik blijf nog even door proberen.
  zaterdag 17 juni 2006 @ 18:05:01 #153
32768 DionysuZ
Respect my authority!
pi_38948661
Je script is heel erg gevoelig voor SQL injectie. Verder is het NIET verstandig om wachtwoorden niet gecodeert op te slaan in een database. Mocht iemand toegang tot de database krijgen krijgt deze ook toegang tot alle usernames en wachtwoorden, en aangezien mensen vaak dezelfde wachtwoorden gebruiken kunnen deze kwaadwillenden vaak deze wachtwoorden op meerdere plaatsen gebruiken.

Dat is niet wat je wil.

Daarnaast kan ik makkelijk als iemand inloggen zonder zijn/haar wachtwoord of username te hoeven weten. Ik hoef dan alleen maar de session ID te verkrijgen en ik heb toegang.
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
pi_38948963
quote:
Op zaterdag 17 juni 2006 15:11 schreef Lynx666 het volgende:
even een PHP only vraag:

Aan het begin van m'n script define ik enkele constants:
[ code verwijderd ]

Deze waardes wil ik gebruiken voor een simpele button bar, kan ik per entry bepalen welke acties erop uitgevoerd mogen worden, gebruik makend van bitwise operators, even versimpeld:
[ code verwijderd ]

Deze moet achter de string de 2 knoppen voor editen en deleten weergeven. De functie ButtonBar controleert de flags als volgt (versimpeld):
[ code verwijderd ]

Probleem is, m'n logs spugen "Use of undefined constant [..]" notices uit, en als ik EDIT of DEL echo dan laat het doodleuk "EDIT" of "DEL" zien in plaats van hun vooraf gedefineerde waardes...

Voor zover ik het begrijp zouden defined constants global te gebruiken moeten zijn dus ook in functies als ButtonBar. Zie ik nu iets over het hoofd dat het script niet werkt zoals het zou moeten?
Constants zijn per definitie globals in PHP, dus ik heb echt geen idee waarom het niet zou werken onder welke PHP-versie draait het? Staat de functie in een aparte include?
pi_38949568
quote:
Op zaterdag 17 juni 2006 18:19 schreef JeRa het volgende:

[..]

Constants zijn per definitie globals in PHP, dus ik heb echt geen idee waarom het niet zou werken onder welke PHP-versie draait het? Staat de functie in een aparte include?
Dat dacht ik dus ook

De defines en functies staan beide in hetzelfde php bestand en gebruik PHP 5.0.3.


edit: Hmm vreemd! Ik heb de defines nu helemaal bovenaan gezet (zaten eerst nog wat zaken tussen als general purpose includes en database connects) en dat lijkt wél te werken.

[ Bericht 13% gewijzigd door Lynx666 op 17-06-2006 18:53:37 ]
  zaterdag 17 juni 2006 @ 19:17:04 #156
62687 Ajaxfan
Look out for me
pi_38950289
Ik heb die tip van jou geprobeerd Lynx maar nog steeds blijf ik die melding krijgen.
* Ajax * Arsenal * Barca * Fiorentina * Napoli * Leeds *
pi_38951438
quote:
Op zaterdag 17 juni 2006 19:17 schreef Ajaxfan het volgende:
Ik heb die tip van jou geprobeerd Lynx maar nog steeds blijf ik die melding krijgen.
Als je geen verbinding met de database kunt krijgen zal geen enkele query werken controleer de naam van de host, je gebruikersnaam, wachtwoord en naam van de database. Met mysql_error (of mysql_connect_error als ik het me goed herinner) kun je opvragen wat de exacte foutmelding is
pi_38962516
ik heb een marquee gemaakt met php & gd, maar je moet de positie van de text in pixels geven, met een statische text is het geen probleem, maar ik wil iets maken met een dynamische text, hoe moet ik de breedte van een string berekenen??
PS4 online: micro_nl
pi_38963991
quote:
Op zondag 18 juni 2006 01:57 schreef guitarist.nl het volgende:
[afbeelding]ik heb een marquee gemaakt met php & gd, maar je moet de positie van de text in pixels geven, met een statische text is het geen probleem, maar ik wil iets maken met een dynamische text, hoe moet ik de breedte van een string berekenen??
Die text schrijf je waarschijnlijk naar de afbeelding met de functie imagefttext(), niet? Nou, met imageftbbox() kun je de bounding box (en dus o.a. de breedte) opvragen
  zondag 18 juni 2006 @ 10:53:45 #160
65997 Oldbie
Proud to be South African!
pi_38965072
Ik heb een oud PC'tje als gameserver draaien. Compleet met een MySQL database om highscores etc op te slaan. Nu heb ik een betere PC op de kop weten te tikken en ik wil alles overrzetten. Natuurlijk wil ik de highscores niet verliezen dus moet de MySQL database ook over. M.b.v. phpMyAdmin kan ik bij mijn database komen en daar staat iets van exporteer.

Even een printscreen:


Doe ik het zo goed? Kan ik het bestand welke gegenereerd wordt gewoon op de nieuwe PC importeren waardoor alle gegevens meegaan?

Ik heb werkelijk geen flauw idee. Alle hulp is welkom
pi_38965683
@Oldbie

Ja, zo is het prima. Zet de SQL export compatibility nog wel even op de versie van MySQL waar je database op gaat draaien, en zet een vinkje bij opslaan (beneden) zodat je ook daadwerkelijk een bestand krijgt
  zondag 18 juni 2006 @ 11:53:59 #162
65997 Oldbie
Proud to be South African!
pi_38966200
quote:
Op zondag 18 juni 2006 11:29 schreef JeRa het volgende:
@Oldbie

Ja, zo is het prima. Zet de SQL export compatibility nog wel even op de versie van MySQL waar je database op gaat draaien, en zet een vinkje bij opslaan (beneden) zodat je ook daadwerkelijk een bestand krijgt
thanks a lot

[edit]
Hmmm, ik heb MySQL 5.0.20. Welke moet ik dan kiezen?



[/edit]

[ Bericht 6% gewijzigd door Oldbie op 18-06-2006 11:59:30 ]
pi_38967498
@Oldbie

Gewoon op NONE laten staan in dat geval, dan moet het werken
  zondag 18 juni 2006 @ 16:42:45 #164
62687 Ajaxfan
Look out for me
pi_38974283
Bedankt JeRa en Lynx hij doet het nu. Hij zocht naar de tabel leden terwijl deze lid heette. Naam veranderd en het werkt nu.
* Ajax * Arsenal * Barca * Fiorentina * Napoli * Leeds *
pi_38974751
Ik heb een tabel "news" met de volgende fields: id, title, body, author_id, timestamp, deleted

Ik heb een tabel "accounts" met de volgende fields: id, name

Ik heb een tabel "comments" met de volgende fields" id, news_id, body, user_name, timestamp

Nu wil ik met één query het volgende uit de database halen: De eerste 10 berichten uit tabel news welke niet als gedelete gemarkeerd zijn (deleted=0), met daarbij de author naam uit accounts mbv author_id, en het aantal gekoppelde reacties uit comments (dus een count van comments waar comments.news_id == news.id).

Uiteindelijk wil ik dus terugkrijgen: news.id, news.title, news.body, accounts.name, news.timestamp, en het aantal reacties

Dit wordt een ingewikkelde constructie met JOINs waar ik niet helemaal helemaal niet uit kom

Any pointers?
  zondag 18 juni 2006 @ 18:21:03 #166
3677 SuperRembo
Sinds 1998
pi_38976664
Dat kan toch wel met een GROUP BY en een COUNT(comments.id)?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_38977249
@Lynx666

1
2
3
4
5
6
7
8
SELECT n.id, n.title, n.body, a.name, n.timestamp, COUNT(c.id) AS aantal_reacties
FROM news n
LEFT JOIN accounts a ON n.author_id = a.id
LEFT JOIN comments c ON n.id = comments.news_id
WHERE c.deleted = 0
GROUP BY n.id
ORDER BY n.id DESC
LIMIT 0, 10


Maar het lijkt me slimmer om gewoon een counter bij te houden in de news-tabel met het aantal reacties ipv telkens een extra JOIN en GROUP BY te doen

Oh en eigenlijk moet je alles zonder aggregate function in de GROUP BY gooien, maar omdat MySQL het toestaat en omdat n.id uniek is mag dit imo.
pi_38977613
Bedankt Jera

Grappig dat ik net het volgende geprobeerd had wat bleek te werken (ik ben nog een n00b wat betreft JOINs et al ) en dat het bijna identiek is aan jouw oplossing.

1
2
3
4
5
6
7
8
9
10
SELECT news.id, news.title, news.body, news.timestamp, accounts.name, COUNT(comments.id)
FROM news
INNER JOIN accounts
ON news.author_id=accounts.id
INNER JOIN comments
ON news.id=comments.news_id
WHERE news.deleted=0
GROUP BY news.id
ORDER BY news.timestamp DESC
LIMIT 0, 10


Waar jij LEFT JOINs gebruikt heb ik er INNER JOINs staan.. Wat is het wezenlijke verschil daartussen?
quote:
Op zondag 18 juni 2006 18:42 schreef JeRa het volgende:
Maar het lijkt me slimmer om gewoon een counter bij te houden in de news-tabel met het aantal reacties ipv telkens een extra JOIN en GROUP BY te doen
Zo deed ik het eerder ook, maar het leek me 'juister' om die info met een count eruit te halen....

[ Bericht 21% gewijzigd door Lynx666 op 18-06-2006 19:00:19 ]
pi_38980687
quote:
Op zondag 18 juni 2006 18:54 schreef Lynx666 het volgende:
Waar jij LEFT JOINs gebruikt heb ik er INNER JOINs staan.. Wat is het wezenlijke verschil daartussen?
Even simpel gezegd: je koppelt tabel a aan tabel b. Met een LEFT JOIN wordt tabel a altijd aan tabel b gekoppeld, ook als er geen verbinding is met tabel b. Dan krijg je NULL-waarden terug voor de kolommen in tabel b. Met een INNER JOIN krijg je alléén de rijen terug waarvoor de ON-clausule klopt dus als een rij in tabel b niet bestaat (bv. een useraccount) dan krijg je de bijbehorende rij in tabel a ook niet terug.
quote:
[..]

Zo deed ik het eerder ook, maar het leek me 'juister' om die info met een count eruit te halen....
Het is ook juister, maar performancetechnisch is het gewoon een stuk sneller om een apart veld bij te houden dat je op bepaalde momenten update (nieuwe comment, comment verwijderen, etc).

Overigens, als je id-veld uit de 'news'-tabel een AUTO_INCREMENT is en dus dezelfde sortering heeft als news.timestamp, dan kun je net zo goed (zoals in mijn query) sorteren op news.id dat is toch al een PRIMARY KEY, en zolang je niet wilt zoeken op de timestamp scheelt dat weer een index (en de daarbij benodigde indexupdates).
pi_38987812
Ik heb een plaatje van 60px breed, waar ik een text door wil laten scrollen.
Hij begint op 60 (zodat je de text niet ziet) en hij moet scrollen (van rechts naar links) tot dat de text weer uit beeld is, hij verschuift 4px per frame!!
Hij berekend de breedte van de text!!

De huidige code:
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
<?php
$i_width  
= 60;
$i_height = 60;

$string = "Hello World, This is an test!";
$pointsize = 11;
$font = "./tahoma.ttf";

$im = imagecreate($i_width, $i_height);
$black = imagecolorallocate ($im, 0, 0, 0);


$string_size = ImageFtBbox($pointsize, 0, $font, $string, array("linespacing" =&gt; 1));
$s_width  = $string_size[4];
$s_height = $string_size[5];
$y = round($s_width/4);// $y = stringbreedte / 4

$img0 = ImageCreateFromGIF("guitarist.nl.gif");


for (
$i = 0; $i &lt;= $y; $i++)  
{

$img[$i] = ImageCreateFromGIF("guitarist.nl.gif");
$red = imageColorAllocate($img[$i], 255, 153, 0);
$math = $i_width-($i*4); // $s_ .. is string             $i_... is image
ImageFtText($img[$i], $pointsize, 0, $math,  0 - $s_height, $red, $font, $string, array("linespacing" =&gt; 1));
}

en nog een hele hoop code :&quot;)
?>
PS4 online: micro_nl
pi_38988053
Het is te laat om te rekenen, morgen weer
PS4 online: micro_nl
  zondag 18 juni 2006 @ 23:34:50 #172
65997 Oldbie
Proud to be South African!
pi_38988080
quote:
Op zondag 18 juni 2006 23:26 schreef guitarist.nl het volgende:
[afbeelding]Ik heb een plaatje van 60px breed, waar ik een text door wil laten scrollen.
Hij begint op 60 (zodat je de text niet ziet) en hij moet scrollen (van rechts naar links) tot dat de text weer uit beeld is, hij verschuift 4px per frame!!
Hij berekend de breedte van de text!!

De huidige code:
[ code verwijderd ]
Geen idee, maar om goed engels te gebruiken moet het zijn: "Hello world, this is a test"
  zondag 18 juni 2006 @ 23:45:57 #173
3677 SuperRembo
Sinds 1998
pi_38988426
@guitarist.nl
Wat is je vraag nou eigenlijk?

Waarmee / hoe maak je dat animated gifje?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_38988483
quote:
Op zondag 18 juni 2006 23:34 schreef guitarist.nl het volgende:
Het is te laat om te rekenen, morgen weer
Ik gok dat je de breedte van het plaatje er nog bij moet optellen
pi_38988523
quote:
Op zondag 18 juni 2006 20:36 schreef JeRa het volgende:

[..]

Even simpel gezegd: je koppelt tabel a aan tabel b. Met een LEFT JOIN wordt tabel a altijd aan tabel b gekoppeld, ook als er geen verbinding is met tabel b. Dan krijg je NULL-waarden terug voor de kolommen in tabel b. Met een INNER JOIN krijg je alléén de rijen terug waarvoor de ON-clausule klopt dus als een rij in tabel b niet bestaat (bv. een useraccount) dan krijg je de bijbehorende rij in tabel a ook niet terug.
Duidelijk, thnx .
quote:
[..]

Overigens, als je id-veld uit de 'news'-tabel een AUTO_INCREMENT is en dus dezelfde sortering heeft als news.timestamp, dan kun je net zo goed (zoals in mijn query) sorteren op news.id dat is toch al een PRIMARY KEY, en zolang je niet wilt zoeken op de timestamp scheelt dat weer een index (en de daarbij benodigde indexupdates).
ID veld is idd auto_increment, maar wil wel nieuwsberichten kunnen schedulen. Niet elke gepost bericht krijgt dus de timestamp time() mee. Vandaar de timestamp sortering .
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')