quote:Op maandag 27 november 2006 10:32 schreef Darkomen het volgende:
Webshop met voorraad functie gezocht.
Jongens ik moet over een tijdje een webshop opzetten voor een goede vriend van me, dit moet allemaal officeel.
Het moet dus een webshop worden met voorraad systeem zodat hij goed kan bijhouden wat er nog op voorraad is.
Ik ga dit niet zelf bouwen aangezien er genoeg goede systemen zijn, het enige wat ik zal toevoegen is een CMS gedeelte voor de rest van de site.
Dit wil ik dan wel via dezelfde login als de webshop laten werken.
Ik ben wel bezig met wat aan het bekijken bij hotscripts, maar welke zouden jullie aanraden?
http://www.in-commerce.net/index.html
395$ coupons, volgens mij alleen als module
http://digishop.sumeffect.com/index.php
mooi, netzo duur, wel reports, standalone,
http://www.ecommercetemplates.com/dreamweaverecommerce.asp
Ook mooi, allen vondt ik het niet duidelijk of het nu een systeem was of alleen templatse?![]()
http://www.oscommerce.nl/
Grappg hè?quote:Op maandag 27 november 2006 19:05 schreef papernote het volgende:
Alle topics gaan op 300 posts automatisch dicht.
Ik heb nu die code met de volgende SQL rows:quote:Op vrijdag 24 november 2006 13:48 schreef ralfie het volgende:
[..]
even ter voorbeeld:
[ code verwijderd ]
Tis echt niet zo moeilijk
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 | $result=mysql_query("SELECT dag,artist,titel,label,MONTHNAME(datum) as maand,YEAR(datum) as jaar FROM albumreleases ORDER BY datum DESC") or die(mysql_error()); $curr=array(-1,-1); while($row=mysql_fetch_assoc($result)) { if ($curr[0]!=$row['maand'] || $curr[1]!=$row['jaar']) { ?> <table width="100%"> <tr bgcolor="#222222"> <td colspan="4"><span class="gsgrey10"><b><? echo $row['maand']; ?> <? echo $row['jaar']; ?></b></span></td> </tr> <? $curr=array($row['maand'],$row['jaar']); } ?> <tr> <td><span class="gstext10"><? echo $row['dag'] ?> <? echo $row['maand']; ?></span></td> <td><span class="gstext10"><? echo $row['artist'] ?></span></td> <td><span class="gstext10"><? echo $row['titel'] ?></span></td> <td><span class="gstext10"><? echo $row['label'] ?></span></td> </tr> <tr> <td colspan="4"><img src="/img/grey_dot.gif" width="598" height="1" alt="0"></td> </tr> <? } ?> </table> |
1 2 3 | uitvoer : <input type="text" name="naam" /> |
1 2 3 4 5 6 7 8 9 | function runquery($query,$dblink) { global $myDB; $result=mysql_db_query($myDB,$query,$dblink); return $result; mysql_close($dblink); } ?> |
hmm, daar heb ik geen last van. Heb je de datums op de juiste manier ingevoerd? anders zou je ook kunnen proberen 'ORDER BY DATE(datum)' oidquote:Op maandag 27 november 2006 23:31 schreef RiderXXX het volgende:
wonderer: na alle mysql acties de verbinding sluiten, lijkt mij wel voldoende
[..]
Ik heb nu die code met de volgende SQL rows:
id, artist, titel, label, dag, maand, jaar, datum
- Maar hoe zet ik nu de datum in SQL? YYYYMMDD of time()? Of doe ik het fout?
edit: ik heb het gevonden, alleen hoe kan ik data omkeren.. ik heb nu de volgende code:
[ code verwijderd ]
Het ziet er nu zo uit:
[maand] [jaar]
[dag] [artist] [titel] [label]
[dag] [artist] [titel] [label]
Maar de [dag] is verkeerd geordend.. bij '5' en '25' komt de '25' boven te staan. Hoe kan ik dit veranderen? Als ik dit in de query doe krijg ik dat voor de hele rits met maanden..
Waarom heb je dag, maand, jaar én datum opgeslagen, als de laatste alles al bevat? Dat is niet echt handig, want je kan met PHP heel simpel de eerste 3 uit de laatste verkrijgen.quote:Op maandag 27 november 2006 23:31 schreef RiderXXX het volgende:
wonderer: na alle mysql acties de verbinding sluiten, lijkt mij wel voldoende
[..]
Ik heb nu die code met de volgende SQL rows:
id, artist, titel, label, dag, maand, jaar, datum
- Maar hoe zet ik nu de datum in SQL? YYYYMMDD of time()? Of doe ik het fout?
edit: ik heb het gevonden, alleen hoe kan ik data omkeren.. ik heb nu de volgende code:
[ code verwijderd ]
Het ziet er nu zo uit:
[maand] [jaar]
[dag] [artist] [titel] [label]
[dag] [artist] [titel] [label]
Maar de [dag] is verkeerd geordend.. bij '5' en '25' komt de '25' boven te staan. Hoe kan ik dit veranderen? Als ik dit in de query doe krijg ik dat voor de hele rits met maanden..
1 2 3 4 5 6 7 8 9 | $dir = "root/www/open_source/"; $pad = explode('/', $dir); $handle=@opendir($dir); $naam = expolde('_', $pad[3]); $test = ucfirst($naam[0]); echo "<h2>".$pad[2]."/".$test."</h2>"; ?> |
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | error_reporting(E_ALL); // Variabelen. // Bewerk deze $dir = "./"; // Vul tussen de " " De map in die doorzocht moet worden. $pagina_naam = "Directory index"; // Vul tussen " " De naam die de 'mappen browser' moet krijgen. $scheiding = " --> "; // Vul tussen " " het scheidings teken in dat tussen de mappen komt te staan in de navigatie. $datumform = "j/m/Y i:G:s"; // Vul tussen " " de datum in formaat volgens php syntax date(). // Einde bewerken $HTTP_GET_VARS = ( is_array($_GET) ) ? $_GET: ((is_array($HTTP_GET_VARS)) ? $HTTP_GET_VARS : array()); $hier_level = 0; $map = (isset($HTTP_GET_VARS['map'])) ? $HTTP_GET_VARS['map'] : ""; $map = (substr($map, 0, 1) != "/") ? $map : substr($map, 1); $map = (substr($map, -1) != "/") ? $map : substr($map, 0, -1); $map = str_replace("../", "", $map); $map = str_replace("//", "/", $map); $map = str_replace("///", "/", $map); $map = str_replace("////", "/", $map); $mappen = @explode("/", $map); $hier_level = count($mappen); if(count($mappen) != 0) { $page_title = $pagina_naam . ' - ' . $mappen[count($mappen) - 1]; } else { $page_title = $pagina_naam; } function trans($var) { $return = str_replace('/index.php','',$var); return $return; } echo "<html>n<head>n<title>" . $page_title . "</title>n</head>n<body style="margin: 15px; padding: 15px; font-size: 12px; font-family: verdana;">nn"; $tempmap = ""; for($i = 0; $i < $hier_level; $i++) { $tempmap .= (empty($tempmap)) ? $mappen[$i] : '/' . $mappen[$i]; $mappen[$i] = '<a href="' . trans($_SERVER['SCRIPT_NAME']) . $tempmap . '" style="font-family: verdana; font-size: 12px; color: #006699; text-decoration: none;">' . $mappen[$i] . '</a>'; } $dir_index = '<a href="index.php" style="font-family: verdana; font-size: 12px; color: #006699; text-decoration: none;">' . $pagina_naam . '</a>'; $flip = trans($_SERVER['SCRIPT_NAME']); $arr = explode('/',$flip); if (count($arr) > 1) { $string = $_SERVER['SERVER_NAME']; for ( $counter = 1; $counter < count($arr)-1; $counter ++) { $string.= '/' . $arr[$counter]; } $ex = "<a href='http://".$string."'style='font-family: verdana; font-size: 12px; color: #006699; text-decoration: none;'>Terug naar de bovenliggende directory</a><br>"; } $mappen = @implode($scheiding, $mappen); $mappen = ( $hier_level == 0 ) ? $dir_index : $dir_index . $scheiding . '<br>'. $ex . $mappen; echo $mappen . "<br /><hr /><br />nn"; unset($mappen); $mappen = array(); $files = array(); $opendir = @opendir($dir . $map); $map = (empty($map)) ? '': $map . '/'; clearstatcache(); while( false !== ( $item = readdir($opendir) )) { if($item != "." && $item !="iManager.html" && $item != "index.php") { if(is_dir($dir . $map . $item)) { $stat = stat($dir . $map . $item . "/"); $mappen[] = array( $item, '' . $map . '/' . $item, date($datumform, $stat[8]), date($datumform, $stat[10]) ); } else { $stat = stat($dir . $map . $item); $filesize = ($stat[7] > 1024) ? round($stat[7] / 1024, 3) . " Kb" : $stat[7] . " bytes"; $files[] = array( $item, $dir . $map . '/' . $item, $filesize, date($datumform, $stat[8]), date($datumform, $stat[10]) ); } } } echo " <table cellspacing="5" cellpadding="0" style="width: 100%; font-size: 12px; font-family: verdana;"> <tr> <td style="width: 55%;">Bestand:</td> <td style="width: 15%; text-align: right;">Groote:</td> <td style="width: 15%; text-align: right;">Laatst geopend:</td> <td style="width: 15%; text-align: right;">Laatst gewijzigd:</td> </tr> "; while(list(, $item) = each($mappen)) { echo " <tr> <td style="width: 55%;"><a href="" . trans($_SERVER['SCRIPT_NAME']) . $item[1] . "" style="font-family: verdana; font-size: 12px; color: #006699; text-decoration: none;">" . $item[0] . "</a></td> <td style="width: 15%; text-align: right;"> </td> <td style="width: 15%; text-align: right;">" . $item[2] . "</td> <td style="width: 15%; text-align: right;">" . $item[3] . "</td> </tr> "; } echo (count($mappen) == 0) ? "n<tr>n<td colspan="4">Geen mappen gevonden.</td>n</tr>n" : ""; echo "n<tr>n<td colspan="4"><hr /></td>n</tr>n"; while(list(, $item) = each($files)) { echo " <tr> <td style="width: 55%;"><a href="" . $item[1] . "" style="font-family: verdana; font-size: 12px; color: #006699; text-decoration: none;">" . $item[0] . "</a></td> <td style="width: 15%; text-align: right;">" . $item[2] . "</td> <td style="width: 15%; text-align: right;">" . $item[3] . "</td> <td style="width: 15%; text-align: right;">" . $item[4] . "</td> </tr> "; } echo (count($files) == 0) ? "n<tr>n<td colspan="4">Geen bestanden gevonden..</td>n</tr>n" : ""; echo "nn</body>n</html>nn"; ?> |
Fatal error: Call to undefined function: expolde()quote:Op dinsdag 28 november 2006 15:01 schreef papernote het volgende:
Welke foutmelding krijg je?
Ik zal eens ff bestuderenquote:Op dinsdag 28 november 2006 15:01 schreef ViPeRII het volgende:
Ik heb zoiets hier. Misschien dat je wat aan de code hebt.
[ code verwijderd ]
En natuurlijk kan je het zelf wel ff aanpassen zodat de eerste letter er goed uit ziet, zoals je zelf wil.
O ja, ik heb de bestande iManager.html en index.php gehide, omdat ik die niet wil zien.
Als je andere bestanden niet weer wilt geven kan dat in de regel:
if($item != "." && $item !="iManager.html" && $item != "index.php")
expoldequote:Op dinsdag 28 november 2006 15:08 schreef Qunix het volgende:
[..]
Fatal error: Call to undefined function: expolde()
[..]
Ik zal eens ff bestuderen
Zo geweldig php-en kan ik niet
Iig bedankt.
Error logging toch eens aanzetten?quote:Op dinsdag 28 november 2006 15:12 schreef Qunix het volgende:
Ik had het wel goed dus...
Ik zag hem niet
de foutmelding deed het prima hoor.quote:Op dinsdag 28 november 2006 22:40 schreef CraZaay het volgende:
[..]
Error logging toch eens aanzetten?
Nee, dag staat als INT. De query is nu als volgt:quote:Op dinsdag 28 november 2006 09:50 schreef papernote het volgende:
[..]
Waarom heb je dag, maand, jaar én datum opgeslagen, als de laatste alles al bevat? Dat is niet echt handig, want je kan met PHP heel simpel de eerste 3 uit de laatste verkrijgen.
Verder heb je waarschijnlijk de dag als een VARCHAR opgeslagen en niet als INT, waardoor de sortering fout gaat. Lexicografisch gezien komt 25 voor 5, terwijl numeriek dat andersom is.
1 |
1 2 3 4 | Danity Kane - Touching My Body (Remix) Ft. T (2:18) Danny Fernandes - Curious (Dj Rado Remix) (4:17) Darin - Move (3:42) |
Weet iemand wat '0x0011F8 ' is? Ik ben namelijk bezig met een lijst van tijdzones aan het maken. Maar in php 5.1 is dat niet mogelijk. Dit is overigens een stukje uit de source van php.quote:{ "Africa/Kinshasa" , 0x0011F8 },
{ "Africa/Lagos" , 0x001230 },
{ "Africa/Libreville" , 0x001279 },
{ "Africa/Lome" , 0x0012C2 },
{ "Africa/Luanda" , 0x0012FA },
{ "Africa/Lubumbashi" , 0x001343 },
Ik gok dat je een signed integer als unsigned integer aan het bekijken bentquote:Op vrijdag 1 december 2006 00:15 schreef wipes66 het volgende:
Weet iemand hoe ik de offset waarde moet berekenen?
Bv: "Europe/Amsterdam" = 0x025ADC
En 0x025ADC is dan 1393458
Maar wat is 1393458![]()
Ik denk niet dat je het op die manier kan/wil gebruiken zijn daar geen andere mogelijkheden voor?quote:Op vrijdag 1 december 2006 00:30 schreef wipes66 het volgende:
het komt uit de source-code (timezonedb.h). maar de vraag is, hoe maak ik er secondes van?
Ook al bevatten veel titels haakjes, je weet dat bij de laatste '(' de tijd begint. Een groter probleem is denk ik het koppelteken tussen artiest en titel, omdat er eventueel ook een artiest zou kunnen zijn met ' - ' in z'n naam ('Jay - Z' bijvoorbeeld, as je het met spaties ertussen schrijft).quote:Op donderdag 30 november 2006 01:32 schreef RiderXXX het volgende:
Nu wil ik deze met een PHP script kunnen importeren in en MySQL database. Ik wil dat de artiest in 'artiest' komt, de titel in 'titel' en de tijd in 'tijd'. Ik weet niet of het moeilijk (EN MOGELIJK) is, maar aan de ene kant lijkt het me best te doen. Hoewel er niet gekeken kan worden op haakjes, voor de tijd, aangezien veel titels ook haakjes hebben, zoals (Remix). Hoe zou ik dit het beste kunnen doen en waar begin ik?
Dan heb je geen last van vedrlopen POSTs inderdaadquote:Op zaterdag 2 december 2006 13:44 schreef SuperRembo het volgende:
Kan je dan niet beter een GET request gebruiken?
1 2 3 | $query="SELECT film_id, film_name, avg_vote FROM films ORDER BY avg_vote LIMIT BY $start, $stop" ?> |
1 2 3 4 5 6 | $query="SELECT film_id, film_name, avg_vote FROM films ORDER BY avg_vote LIMIT BY $start,$stop"; //en dan voor elke gevonden film_id ($film_id) $query="SELECT * FROM voters WHERE film_id=$film_id AND voter=$userid"; //als hier een row gevonden wordt heeft de $userid deze film al gewaardeerd ?> |
1 2 3 4 5 6 | CASE WHEN v.film_id IS NULL THEN 0 ELSE 1 END voted FROM films f LEFT OUTER JOIN voters v ON v.film_id = f.film_id AND v.voter = $userid ORDER BY avg_vote LIMIT BY $start, $stop |
1 2 3 4 5 6 7 8 9 | CASE WHEN EXISTS ( SELECT * FROM voters v WHERE v.film_id = f.film_id AND v.voter = $userid ) THEN 1 ELSE 0 END voted FROM films f ORDER BY avg_vote LIMIT BY $start, $stop |
Sessies lijkt me veiliger dan GET gebruiken zoals al gezegd wasquote:Op zaterdag 2 december 2006 12:13 schreef Xtr3mE het volgende:
klein vraagje:
ik weet niet of ik het hier goed plaats maar mijn vraag is:
Ik wil (met php het liefst als het kan) de "De webpagina is verlopen" pagina vermijden. (IE vooral)
Ik heb een zoekfunctie gemaakt om iets op te zoeken in php. Vanuit de zoekresultaten wordt er naar een andere pagina geklikt. Als ik nu terug wil gaan naar de zoekresultaten (knop terug) of een link (javascript: history.go(-1)) dan krijg ik dus die verlopen pagina.
Maar het liefst zou ik dus gelijk die pagina opnieuw laden (POST gegevens opnieuw versturen) zonder interactie met de gebruiker.
Is dit mogelijk?
Je moet je gegevens toch posten of je dat met GET of POST doet boeit niet...quote:Op zondag 3 december 2006 19:42 schreef fate het volgende:
[..]
Sessies lijkt me veiliger dan GET gebruiken zoals al gezegd was. GET kan gemanipuleerd worden en voor SQL-injection zorgen, sessies niet
. Het is wat meer werk maar 10X zo veilig.
![]()
Je gegevens moet je posten, maar dat doe je best met POST en niet met GET zoals je wel weetquote:Op zondag 3 december 2006 20:07 schreef Cageon het volgende:
[..]
Je moet je gegevens toch posten of je dat met GET of POST doet boeit niet...
Dus wat mij betreft is dat onzin.
(Al zou ik ook voor de sessies gaan hoor daar niet van...![]()
Dit met de reden dat je hier meer controle over hebt dan over wat je in GET krijgt gedurende de gebruiker zijn sessie op je site. )
Een zoekform kan toch prima met een GET? Je hebt namelijk een beperkt aantal parameters die prima in de url kunnen worden megegeven. Niet voor niet dat google en de zoekfunctie van FOK zo werkt.quote:Op zondag 3 december 2006 20:12 schreef fate het volgende:
[..]
Je gegevens moet je posten, maar dat doe je best met POST en niet met GET zoals je wel weet. Maar als je met POST werkt, zal history(-1) niet meer lukken dus moet je wel sessies gebruiken.
Je kan je gegevens ook posten met de method GET. Dan heb je dat probleem niet, zoals al eerder gemeld.quote:Op zondag 3 december 2006 20:12 schreef fate het volgende:
[..]
Je gegevens moet je posten, maar dat doe je best met POST en niet met GET zoals je wel weet. Maar als je met POST werkt, zal history(-1) niet meer lukken dus moet je wel sessies gebruiken.
gewoon IP info uit de http header halen?quote:Op maandag 4 december 2006 11:20 schreef Chandler het volgende:
Ik wil het volgende even weten.
Voor iemand moet ik een bestand hosten en deze wil hij laten downloaden door een stuk of wat gebruikers. Echter heb ik geen zin om het bestand door duizenden te laten downloaden en wil dat voorkomen door bv het IP adres van de gebruiker alleen toe te staan.
Nu is dit gemakkelijk in een script te bouwenmaar een script runt eingelijk max 30 seconden en wil ik dus iets bedenken waardoor iedereen met een juist IP adres het bestand kan downloaden.
bv. httaccess.. maar daar heb ik geen kaas van gegeten.
Hebben jullie een idee hoe ik dit probleem kan oplossen? een wachtwoord werkt niet want die kan men doorgeven...
Waarom?quote:Op maandag 4 december 2006 14:06 schreef Chandler het volgende:
Doe eens een voorbeeld van wat je bedoeld? want als het dmv php gaat moet ik het script openen zolang het downloaden nog niet voltooid is...
Dan zet je hem als BLOB in een database tabelquote:Op maandag 4 december 2006 17:09 schreef Chandler het volgende:
sorry
maaruh ik doel meer op het idee dat die header ook af te vangen is en dat je dan ook achter het bestand zelf kan komen...
oid... toch? dat wil ik tegengaan
htaccess is hier ideaal voor. Met een tooltje maak je ff een .htaccess en .htpasswd file, die zet je in de dir en je bent klaar.quote:Op maandag 4 december 2006 11:20 schreef Chandler het volgende:
bv. httaccess.. maar daar heb ik geen kaas van gegeten.
Je bestand in de database opnemen vind ik in veel gevallen redelijk ranzig, maar je kan je bestanden bijvoorbeeld wel prima buiten je publieke pad plaatsen en via download.php het bestand 'doorsturen'.quote:Op maandag 4 december 2006 17:09 schreef Chandler het volgende:
sorry
maaruh ik doel meer op het idee dat die header ook af te vangen is en dat je dan ook achter het bestand zelf kan komen...
oid... toch? dat wil ik tegengaan
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | // VALUES FROM THE FORM $name = $_POST['name']; $email = $_POST['email']; $url = $_POST['url']; $titel = $_POST['titel']; $link = $_POST['link']; $message = $_POST['msg']; // ERROR & SECURITY CHECKS if ( ( !$email ) || ( strlen($_POST['email']) > 200 ) || ( !preg_match("#^[A-Za-z0-9](([_.-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([.-]?[a-zA-Z0-9]+)*).([A-Za-z]{2,})$#", $email) ) ) { print "Error: Invalid E-Mail Address"; exit; } if ( ( !$name ) || ( strlen($name) > 100 ) || ( preg_match("/[:=@<>]/", $name) ) ) { print "Error: Invalid Name"; exit; } if ( preg_match("#cc:#i", $message, $matches) ) { print "Error: Found Invalid Header Field"; exit; } if ( !$message ) { print "Error: No Message"; exit; } if (eregi("r",$email) || eregi("n",$email)){ print "Error: Invalid E-Mail Address"; exit; } if (FALSE) { print "Error: You cannot send to an email address on the same domain."; exit; } if ( !$titel ) { print "Error: No Titel"; exit; } if (eregi("r",$email) || eregi("n",$email)){ print "Error: Invalid E-Mail Address"; exit; } if (FALSE) { print "Error: You cannot send to an email address on the same domain."; exit; } // CREATE THE EMAIL $headers = "Content-Type: text/plain; charset=iso-8859-1n"; $headers .= "From: $name <$email>n"; $recipient = "mail@mail.nl"; $subject = "Suggestie"; $message = wordwrap($message, 1024); // SEND THE EMAIL TO YOU mail($recipient, $subject, $message, $headers); // REDIRECT TO THE THANKS PAGE header("location: http://www.site.eu"); ?> |
Waarschijnlijk ook omdat FOK! alle \ weglaat en iets als dit:quote:Op dinsdag 5 december 2006 21:42 schreef Chandler het volgende:
moet zeggen dat ik het script nogal vaag vind maar goed....
die variabelen bestaan ookquote:Op woensdag 6 december 2006 09:17 schreef Chandler het volgende:
Niet alleen dat, maar ook dat er maar automatisch vanuit gegaan wordt dat variabelen bestaan...
1 2 3 4 5 6 | $message = "Titel: ".$_POST['titel']."n n"; $message .= "Website: ".$_POST['url']."n n"; $message .= "Gelinkt op: ".$_POST['link']."n n"; $message .= "Bericht: ".$_POST['msg']."n n"; ?> |
quote:Op woensdag 6 december 2006 15:48 schreef Goldfish80 het volgende:
Ok, het is allemaal gelukt.
[ code verwijderd ]
Maar hoe krijg ik nu de titel vetgedrukt?
<b></b> dat werkt niet, want dat zie je dan in de mail staan
1 2 3 4 | $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n"; ?> |
Nee, ik heb nog steeds het plan om daar eens mee te gaan stoeien, maar het is er nog niet van gekomen.quote:Op donderdag 7 december 2006 00:46 schreef JeRa het volgende:
Even een TVP. Zijn er hier eigenlijk users die hun PHP-scripts verder hebben gebracht dan het conventionele "webserver requests afhandelen" en gebruik maken van bijvoorbeeld PHP-GTK, forking, w32api, etc?
Kloptquote:Op donderdag 7 december 2006 07:44 schreef Swetsenegger het volgende:
[..]
Nee, ik heb nog steeds het plan om daar eens mee te gaan stoeien, maar het is er nog niet van gekomen.
En ik vraag me dan af wanneer ik wil gaan compilen of ik dan niet beter mezelf kan verdiepen in C# ofzo
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 | AuthName "You are not authorized to view this page" AuthType Basic authUserFile /opt/share/www/mapnaam/.htpasswd Require valid-user allow from 192.168.1 allow from 62.195.181.--- allow from 81.205.246.--- allow from 84.81.185.--- allow from 84.27.68.--- allow from 82.197.205.--- allow from 212.61.84.--- allow from 213.93.249.--- allow from 62.195.200.--- allow from 81.71.232.--- allow from 62.195.19.--- allow from 84.27.93.--- allow from 82.73.139.--- allow from 82.173.98.--- allow from 82.157.7.--- deny from all satisfy any |
Hmz, ik ben wel erg geinteresseerd moet ik je zeggen. Ik ga het eens installerenquote:Op donderdag 7 december 2006 16:21 schreef JeRa het volgende:
[..]
Kloptalhoewel tegenwoordig het verschil in snelheid tussen PHP en gecompileerde (tussen)talen als C/C++ en Java helemaal niet zo groot is en het voordeel dat je scripts snel kunt aanpassen mij erg aanspreekt. Ik ben op het moment bezig om een daemon te schrijven in PHP die luistert naar een socket, verbindingen accepteert en zichzelf forkt om de verbinding af te handelen. Maar PHP is bijvoorbeeld ook handig i.c.m. bepaalde libraries om plaatjes of PDFjes te laten genereren. Mijn backupsysteem draait er ook op, bijvoorbeeld.
Mogelijkheden zat, en sinds PHP-GTK bestaat is het ook nog eens mogelijk om een grafische interface aan te bieden. Maar op dit gebied zie ik weinig bekende applicaties verschijnen?
Oké, zou je hier misschien een voorbeeld van kunnen geven ? ik heb hier namelijk zeer weinig kaas van gegetenquote:Op vrijdag 8 december 2006 21:39 schreef fate het volgende:
Als het gaat om een beperkt aantal gebruikers met die 15 ip-adressen die je hebt opgegeven, moet je niet per sé met een database werken. Dan kan je ook in je php script zelf de 15 ip-adressen koppelen aan een naam via een array.
Als er steeds meer ip's komen, dan kan je inderdaad best met een database werken waarin je een kolom ip en een kolom naam hebt. Als de gebruiker dan op de site komt kan je in de database de record (en de naam) selecteren van de gebruiker.
quote:Op vrijdag 8 december 2006 22:51 schreef mvc het volgende:
[..]
Oké, zou je hier misschien een voorbeeld van kunnen geven ? ik heb hier namelijk zeer weinig kaas van gegeten :)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | if ($_SERVER['REQUEST_METHOD']=='POST'){ $password=md5($_POST['password']); $query='SELECT * FROM user WHERE username="'.$_POST['username'].'" && pass="'.$password.'"'; $result=mysql_query($query); $row=mysql_fetch_assoc($result); if(mysql_num_rows($result) != 0){ session_start(); $_SESSION['admin_IP']=$_SERVER["REMOTE_ADDR"]; $_SESSION['admin_login']='ok'; header("Location: ingelogged.php"); }else{ header("Location: fout.php"); } } ?> |
Je zou kunnen kijken naar de Accept-* headers die veel browsers naar de webserver sturenquote:Op zaterdag 9 december 2006 17:50 schreef qu63 het volgende:
iemand enig idee hoe ik dmv php de juiste taal voor mn website kan pakken? (NL/FR/EN)
die?quote:Op zaterdag 9 december 2006 18:06 schreef JeRa het volgende:
[..]
Je zou kunnen kijken naar de Accept-* headers die veel browsers naar de webserver sturen :)
1 2 3 | echo $_SERVER['HTTP_ACCEPT_LANGUAGE']; ?> |
1 |
Juist. Je moet dan alleen nog even goed voor ogen hebben hoe je de gebruiker een taal voorschotelt. Bijvoorbeeld zo:quote:Op zaterdag 9 december 2006 18:13 schreef qu63 het volgende:
[..]
die?
[ code verwijderd ]
output:
[ code verwijderd ]
Standaard taal is Engels, als de gebruiker Nederlands of Frans ingesteld heeft wordt het die taal, anders Engels.quote:Op zaterdag 9 december 2006 18:26 schreef JeRa het volgende:
[..]
Juist. Je moet dan alleen nog even goed voor ogen hebben hoe je de gebruiker een taal voorschotelt. Bijvoorbeeld zo:
1) Als de gebruiker een taal zelf heeft gekozen (bv. opgeslagen in cookie) dan wordt die taal gebruikt
2) Als er nl, fr of en (in die volgorde) in de Accept-Language-header voorkomt, dan wordt die taal gebruikt
3) De standaard taal (Engels?) wordt gebruikt
Zou ik niet doen, de volgorde van detecteren zoals ik die aangaf zal denk ik wel voldoen aan je wensen. In PHP dus.quote:Op zaterdag 9 december 2006 18:52 schreef qu63 het volgende:
[..]
Of kan ik dan beter via JavaScript de taal detecteren en opslaan
gaan we daar iets leuks op verzinnenquote:Op zaterdag 9 december 2006 18:55 schreef JeRa het volgende:
[..]
Zou ik niet doen, de volgorde van detecteren zoals ik die aangaf zal denk ik wel voldoen aan je wensen. In PHP dus.
hoe kan ik die Accept_Language-string nou makkelijk strippen en alleen de nodige info uit halenquote:Op zaterdag 9 december 2006 18:59 schreef qu63 het volgende:
[..]
gaan we daar iets leuks op verzinnen
Eerste tip:quote:Op zaterdag 9 december 2006 19:02 schreef qu63 het volgende:
[..]
hoe kan ik die Accept_Language-string nou makkelijk strippen en alleen de nodige info uit halen :?
1 |
ik had deze al:quote:Op zaterdag 9 december 2006 19:30 schreef JeRa het volgende:
[..]
Eerste tip:
[ code verwijderd ]
De tweede tip mag je zelf verzinnen ;)
1 2 3 | preg_match_all('/^([a-zA-Z]{2})/', $al, $matches); echo $matches[0][0]; |
explode op ";" zal ook niet gaan, want dan krijg ik "nl,en-us" terug ipv "nl"quote:Op zaterdag 9 december 2006 19:30 schreef JeRa het volgende:
[..]
Eerste tip:
[ code verwijderd ]
De tweede tip mag je zelf verzinnen
quote:Op zaterdag 9 december 2006 19:42 schreef qu63 het volgende:
[..]
explode op ";" zal ook niet gaan, want dan krijg ik "nl,en-us" terug ipv "nl"
Bron: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.htmlquote:For example,
Accept-Language: da, en-gb;q=0.8, en;q=0.7
would mean: "I prefer Danish, but will accept British English and other types of English."
ik heb er nu dit van gemaakt:quote:Op zaterdag 9 december 2006 19:59 schreef JeRa het volgende:
[..]
[..]
Bron: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
Oftewel, voor stap 2 van mijn plan zou je die string kunnen splitten op een komma, en vervolgens alle elementen aflopen en het eerste dat je kunt serveren gaat gebruiken als taal :)
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 | if (isset($_COOKIE["lang"])) { $lang = $_COOKIE["lang"]; } else { preg_match_all('/^([a-zA-Z]{2})/', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches); switch ($matches[0][0]) { case nl: $lang = nl; setcookie('lang', $lang, mktime(0,0,0,1,1,2008)); break; case en: $lang = en; setcookie('lang', $lang, mktime(0,0,0,1,1,2008)); break; case fr: $lang = fr; setcookie('lang', $lang, mktime(0,0,0,1,1,2008)); break; default: $lang = en; setcookie('lang', $lang, mktime(0,0,0,1,1,2008)); break; } }; ?> |
Wat nou als de eerste opgegeven taal niet op jouw site kan worden weergegeven, maar de tweede of derde wél?quote:Op zaterdag 9 december 2006 20:06 schreef qu63 het volgende:
[..]
ik heb er nu dit van gemaakt:
[ code verwijderd ]
1 2 3 4 5 6 7 | $languages = explode(',', $parts[0]); foreach ($languages as $lang) { // Loop over talen totdat je iets kunt gebruiken } |
ik laat het nu nog even zo staan, eerst moet het werken, daarna pas finetunenquote:Op zaterdag 9 december 2006 20:08 schreef Breuls het volgende:
Centraliseer je setcookie() nog even, dat scheelt code.
quote:Op zaterdag 9 december 2006 20:08 schreef JeRa het volgende:
[..]
Wat nou als de eerste opgegeven taal niet op jouw site kan worden weergegeven, maar de tweede of derde wél?
daar was ik al mee bezig jaquote:Op zaterdag 9 december 2006 20:11 schreef JeRa het volgende:
[..]
Zie mijn edit voor een simpel stukje code waarmee je het (bijna) altijd goed kunt aanpakken
Kijk eens goed naar de quote die ik aanhaal in deze postquote:Op zaterdag 9 december 2006 20:18 schreef qu63 het volgende:
[..]
daar was ik al mee bezig ja
maar dan vind ie dus "nl" maar ook "en"
dan een prio-lijstje ofzo
foreach ($languages as $lang)quote:Op zaterdag 9 december 2006 20:21 schreef JeRa het volgende:
[..]
Kijk eens goed naar de quote die ik aanhaal in deze post
Doe het met een lijstje met talen die je ondersteunt:quote:Op zaterdag 9 december 2006 21:01 schreef qu63 het volgende:
[..]
foreach ($languages as $lang)
{
if($lang == "nl"||"en"||"fr")
}
:?
1 2 3 4 5 6 7 8 9 10 11 | foreach ($languages as $lang) { $lang = substr($lang, 0, 2); if (in_array($lang, $availableLanguages)) { break; // uit de loop } } echo $lang; |
quote:Op zaterdag 9 december 2006 21:13 schreef JeRa het volgende:
[..]
Doe het met een lijstje met talen die je ondersteunt:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $parts = explode(';', $_SERVER['HTTP_ACCEPT_LANGUAGE']); $languages = explode(',', $parts); $availableLanguages = array('en', 'fr', 'nl'); foreach ($languages as $lang) { $lang = substr($lang, 0, 2); if (in_array($lang, $availableLanguages)) { break; // uit de loop } echo $lang; } ?> |
Je hebt mijn (geëditte) code niet helemaal goed overgenomen :)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
1 |
ah!quote:Op zaterdag 9 december 2006 21:33 schreef JeRa het volgende:
[..]
Je hebt mijn (geëditte) code niet helemaal goed overgenomen
[ code verwijderd ]
1 2 3 4 5 6 7 | //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. ?> |
oei, blijkt mijn laatste sprankje stille hoop niet ongegrond. Ergens had ik een vermoeden dath et zoiets zou moeten zijn.quote:Op zondag 10 december 2006 12:48 schreef Breuls het volgende:
Je geeft een string door aan mktime, in plaats van losse parameters.
1 |
Mjah, daar is toch de manual voor. Daar kan naar verwezen worden, dwing je beginners ook nog eens om op php.net te kijkenquote: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?
Ik heb ooit eens een kleine FAQ gemaakt over php, misschien ben je daar wat meequote:Op zondag 10 december 2006 13:40 schreef Breuls het volgende:
Ik zou zeggen, schrijf er een wiki-pagina over.
Mensen die met PHP beginnen en nog nooit op php.net geweest zijn moeten toch wel uberprutsers zijnquote: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
Goeie! Daar staat zo'n beetje in waar ik op doelde.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
![]()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $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); |
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $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>'; } ?> |
1 2 3 4 5 6 7 8 | link 1 CAT NAAM 1 link 2 CAT NAAM 1 link 3 |
1 2 3 4 5 6 7 8 | link 1 link 2 link 3 CAT NAAM 2 link 4 link 5 |
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?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.
Dat komt omdat je $titel éérst vult met de header en daarna controleert of het verschilt met de header. (:?)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.
1 |
1 2 3 4 5 | { $titel = $row['cat_naam']; echo '<h2>etc</h2>'; } |
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 verwijderenquote: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".
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.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 verwijderendus hoe zit het met de permissies van gebruikers op het bestand dat je wilt verwijderen?
Ben ik nou topickiller?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?
Beetje welquote:
Probeer mbv php en move_uploaded_file(), of copy() de file te verplaatsen. Dan krijg ik de errorquote: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
Dat lees ik net op php.net. Weet iemand of je bij Apache misschien het netwerkpath zou moeten instellen? En of dat uberhaupt kan?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.
1 2 3 4 | --------+-----------+-------- 1 | Smaak | 0 2 | Test | 1 |
1 2 3 4 5 6 7 | -----------------+----------------------+------- 1 | Smaakt uw vlees | 1 2 | Smaakt uw koffie | 1 3 | Smaakt uw groente | 1 4 | Testvraag 1 | 2 5 | Testvraag 2 | 2 |
1 2 3 4 5 6 7 8 9 10 11 | ---------------+-------+-----------+------- 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 | |
1 2 3 | SELECT Question, COUNT(Question) as vote FROM Poll_Answers WHERE Poll=".$poll." GROUP BY Question ?> |
1 2 3 | 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 ?> |
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?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?![]()
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 schopquote: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).
Dan ben je erg beperkt met vertalenquote: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.
Nope. Lijkt me ook raar nu de paar beste (en zelfs dan nog matige) oplossingen commerciëel zijnquote:Op donderdag 14 december 2006 10:45 schreef wipes66 het volgende:
Kent iemand toevallig een class die tekst kan vertalen naar duits en engels?
Dit kan vrij simpel omdat je telkens maar één poll opvraagt. Je koppelt de stemmen aan de vragen: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.
1 |
1 |
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 stemquote:-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?
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).quote:-edit2-
Hmz, een aparte score tabel incrementen is ook wel aardig idee
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.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?
Google met de magische keywords: "sql countries"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.
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.
1 |
Ik zie geen fout in de syntax?quote:You have an error in you SQL syntax ... ~ ... syntax to use near 'GROUP BY q.Question' at line 1
1 |
Hier ga ik ook mee aan de slagquote: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).
Ben per ongeluk de ON-clausule vergetenquote:Op donderdag 14 december 2006 16:31 schreef Swetsenegger het volgende:
[..]
Ik zie geen fout in de syntax?
Ik had pagina 4 nog niet gezienquote:Op donderdag 14 december 2006 16:39 schreef JeRa het volgende:
[..]
Ben per ongeluk de ON-clausule vergetenje 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.
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.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 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.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)
Staat de safe_mode wel uit?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.![]()
Ik kreeg het inderdaad niet eenvoudig voor elkaarquote: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.
Als je niet weet hoe het wachtwoord gehashed is houdt het opquote: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
1 2 3 | abad497fb7efcd189dd07cd632a9fc22 ?EDONKEY*[Mendoi_&_Shinsen-Subs]_Inukami_-_20_[6FF95823].avi dca3d6f4ffc59464a48a7a7c3dbd56c6 *[Mendoi_&_Shinsen-Subs]_Inukami_-_20_[6FF95823].avi |
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 | $file=file('het_bestand.txt'); foreach($file as $str) { $hashes[substr($str,strpos($str,'*')+1)]=substr($str,0,strpos($str,' ')); } ?> |
1 2 3 4 5 6 7 8 | $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); ?> |
Als ik me niet vergis gebruikt MySQl 4.1+ SHA1 om te hashen, en laat dat nou ook in PHP mogelijk zijnquote: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.
SHA1 in php geeft 40 karakters. zijn hash was 16 karakters.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 zijnMocht dat niet werken, dan moet toch snel te googlen zijn hoe MySQL hashes maakt. Dat scheelt weer een query met je bovenstaande oplossing.
ke dan , hier ga ik eens naar kijkenquote: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)
Dan is het MySQL < 4.1. Weet niet van buiten welke encryptie die gebruikt.quote:Op zondag 17 december 2006 09:51 schreef Swetsenegger het volgende:
[..]
SHA1 in php geeft 40 karakters. zijn hash was 16 karakters.
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.
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.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
1 2 3 4 | $language = "dutch"; ?> <a href="http://www.go.com/index.php?lang=<?=$language;?>"> |
1 2 3 4 | $language = "dutch"; echo'<a href="http://www.go.com/index.php?lang='.$language.'">'; ?> |
1 2 3 4 | $language = 'dutch'; echo '<a href="'.$link.'?lang='.$language.'">Link</a>'; ?> |
1 |
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.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?
1 2 3 4 5 6 7 8 9 | $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; } ?> |
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?quote:Op vrijdag 22 december 2006 15:14 schreef Swetsenegger het volgende:
Gelukt?
1 2 | <IMG src="<?php echo $image; ?>" border="0"> |
1 |
Ik heb het helemaal voorgekauwd, wat snap je nu niet.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:
Nee, je probeert een functie te echo'enquote:En dit werkt niet:
[ code verwijderd ]
quote:Het gaat uiteindelijk om het keyword dat wordt meegestuurd en niet om de language zoals ik aanvankelijk zei. Dat probleem is anders opgelost..
Er is een nog veel simpeler manier: geef erg onlogische namen aan de pagina's van je gastenboek.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.
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 postquote: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.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.
1 2 3 4 5 6 7 8 9 | $message=strip_tags($_POST['message']); foreach ($verboden as $search) { if(stristr($message,$search)!=FALSE){ header("HTTP/1.0 403 Forbidden"); die(); } } |
Het werkt voor mij.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...
Ja, dus ze accepteren geen cookies of hebben geen referer.quote:Op zaterdag 23 december 2006 23:48 schreef Desdinova het volgende:
hebben spambots geen bepaalde afwijkende user agent?
ik gebruik gewoon een input veld waarin '4' ingevuld moet worden.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
1 |
Zo heb ik al tijden succesvolle anti-spam formule: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.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
Als ik Nederlandse spam krijg zie ik wel weer verderquote: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. Tekstherkenningquote: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 dingen als <a> tags en [url] BB codes gaat blokkeren dan ga je ook heel veel mensen die geen kwaad in de zin hebben verwarren. Gewoon willekeurige woorden of tags gaan verbieden is gewoon not done.quote:Op zondag 24 december 2006 12:10 schreef BlueCurl het volgende:
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...
Dat is natuurlijk gewoon nutteloos en het enige wat je daar aan overhoud is een voor jou, als webmaster zijnde, erg onoverzichtelijke website met programmeertechnisch irritante veldnamen.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.
Dat is dus een Captcha, waar Swetsenegger het ook al over had.quote:Op zondag 24 december 2006 14:31 schreef Tuvai.net het volgende:
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.
Zoals ik reeds aangaf, het is geen oplossing maar een soort van "workaround".quote:Op zondag 24 december 2006 15:03 schreef Tuvai.net het volgende:
[..]
Dat is natuurlijk gewoon nutteloos en het enige wat je daar aan overhoud is een voor jou, als webmaster zijnde, erg onoverzichtelijke website met programmeertechnisch irritante veldnamen.
Heb je ook niks aan. Dat is voor iemand die een spam bot programmeert gewoon een kwestie van het lezen van je veldnaam in je broncode. En dan maakt het natuurlijk geen ruk uit of je veldje 'emailadres' of 'q23rwefyqr' heet.quote:Op maandag 25 december 2006 00:54 schreef beerten het volgende:Iemand ervaring met variabele veldnamen?
is checken op referrer dan niet het handigstquote:Op maandag 25 december 2006 12:48 schreef Tuvai.net het volgende:
Ook niet.Spambots komen niet eerst op jouw site om eerst de invoerveldjes in te vullen om vervolgens op te 'submit' knop te klikken, zoals jij dat als mens zijnde doet.
Meestal zijn ze volledig geautomatiseerd en werken ze middels een ander, eigen formulier, dat dan met z'n eigen submitknopje werkt.
Dat lijkt mij niet en wel om twee redenen:quote:Op maandag 25 december 2006 12:57 schreef qu63 het volgende:
[..]
is checken op referrer dan niet het handigst
Dan zal je wel héél beroerd checken. je checked natuurlijk pas ná de post op de referer.quote:Op maandag 25 december 2006 13:30 schreef zwambtenaar het volgende:
[..]
Dat lijkt mij niet en wel om twee redenen:
1. Spamrobots doen meestal directe post request, waardoor het referrer veld leeg blijft. Als je request met een leeg referrer veld gaat weren, dan sluit je dus ook alle goedwillende bezoekers uit die direct naar je website zijn gekomen (dus niet via een link) en dat wil je natuurlijk absoluut niet.
Dat is een betere reden om niet op een referer te vertrouwen als anti-spam maatregelquote:2. Het referrer veld is zo onbetrouwbaar als de pest. Je hebt er echt niets aan.
Nee, de referal header is hartstikke onbetrouwbaar en valt door mensen/spambots al net zo makkelijk mee te knoeien als men dat tegenwoordig met IP adressen doet.quote:Op maandag 25 december 2006 12:57 schreef qu63 het volgende:
[..]
is checken op referrer dan niet het handigst
Waarom al die moeite als een captcha je probleem oplost?quote:Op maandag 25 december 2006 17:55 schreef beerten het volgende:
Ik heb eens een log bijgehouden en vanalles verzameld qua referer etc. Gastenboek bewust vol laten lopen met spam. Er is wel een tool te schrijven die patronen herkent en op basis daarvan bepaalt of het spam is of niet.
Maar dat zal wel een dure hobby worden qua tijd. Spammers zijn niet achterlijk en er valt wat te verdienen...
Wat geef jij je gemakkelijk gewonnenquote:Op maandag 25 december 2006 20:55 schreef Swetsenegger het volgende:
[..]
Waarom al die moeite als een captcha je probleem oplost?
vaak niet, maar geheel uitgesloten is het nietquote:Op maandag 25 december 2006 21:27 schreef SuperRembo het volgende:
Voeren die spammers eigenlijk ook javascript uit?
1 2 3 | $con = mysql_connect("hostname.com:3306","User","wachtwoord"); ?> |
1 |
als ik start-> uitvoeren->cmdquote:Op woensdag 27 december 2006 02:31 schreef slakkie het volgende:
Kan je via de command line wel naar je server connecten met mysql met die user? Als je dat niet kan lijkt het me dat je die user nog niet hebt aangemaakt binnen mysql.
Al een FLUSH PRIVILEGES gedaan nadat je die user had aangemaakt?quote:Op woensdag 27 december 2006 07:22 schreef mschol het volgende:
[..]
als ik start-> uitvoeren->cmd
telnet 10.0.0.180 3306
doe dan krijg ik het versie nummer van mysql terug en wat garbage
kan alleen niet inloggen omdat hij een handsake wil hebben
en de gebruiker bestaat 100% zeker en heeft voldoende rechten:
[afbeelding]
nee, maar ik ben er volgens mij achter:quote:Op woensdag 27 december 2006 08:11 schreef JeRa het volgende:
[..]
Al een FLUSH PRIVILEGES gedaan nadat je die user had aangemaakt?
Nogmaals, zoals Swetsenegger eerder al aangaf, waarom zo omslachtig en moeilijk liggen doen wanneer een captcha een effectieve én eenvoudige oplossing is? Sowieso zou ik Javascript echt niet gaan gebruiken wanneer het niet echt nodig is, maar goed, dat is gewoon hoe ik in het algemeen over Javascript denk.quote:Op maandag 25 december 2006 22:34 schreef Desdinova het volgende:
@wipes
ik denk met een str_replace("é","e",htmlentities($string));
maar misschien dat je die htmlentities weg kan laten, afhankelijk van je input denk ik
maar nog ff over die forms eh..
als je nou een hidden field neemt met bijv name check. en je voert onderaan je pagina een javascriptje uit waarmee je dat field een waarde geeft van 'confirm'. dit betekent dus dat een spambot die niet op de pagina komt (dus een eigen formulier heeft als ik het goed begrepen heb) ook dit javascriptje niet uitvoert, en op die manier dus niet door de check kan komen?
Ligt d'r aan hoe je 't bekijkt.quote:Op maandag 25 december 2006 21:27 schreef SuperRembo het volgende:
Voeren die spammers eigenlijk ook javascript uit?
Ik doelde meer op mysql -h hostname.com -u user -p vanaf je client naar je server.quote:Op woensdag 27 december 2006 07:22 schreef mschol het volgende:
[..]
als ik start-> uitvoeren->cmd
telnet 10.0.0.180 3306
doe dan krijg ik het versie nummer van mysql terug en wat garbage
kan alleen niet inloggen omdat hij een handsake wil hebben
een captcha is hinderlijk voor de user. hidden geeft als voordeel dat de user er totaal geen last van heeft. en de spambot zou zijn formulier dan met een exacte waarde moeten aanpassen op jouw site. en met een ander scriptje kan je dan weer dagelijks die waarde laten veranderen waardoor een succesvolle spambot dagelijks geupdate moet worden om het te kunnen omzeilen.quote:Op woensdag 27 december 2006 08:54 schreef Tuvai.net het volgende:
[..]
Nogmaals, zoals Swetsenegger eerder al aangaf, waarom zo omslachtig en moeilijk liggen doen wanneer een captcha een effectieve én eenvoudige oplossing is? Sowieso zou ik Javascript echt niet gaan gebruiken wanneer het niet echt nodig is, maar goed, dat is gewoon hoe ik in het algemeen over Javascript denk.
Sowieso zou je oplossing niet werken daar je gewoon met een <input> werkt, of die nou hidden is of niet. Dan zou het gewoon voor het spambot 'formuliertje' een kwestie zijn om deze input zelf in te stellen.
Als ik zie dat afgelopen maand 129 mensen de moeite hebben genomen om op mijn website een captcha in te vullen om te kunnen stemmen op een paar polletjes denk ik dat dat wel meevalt.quote:Op woensdag 27 december 2006 20:50 schreef Desdinova het volgende:
[..]
een captcha is hinderlijk voor de user.
Slecht leesbaar is om die OCR bots op het verkeerde been te zetten, maar ik ben met je eens dat die captcha's die je 3 keer in moet tikken omdat je het blijkbaar verkeerd ontcijferd had langzamerhand het doel voorbij schieten.quote:Op woensdag 27 december 2006 22:47 schreef Desdinova het volgende:
ik vind ze hinderlijk.
helemaal als ze slecht leesbaar zijn en ook nog eens hoofdlettergevoelig.
niet langzamerhand, zodra je em 1x mis kan tikken schiet het z'n doel voorbij imho...quote:Op woensdag 27 december 2006 22:51 schreef Swetsenegger het volgende:
[..]
Slecht leesbaar is om die OCR bots op het verkeerde been te zetten, maar ik ben met je eens dat die captcha's die je 3 keer in moet tikken omdat je het blijkbaar verkeerd ontcijferd had langzamerhand het doel voorbij schieten.
Dat langzamerhand slaat op spamcontrol in het algemeen.quote:Op woensdag 27 december 2006 23:16 schreef mschol het volgende:
[..]
niet langzamerhand, zodra je em 1x mis kan tikken schiet het z'n doel voorbij imho...
Feit is wel dat spamcontrol nodig is. Anders blijf je berichten aan het verwijderen.quote:Op woensdag 27 december 2006 23:28 schreef Swetsenegger het volgende:
[..]
Dat langzamerhand slaat op spamcontrol in het algemeen.
Vertel mij wat. zelfs op mijn fucking weblogje waar geen hond naar keek.quote:Op donderdag 28 december 2006 01:16 schreef Light het volgende:
[..]
Feit is wel dat spamcontrol nodig is. Anders blijf je berichten aan het verwijderen.
Ongeveer net als mijn weblogje dus. In een voorzichtige schatting komt nog steeds op bijna 95% van de reacties op spam uit.quote:Op donderdag 28 december 2006 01:19 schreef Swetsenegger het volgende:
[..]
Vertel mij wat. zelfs op mijn fucking weblogje waar geen hond naar keek.
Ik heb 50K records moeten wissen...
Het is voor mij veel 'hinderlijker' om elke dag duizenden spamberichtjes te verwijderen dan even 5 nummertjes/lettertjes over te tikken als ik toch al in het betreffende formuliertje bezig ben, effe tabben en overtikken dus.quote:Op woensdag 27 december 2006 20:50 schreef Desdinova het volgende:
[..]
een captcha is hinderlijk voor de user.
Jij bent geen gewone gebruiker. Je bent webmaster en hebt begrip voor die captcha's. De "gewone" gebruiker ervaart dit anders.quote:Op donderdag 28 december 2006 15:17 schreef Tuvai.net het volgende:
[..]
Het is voor mij veel 'hinderlijker' om elke dag duizenden spamberichtjes te verwijderen dan even 5 nummertjes/lettertjes over te tikken als ik toch al in het betreffende formuliertje bezig ben, effe tabben en overtikken dus.
Doet er niet toe. Ik zie gewoon niet de 'hinder' in het overtikken van een paar karakters die ergens afgebeeld staan. Wel vind ik dat je als webmaster een linkje er bij moet zetten waar uitleg staat waarom ze die code over moeten tikken.quote:Op donderdag 28 december 2006 19:34 schreef beerten het volgende:
[..]
Jij bent geen gewone gebruiker. Je bent webmaster en hebt begrip voor die captcha's. De "gewone" gebruiker ervaart dit anders.
En wat als ik, als doodnormale gebruiker, in jouw gastenboekje wil posten "Hoi Bart, gave site! Check die van mij ook eens op http://www.site.com!".quote:Op donderdag 28 december 2006 21:15 schreef Bartje71 het volgende:
De meest simpele en effectieve methode die voor mij werkt is gewoon elke post waar in 1 van de velden "http://" staat te weigeren. Spammers willen immers URL's plaatsen, anders hebben ze niks aan het gespam. Ik pas dit op verschillende plekken toe, en heb totaal geen last meer van spambots
Sta je een url überhaupt niet toe? Of laat je de link achterwege? Dus geen <a href=""></a>?quote:Op donderdag 28 december 2006 21:36 schreef Bartje71 het volgende:
Dat is inderdaad een keuze. Maar op de meeste sites wil ik gewoon geen URL's om spam tegen te gaan... niet van bots en niet van mensen die hun site proberen te pluggen.
dan zou je ook kunnen zeggen dat je hem met css gewoon een display: none geeftquote:Op vrijdag 29 december 2006 00:41 schreef joolee het volgende:
@beerten: ik denk dat hij urls gewoon helemaal niet toestaat
Ik heb zelf geen last van het probleem omdat ik geen anonieme dingen toelaat op mijn site(s).
Als ik dat wel zou hebben zou mijn oplossing zijn om via css een veld (met logische naam) een paar honderd duizend pixels naast het venster te zetten en wanneer er toch iets in dat veld is ingevoerdgewoon de post te blocken
Onzin, de gewone gebruiker wordt dagelijks geconfronteerd met spammail. Daar naast is hij allang bekend met captcha's. Ik denk dat de gemiddelde gebruiker het pas als hinderlijk ervaart wanener die captcha praktisch onleesbaar wordt.quote:Op donderdag 28 december 2006 19:34 schreef beerten het volgende:
[..]
Jij bent geen gewone gebruiker. Je bent webmaster en hebt begrip voor die captcha's. De "gewone" gebruiker ervaart dit anders.
quote:Op vrijdag 29 december 2006 13:05 schreef wobbel het volgende:
Hallo medefokkers,
Ik ben zoals altijd weer aan het prutsen met wat PHP, maar ik zit nu met het gedoe dat ik 2 formulieren uit elkaar wil houden.
In de HTML staan 2 formulieren (<form name="bier"> en <form name="tieten">), beide met als doel verwerk_formulier.php. Is het dan mogelijk om die 2 formulieren uit elkaar te houden? bijv. if ( $_POST['formnaam'] } else { andere form ?
Naja, en anders maak ik wel 2 php files...maar ik wil het niet zo vol hebben o pde server
Of een hidden input type gebruiken om de forms uit elkaar te houden, of de submit buttons een naam geven.quote:Op vrijdag 29 december 2006 13:31 schreef slakkie het volgende:
[PHP] 2 formulieren uit elkaar houde
[..]
voor ecommerce zijn er plug ins te vinden.quote:Op vrijdag 29 december 2006 12:58 schreef Chandler het volgende:
En hoe werkt dat iDeal eingelijk? kon er namelijk geen scripts ed voor vinden
Ik heb een tabel klanten, produkten, bestellingen en een tabel bestelling_content.quote:Op vrijdag 29 december 2006 12:12 schreef Chandler het volgende:
Mensen,
Hoe werkt een webshop eingelijk? want voor mijn vriendin ben ik er reeds 1tje aan het maken maar kwam vandaag tot de ontdekking dat het toch best een heel karwei is!
Nu wil ik graag hoe een webshop het doet na de bestelling, want produkten in een database is niet echt heel moeilijk te realiseren (heb ik al) maar hoe gaat het na het moment dat de klant de produkten besteld!? wat voor manieren hebben jullie gebruikt en wat raden jullie mij aan?
Zelf heb ik nu uitgedokterd dat de produkten (in dit geval is er maar is er voor ieder produkt maar 1) gewoon op 0 in het systeem (database) komen te staan. En dan verbind ik een code aan al deze artikelen dmv een link tabel (id, code, klant_id, produkt_id) er kunnen dus ook meerdere produkten met dezelfde code in de database staan.
Hoe lossen jullie dit op?
Ben ik helemaal met je eens. Het was maar een idee...quote:Op vrijdag 29 december 2006 16:25 schreef Tuvai.net het volgende:
Er zijn duizenden kant en klare webshops, applicaties en modules, niet alleen van de hostingprovider (ALS deze ze überhaubt heeft), maar ook van sites als HotScripts en PHPFreakz. Toch maak ik alle scripts liever 100% zelf zodat ik én helemaal bekend ben met de broncode, én er geen overbodige poespas aan vast zit én de boel volledig zonder problemen in de betreffende website kan integreren.
Kant en klare applicaties komen meestal ook met 23423423 miljoen functies waar toch geen haan naar kraait en alleen onnodig plaats in beslag neemt. Bovendien kun je, als je zelf je software maakt, deze volledig tot in de details naar wens van je klant aanpassen.
hoe integeer ik dat in een query dan?quote:
Dat gewoon met MySQL functies, en die vind je in de manual.quote:Op zaterdag 30 december 2006 11:44 schreef Desdinova het volgende:
[..]
hoe integeer ik dat in een query dan?
1 2 3 | FROM mytable WHERE Month(From_Unixtime(mytimestamp)) = 11 |
Let in dat geval op dat wanneer je een hoop records hebt, je zo elk veld van de timestampkolom in de tabel door twee functies jaagt en vergelijkt. Op dat veld een index leggen heeft geen positieve invloed op de performance. Je kunt er wel voor kiezen om de maand in een aparte kolom op te slaan, of een RDBMS te kiezen die indices kan leggen op expressiesquote:Op zaterdag 30 december 2006 12:39 schreef SuperRembo het volgende:
[..]
Dat gewoon met MySQL functies, en die vind je in de manual.
[ code verwijderd ]
1 |
Maar dan met een BETWEEN natuurlijkquote:Op zaterdag 30 december 2006 14:18 schreef Tuvai.net het volgende:
Andere oplossing is dan natuurlijk door middel van mktime() de timestamp het begin en het eind van de betreffende maand te calculeren, en die vervolgens gebruiken in je query:
[ code verwijderd ]
Een index op het datumveld creëren is sowieso aan te raden ja.
quote:Op zaterdag 30 december 2006 14:38 schreef SuperRembo het volgende:
[..]
Maar dan met een BETWEEN natuurlijk
Behalve dat dat er semantisch beter uitziet wordt die operator herschreven naar wat Tuvai.net schreef en ben je dus feitelijk in performance erop achteruit gegaanquote:Op zaterdag 30 december 2006 14:38 schreef SuperRembo het volgende:
[..]
Maar dan met een BETWEEN natuurlijk
Ik ben geen expert op het gebied van MySQL performance tuning, dus ik kan er naast zitten, maar het zou wel heel slecht zijn als een between langzamer is dan twee losse vergelijkingen.quote:Op zaterdag 30 december 2006 14:45 schreef JeRa het volgende:
[..]
Behalve dat dat er semantisch beter uitziet wordt die operator herschreven naar wat Tuvai.net schreef en ben je dus feitelijk in performance erop achteruit gegaan
Een BETWEEN bestaat toch ook uit twee losse vergelijkingen? Voor jou niet natuurlijk, maar voor de query parser/planner wél. Daarom herschrijft de DBMS dit naar de vorm die Tuvai.net beschreefquote:Op zaterdag 30 december 2006 15:46 schreef SuperRembo het volgende:
[..]
Ik ben geen expert op het gebied van MySQL performance tuning, dus ik kan er naast zitten, maar het zou wel heel slecht zijn als een between langzamer is dan twee losse vergelijkingen.
Het zijn wel 2 vergelijkingen, maar wel 2 maal met hetzelfde argument. Een between zou dus sneller kunnen/moeten zijnd an 2 losse vergelijkingen. Het kan best zijn dat MySQL daar geen performance winst uit weet te halen, maar het zou moeten kunnen.quote:Op zaterdag 30 december 2006 15:53 schreef JeRa het volgende:
[..]
Een BETWEEN bestaat toch ook uit twee losse vergelijkingen? Voor jou niet natuurlijk, maar voor de query parser/planner wél. Daarom herschrijft de DBMS dit naar de vorm die Tuvai.net beschreefen dit herschrijven kost tijd.
als ik een spambot zou maken is dat het eerste waar ik op laat controleren. dat valt zeer simpel te doen.quote:Op vrijdag 29 december 2006 09:44 schreef Desdinova het volgende:
[..]
dan zou je ook kunnen zeggen dat je hem met css gewoon een display: none geeft
er zijn genoeg gebruikers die cookies blokkeren en een slimme spambot stuurt gewoon ook een cookie meequote:maar je zou toch ook een session kunnen aanmaken op het formfield, of een cookie, wat je vervolgens weer kan checken op de post-pagina? of heeft dat haken en ogen?
als je FireFox gebruikt kan dit ookquote:Op zaterdag 30 december 2006 19:32 schreef Piles het volgende:
Even een kort vraagje: is het met PHP mogelijk om afbeeldingen te (laten) kopieren van een andere website.
Dat je bijvoorbeeld http://www.google.nl/intl/nl_nl/images/logo.gif ingeeft, en dat die dan gekopieerd word naar je eigen server / harde schijf (als ie lokaal draait)
Niet met kwade bedoelingen trouwens, maar ik moet sommige Paint-topics gewoon zelf hebben![]()
quote:Op zaterdag 30 december 2006 19:48 schreef qu63 het volgende:
[..]
als je FireFox gebruikt kan dit ook
quote:Op zondag 31 december 2006 11:25 schreef schwa78 het volgende:
Ik wil voor een website de URL's wat geschikter maken voor zoekmachines, net als dat op de meeste nieuwssites en weblogs ook gebeurd.
Bijvoorbeeld http://www.domein.nl/4237/seo-vriendelijke-urls-maken/
ipv http://www.domein.nl/pagina.php?id=4237
Het enige wat ik nu nog moet is de titel van een artikel omzetten naar iets wat ik in een url kan zetten. De vreemde tekens moeten er dus uit en de spaties moeten omgezet worden in streepjes.
Wie weet welke PHP functies ik daar het beste voor kan gebruiken? En welke tekens mogen er precies in een url voorkomen?
quote:Op zondag 31 december 2006 11:35 schreef Johnns het volgende:
je kan hier mod_rewrite rules voor gebruiken.
hier geven ze wel een duidelijke uitleg van het hele gebeuren.
quote:Op zondag 31 december 2006 11:44 schreef schwa78 het volgende:
Thanks voor de link. Maar op zich had ik deze informatie al.
Ik ben eigenlijk op zoek naar PHP functies die ervoor zorgt dat alle crap uit een titel verwijderd en er een nette titel van maakt die toegestaan is in een URL.
str_replace()quote:Op zondag 31 december 2006 12:47 schreef HuHu het volgende:
Volgens mij bedoeld hij meer zoiets als op Tweakers:
Bericht-titel: Firefox-devver is ontstemd over 'pluggen' Google-producten
URL: http://tweakers.net/nieuw(...)oogle-producten.html
De spaties zijn dus vervangen door - en de ' zijn eruit gestript. Verder worden dingen als é vervangen door e.
Maar ik weer niet of daar een standaard functie voor is?
1 2 3 4 5 6 7 | $txt = "Héllo Çårmëñ, hôw àré yõü?"; $txt = htmlentities($txt); $txt = preg_replace('`&(.)(tilde|circ|grave|acute|uml|ring|cedil);`', '$1', $txt); $txt = str_replace(' ', '-', $txt); echo($txt); ?> |
Nee want hij is case sensitivequote:Op zondag 31 december 2006 13:49 schreef HuHu het volgende:
[ code verwijderd ]
Levert op: Hello-Carmen,-how-are-you?
Hoe bedoel je? Ik heb de code hierboven getest en het resultaat hier geplakt.quote:Op zondag 31 december 2006 14:17 schreef Swetsenegger het volgende:
[..]
Nee want hij is case sensitive
Das wel een leuk stukje code moet ik zeggenquote:Op zondag 31 december 2006 13:49 schreef HuHu het volgende:
[ code verwijderd ]
Levert op: Hello-Carmen,-how-are-you?
Met dank aan Google, Expert-Exchange, Roonaan en mijzelf.quote:Op zondag 31 december 2006 18:08 schreef fokME2 het volgende:
[..]
Das wel een leuk stukje code moet ik zeggen![]()
dan wens ik een ieder veel gevloek, getier, en vooral veel scriptplezier toe!quote:Op maandag 1 januari 2007 00:31 schreef Swetsenegger het volgende:
In een ooit door mij gestarte topicsreeks moet ik even gelukkig nieuwjaar wensen natuurlijk.
Veel php plezier in 2007!
Ook de beste wensen voor jou en ET, Swetsquote:Op maandag 1 januari 2007 00:31 schreef Swetsenegger het volgende:
In een ooit door mij gestarte topicsreeks moet ik even gelukkig nieuwjaar wensen natuurlijk.
Veel php plezier in 2007!
Naar ik aanneem heb je gekeken in het bewuste bestand, op de bewuste regel, welk bestand ge-include wordt?quote:Op zondag 31 december 2006 20:45 schreef mvc het volgende:
....
Open Basedir heeft niets te maken met andere host. Waarschijnlijk staat het bestand op dezelfde host maar in een map waaruit je volgens de instellingen niet mag includen.quote:Op maandag 1 januari 2007 02:34 schreef beerten het volgende:
[..]
Naar ik aanneem heb je gekeken in het bewuste bestand, op de bewuste regel, welk bestand ge-include wordt?
Het script wil een bestand invoegen, naar ik vermoed van een externe website. De servergeconfiguratie staat dit niet toe. Open Basedit restrictie.
Dank voor de aanvullingquote:Op maandag 1 januari 2007 02:43 schreef Light het volgende:
[..]
Open Basedir heeft niets te maken met andere host. Waarschijnlijk staat het bestand op dezelfde host maar in een map waaruit je volgens de instellingen niet mag includen.
Zelfde!quote:Op maandag 1 januari 2007 00:31 schreef Swetsenegger het volgende:
In een ooit door mij gestarte topicsreeks moet ik even gelukkig nieuwjaar wensen natuurlijk.
Veel php plezier in 2007!
Wel opletten met alle entities die je niet met die regex opvangt, die zijn nu namelijk geconverteerdquote:Op zondag 31 december 2006 13:49 schreef HuHu het volgende:
[ code verwijderd ]
Levert op: Hello-Carmen,-how-are-you?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |