abonnement Unibet Coolblue Bitvavo
  Admin zaterdag 9 december 2006 @ 21:24:46 #101
725 crew  Breuls
Bad Wolf
pi_44286358
$parts is een array, maar je behandelt 'm als string.
I am a leaf on the wind.
Watch how I soar.
pi_44286629
quote:
Op zaterdag 9 december 2006 21:23 schreef qu63 het volgende:

[..]
[ code verwijderd ]

dit geeft als output alleen maar "Ar"..

ik snap niet waar ie fout gaat
Je hebt mijn (geëditte) code niet helemaal goed overgenomen :)
1$languages = explode(',', $parts[0]);
  zaterdag 9 december 2006 @ 21:37:31 #103
62215 qu63
..de tijd drinkt..
pi_44286733
quote:
Op zaterdag 9 december 2006 21:33 schreef JeRa het volgende:

[..]

Je hebt mijn (geëditte) code niet helemaal goed overgenomen

[ code verwijderd ]
ah!
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_44298302
Hoi,

ik probeer met het volgende stukje code een unix timestamp te maken(seconden sinds epoch) De waarden krijg ik zoals te zien is afzonderlijk door voor jaar, maand, dag, uur, minuut. (Seconde vul ik handmatig aan) maar dit werkt niet. Wat is de fout? Ik staar mij blind.

1
2
3
4
5
6
7
<?php
//code zoals ik het gebruik
$autojob_time=mktime($_POST['uur'] . "," . $_POST['minuut'] . ",00," . $_POST
['maand']) . "," . $_POST['dag'] . "," . $_POST['jaar']);  

// de $_POST variabelen worden opgeschoond, heb ik in dit voorbeeld weggelaten.
?>
  Admin zondag 10 december 2006 @ 12:48:52 #105
725 crew  Breuls
Bad Wolf
pi_44298440
Je geeft een string door aan mktime, in plaats van losse parameters.
I am a leaf on the wind.
Watch how I soar.
pi_44298510
quote:
Op zondag 10 december 2006 12:48 schreef Breuls het volgende:
Je geeft een string door aan mktime, in plaats van losse parameters.
oei, blijkt mijn laatste sprankje stille hoop niet ongegrond. Ergens had ik een vermoeden dath et zoiets zou moeten zijn.

Maar, uhm, wat doe ik precies fout en hoe verander ik dit?
  Admin zondag 10 december 2006 @ 12:55:23 #107
725 crew  Breuls
Bad Wolf
pi_44298626
Nou, om de eerste twee parameters als voorbeeld te nemen, je doet dit:
1$_POST['uur'] . "," . $_POST['minuut'] 

Met de punt plak je de waarde van $_POS['uur'] aan de string ",". Vervolgens doe je met de volgende variabelen hetzelfde. Daardoor krijg je uiteindelijk wel de string "12,34,00,45" etcetera, maar dat is 1 variabele die je als de eerste parameter aan mktime() meegeeft.

Wat je dus moet doen is de parameters achter elkaar zetten, en scheiden dmv een komma. Klaar ben je.
I am a leaf on the wind.
Watch how I soar.
pi_44298833
Oh, Breuls, held!

Ik vermoedde reeds dat het iets met de vorm te maken had waarin ik de waarden doorgeef.
Dank U hartelijk, het werkt!
  zondag 10 december 2006 @ 13:21:42 #109
12880 CraZaay
prettig gestoord
pi_44299492
Wellicht is het een idee om in de startpost op te nemen (het is immers voor dummies) wat de verschillende data types zijn (string, integer, etc), hoe de documentatie op php.net te lezen (bv. over parameters), het verschil tussen enkele en dubbele quotes (worden ook hier vaak onnodig/onjuist gebruikt), etc?
  Admin zondag 10 december 2006 @ 13:40:10 #110
725 crew  Breuls
Bad Wolf
pi_44300067
Ik zou zeggen, schrijf er een wiki-pagina over.
I am a leaf on the wind.
Watch how I soar.
  FOK!-Schrikkelbaas zondag 10 december 2006 @ 13:51:47 #111
1972 Swetsenegger
Egocentrische Narcist
pi_44300605
quote:
Op zondag 10 december 2006 13:21 schreef CraZaay het volgende:
Wellicht is het een idee om in de startpost op te nemen (het is immers voor dummies) wat de verschillende data types zijn (string, integer, etc), hoe de documentatie op php.net te lezen (bv. over parameters), het verschil tussen enkele en dubbele quotes (worden ook hier vaak onnodig/onjuist gebruikt), etc?
Mjah, daar is toch de manual voor. Daar kan naar verwezen worden, dwing je beginners ook nog eens om op php.net te kijken
pi_44301240


[ Bericht 100% gewijzigd door beerten op 10-12-2006 14:07:13 ]
pi_44302871
quote:
Op zondag 10 december 2006 13:40 schreef Breuls het volgende:
Ik zou zeggen, schrijf er een wiki-pagina over.
Ik heb ooit eens een kleine FAQ gemaakt over php, misschien ben je daar wat mee . Die staat op m'n site voor de geinteresseerden
  zondag 10 december 2006 @ 23:07:10 #114
12880 CraZaay
prettig gestoord
pi_44315491
quote:
Op zondag 10 december 2006 13:51 schreef Swetsenegger het volgende:

[..]

Mjah, daar is toch de manual voor. Daar kan naar verwezen worden, dwing je beginners ook nog eens om op php.net te kijken
Mensen die met PHP beginnen en nog nooit op php.net geweest zijn moeten toch wel uberprutsers zijn
quote:
Op zondag 10 december 2006 14:52 schreef fate het volgende:

[..]

Ik heb ooit eens een kleine FAQ gemaakt over php, misschien ben je daar wat mee . Die staat op m'n site voor de geinteresseerden
Goeie! Daar staat zo'n beetje in waar ik op doelde.

[ Bericht 35% gewijzigd door CraZaay op 10-12-2006 23:12:35 ]
pi_44343500
Ik wil graag een dunamisch php menu maken met meerdere (liefst oneindig) veel submenu's
Dus dat je sub-, sub-, sub-, sub-menus kan maken indien nodig.

maar hoe ga ik dat aanpakken kwa php en kwa database?
  maandag 11 december 2006 @ 23:46:30 #116
12880 CraZaay
prettig gestoord
pi_44343883
Recursie is a bitch
  dinsdag 12 december 2006 @ 00:33:48 #117
60297 Bartje71
Wat denk je zelf?
pi_44345163
In een nutshell:
Qua database: bij elk item behalve een ID ook het ID van de parent opslaan (dus het item waar ie onder hangt).
Qua php: functie maken die van een bepaald ID alle kinderen ophaalt (dus alles met parentID = ID). Dan een while lusje over al die kinderen waarin je diezelfde functie aanroept, maar dan met de ID van het betreffende kind. (en dan even netjes checken dat je daar wel uitkomt als er geen kinderen meer zijn enzo)
pi_44348022
Eens kijken wat ik daarmee kan.
edit: ja dus, maar is het zo verstandig? Het werkt wel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function build_menu($ParentID) {
   $query = "SELECT * FROM `site_menu` WHERE ParentID='".$ParentID."' ORDER BY id ASC";
   $result = mysql_query($query) or die (mysql_error());
   while($row = mysql_fetch_array($result))
   {
      $items .= '<li>'.$row[title];
      $items .= (build_menu($row[ID])) ? build_menu($row[ID]) : '';
      $items .= '</li>'."n";
   }

   return ($items) ? '<ul>'."n".$items.'</ul>'."n" : 0 ;
}

$menu = build_menu(0);


[ Bericht 95% gewijzigd door Darkomen op 12-12-2006 09:16:43 ]
  dinsdag 12 december 2006 @ 09:35:20 #119
12880 CraZaay
prettig gestoord
pi_44348880
Kan. Dit is wel een beetje overkill:

1$items .= (build_menu($row[ID])) ? build_menu($row[ID]) : '';

Je voert deze functie (en query) nu twee keer uit: eerst kijk je of het resultaat niet false is, en als dat zo is dan voer je de functie nog een keer uit. Omdat het allemaal al redelijk zwaar kan worden (voor ieder niveau een query) zou ik dit er iig uitslopen.

NB: Die enkele quotes rond '".$ParentID."' zijn niet nodig, het is geen string.
pi_44349122
klopt heb je helemaal gelijk in, had het in de 'remake' al veranderd
pi_44350438
Ik ben bezig met een bookmark manager, gewoon om PHP en mySQL te leren verder. Maar nu heb ik iets waar ik niet uit kom. Ik heb deze query:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$query
= "
SELECT *
FROM bookmark_cat, bookmark_links
WHERE bookmark_cat.id = bookmark_links.cat_id
GROUP BY cat_id"
;

$result = mysql_query($query) or die (mysql_error());
while(
$row = mysql_fetch_array($result)) {
    echo
'<h2>'. $row['cat_naam'] . '</h2>';    
    echo
'<p>' . $row['naam'] . '</p>';
    
}
?>


en de (logische) output is dit:

1
2
3
4
5
6
7
8
CAT NAAM 1
link 1

CAT NAAM 1
link 2

CAT NAAM 1
link 3


enzo voorts.

maar ik wil het dus zo hebben:

1
2
3
4
5
6
7
8
CAT NAAM 1
link 1
link 2
link 3

CAT NAAM 2
link 4
link 5


Ik heb al vele manier geprobeerd maar ik kom er niet uit
pi_44350868
@super-muffin

Je krijgt bij een JOIN bijna altijd redundante data (zolang het een 1:n- of m:n-JOIN is) dus die moet je eruit filtreren. Je kunt vast wel een manier verzinnen om in dat loopje de header telkens maar één keer weer te geven
pi_44351276
hm ja, ik had eerst een query in een while loop. Maar dat lijkt me te server belastend. Ik dacht dat er wel een andere manier moet zijn.
pi_44352220
quote:
Op dinsdag 12 december 2006 11:25 schreef super-muffin het volgende:
hm ja, ik had eerst een query in een while loop. Maar dat lijkt me te server belastend. Ik dacht dat er wel een andere manier moet zijn.
Je query kun je zo laten. Maar je hele probleem is toch dat je de header maar één keer wilt weergeven? Als je nou eens de header in het loopje telkens opslaat in een variabele en de header alleen weergeeft als ie niet meer overeenkomt met wat er in de variabele staat?
pi_44352725
Zoals dit? :?

Dit staat in de while loop:
1
2
3
4
5
6
7
<?php
$titel
= $row['cat_naam'];
    
if(
$titel != $row['cat_naam']) {
    echo
'<h2>'. $row['cat_naam'] . '</h2>';
}
?>

Dan krijg ik geen headings.
pi_44353110
quote:
Op dinsdag 12 december 2006 12:18 schreef super-muffin het volgende:
Zoals dit? :?

Dit staat in de while loop:
[ code verwijderd ]

Dan krijg ik geen headings.
Dat komt omdat je $titel éérst vult met de header en daarna controleert of het verschilt met de header. (:?)

Dus, vóór de loop:
1$titel = '';


In de loop:
1
2
3
4
5
if ($titel != $row['cat_naam'])
{
    $titel = $row['cat_naam'];
    echo '<h2>etc</h2>';
}


:)
pi_44354213
uh ja dat was niet echt logisch

maar thnx, zo werkt het. Nu ga ik verder stoeien
pi_44358467
Ik draai PHP 5 op Windows Server 2003 R2 met IIS 6.0. Maar ik heb een probleem met het verwijderen van bestanden. De unlink() functie wil niet werken, wegens een "permission denied".

Nu kan ik er maar erg weinig over vinden en al helemaal niets nuttigs. Weet iemand hier toevallig hoe ik dit kan fixen?
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
pi_44358724
quote:
Op dinsdag 12 december 2006 15:23 schreef papernote het volgende:
Ik draai PHP 5 op Windows Server 2003 R2 met IIS 6.0. Maar ik heb een probleem met het verwijderen van bestanden. De unlink() functie wil niet werken, wegens een "permission denied".
Een aanroep naar unlink() is in Windows weinig meer dan een wrapper om de API-call om een bestand te verwijderen. Kennelijk vindt Windows dat de gebruiker waaronder IIS wordt uitgevoerd niet genoeg rechten heeft om het bestand te verwijderen dus hoe zit het met de permissies van gebruikers op het bestand dat je wilt verwijderen?
pi_44359369
quote:
Op dinsdag 12 december 2006 15:31 schreef JeRa het volgende:

[..]

Een aanroep naar unlink() is in Windows weinig meer dan een wrapper om de API-call om een bestand te verwijderen. Kennelijk vindt Windows dat de gebruiker waaronder IIS wordt uitgevoerd niet genoeg rechten heeft om het bestand te verwijderen dus hoe zit het met de permissies van gebruikers op het bestand dat je wilt verwijderen?
Ik heb de IIS user Full Control gegeven over alle bestanden in de wwwroot. Ik heb zelfs Everyone Full Control gegeven over de wwwroot. Beide werkt niet.
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
pi_44359654
Hmm... het verwijderen heb ik opgelost door een fclose() voor de unlink() te zetten. Vergeten .
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
pi_44359742
-edit: al opgelost
pi_44362202
Ben voor mijn school bezig met een filebeheer te maken. Het probleem is echter dat dit via het netwerk gaat.

Het uitlezen van de bestanden gaat perfect "//server/bla/leerlingmap", echter bij het uploaden van files gaat het fout. Dan krijg ik een "permission denied", de server kan wel mappen aanmaken?

De pc waarop de Apache server draait met PHP5 heeft alle rechten op de netwerkmap.

Heeft iemand hier ervaringen/tips/oplossingen met/voor dit probleem?
pi_44402318
quote:
Op dinsdag 12 december 2006 17:06 schreef fokME2 het volgende:
Ben voor mijn school bezig met een filebeheer te maken. Het probleem is echter dat dit via het netwerk gaat.

Het uitlezen van de bestanden gaat perfect "//server/bla/leerlingmap", echter bij het uploaden van files gaat het fout. Dan krijg ik een "permission denied", de server kan wel mappen aanmaken?

De pc waarop de Apache server draait met PHP5 heeft alle rechten op de netwerkmap.

Heeft iemand hier ervaringen/tips/oplossingen met/voor dit probleem?
Ben ik nou topickiller?
pi_44403413
Hoe upload je je bestanden? Welke functies, waar worden de tijdelijke bestanden opgeslagen, etc?
quote:
Op woensdag 13 december 2006 19:44 schreef fokME2 het volgende:

[..]

Ben ik nou topickiller?
Beetje wel
pi_44404998
quote:
Op woensdag 13 december 2006 20:19 schreef JeRa het volgende:
Hoe upload je je bestanden? Welke functies, waar worden de tijdelijke bestanden opgeslagen, etc?
[..]

Beetje wel
Probeer mbv php en move_uploaded_file(), of copy() de file te verplaatsen. Dan krijg ik de error . Uploaden naar het path van het PHP bestand gaat wel.

De tijdelijke bestanden worden lokaal op de webserver opgeslagen (waar precies moet ik even uitzoeken, kan alleen op school zelf bij de bestanden enzo).
Zal morgen proberen wat meer info te plaatsen, in de hoop dat de systeembeheerder er is
quote:
On windows I made the directory writable, by changing the Apache httpd.conf file.

The problem I had, was with the upload directory. The move_uploaded_file produced an error like: failed to open stream: Permission denied.

I changed my php.ini to specify an upload directory:
upload_tmp_dir = "d:/temp/php/uploads/"

and I added the following in the Apache hpptd.conf file:

<Directory "D:/temp/php/uploads">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

restarted Apache, and the upload succeeded.
Dat lees ik net op php.net. Weet iemand of je bij Apache misschien het netwerkpath zou moeten instellen? En of dat uberhaupt kan?

Sorry voor het killen
  FOK!-Schrikkelbaas woensdag 13 december 2006 @ 23:22:57 #137
1972 Swetsenegger
Egocentrische Narcist
pi_44411294
Ik zit weer eens in de knoop met wat queries.

Ik had een eenvoudig polletje gebouwd. Nu heb ik dat script verbouwd zodat ik meerdere polls kan gaan aanmaken via m'n cmsje. Waarbij het idee is dat je onbeperkt aantal polls en bijbehorende vragen kan aanmaken en uiteraard daarop antwoorden.

database structuur.

Tabel Polls
1
2
3
4
Poll_Id | Poll_Name | Archive
--------+-----------+--------
   1    |   Smaak   |    0
   2    |   Test    |    1


Table Poll_Questions
1
2
3
4
5
6
7
Poll_Question_Id |      Question        | Poll
-----------------+----------------------+-------
   1             |   Smaakt uw vlees    |    1
   2             |   Smaakt uw koffie   |    1
   3             |   Smaakt uw groente  |    1
   4             |   Testvraag 1        |    2
   5             |   Testvraag 2        |    2


Tabel Poll_Answers
1
2
3
4
5
6
7
8
9
10
11
Poll_Answer_Id |  Poll | Question  | IP
---------------+-------+-----------+-------
   1           |   1   |    2      | ip van voter
   2           |   1   |    2      |
   3           |   1   |    1      |
   4           |   1   |    1      |
   5           |   1   |    1      |
   6           |   1   |    2      |
   7           |   2   |    1      |
   1           |   2   |    1      |
   1           |   2   |    2      |


Uiteraard is het de bedoeling dat ik vervolgens per poll het aantal vragen en percentage stemmen daarop laat zien.

Maar dat krijg ik niet voor elkaar. Ik moet met joins aan de slag, want de query van basale vorige scriptje zal in bovenstaand voorbeeld bv nooit vraag 3 van poll 1 tonen met 0 stemmen:
1
2
3
<?php
SELECT Question
, COUNT(Question) as vote FROM Poll_Answers WHERE Poll=".$poll." GROUP BY Question
?>


Deze toont alleen de stemmen waar minimaal 1 keer op gestemt is.

Ik heb het volgende al geprobeerd:
1
2
3
<?php
SELECT q
.Question, COUNT(a.Question) as vote FROM Poll_Questions q JOIN Poll_Answers a ON (q.Poll=a.Poll) WHERE a.Poll=".$poll."  GROUP BY a.Question
?>

Maar die geeft bv 2 maal dezelfde vraag terug met verschillend aantal votes

HELP!
(volgens mij moet ik gaan left of right joinen ofzo, omdat er immers niet altijd een relatie HOEFT te zijn. Innerjoins gaan er toch vanuit dat er altijd een relatie is?)

[ Bericht 3% gewijzigd door Swetsenegger op 13-12-2006 23:31:47 (domme fok ubb parser :() ]
pi_44412198
Volgens mij kan je gewoon een inner join doen als ik dit zo lees: http://www.w3schools.com/sql/sql_join.asp

Echter als ik dit zo lees:
http://en.wikipedia.org/wiki/Join_(SQL)

Lijkt het erop dat je een left outer join moet doen.
pi_44416335
quote:
Op woensdag 13 december 2006 21:01 schreef fokME2 het volgende:

[..]

Dat lees ik net op php.net. Weet iemand of je bij Apache misschien het netwerkpath zou moeten instellen? En of dat uberhaupt kan?
PHP draait als apart proces met de rechten van de gebruiker van de webserver, dus daar hoef je niet voor in httpd.conf te zijn. Lukt het je wel om de bestanden in een lokale map (op de eigen harde schijf) op te slaan?
pi_44416462
@Swetsenegger

Een normale LEFT JOIN (== LEFT OUTER JOIN) zou afdoende moeten zijn. Je hebt gelijk dat er geen relatie hoeft te bestaan, dus pak je de tabel met de rijen die je wilt hebben (de questions) en join je daar hetgene op waar je informatie over wilt hebben (de answers). Let wel op dat je formeel een NULL-waarde krijgt van MySQL in het geval dat er geen rijen gevonden zijn bij een bepaalde question.

Verder een tip voor Poll_Answers; als je Poll_Answer_Id dropt en een PRIMARY KEY op de kolommen (IP, Poll) legt dan zorg je ervoor dat er in MySQL een restrictie komt: elk IP-adres kan maar één keer op één bepaalde poll stemmen.

En over het algemeen zal deze opzet niet de snelste qua performance zijn; MySQL is niet zo geweldig met GROUP BY's (zelfs niet als je de juiste indices aanlegt). Persoonlijk zou ik een aparte tabel hebben gemaakt met de scores per antwoord op een poll zodat je die simpel kunt incrementen bij een stem. Je Poll_Answers-tabel kun je dan zo versimpelen Dat je 'IP' en 'Poll' overhoudt (inclusief de eerder genoemde PRIMARY KEY natuurlijk).
pi_44418784
Kent iemand toevallig een class die tekst kan vertalen naar duits en engels?
..///
  donderdag 14 december 2006 @ 10:48:35 #142
52200 ViPeRII
It's a good day to die
pi_44418865
Lol dat is nooit een class. Dat is een lijst met woorden die vertaalt worden.
-- ViPeRII --
  FOK!-Schrikkelbaas donderdag 14 december 2006 @ 11:05:09 #143
1972 Swetsenegger
Egocentrische Narcist
pi_44419200
quote:
Op donderdag 14 december 2006 08:38 schreef JeRa het volgende:
@Swetsenegger

Een normale LEFT JOIN (== LEFT OUTER JOIN) zou afdoende moeten zijn. Je hebt gelijk dat er geen relatie hoeft te bestaan, dus pak je de tabel met de rijen die je wilt hebben (de questions) en join je daar hetgene op waar je informatie over wilt hebben (de answers). Let wel op dat je formeel een NULL-waarde krijgt van MySQL in het geval dat er geen rijen gevonden zijn bij een bepaalde question.

Verder een tip voor Poll_Answers; als je Poll_Answer_Id dropt en een PRIMARY KEY op de kolommen (IP, Poll) legt dan zorg je ervoor dat er in MySQL een restrictie komt: elk IP-adres kan maar één keer op één bepaalde poll stemmen.

En over het algemeen zal deze opzet niet de snelste qua performance zijn; MySQL is niet zo geweldig met GROUP BY's (zelfs niet als je de juiste indices aanlegt). Persoonlijk zou ik een aparte tabel hebben gemaakt met de scores per antwoord op een poll zodat je die simpel kunt incrementen bij een stem. Je Poll_Answers-tabel kun je dan zo versimpelen Dat je 'IP' en 'Poll' overhoudt (inclusief de eerder genoemde PRIMARY KEY natuurlijk).
Ik kom er vanavond even op terug, ik zit voornamelijk nog met hoe ik een count van rijen kan koppelen aan 1 vraag uit de andere tabel in m'n query. Je performance verhaal lees ik even als ik niet meer op mijn werk zit. Het database model kan nu nog volledig op de schop

-edit- oeh, je primary key tip voor de poll answers tabel is wel een goeie. Ik wist niet eens dat je twee kolommen in 1 tabel primary key kan maken?

-edit2-
Hmz, een aparte score tabel incrementen is ook wel aardig idee
pi_44419659
quote:
Op donderdag 14 december 2006 10:48 schreef ViPeRII het volgende:
Lol dat is nooit een class. Dat is een lijst met woorden die vertaalt worden.
Dan ben je erg beperkt met vertalen een vertaling bestaat uit méér dan alleen str_replace()'s, dus daarvoor zou goed een class gebruikt kunnen worden om instanties van vertalers te maken.
quote:
Op donderdag 14 december 2006 10:45 schreef wipes66 het volgende:
Kent iemand toevallig een class die tekst kan vertalen naar duits en engels?
Nope. Lijkt me ook raar nu de paar beste (en zelfs dan nog matige) oplossingen commerciëel zijn
pi_44419874
quote:
Op donderdag 14 december 2006 11:05 schreef Swetsenegger het volgende:

[..]

Ik kom er vanavond even op terug, ik zit voornamelijk nog met hoe ik een count van rijen kan koppelen aan 1 vraag uit de andere tabel in m'n query.
Dit kan vrij simpel omdat je telkens maar één poll opvraagt. Je koppelt de stemmen aan de vragen:
1SELECT v.vraag, s.id FROM vragen v LEFT JOIN stemmen s 

Door nu te GROUP BY'en op de vragen zorg je ervoor dat je het aantal stemmen per vraag kunt tellen:
1SELECT v.vraag, COUNT(s.id) FROM vragen v LEFT JOIN stemmen s GROUP BY v.id (of v.vraag)

COUNT() is dan dus een aggregate function die werkt op alle rijen in de tabel 'stemmen' die gekoppeld zijn aan een bepaalde vraag. Maar dit is natuurlijk niet meer relevant als je dat idee gebruikt van een aparte tabel met scores.
quote:
-edit- oeh, je primary key tip voor de poll answers tabel is wel een goeie. Ik wist niet eens dat je twee kolommen in 1 tabel primary key kan maken?
Een PRIMARY KEY is niets anders dan een UNIQUE INDEX met een extra tagje zodat je bij natural joins niet hoeft aan te geven hoe je tabellen koppelt. Een INDEX kun je gewoon over meerdere kolommen leggen, dat heb ik een tijd geleden in deze topicreeks redelijk uitgebreid besproken. UNIQUE zorgt ervoor dat je altijd unieke combinaties van die kolommen moet hebben. In het geval van de combinatie IP,PollID is dat dus een unieke combinatie van IP-adres en Poll-ID voor een stem
quote:
-edit2-
Hmz, een aparte score tabel incrementen is ook wel aardig idee
Je hebt in je huidige opzet een hoop redundante informatie, aangezien je geen informatie aan een stem koppelt (het is een primitieve, een integer 1 waarvan je het totaal wilt weten). Dan is zo'n aparte tabel een erg goed idee aangezien je er zo ook voor zorgt dat MySQL na een tijdje zich niet verslikt in de GROUP BY (en je hoeft iets minder rekening te houden met de juiste indices).
pi_44420379
quote:
Op donderdag 14 december 2006 10:45 schreef wipes66 het volgende:
Kent iemand toevallig een class die tekst kan vertalen naar duits en engels?
Ik zou eerder denken aan een soort van webservice die je kunt aanroepen met SOAP of iets dergelijks. Volgens mij bestaan er wel dergelijke vertaalwebservices.
pi_44421530
Vraagje: kun je ook ergens een soort van voorbeeld database downloaden met bv alle landen, of een aantal namen er in?

Die heb ik namelijk nodig voor een testje, maar heb geen zin om zelf al die informatie bij elkaar te zoeken.
pi_44421604
quote:
Op donderdag 14 december 2006 12:31 schreef super-muffin het volgende:
Vraagje: kun je ook ergens een soort van voorbeeld database downloaden met bv alle landen, of een aantal namen er in?

Die heb ik namelijk nodig voor een testje, maar heb geen zin om zelf al die informatie bij elkaar te zoeken.
Google met de magische keywords: "sql countries"
pi_44421812
lol bedankt
(ik zocht op te moeilijke keywords, daarom kon ik het niet vinden)
  FOK!-Schrikkelbaas donderdag 14 december 2006 @ 16:31:06 #150
1972 Swetsenegger
Egocentrische Narcist
pi_44429188
quote:
Op donderdag 14 december 2006 11:31 schreef JeRa het volgende:

[..]

Dit kan vrij simpel omdat je telkens maar één poll opvraagt. Je koppelt de stemmen aan de vragen:
[ code verwijderd ]

Door nu te GROUP BY'en op de vragen zorg je ervoor dat je het aantal stemmen per vraag kunt tellen:
[ code verwijderd ]

COUNT() is dan dus een aggregate function die werkt op alle rijen in de tabel 'stemmen' die gekoppeld zijn aan een bepaalde vraag. Maar dit is natuurlijk niet meer relevant als je dat idee gebruikt van een aparte tabel met scores.
1SELECT q.Question, COUNT(s.Poll_Answers_Id) as aantal FROM Poll_Questions q LEFT JOIN Poll_Answers s GROUP BY q.Question
quote:
You have an error in you SQL syntax ... ~ ... syntax to use near 'GROUP BY q.Question' at line 1
Ik zie geen fout in de syntax?
-edit-
On clausule vergeten, deze werkt
1SELECT q.Question, COUNT(a.Question) as aantal FROM Poll_Questions q LEFT JOIN Poll_Answers a ON(q.Poll_Question_Id=a.Question) GROUP BY q.Question DESC
quote:
Een PRIMARY KEY is niets anders dan een UNIQUE INDEX met een extra tagje zodat je bij natural joins niet hoeft aan te geven hoe je tabellen koppelt. Een INDEX kun je gewoon over meerdere kolommen leggen, dat heb ik een tijd geleden in deze topicreeks redelijk uitgebreid besproken. UNIQUE zorgt ervoor dat je altijd unieke combinaties van die kolommen moet hebben. In het geval van de combinatie IP,PollID is dat dus een unieke combinatie van IP-adres en Poll-ID voor een stem
[..]

Je hebt in je huidige opzet een hoop redundante informatie, aangezien je geen informatie aan een stem koppelt (het is een primitieve, een integer 1 waarvan je het totaal wilt weten). Dan is zo'n aparte tabel een erg goed idee aangezien je er zo ook voor zorgt dat MySQL na een tijdje zich niet verslikt in de GROUP BY (en je hoeft iets minder rekening te houden met de juiste indices).
Hier ga ik ook mee aan de slag Hoewel ik me bedenk dat ik dan nog een tabel met polls en ip's moet gaan bijhouden.

[ Bericht 6% gewijzigd door Swetsenegger op 14-12-2006 16:55:25 ]
pi_44429444
quote:
Op donderdag 14 december 2006 16:31 schreef Swetsenegger het volgende:

[..]

Ik zie geen fout in de syntax?
Ben per ongeluk de ON-clausule vergeten je moet dus nog even aangeven hoe je de tabellen aan elkaar koppelt (in dit geval dus op Poll_Question_Id).

In de tabel Poll_Answers is de kolom 'Poll' nu redundant omdat je die informatie ook al hebt opgeslagen in Poll_Questions, trouwens.
  FOK!-Schrikkelbaas donderdag 14 december 2006 @ 17:23:19 #152
1972 Swetsenegger
Egocentrische Narcist
pi_44430826
quote:
Op donderdag 14 december 2006 16:39 schreef JeRa het volgende:

[..]

Ben per ongeluk de ON-clausule vergeten je moet dus nog even aangeven hoe je de tabellen aan elkaar koppelt (in dit geval dus op Poll_Question_Id).

In de tabel Poll_Answers is de kolom 'Poll' nu redundant omdat je die informatie ook al hebt opgeslagen in Poll_Questions, trouwens.
Ik had pagina 4 nog niet gezien
Inderdaad gebruik ik kolom Poll in Poll Answers niet meer, die kan er dus uit.
  FOK!-Schrikkelbaas donderdag 14 december 2006 @ 17:33:29 #153
1972 Swetsenegger
Egocentrische Narcist
pi_44431131
kan ik in dezelfde query nog een totaal aantal stemmen frotten. Scheelt me een query (hoewel ik me afvraag of het perfomrance scheelt)
pi_44437237
quote:
Op donderdag 14 december 2006 08:27 schreef JeRa het volgende:

[..]

PHP draait als apart proces met de rechten van de gebruiker van de webserver, dus daar hoef je niet voor in httpd.conf te zijn. Lukt het je wel om de bestanden in een lokale map (op de eigen harde schijf) op te slaan?
Het lijkt erop dat PHP niet in zijn eigen temp map mag als het op files neer komt? Sessies etc worden wel gewoon goed geset enzo.

>> Lokaal "./" lukt dus ook niet.
pi_44438249
quote:
Op donderdag 14 december 2006 17:33 schreef Swetsenegger het volgende:
kan ik in dezelfde query nog een totaal aantal stemmen frotten. Scheelt me een query (hoewel ik me afvraag of het perfomrance scheelt)
Het kán wel in één query, maar niet erg mooi. Moet je met subqueries of 3 extra joins gaan werken gok ik zo. Voor losse polls zou ik het gewoon bij elkaar optellen zodra je de resultaten binnenhaalt.
pi_44438304
quote:
Op donderdag 14 december 2006 20:44 schreef fokME2 het volgende:

[..]

Het lijkt erop dat PHP niet in zijn eigen temp map mag als het op files neer komt? Sessies etc worden wel gewoon goed geset enzo.

>> Lokaal "./" lukt dus ook niet.
Staat de safe_mode wel uit?
  FOK!-Schrikkelbaas donderdag 14 december 2006 @ 22:35:12 #157
1972 Swetsenegger
Egocentrische Narcist
pi_44441158
quote:
Op donderdag 14 december 2006 21:14 schreef JeRa het volgende:

[..]

Het kán wel in één query, maar niet erg mooi. Moet je met subqueries of 3 extra joins gaan werken gok ik zo. Voor losse polls zou ik het gewoon bij elkaar optellen zodra je de resultaten binnenhaalt.
Ik kreeg het inderdaad niet eenvoudig voor elkaar
pi_44461292
Ik heb een profielen beheer pagina gemaakt en om een nieuwe wachtwoord te kunnen aanmaken wil ik dat de oude wachtwoord wordt ingevuld.

De veld waarin de oude wachtwoord ingevuld moet worden moet worden vergelijken met de wachtwoord uit het tabel. Het probleem is dat het een hash is en dat ik een lange reeks getallen krijg te zien.

Is het mogelijk om de hash om te zetten in normale text om het te vergelijken?

<?php $result = mysql_query("select * from gebruiker where username = '".$usernamev."'");

while($r=mysql_fetch_array($result))
{
$pass_w = $r["hash"];

}
?>

<td><strong>Oude wachtwoord </strong></td>
<td><input name="pass" type="password"></td>

<?php if ($_POST['pass'] != $pass_w) {
echo "De ingevoerde wachtwoorden kwamen niet overeen, probeer nogmaals</a>.";
} else {
//gegevens in database stoppen
}
?>

Zoiets moet het dus worden. Maar nu wordt er een getal vergelijken met text.
  FOK!-Schrikkelbaas vrijdag 15 december 2006 @ 16:42:04 #159
1972 Swetsenegger
Egocentrische Narcist
pi_44461450
een hash is een hash en als zodanig niet terug te halen tot het originele wachtwoord.
De enige methode is dus het ingevulde wachtwoord hashen en vervolgens vergelijken met de hash in de db.
pi_44461710
Dat is inderdaad wat ik zelf ook dacht maar hoe kan ik de ingevulde wachtwoord hashen? Als ik md5 gebruik krijg ik een heel ander getal.

password = test en bij de hash in mijn tabel staat er 378b243e220ca493 en met md5() komt er 098f6bcd4621d373cade4e832627b4f6 uit
  FOK!-Schrikkelbaas vrijdag 15 december 2006 @ 17:18:01 #161
1972 Swetsenegger
Egocentrische Narcist
pi_44462457
quote:
Op vrijdag 15 december 2006 16:49 schreef Xevor het volgende:
Dat is inderdaad wat ik zelf ook dacht maar hoe kan ik de ingevulde wachtwoord hashen? Als ik md5 gebruik krijg ik een heel ander getal.

password = test en bij de hash in mijn tabel staat er 378b243e220ca493 en met md5() komt er 098f6bcd4621d373cade4e832627b4f6 uit
Als je niet weet hoe het wachtwoord gehashed is houdt het op
pi_44462700
Ik kan je wel de SQL code geven:
CREATE TABLE gebruiker(
username VARCHAR(30) NOT NULL,
voornaam VARCHAR(20) NOT NULL,
achternaam VARCHAR(20) NOT NULL,
email VARCHAR(40) NOT NULL,
hash VARCHAR(60) NOT NULL,
ulevel INT NULL,
PRIMARY KEY(username),
FOREIGN KEY(ulevel) REFERENCES levels(id)
);

INSERT INTO gebruiker (username, voornaam, achternaam, email, hash, ulevel) VALUES ('administrator','Admin','Achternaam','test@mail.nl',PASSWORD('test'), 1);
pi_44462931
Ok het is gelukt:

$oudepass = mysql_real_escape_string($_POST['pass']);
$sql = "SELECT PASSWORD('".$oudepass."') AS pwdhash";
$resultpw = mysql_query($sql) or die(mysql_error());
$arrPwd = mysql_fetch_assoc($resultpw);

echo $arrPwd['pwdhash'];

Bedankt voor de reacties.
pi_44464330
quote:
Op donderdag 14 december 2006 21:15 schreef JeRa het volgende:

[..]

Staat de safe_mode wel uit?
Ja, dat staat uit.

Volgende week nog maar eens wat klooien dan
pi_44477572
klein vraagje/RFC (:P)

ik krijg vanuit een shell_exec() in php een bestand terug met de volgende opbouw:
1
2
3
6ff95823 ?CRC32*[Mendoi_&_Shinsen-Subs]_Inukami_-_20_[6FF95823].avi
abad497fb7efcd189dd07cd632a9fc22 ?EDONKEY*[Mendoi_&_Shinsen-Subs]_Inukami_-_20_[6FF95823].avi
dca3d6f4ffc59464a48a7a7c3dbd56c6 *[Mendoi_&_Shinsen-Subs]_Inukami_-_20_[6FF95823].avi

wat is de meest efficiente manier om:
1. de hashes eruit te trekken (ik zelf dacht aan splitten op spatie en dan $arr[0] opslaan
2. de hashes bij de juiste filenames houden (ik zelf had in gedachten: splitten op * en dan deel 1 (voor de * ) doen als bij punt 1 :P

ik heb alleen het gevoel dat het absoluut niet efficient is :P (ik moet het nogal vaak doen dus het moet wel redelijk rap zijn :P )
pi_44480929
je zou kunnen zeggen dat je substr($string,0,strpos($string," ")) gebruikt. wat je dan doet is;

substract ( string, vanaf positie 0, tot positie (zoek locatie van de eerste " " in string));

als je in 1x meerdere regels toevoegt kan je zeggen dat je eerst explode op slash r slash n (backslashes doen het niet ), en van die array een foreach loop maken waarin je de substr(); zet.


Ik heb zelf een vraag over .htaccess. Is het mogelijk dat als ik 2 domeinnamen heb die naar hetzelfde wijzen (domain.nl en domain.com), dat ik via .htaccess en een rewrite module zeg dat de .nl automatisch wordt doorverwezen naar het domein domain.com/nl?

de indexpagina is een html met frames namelijk, dus het zou me wat werk schelen als ik dat vlekkeloos zou kunnen oplossen met een .htaccess
As a rule, I never touch anything more sophisticated and delicate than myself.
  zaterdag 16 december 2006 @ 20:13:47 #167
85514 ralfie
!Yvan eht nioj
pi_44490139
quote:
Op zaterdag 16 december 2006 10:14 schreef mschol het volgende:
klein vraagje/RFC (:P)

ik krijg vanuit een shell_exec() in php een bestand terug met de volgende opbouw:
[ code verwijderd ]

wat is de meest efficiente manier om:
1. de hashes eruit te trekken (ik zelf dacht aan splitten op spatie en dan $arr[0] opslaan
2. de hashes bij de juiste filenames houden (ik zelf had in gedachten: splitten op * en dan deel 1 (voor de * ) doen als bij punt 1

ik heb alleen het gevoel dat het absoluut niet efficient is (ik moet het nogal vaak doen dus het moet wel redelijk rap zijn )
1
2
3
4
5
6
7
<?php
$file
=file('het_bestand.txt');

foreach(
$file as $str) {
        
$hashes[substr($str,strpos($str,'*')+1)]=substr($str,0,strpos($str,' '));
}
?>
je moet alleen wel nog rtrim() op de filename loslaten als je de newlines niet wil hebben, en verder nog checks mocht een regel blanco zijn

het zou ook met scanf kunnen, kweet niet wat sneller is
1
2
3
4
5
6
7
8
<?php
$handle
= fopen('test.txt','r');
while (!
feof($handle)) {
        
$x=fscanf($handle,"%s %[^*]*%[^\r]s\r\n");
        if (
$x!=null) $hashes[$x[2]]=$x[0];
}
fclose($handle);
?>
(let hier wel op \r\n en \n)

[ Bericht 34% gewijzigd door ralfie op 16-12-2006 20:47:23 ]
  zondag 17 december 2006 @ 09:22:45 #168
12880 CraZaay
prettig gestoord
pi_44500828
quote:
Op vrijdag 15 december 2006 17:36 schreef Xevor het volgende:
Ok het is gelukt:

$oudepass = mysql_real_escape_string($_POST['pass']);
$sql = "SELECT PASSWORD('".$oudepass."') AS pwdhash";
$resultpw = mysql_query($sql) or die(mysql_error());
$arrPwd = mysql_fetch_assoc($resultpw);

echo $arrPwd['pwdhash'];

Bedankt voor de reacties.
Als ik me niet vergis gebruikt MySQl 4.1+ SHA1 om te hashen, en laat dat nou ook in PHP mogelijk zijn Mocht dat niet werken, dan moet toch snel te googlen zijn hoe MySQL hashes maakt. Dat scheelt weer een query met je bovenstaande oplossing.
  FOK!-Schrikkelbaas zondag 17 december 2006 @ 09:51:46 #169
1972 Swetsenegger
Egocentrische Narcist
pi_44500932
quote:
Op zondag 17 december 2006 09:22 schreef CraZaay het volgende:

[..]

Als ik me niet vergis gebruikt MySQl 4.1+ SHA1 om te hashen, en laat dat nou ook in PHP mogelijk zijn Mocht dat niet werken, dan moet toch snel te googlen zijn hoe MySQL hashes maakt. Dat scheelt weer een query met je bovenstaande oplossing.
SHA1 in php geeft 40 karakters. zijn hash was 16 karakters.
pi_44500943
quote:
Op zaterdag 16 december 2006 20:13 schreef ralfie het volgende:

[..]
[ code verwijderd ]

je moet alleen wel nog rtrim() op de filename loslaten als je de newlines niet wil hebben, en verder nog checks mocht een regel blanco zijn

het zou ook met scanf kunnen, kweet niet wat sneller is
[ code verwijderd ]

(let hier wel op \r\n en \n)
ke dan , hier ga ik eens naar kijken
Thnx
  zondag 17 december 2006 @ 16:42:12 #171
12880 CraZaay
prettig gestoord
pi_44510977
quote:
Op zondag 17 december 2006 09:51 schreef Swetsenegger het volgende:

[..]

SHA1 in php geeft 40 karakters. zijn hash was 16 karakters.
Dan is het MySQL < 4.1. Weet niet van buiten welke encryptie die gebruikt.

Uit de MySQL manual overigens:
quote:
The PASSWORD() function is used by the authentication system in MySQL Server; you should not use it in your own applications. For that purpose, consider MD5() or SHA1() instead.
pi_44511459
quote:
Op zondag 17 december 2006 09:22 schreef CraZaay het volgende:

[..]

Als ik me niet vergis gebruikt MySQl 4.1+ SHA1 om te hashen
Je vergist je. De methode van hashing is afhankelijk van de configuratie, en een hoop distributies hebben standaard nog de oude hashing ingeschakeld om compatibiliteit met oudere programma's te bewerkstelligen.
pi_44657045
Beetje ingewikkeld probleem.. Ik heb een website in meerdere talen. (Het is maar een pagina). Binnen deze pagina wordt een variabele gedefinieerd: $language;. Afhankelijk van de waarde wordt de taal bepaald, maar ook de links naar externe sites.
De content van de pagina is opgeslagen in een database. De content bevat links. Nu heb ik deze links in de database steekwoorden gezet.
<a href="http://www.go.com/index.php?lang=language">Go</a>
In dit geval dus language. Nu wil ik voordat de link wordt weergegeven het steekwoord vervangen door de waarde van de variabele.
Dit heb ik geprobeerd met
str_replace("language", $language, $content);
Maar dat werkt niet...
Hoe kan ik dit nou oplossen dat ik gewoon een link als volgt krijg?

$language = "dutch";
<a href="http://www.go.com/index.php?lang=dutch">
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
  FOK!-Schrikkelbaas vrijdag 22 december 2006 @ 13:55:25 #174
1972 Swetsenegger
Egocentrische Narcist
pi_44657183
1
2
3
4
<?
$language = "dutch";
?>
<a href="http://www.go.com/index.php?lang=<?=$language;?>">


of netter

1
2
3
4
<?php
$language 
"dutch";
echo
'<a href="http://www.go.com/index.php?lang='.$language.'">';
?>
pi_44657214
Eeuhmm ja maar de link staat in de database..
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_44657316
Hoe staat je link in de database? Als het er opgeslagen is als http://www.go.com/index.php, zoiets:
1
2
3
4
<?php
$language
= 'dutch';
echo
'<a href="'.$link.'?lang='.$language.'">Link</a>';
?>
pi_44657481
De link is opgeslagen als volgt:
1....Bekijk ook deze website <a href="http://www.go.com/index.php?lang=language">Go</a>....

Nu wil ik voordat de content (en dus de link) wordt getoond die get-variabele-waarde (language) vervangen door de variabele die is ingesteld in de site. ($language)
Ik kan geen html code in de db gooien toch?
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_44657578
quote:
Op vrijdag 22 december 2006 14:05 schreef markiemark het volgende:
De link is opgeslagen als volgt:
[ code verwijderd ]

Nu wil ik voordat de content (en dus de link) wordt getoond die get-variabele-waarde (language) vervangen door de variabele die is ingesteld in de site. ($language)
Ik kan geen html code in de db gooien toch?
Waarom zou je geen html kunnen opslaan in de database? Dit gaat wel, maar je moet wel eerst je code beveiligen voor je hem door een query jaagt.
Trouwens met je code daar gaat het wel moeilijk worden. Je kan beter je links zonder language opslaan. Dan moet je die niet meer strippen ed. Via een regex zou het dan wel moeten lukken denk ik.
  FOK!-Schrikkelbaas vrijdag 22 december 2006 @ 14:13:31 #179
1972 Swetsenegger
Egocentrische Narcist
pi_44657692
Je haalt de link als string uit de database en doet daar een str_replace op.

dus uit je database komt bv $row['link'] die er als volgt uitziet: <a href="http://www.go.com/index.php?lang=language">Go</a>

dan wordt je code zoiets als

1
2
3
4
5
6
7
8
9
<?php
$language
="dutch";
$query="SELECT * FROM links";
$result=mysql_query($query);
while(
$row=mysql_fetch_assoc($result)){
$link=str_replace('language', $language, $row['link'])
echo
$link;
}
?>
  FOK!-Schrikkelbaas vrijdag 22 december 2006 @ 15:14:27 #180
1972 Swetsenegger
Egocentrische Narcist
pi_44659361
Gelukt?
pi_44662433
quote:
Op vrijdag 22 december 2006 15:14 schreef Swetsenegger het volgende:
Gelukt?
Nog niet, was even onderweg naar Utrecht, nu weer ff verder. Maar wat jij in je voorbeeld beschrijft komt toch op hetzelfde neer met str_replace?

Is het wel mogelijk om een deel uit html code te vervangen met str_replace dat is opgeslagen in de db?
Hier een stukje code zoals hij werkelijk in mijn script staat.

Dit werkt wel:
1
2
<A href="<?php echo str_replace("K_E_Y_W_O_R_D", $keyword, $link); ?>" target="_blank">
<IMG src="<?php echo $image; ?>" border="0">


En dit werkt niet:
1echo str_replace("K_E_Y_W_O_R_D", $keyword, $content);


Het gaat uiteindelijk om het keyword dat wordt meegestuurd en niet om de language zoals ik aanvankelijk zei. Dat probleem is anders opgelost..
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
  FOK!-Schrikkelbaas vrijdag 22 december 2006 @ 17:27:10 #182
1972 Swetsenegger
Egocentrische Narcist
pi_44662488
quote:
Op vrijdag 22 december 2006 17:24 schreef markiemark het volgende:

[..]

Nog niet, was even onderweg naar Utrecht, nu weer ff verder. Maar wat jij in je voorbeeld beschrijft komt toch op hetzelfde neer met str_replace?

Is het wel mogelijk om een deel uit html code te vervangen met str_replace dat is opgeslagen in de db?
Hier een stukje code zoals hij werkelijk in mijn script staat.

Dit werkt wel:
Ik heb het helemaal voorgekauwd, wat snap je nu niet.
quote:
En dit werkt niet:
[ code verwijderd ]
Nee, je probeert een functie te echo'en
quote:
Het gaat uiteindelijk om het keyword dat wordt meegestuurd en niet om de language zoals ik aanvankelijk zei. Dat probleem is anders opgelost..


Wat wil je nou precies doen?
pi_44662961
Ik heb een stukje content in de database, bestaat uit html. In die content zitten hyperlinks. Met in iedere link een woord dat vervangen moet worden. In dit geval: K_E_Y_W_O_R_D.
De content uit de database moet worden weergegeven. Maar het stukje link waar K_E_Y_W_O_R_D in zit moet worden vervangen door de waarde van een variabele.

Ik ga je code even checken..
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_44663088
HEEL dom foutje van mij... Het werkt nu!
@Swets: Bedankt voor de moeite!!
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_44689170
hey ik heb een gastenboek die volloopt met spam. nu wil ik dat als iemand "[url" of "href" gebruikt het ingevoerde bericht niet word ingevoerd. deze lijst moet in de toekomst makkelijk kunnen worden uitgebreid... nu ben ik nog een erge n00b en gebruik ik telkens een "if" met die twee dingen. maar dat neemt erg veel regels in beslag als ik dat iwl uitbreiden. is er een betere manier om dat allemaal in een functie te zetten met een bepaalde opzet? zo ja waar kan ik het beste op googlen? (mijn spam bevat enkel linken vandaar dat ik geen moeilijk uitgebreid script wil etc.
pi_44690040
quote:
Op zaterdag 23 december 2006 19:53 schreef BlueCurl het volgende:
hey ik heb een gastenboek die volloopt met spam. nu wil ik dat als iemand "[url" of "href" gebruikt het ingevoerde bericht niet word ingevoerd. deze lijst moet in de toekomst makkelijk kunnen worden uitgebreid... nu ben ik nog een erge n00b en gebruik ik telkens een "if" met die twee dingen. maar dat neemt erg veel regels in beslag als ik dat iwl uitbreiden. is er een betere manier om dat allemaal in een functie te zetten met een bepaalde opzet? zo ja waar kan ik het beste op googlen? (mijn spam bevat enkel linken vandaar dat ik geen moeilijk uitgebreid script wil etc.
Er is een nog veel simpeler manier: geef erg onlogische namen aan de pagina's van je gastenboek.
Niet "gastenboek.html" maar "lmadfhbvlkjsd.html" bijvoorbeeld

De velden van je gastenboek geef je ook onlogische namen.
'naam" ----> "ljfh"
"email" ----> "mvkkfvdf"
"onderwerp" ----> "erietuhirtuh"

Zoiets

Spambots zoeken naar patronen, herkenbare zaken. Duidelijke namen voor variabelen/pagina's zijn handige patronen en worden dus snel gevonden.
pi_44690670
quote:
Op zaterdag 23 december 2006 20:19 schreef beerten het volgende:

[..]

Er is een nog veel simpeler manier: geef erg onlogische namen aan de pagina's van je gastenboek.
Niet "gastenboek.html" maar "lmadfhbvlkjsd.html" bijvoorbeeld

De velden van je gastenboek geef je ook onlogische namen.
'naam" ----> "ljfh"
"email" ----> "mvkkfvdf"
"onderwerp" ----> "erietuhirtuh"

Zoiets

Spambots zoeken naar patronen, herkenbare zaken. Duidelijke namen voor variabelen/pagina's zijn handige patronen en worden dus snel gevonden.
ik bedoel qua php scripten... al die onlogische namen al eens geprobeerd maar maakte niks uit. ik wil gewoon een lijst met behulp van php die niet toegelaten mogen worden... hoe moet ik dat aanpakken.... zie uitleg gewoon in mijn vorige post
pi_44691866
quote:
Op zaterdag 23 december 2006 20:19 schreef beerten het volgende:

[..]

Er is een nog veel simpeler manier: geef erg onlogische namen aan de pagina's van je gastenboek.
Niet "gastenboek.html" maar "lmadfhbvlkjsd.html" bijvoorbeeld

De velden van je gastenboek geef je ook onlogische namen.
'naam" ----> "ljfh"
"email" ----> "mvkkfvdf"
"onderwerp" ----> "erietuhirtuh"

Zoiets

Spambots zoeken naar patronen, herkenbare zaken. Duidelijke namen voor variabelen/pagina's zijn handige patronen en worden dus snel gevonden.
Das echt geen manier om met spam om te gaan zeg, je formulieren blijven nog steeds bestaan in de HTML wat wou je daar aan doen? Die zien die spambots toch wel, dat is hun referentie punt wat wil je daaraan doen.

"Security by obscurity", das nooit een oplossing.

Wat ik zou doen is een image verificatie inbouwen of iets van die zin, maar bij het posten in een gastenboek kan dit als irritant worden beschouwt. Maar op het moment dat url/links verboden worden treden er ook weer irritaties op dus dat is gewoon een keuze maken...
Motorrijden is beter dan sex.Elke bocht een nieuw hoogtepunt.
  FOK!-Schrikkelbaas zaterdag 23 december 2006 @ 21:19:31 #189
1972 Swetsenegger
Egocentrische Narcist
pi_44692032
1
2
3
4
5
6
7
8
9
$verboden= array('deze','woorden','mogen','niet');
$message=strip_tags($_POST['message']);

  foreach ($verboden as $search) {
    if(stristr($message,$search)!=FALSE){
      header("HTTP/1.0 403 Forbidden");
      die();
    }
  }


[ Bericht 4% gewijzigd door Swetsenegger op 23-12-2006 21:24:40 ]
pi_44693728
quote:
Op zaterdag 23 december 2006 21:13 schreef Cageon het volgende:

[..]

Das echt geen manier om met spam om te gaan zeg, je formulieren blijven nog steeds bestaan in de HTML wat wou je daar aan doen? Die zien die spambots toch wel, dat is hun referentie punt wat wil je daaraan doen.

"Security by obscurity", das nooit een oplossing.

Wat ik zou doen is een image verificatie inbouwen of iets van die zin, maar bij het posten in een gastenboek kan dit als irritant worden beschouwt. Maar op het moment dat url/links verboden worden treden er ook weer irritaties op dus dat is gewoon een keuze maken...
Het werkt voor mij.
Het is geen oplossing, noem het "work around". De achterliggende gedachte is dat er geen captcha of image verification gedaan hoeft te worden. Dat ervaar ik als zeer zeer irritant.
pi_44695813
hebben spambots geen bepaalde afwijkende user agent?
As a rule, I never touch anything more sophisticated and delicate than myself.
  FOK!-Schrikkelbaas zondag 24 december 2006 @ 00:00:09 #192
1972 Swetsenegger
Egocentrische Narcist
pi_44696095
quote:
Op zaterdag 23 december 2006 23:48 schreef Desdinova het volgende:
hebben spambots geen bepaalde afwijkende user agent?
Ja, dus ze accepteren geen cookies of hebben geen referer.
Maar ik heb wel eens op referer geblokt (als de referer niet gelijk is aan de pagina waar het form staat, dan geen post toestaan) en dat werkt aardig, totdat mensen in bv firefoc referers uit hebben staan.

Ik gebruik nu een combinatie van captcha, lijst met woorden en een ip banlist. Geen spam meer
  zondag 24 december 2006 @ 00:05:13 #193
62215 qu63
..de tijd drinkt..
pi_44696212
quote:
Op zondag 24 december 2006 00:00 schreef Swetsenegger het volgende:

[..]

Ja, dus ze accepteren geen cookies of hebben geen referer.
Maar ik heb wel eens op referer geblokt (als de referer niet gelijk is aan de pagina waar het form staat, dan geen post toestaan) en dat werkt aardig, totdat mensen in bv firefoc referers uit hebben staan.

Ik gebruik nu een combinatie van captcha, lijst met woorden en een ip banlist. Geen spam meer
ik gebruik gewoon een input veld waarin '4' ingevuld moet worden.

1<tr>2 maal 2 is?<input type="text" name="check"></tr>

en achter de schermen wordt gecontroleerd of 'check' de waarde 4 heeft, en anders wordt je gewoon lekker terug gestuurd
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_44699092
quote:
Op zondag 24 december 2006 00:05 schreef qu63 het volgende:

[..]

ik gebruik gewoon een input veld waarin '4' ingevuld moet worden.
[ code verwijderd ]

en achter de schermen wordt gecontroleerd of 'check' de waarde 4 heeft, en anders wordt je gewoon lekker terug gestuurd
Zo heb ik al tijden succesvolle anti-spam formule:
Welke kleur heeft een gele banaan?

  FOK!-Schrikkelbaas zondag 24 december 2006 @ 09:59:53 #195
1972 Swetsenegger
Egocentrische Narcist
pi_44700549
quote:
Op zondag 24 december 2006 00:05 schreef qu63 het volgende:

[..]

ik gebruik gewoon een input veld waarin '4' ingevuld moet worden.
[ code verwijderd ]

en achter de schermen wordt gecontroleerd of 'check' de waarde 4 heeft, en anders wordt je gewoon lekker terug gestuurd
Dat zal best werken tot je gewoon spam uit nederland krijgt.
Ik kreeg nog gewoon spam DOOR een captcha heen. Pas nadat ik in die captcha de letters schots en scheef neer zet is het over

En eigenlijk doet een captcha hetzelfde als wat jij nu doet, alleen is een captcha wat ingewikkelder.
pi_44702475
tnx swetsenegger. ik had hiervoor een random image gedaan maar dat hielp niet echt... spam kwam er gewoon doorheen en ik kreeg ook het commentaar dat mensen niet dingen konden invoeren en dat ik dan eerst moest uitleggen dat ze een plaatje over moesten tikken terwijl dit er wel duidelijk bijstond. vandaar dat ik die lijst eens wil proberen aangezien alle spam bij mij een link bevat.. of met a href gewoon of met ubb code...
  zondag 24 december 2006 @ 12:56:04 #197
62215 qu63
..de tijd drinkt..
pi_44703667
quote:
Op zondag 24 december 2006 09:59 schreef Swetsenegger het volgende:

[..]

Dat zal best werken tot je gewoon spam uit nederland krijgt.
Ik kreeg nog gewoon spam DOOR een captcha heen. Pas nadat ik in die captcha de letters schots en scheef neer zet is het over

En eigenlijk doet een captcha hetzelfde als wat jij nu doet, alleen is een captcha wat ingewikkelder.
Als ik Nederlandse spam krijg zie ik wel weer verder

vond het wel knap dat in de eerste week dat dat stuk van mn site online was, ik meteen al spam kreeg!

heeft er ioemand trouwens een link naar een duidelijk tutorial voor captcha 'procedures'?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_44704062
Ja spam gaat heel snel, ook hier maar je kunt meerdere oplossingen gebruiken.

gebruik een plaatje met tekst er in, laat de gebruiker de eerste, middelste en laatste letter overnemen in de tekstbox ennuh je bent al weer meer spam proof... tis eingelijk best simpel
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_44707134
quote:
Op zondag 24 december 2006 09:59 schreef Swetsenegger het volgende:

[..]

Dat zal best werken tot je gewoon spam uit nederland krijgt.
Ik kreeg nog gewoon spam DOOR een captcha heen. Pas nadat ik in die captcha de letters schots en scheef neer zet is het over

En eigenlijk doet een captcha hetzelfde als wat jij nu doet, alleen is een captcha wat ingewikkelder.
Als je de letters niet erg goed verbergt is het voor spam-bots niet zo heel moeilijk om ook de letters te herkennen. Tekstherkenning
Een link naar enkele captcha-scripts. In het commentaar onderaan de scripts staan beoordelingen/aanwijzingen voor meer dan wel betere scripts/classes.

http://www.phpfreakz.nl/library.php?q=captcha
pi_44707197
Voor spam tegen te gaan in gastenboeken maak ik altijd een random image aan die een 5 karakter lange code weergeeft die mensen moeten over tikken. Zolang je er voor zorgt dat deze over te tikken codes niet direct in de broncode van de pagina te vinden zijn, zullen spam scriptjes en botjes er niet doorheen komen.

Of als je een vrij rustige website hebt, maak een verificatie systeempje. Dus zodat berichten die in het gastenboek komen niet direct er in gepleurd worden, maar ze eerst goedgekeurd moeten worden door jou. Heb je wel meer werk aan dus gebruik dat niet op een drukke website.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')