FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - Deel 35
Swetseneggermaandag 27 november 2006 @ 17:06

cd niet bijgeleverd

Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt

Vorige delen
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

Zie ook
  • PHP Dataverwerking
  • Officiële PHP website
  • PHP Documentatie
  • MySQL Reference Manual
  • Yet Another PHP Faq
  • PHP Cheat Sheet
  • PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc

    Tutorials
  • W3Schools PHP
  • W3Schools SQL

    Deze OP en instructies voor nieuw topic: http://wiki.fok.nl/index.php/OP/PHP
  • Darkomenmaandag 27 november 2006 @ 18:49
    Waarom gaan de php topics zo snel dicht? 7 pagina's dat is toch niks!
    Edit: weer wat geleerd over fok
    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/


    [ Bericht 4% gewijzigd door Darkomen op 28-11-2006 11:22:11 ]
    papernotemaandag 27 november 2006 @ 19:05
    Alle topics gaan op 300 posts automatisch dicht.
    fokME2maandag 27 november 2006 @ 19:11
    quote:
    Op maandag 27 november 2006 19:05 schreef papernote het volgende:
    Alle topics gaan op 300 posts automatisch dicht.
    Grappg hè?
    wonderermaandag 27 november 2006 @ 22:36
    Mijn host klaagt steeds over "persistant connections". Heeft iemand een goede tut om mijn database/php werk wat fijner te maken voor een server? Waar moet ik op letten? Alvast bedankt.
    RiderXXXmaandag 27 november 2006 @ 23:31
    wonderer: na alle mysql acties de verbinding sluiten, lijkt mij wel voldoende
    quote:
    Op vrijdag 24 november 2006 13:48 schreef ralfie het volgende:

    [..]

    even ter voorbeeld:
    [ code verwijderd ]

    Tis echt niet zo moeilijk
    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:

    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>


    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..

    [ Bericht 65% gewijzigd door RiderXXX op 28-11-2006 00:01:32 ]
    super-muffindinsdag 28 november 2006 @ 00:02
    Ik ben opzoek naar een script waar mee ik bepaalde HTML code kan omzetten in ASCII tekens.
    voorbeeld:
    1
    2
    3
    invoer : <input type="text" name="naam" />

    uitvoer : <input type="text" name="naam" />


    Ik snap nog geen reet van dat eregi en preg_replace. Daar heb ik al mee gevochten maar het lukt me niet.


    edit-
    ik zie dat het hier mis gaat, maar ik wil dus dat bv < word vervangen door & lt; en > door & gt;
    RiderXXXdinsdag 28 november 2006 @ 00:23
    htmlspecialchars()?
    http://nl3.php.net/manual/en/function.htmlspecialchars.php


    - edit: en nu het hier toch over gaat.. ik wil dit precies andersom: ik heb een database, met een inhoud een met html ingevoerde code voor een nieuwsbrief-systeem. Maar in de database komt dat met al die codes eruit..

    Ik wil dat men die nieuwsbrief terug kan lezen op internet.. maar hoe zet ik die code weer om zodat het een html pagina wordt?

    heb het al

    [ Bericht 47% gewijzigd door RiderXXX op 28-11-2006 01:08:24 ]
    wondererdinsdag 28 november 2006 @ 00:53
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    function runquery($query,$dblink)
    {
    global
    $myDB;
    $result=mysql_db_query($myDB,$query,$dblink);
    return
    $result;
    mysql_close($dblink);
    }
    ?>


    Mijn code... staat die mysql_close soms op de verkeerde plek?
    ralfiedinsdag 28 november 2006 @ 09:47
    @wonderer: de functie kapt met de return statement, mysql_close() wordt dus niet uitgevoerd
    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..
    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)' oid
    papernotedinsdag 28 november 2006 @ 09:50
    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..
    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.
    Qunixdinsdag 28 november 2006 @ 14:54
    Kan iemand mij met het volgende helpen?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $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>";
    ?>

    ...werkt niet.

    Ik geef een map op. Ik split die in verschillende lagen. En ik wil een stuk weer opsplitsen zodat de naam, de eerste letter een hoofdletter wordt. Ik dacht om zo ongeveer het op te lossen maar ik krijg een foutmelding. Nu wil ik graag weten hoe het wel moet of hoe jij het zou gedaan hebben.

    Alvast bedankt! :)
    papernotedinsdag 28 november 2006 @ 15:01
    Welke foutmelding krijg je?
    ViPeRIIdinsdag 28 november 2006 @ 15:01
    Ik heb zoiets hier. Misschien dat je wat aan de code hebt.
    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
    <?php 

    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"; 

    ?> 


    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")
    Qunixdinsdag 28 november 2006 @ 15:08
    quote:
    Op dinsdag 28 november 2006 15:01 schreef papernote het volgende:
    Welke foutmelding krijg je?
    Fatal error: Call to undefined function: expolde()
    quote:
    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")
    Ik zal eens ff bestuderen
    Zo geweldig php-en kan ik niet
    Iig bedankt.
    GIdinsdag 28 november 2006 @ 15:10
    quote:
    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.
    expolde
    ViPeRIIdinsdag 28 november 2006 @ 15:10
    moet explode zijn niet expolde. Misschien dat het daar aan lag bij jezelf?
    Qunixdinsdag 28 november 2006 @ 15:11
    quote:
    Op dinsdag 28 november 2006 15:10 schreef GI het volgende:

    [..]

    expolde
    Vertel eens hoe het wel moet dan?
    Qunixdinsdag 28 november 2006 @ 15:12
    OMG

    Ik had het wel goed dus...
    Ik zag hem niet


    Thanks.
    CraZaaydinsdag 28 november 2006 @ 22:40
    quote:
    Op dinsdag 28 november 2006 15:12 schreef Qunix het volgende:
    Ik had het wel goed dus...
    Ik zag hem niet
    Error logging toch eens aanzetten?
    Swetseneggerdinsdag 28 november 2006 @ 22:43
    quote:
    Op dinsdag 28 november 2006 22:40 schreef CraZaay het volgende:

    [..]

    Error logging toch eens aanzetten?
    de foutmelding deed het prima hoor.
    De_Hertogwoensdag 29 november 2006 @ 00:16
    Kun je op een of andere manier inlezen welke variabelen gepost worden? Dus niet wat de waarde is, maar welke je meekrijgt. Ik heb namelijk een tabel met resultaten die ik uit MySQL haal, en voor die tabel plaats ik een reeks checkboxen die ieder als naam het nummer van de betreffende regel hebben. Volgens deze site wordt alleen de waarde van gecheckte boxen meegegeven. Maar hoe kan ik uitlezen welke boxen gechekt zijn, dus: welk nummer gechekt is?
    GIwoensdag 29 november 2006 @ 07:30
    print_r($_POST);
    De checkboxen die aanstaan zie je daar in terugkomen
    Desdinovawoensdag 29 november 2006 @ 12:12
    of print_r($_GET); als je een get-method gebruikt. En om ze beiden te pakken doe je print_r($_REQUEST);
    Chandlerwoensdag 29 november 2006 @ 12:53
    TVP, altijd fijn om mee te lezen
    RiderXXXdonderdag 30 november 2006 @ 01:32
    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.
    Nee, dag staat als INT. De query is nu als volgt:

    1$result=mysql_query("SELECT id,dag,artist,titel,label,MONTHNAME(datum) as maand,YEAR(datum) as jaar FROM albumreleases ORDER BY DATE(datum) DESC") or die(mysql_error());


    Maar als ik DESC in ASC verander, dan geldt dat ook voor de maand. Dus dan komt de laatste maand onderaan. En ik wil dat juist bovenaan.

    ----

    Stiekem tegelijk nog een vraagje. Ik heb een programma dat een output van een gehele playlist geeft in .txt-formaat. Een voorbeeld van de inhoud:

    1
    2
    3
    4
    Danity Kane - Show Stoppin (4:12)
    Danity Kane - Touching My Body (Remix) Ft. T (2:18)
    Danny Fernandes - Curious (Dj Rado Remix) (4:17)
    Darin - Move (3:42)


    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?

    Alvast bedankt voor de hulp de laatste tijd!

    [ Bericht 33% gewijzigd door RiderXXX op 30-11-2006 02:41:12 ]
    wipes66vrijdag 1 december 2006 @ 00:02
    quote:
    { "Africa/Kinshasa" , 0x0011F8 },
    { "Africa/Lagos" , 0x001230 },
    { "Africa/Libreville" , 0x001279 },
    { "Africa/Lome" , 0x0012C2 },
    { "Africa/Luanda" , 0x0012FA },
    { "Africa/Lubumbashi" , 0x001343 },
    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.
    wipes66vrijdag 1 december 2006 @ 00:05
    laat maar het is dus de offset waarde in hexadecimaal.
    wipes66vrijdag 1 december 2006 @ 00:15
    Weet iemand hoe ik de offset waarde moet berekenen?

    Bv: "Europe/Amsterdam" = 0x025ADC
    En 0x025ADC is dan 1393458
    Maar wat is 1393458
    Cageonvrijdag 1 december 2006 @ 00:20
    quote:
    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 gok dat je een signed integer als unsigned integer aan het bekijken bent

    [edit] hmm het komt uit de source van PHP,
    A.) de source-code (C)
    of;
    B.) PHP-code?

    In geval A ben ik hier redelijk zeker van.
    wipes66vrijdag 1 december 2006 @ 00:30
    het komt uit de source-code (timezonedb.h). maar de vraag is, hoe maak ik er secondes van?
    Cageonvrijdag 1 december 2006 @ 00:39
    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?
    Ik denk niet dat je het op die manier kan/wil gebruiken zijn daar geen andere mogelijkheden voor?
    Dat lijkt me uitermate sterk.

    is dit niet iets wat je zou kunnen gebruiken:

    date_default_timezone_get
    Of de *_set
    wipes66vrijdag 1 december 2006 @ 00:57
    wat ik zoek is timezone_identifiers_list, maar die is niet beschikbaar voor mij.
    CraZaayvrijdag 1 december 2006 @ 01:50
    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?
    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).
    Xtr3mEzaterdag 2 december 2006 @ 12:13
    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?
    Swetseneggerzaterdag 2 december 2006 @ 13:13
    je zou misshcien wat met een sessie kunnen doen
    SuperRembozaterdag 2 december 2006 @ 13:44
    Kan je dan niet beter een GET request gebruiken?
    Swetseneggerzaterdag 2 december 2006 @ 13:45
    quote:
    Op zaterdag 2 december 2006 13:44 schreef SuperRembo het volgende:
    Kan je dan niet beter een GET request gebruiken?
    Dan heb je geen last van vedrlopen POSTs inderdaad
    ralfiezondag 3 december 2006 @ 11:07
    Ik heb hier iets waar ik even niet uitkom, en hoop dat iemand my hierbij kan helpen.

    Ben bezig met een systeem waar gebruikers (hier alleen met een id) films kunnen waarderen. Iedere gebruiker kan de film 1-5 sterren geven (en maar éénmalig per film stemmen).

    Ik heb de volgende tabellen:

    De tabel 'films' houdt bij welke film hoevel waarderingen heeft gehad, en welke totale waardering heeft
    De tabel 'voters' houdt bij wie (gebruikers-id) welke fim gewaardeerd heeft. In het bovenstaande plaatje hebben dus 3 verschillende users 2 films gewaardeerd.

    Nu wil ik graag met 1 query erachter komen, van een rits films, wat hun waardering is, dit doe ik dmv:
    1
    2
    3
    <?php
    $query
    ="SELECT film_id, film_name, avg_vote FROM films ORDER BY avg_vote LIMIT BY $start, $stop"
    ?>


    Nu zou ik graag in dezelfde query willen bepalen welke films een bepaalde gebruiker wel of niet al gewaardeerd heeft, iets uitvoeren in de trand van

    als er een rij bestaat waar voter=$gebruikers_id AND film_id=$film_id return TRUE; (gebruiker heeft al gestemd op deze film). Ik had gedacht aan iets van

    1
    2
    3
    4
    5
    6
    <?php
    $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
    ?>

    Maar dan in liefst 1 query (en niet in 21 als de eerste query 20 films vind). Ik kan natuurlijk ook een query maken waarbij ik bepaal welke films de huidige gebruiker al heeft gewaardeerd en deze vergelijken met de gevonden films van de eerste query, maar dat lijkt me nog erg omslachtig.

    Iemand een idee? Of kan ik beter een heel ander systeem gebruiken?
    papernotezondag 3 december 2006 @ 11:21
    Je kan met deze query de voters ophalen:

    SELECT * FROM voters WHERE film_id=$film_id

    En dan vervolgens voor alle $userid kijken of er een rij met dat ID in het resultaat zit. Dat doe je dan in PHP.
    Intrepidityzondag 3 december 2006 @ 11:27
    Ten eerste zou ik me afvragen of je num_votes en avg_vote wel op zou nemen in je film-tabel.. Die gegevens zijn ook makkelijk te berekenen als je ze nodig hebt en de kans op inconsistentie is zo aardig groot..
    Je eigenlijke vraag..
    SELECT film_id, film_name, avg_vote FROM films WHERE film_id IN (SELECT film_id FROM voters WHERE voter='gebruikersid')

    met IN maak je een subquery. Oftewel, je wilt dat de teruggegeven film_id's voorkomen in het resultaat van de query tussen de haken.

    SELECT film_id, film_name, avg_vote FROM films JOIN voters ON voters.film_id = films.film_id WHERE voters.voter = 'gebruikers-id'

    Ook zo krijg je alleen films van een bepaalde gebruiker terug, maar dan door middel van een join. Welke manier je gebruikt maakt opzich niet zoveel uit, maar een join vind ik wat eleganter.
    Is dit wat je bedoelde?
    SuperRembozondag 3 december 2006 @ 11:35
    Je gebruikt een outer join om te kijken of er een bijbehorende regel in de tabel voters bestaat. Als voters.film_id NULL is, dan bestaat die regel niet en heeft de gebruiker dus nog niet gestemd.

    1
    2
    3
    4
    5
    6
    SELECT f.film_id, f.film_name, f.avg_vote, 
       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


    Het kan ook met een subquery als je systeem dat ondersteunt. Ik weet alleen hoe het met de snelheid van zo'n query zit met MySQL (in vergelijking tot de versie met outer join).
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT f.film_id, f.film_name, f.avg_vote, 
       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
    ralfiezondag 3 december 2006 @ 11:49
    @SuperRembo: Ik heb beide methoden getest en bij mij is de tweede methode het snelste (niet gestest met grote tabellen, maar toch). Aangezien ik deze ook beter snap ga ik voorlopig voor de tweede methode.

    Bedankt voor de suggesties allemaal
    fatezondag 3 december 2006 @ 19:42
    quote:
    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?
    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.
    Cageonzondag 3 december 2006 @ 20:07
    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 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. )
    fatezondag 3 december 2006 @ 20:12
    quote:
    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. )
    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.
    SuperRembozondag 3 december 2006 @ 20:18
    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.
    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.
    Als je een POST gebruikt, dan krijg je altijd een page expired als je op back drukt. Of je nou een sessie gebruikt of niet.
    Cageonzondag 3 december 2006 @ 20:21
    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.
    Mijn punt was dat wat jij meld eigenlijk no issue is. Mja je hoeft minder vaak te controleren of je data wel/niet valide is.
    Buiten dat is het niet bepaald insecure.
    Aangezien je toch data kan versturen in je formulier.
    Chandlermaandag 4 december 2006 @ 11:20
    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 bouwen maar 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...
    Swetseneggermaandag 4 december 2006 @ 13:22
    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 bouwen maar 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...
    gewoon IP info uit de http header halen?
    Niet waterdicht, maar afdoende voor 99%
    Chandlermaandag 4 december 2006 @ 14:06
    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...
    Swetseneggermaandag 4 december 2006 @ 14:23
    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...
    Waarom?
    Je geeft de link download.php waarop je controleert of het IP geldig is, zoja -> downloaden (header), zo nee -> die
    Chandlermaandag 4 december 2006 @ 17:09
    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
    Swetseneggermaandag 4 december 2006 @ 17:14
    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
    Dan zet je hem als BLOB in een database tabel
    Dat doe ik hier bijvoorbeeld.
    Links bij downloads
    SuperRembomaandag 4 december 2006 @ 17:30
    quote:
    Op maandag 4 december 2006 11:20 schreef Chandler het volgende:
    bv. httaccess.. maar daar heb ik geen kaas van gegeten.
    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.
    Er zijn zat tooltjes voor: Google zoeken naar 'htaccess generator', maar moeilijk is het ook niet als je duidelijke uitleg hebt.

    [ Bericht 14% gewijzigd door SuperRembo op 04-12-2006 17:53:30 ]
    CraZaaymaandag 4 december 2006 @ 18:22
    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
    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'.
    Chandlermaandag 4 december 2006 @ 19:41
    -edit-

    probleem oplost door kleinere bestanden

    [ Bericht 96% gewijzigd door Chandler op 04-12-2006 22:51:42 ]
    Goldfish80dinsdag 5 december 2006 @ 19:25
    Met dit script wordt alleen het bericht zelf verzonden.
    Hoe krijg ik het voor elkaar om bijv. totel en link ook te versturen?

    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
    <?php
        
    // 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($message1024);
        

        
        
    // SEND THE EMAIL TO YOU
        
    mail($recipient$subject$message$headers);

        
    // REDIRECT TO THE THANKS PAGE
        
    header("location: http://www.site.eu");
    ?>
    papernotedinsdag 5 december 2006 @ 19:43
    Door de variabele $titel bijvoorbeeld op te nemen in het subject of de message.
    Chandlerdinsdag 5 december 2006 @ 21:42
    moet zeggen dat ik het script nogal vaag vind maar goed....
    papernotewoensdag 6 december 2006 @ 09:09
    quote:
    Op dinsdag 5 december 2006 21:42 schreef Chandler het volgende:
    moet zeggen dat ik het script nogal vaag vind maar goed....
    Waarschijnlijk ook omdat FOK! alle \ weglaat en iets als dit:

    1
    2
    3
    <?php
    if (eregi("r",$email) || eregi("n",$email))
    ?>


    dus nergens meer op slaat.
    Chandlerwoensdag 6 december 2006 @ 09:17
    Niet alleen dat, maar ook dat er maar automatisch vanuit gegaan wordt dat variabelen bestaan...
    Goldfish80woensdag 6 december 2006 @ 15:44
    quote:
    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...
    die variabelen bestaan ook
    Goldfish80woensdag 6 december 2006 @ 15:48
    Ok, het is allemaal gelukt.


    1
    2
    3
    4
    5
    6
    <?php
    $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";
    ?>


    Maar hoe krijg ik nu de titel vetgedrukt?
    <b></b> dat werkt niet, want dat zie je dan in de mail staan

    [ Bericht 53% gewijzigd door Goldfish80 op 06-12-2006 16:30:40 ]
    papernotewoensdag 6 december 2006 @ 16:47
    Als je opmaak wilt, dan moet je de mail als HTML verzenden. Dat gaat niet zomaar.

    Wellicht is het een goed idee als je de klasse PHPMailer gaat gebruiken. Die vereenvoudigd allerlei zaken.
    Goldfish80woensdag 6 december 2006 @ 17:59
    Ok bedankt!
    Swetseneggerwoensdag 6 december 2006 @ 18:13
    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
    <?php
    $headers  
    = "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
    ?>
    JeRadonderdag 7 december 2006 @ 00:46
    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?
    Swetseneggerdonderdag 7 december 2006 @ 07:44
    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?
    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
    Swetseneggerdonderdag 7 december 2006 @ 07:53
    volgens mij bedoel je wat anders
    JeRadonderdag 7 december 2006 @ 16:21
    quote:
    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
    Klopt alhoewel 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?
    mvcvrijdag 8 december 2006 @ 21:23
    Beste fokkers, ik heb thuis een servertje draaien, waarop ik een webpagina draai voor privé doeleinden. Deze webpagina heb ik met de volgende .htaccess afgeschermd:

    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
    order deny,allow

    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


    Deze .htaccess zorgt ervoor dat alleen toegang wordt verleend aan de mensen met het ip adres wat in de .htaccess file staat. Mensen die niet in de lijst staan krijgen een login scherm te zien.

    Nu wil ik graag het volgende in mijn web pagina integreren, wanneer bijv. Kees met ip adres 62.195.19.--- op de website komt, wil ik graag dat er komt te staan 'Hallo Kees welkom op de website' Wie kan mij uitleggen hoe ik zoiets in elkaar zet, waarschijnlijk moet ik de ipadressen in een Mysql database integreren ?
    fatevrijdag 8 december 2006 @ 21:39
    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.
    Swetseneggervrijdag 8 december 2006 @ 21:41
    quote:
    Op donderdag 7 december 2006 16:21 schreef JeRa het volgende:

    [..]

    Klopt alhoewel 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?
    Hmz, ik ben wel erg geinteresseerd moet ik je zeggen. Ik ga het eens installeren
    Maar dan moet er ook iets inzitten om events af te handelen.
    mvcvrijdag 8 december 2006 @ 22:51
    quote:
    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.
    Oké, zou je hier misschien een voorbeeld van kunnen geven ? ik heb hier namelijk zeer weinig kaas van gegeten
    Swetseneggervrijdag 8 december 2006 @ 22:54
    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
    <?php
    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");
      }
    }
    ?>
    mvczaterdag 9 december 2006 @ 14:48
    Swetsenegger bedannkt voor je reactie, ik heb je even een PM gestuurd i.v.m. de integratie van dit script.
    qu63zaterdag 9 december 2006 @ 17:50
    iemand enig idee hoe ik dmv php de juiste taal voor mn website kan pakken? (NL/FR/EN)
    JeRazaterdag 9 december 2006 @ 18:06
    quote:
    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)
    Je zou kunnen kijken naar de Accept-* headers die veel browsers naar de webserver sturen
    qu63zaterdag 9 december 2006 @ 18:13
    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 :)
    die?
    1
    2
    3
    <?php
    echo $_SERVER['HTTP_ACCEPT_LANGUAGE'];
    ?>


    output:
    1nl,en-us;q=0.7,en;q=0.31165705200
    JeRazaterdag 9 december 2006 @ 18:26
    quote:
    Op zaterdag 9 december 2006 18:13 schreef qu63 het volgende:

    [..]

    die?
    [ code verwijderd ]

    output:
    [ code verwijderd ]
    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
    qu63zaterdag 9 december 2006 @ 18:52
    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
    Standaard taal is Engels, als de gebruiker Nederlands of Frans ingesteld heeft wordt het die taal, anders Engels.

    En dan nog wel 3 knopjes om de taal handmatig te wijzigen, en dat op te slaan in een cookie.

    Of kan ik dan beter via JavaScript de taal detecteren en opslaan
    JeRazaterdag 9 december 2006 @ 18:55
    quote:
    Op zaterdag 9 december 2006 18:52 schreef qu63 het volgende:

    [..]

    Of kan ik dan beter via JavaScript de taal detecteren en opslaan
    Zou ik niet doen, de volgorde van detecteren zoals ik die aangaf zal denk ik wel voldoen aan je wensen. In PHP dus.
    qu63zaterdag 9 december 2006 @ 18:59
    quote:
    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.
    gaan we daar iets leuks op verzinnen
    qu63zaterdag 9 december 2006 @ 19:02
    quote:
    Op zaterdag 9 december 2006 18:59 schreef qu63 het volgende:

    [..]

    gaan we daar iets leuks op verzinnen
    hoe kan ik die Accept_Language-string nou makkelijk strippen en alleen de nodige info uit halen
    JeRazaterdag 9 december 2006 @ 19:30
    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 :?
    Eerste tip:
    1$parts = explode(';', $_SERVER['HTTP_ACCEPT_LANGUAGE']);

    De tweede tip mag je zelf verzinnen ;)
    qu63zaterdag 9 december 2006 @ 19:37
    quote:
    Op zaterdag 9 december 2006 19:30 schreef JeRa het volgende:

    [..]

    Eerste tip:

    [ code verwijderd ]
    De tweede tip mag je zelf verzinnen ;)
    ik had deze al:
    1
    2
    3
    $al = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
    preg_match_all('/^([a-zA-Z]{2})/', $al, $matches);
    echo $matches[0][0];
    :')
    qu63zaterdag 9 december 2006 @ 19:42
    quote:
    Op zaterdag 9 december 2006 19:30 schreef JeRa het volgende:

    [..]

    Eerste tip:

    [ code verwijderd ]
    De tweede tip mag je zelf verzinnen
    explode op ";" zal ook niet gaan, want dan krijg ik "nl,en-us" terug ipv "nl"
    JeRazaterdag 9 december 2006 @ 19:59
    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"
    quote:
    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."
    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
    qu63zaterdag 9 december 2006 @ 20:06
    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 :)
    ik heb er nu dit van gemaakt:
    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
    <?php
    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;
    }
    };
    ?>
    Breulszaterdag 9 december 2006 @ 20:08
    Centraliseer je setcookie() nog even, dat scheelt code.
    JeRazaterdag 9 december 2006 @ 20:08
    quote:
    Op zaterdag 9 december 2006 20:06 schreef qu63 het volgende:

    [..]

    ik heb er nu dit van gemaakt:
    [ code verwijderd ]
    Wat nou als de eerste opgegeven taal niet op jouw site kan worden weergegeven, maar de tweede of derde wél?

    edit: voorbeeldje

    1
    2
    3
    4
    5
    6
    7
    $parts = explode(';', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    $languages = explode(',', $parts[0]);

    foreach ($languages as $lang)
    {
        // Loop over talen totdat je iets kunt gebruiken
    }
    qu63zaterdag 9 december 2006 @ 20:10
    quote:
    Op zaterdag 9 december 2006 20:08 schreef Breuls het volgende:
    Centraliseer je setcookie() nog even, dat scheelt code.
    ik laat het nu nog even zo staan, eerst moet het werken, daarna pas finetunen

    anders snap ik er straks zelf geen hout van
    qu63zaterdag 9 december 2006 @ 20:10
    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?


    dan hebben ze pech
    JeRazaterdag 9 december 2006 @ 20:11
    quote:
    Op zaterdag 9 december 2006 20:10 schreef qu63 het volgende:

    [..]



    dan hebben ze pech
    Zie mijn edit voor een simpel stukje code waarmee je het (bijna) altijd goed kunt aanpakken
    qu63zaterdag 9 december 2006 @ 20:18
    quote:
    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
    daar was ik al mee bezig ja

    maar dan vind ie dus "nl" maar ook "en"

    dan een prio-lijstje ofzo
    JeRazaterdag 9 december 2006 @ 20:21
    quote:
    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
    Kijk eens goed naar de quote die ik aanhaal in deze post
    qu63zaterdag 9 december 2006 @ 21:01
    quote:
    Op zaterdag 9 december 2006 20:21 schreef JeRa het volgende:

    [..]

    Kijk eens goed naar de quote die ik aanhaal in deze post
    foreach ($languages as $lang)
    {
    if($lang == "nl"||"en"||"fr")
    }


    JeRazaterdag 9 december 2006 @ 21:13
    quote:
    Op zaterdag 9 december 2006 21:01 schreef qu63 het volgende:

    [..]

    foreach ($languages as $lang)
    {
    if($lang == "nl"||"en"||"fr")
    }


    :?
    Doe het met een lijstje met talen die je ondersteunt:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $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;
    qu63zaterdag 9 december 2006 @ 21:23
    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
    <?php
    $parts 
    explode(';'$_SERVER['HTTP_ACCEPT_LANGUAGE']);
    $languages explode(','$parts);
    $availableLanguages = array('en''fr''nl');
    foreach (
    $languages as $lang)
    {
        
    $lang substr($lang02);
        if (
    in_array($lang$availableLanguages))
        {
            break; 
    // uit de loop
        
    }
    echo 
    $lang;
    }
    ?>


    dit geeft als output alleen maar "Ar"..

    ik snap niet waar ie fout gaat
    Breulszaterdag 9 december 2006 @ 21:24
    $parts is een array, maar je behandelt 'm als string.
    JeRazaterdag 9 december 2006 @ 21:33
    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]);
    qu63zaterdag 9 december 2006 @ 21:37
    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!
    beertenzondag 10 december 2006 @ 12:44
    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.
    ?>
    Breulszondag 10 december 2006 @ 12:48
    Je geeft een string door aan mktime, in plaats van losse parameters.
    beertenzondag 10 december 2006 @ 12:51
    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?
    Breulszondag 10 december 2006 @ 12:55
    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.
    beertenzondag 10 december 2006 @ 13:03
    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!
    CraZaayzondag 10 december 2006 @ 13:21
    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?
    Breulszondag 10 december 2006 @ 13:40
    Ik zou zeggen, schrijf er een wiki-pagina over.
    Swetseneggerzondag 10 december 2006 @ 13:51
    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
    beertenzondag 10 december 2006 @ 14:06


    [ Bericht 100% gewijzigd door beerten op 10-12-2006 14:07:13 ]
    fatezondag 10 december 2006 @ 14:52
    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
    CraZaayzondag 10 december 2006 @ 23:07
    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 ]
    Darkomenmaandag 11 december 2006 @ 23:33
    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?
    CraZaaymaandag 11 december 2006 @ 23:46
    Recursie is a bitch
    Bartje71dinsdag 12 december 2006 @ 00:33
    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)
    Darkomendinsdag 12 december 2006 @ 08:49
    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 ]
    CraZaaydinsdag 12 december 2006 @ 09:35
    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.
    Darkomendinsdag 12 december 2006 @ 09:48
    klopt heb je helemaal gelijk in, had het in de 'remake' al veranderd
    super-muffindinsdag 12 december 2006 @ 10:50
    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
    JeRadinsdag 12 december 2006 @ 11:08
    @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
    super-muffindinsdag 12 december 2006 @ 11:25
    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.
    JeRadinsdag 12 december 2006 @ 12:00
    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?
    super-muffindinsdag 12 december 2006 @ 12:18
    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.
    JeRadinsdag 12 december 2006 @ 12:31
    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>';
    }


    :)
    super-muffindinsdag 12 december 2006 @ 13:10
    uh ja dat was niet echt logisch

    maar thnx, zo werkt het. Nu ga ik verder stoeien
    papernotedinsdag 12 december 2006 @ 15:23
    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?
    JeRadinsdag 12 december 2006 @ 15:31
    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?
    papernotedinsdag 12 december 2006 @ 15:51
    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.
    papernotedinsdag 12 december 2006 @ 15:59
    Hmm... het verwijderen heb ik opgelost door een fclose() voor de unlink() te zetten. Vergeten .
    JeRadinsdag 12 december 2006 @ 16:01
    -edit: al opgelost
    fokME2dinsdag 12 december 2006 @ 17:06
    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?
    fokME2woensdag 13 december 2006 @ 19:44
    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?
    JeRawoensdag 13 december 2006 @ 20:19
    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
    fokME2woensdag 13 december 2006 @ 21:01
    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
    Swetseneggerwoensdag 13 december 2006 @ 23:22
    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 :() ]
    slakkiewoensdag 13 december 2006 @ 23:53
    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.
    JeRadonderdag 14 december 2006 @ 08:27
    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?
    JeRadonderdag 14 december 2006 @ 08:38
    @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).
    wipes66donderdag 14 december 2006 @ 10:45
    Kent iemand toevallig een class die tekst kan vertalen naar duits en engels?
    ViPeRIIdonderdag 14 december 2006 @ 10:48
    Lol dat is nooit een class. Dat is een lijst met woorden die vertaalt worden.
    Swetseneggerdonderdag 14 december 2006 @ 11:05
    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
    JeRadonderdag 14 december 2006 @ 11:23
    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
    JeRadonderdag 14 december 2006 @ 11:31
    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).
    FuifDuifdonderdag 14 december 2006 @ 11:50
    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.
    super-muffindonderdag 14 december 2006 @ 12:31
    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.
    JeRadonderdag 14 december 2006 @ 12:33
    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"
    super-muffindonderdag 14 december 2006 @ 12:39
    lol bedankt
    (ik zocht op te moeilijke keywords, daarom kon ik het niet vinden)
    Swetseneggerdonderdag 14 december 2006 @ 16:31
    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 ]
    JeRadonderdag 14 december 2006 @ 16:39
    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.
    Swetseneggerdonderdag 14 december 2006 @ 17:23
    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.
    Swetseneggerdonderdag 14 december 2006 @ 17:33
    kan ik in dezelfde query nog een totaal aantal stemmen frotten. Scheelt me een query (hoewel ik me afvraag of het perfomrance scheelt)
    fokME2donderdag 14 december 2006 @ 20:44
    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.
    JeRadonderdag 14 december 2006 @ 21:14
    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.
    JeRadonderdag 14 december 2006 @ 21:15
    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?
    Swetseneggerdonderdag 14 december 2006 @ 22:35
    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
    Xevorvrijdag 15 december 2006 @ 16:37
    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.
    Swetseneggervrijdag 15 december 2006 @ 16:42
    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.
    Xevorvrijdag 15 december 2006 @ 16:49
    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
    Swetseneggervrijdag 15 december 2006 @ 17:18
    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
    Xevorvrijdag 15 december 2006 @ 17:28
    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);
    Xevorvrijdag 15 december 2006 @ 17:36
    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.
    fokME2vrijdag 15 december 2006 @ 18:32
    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
    mscholzaterdag 16 december 2006 @ 10:14
    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 )
    Desdinovazaterdag 16 december 2006 @ 13:46
    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
    ralfiezaterdag 16 december 2006 @ 20:13
    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 ]
    CraZaayzondag 17 december 2006 @ 09:22
    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.
    Swetseneggerzondag 17 december 2006 @ 09:51
    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.
    mscholzondag 17 december 2006 @ 09:53
    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
    CraZaayzondag 17 december 2006 @ 16:42
    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.
    JeRazondag 17 december 2006 @ 16:58
    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.
    markiemarkvrijdag 22 december 2006 @ 13:50
    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">
    Swetseneggervrijdag 22 december 2006 @ 13:55
    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.'">';
    ?>
    markiemarkvrijdag 22 december 2006 @ 13:56
    Eeuhmm ja maar de link staat in de database..
    fatevrijdag 22 december 2006 @ 14:00
    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>';
    ?>
    markiemarkvrijdag 22 december 2006 @ 14:05
    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?
    fatevrijdag 22 december 2006 @ 14:09
    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.
    Swetseneggervrijdag 22 december 2006 @ 14:13
    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;
    }
    ?>
    Swetseneggervrijdag 22 december 2006 @ 15:14
    Gelukt?
    markiemarkvrijdag 22 december 2006 @ 17:24
    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..
    Swetseneggervrijdag 22 december 2006 @ 17:27
    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?
    markiemarkvrijdag 22 december 2006 @ 17:48
    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..
    markiemarkvrijdag 22 december 2006 @ 17:54
    HEEL dom foutje van mij... Het werkt nu!
    @Swets: Bedankt voor de moeite!!
    BlueCurlzaterdag 23 december 2006 @ 19:53
    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.
    beertenzaterdag 23 december 2006 @ 20:19
    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.
    BlueCurlzaterdag 23 december 2006 @ 20:38
    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
    Cageonzaterdag 23 december 2006 @ 21:13
    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...
    Swetseneggerzaterdag 23 december 2006 @ 21:19
    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 ]
    beertenzaterdag 23 december 2006 @ 22:24
    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.
    Desdinovazaterdag 23 december 2006 @ 23:48
    hebben spambots geen bepaalde afwijkende user agent?
    Swetseneggerzondag 24 december 2006 @ 00:00
    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
    qu63zondag 24 december 2006 @ 00:05
    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
    fokME2zondag 24 december 2006 @ 03:01
    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?

    Swetseneggerzondag 24 december 2006 @ 09:59
    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.
    BlueCurlzondag 24 december 2006 @ 12:10
    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...
    qu63zondag 24 december 2006 @ 12:56
    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'?
    Chandlerzondag 24 december 2006 @ 13:08
    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
    beertenzondag 24 december 2006 @ 14:29
    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
    Tuvai.netzondag 24 december 2006 @ 14:31
    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.
    Tuvai.netzondag 24 december 2006 @ 14:38
    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...
    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.
    Tuvai.netzondag 24 december 2006 @ 15:03
    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 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.
    SuperRembomaandag 25 december 2006 @ 00:16
    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.
    Dat is dus een Captcha, waar Swetsenegger het ook al over had.
    beertenmaandag 25 december 2006 @ 00:54
    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.
    Zoals ik reeds aangaf, het is geen oplossing maar een soort van "workaround".

    Iemand ervaring met variabele veldnamen?
    Tuvai.netmaandag 25 december 2006 @ 01:08
    quote:
    Op maandag 25 december 2006 00:54 schreef beerten het volgende:Iemand ervaring met variabele 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.
    Desdinovamaandag 25 december 2006 @ 11:18
    en een input type=button met een onclick='javascript:document.formname.submit();'?
    Tuvai.netmaandag 25 december 2006 @ 12:48
    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.
    qu63maandag 25 december 2006 @ 12:57
    quote:
    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.
    is checken op referrer dan niet het handigst
    zwambtenaarmaandag 25 december 2006 @ 13:30
    quote:
    Op maandag 25 december 2006 12:57 schreef qu63 het volgende:

    [..]

    is checken op referrer dan niet het handigst
    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.
    2. Het referrer veld is zo onbetrouwbaar als de pest. Je hebt er echt niets aan.
    Swetseneggermaandag 25 december 2006 @ 13:35
    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.
    Dan zal je wel héél beroerd checken. je checked natuurlijk pas ná de post op de referer.
    quote:
    2. Het referrer veld is zo onbetrouwbaar als de pest. Je hebt er echt niets aan.
    Dat is een betere reden om niet op een referer te vertrouwen als anti-spam maatregel
    Tuvai.netmaandag 25 december 2006 @ 13:47
    quote:
    Op maandag 25 december 2006 12:57 schreef qu63 het volgende:

    [..]

    is checken op referrer dan niet het handigst
    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.
    Desdinovamaandag 25 december 2006 @ 16:39
    spambots hebben ook geen sessies neem ik aan?
    beertenmaandag 25 december 2006 @ 17:55
    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...
    Swetseneggermaandag 25 december 2006 @ 20:55
    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...
    Waarom al die moeite als een captcha je probleem oplost?
    beertenmaandag 25 december 2006 @ 21:21
    quote:
    Op maandag 25 december 2006 20:55 schreef Swetsenegger het volgende:

    [..]

    Waarom al die moeite als een captcha je probleem oplost?
    Wat geef jij je gemakkelijk gewonnen

    Op zich zou het niet eens zo heel moeilijk moeten zijn hoor. Ik ben er niet mee verder gegaan omdat ik niet zo'n ster ben met regex. Het enige dat die spammerts willen is links / urls plaatsen in je gastenboek. En die vertonen voldoende gelijkenissen om een touw aan vast te knopen. In combinatie met andere opgevangen waarden. Uiteraard is niet één link hetzelfde, maar een patroon zit er wel in. Hetzelfde idee als een spam filter in een mailbox.
    Hoe meer gelijkenis met een spammert,hoe meer punten je aan een post-onderdeel of $_SERVER[''] variabele toekent. Overschrijdt het een waarde is het spam.

    Hét grote voordeel van een goede captcha is dat het 100% waterdicht is en relatief simpel. Maar het blijft irritant. Ik zie nu al captcha's verschijnen die voor mensen nauwelijks leesbaar zijn.

    Wat er gezegd werd over variabele veldnamen, dat klinkt nog niet 100% logisch in min oren.
    Spambots gebruiken inderdaad eigen formulieren die ze posten. Als je variabele veldnamen gebruikt, welke je van je invulformulier doorgeeft aan je formhandler middels een array in sessies of zoiets, hoe kan een spambot dan overweg met je formhandler? Immers, het kent de veldnamen niet.
    En als de formhandler uitsluitend input accepteert van je invulformulier, hoe gaat een spambot hier dan mee om? Is overigens een serieuze vraag, geen betweterigheid dat dit zo zou zijn. Ik vraag het me gewoon af.
    SuperRembomaandag 25 december 2006 @ 21:27
    Voeren die spammers eigenlijk ook javascript uit?
    wipes66maandag 25 december 2006 @ 21:44
    quote:
    Op maandag 25 december 2006 21:27 schreef SuperRembo het volgende:
    Voeren die spammers eigenlijk ook javascript uit?
    vaak niet, maar geheel uitgesloten is het niet

    Ik heb ook nog een vraagje: weet iemand hoe ik speciale tekens zoals 'è' kan vervangen met een 'e' ?
    Desdinovamaandag 25 december 2006 @ 22:34
    @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?
    mscholdinsdag 26 december 2006 @ 23:51
    minivraagje:

    ik gebruik de volgende syntax:
    1
    2
    3
    <?php
    $con
    = mysql_connect("hostname.com:3306","User","wachtwoord");
    ?>


    en krijg de volgende melding:
    1Warning: mysql_connect(): Access denied for user: 'user@anderehost.com' (Using password: YES) in d:\www\ffmpeg\test.php on line 42


    om de een of andere reden wil hij me op de verkeerde server aanmelden?

    als ik bij host iets als dit in vul:
    //hostname.com:3306
    krijg ik deze melding:
    Warning: mysql_connect(): Unknown MySQL Server Host '//hostname.com' (11004) in d:\www\ffmpeg\test.php on line 42

    Wie o Wie kan mij helpen om dit op te lossen?

    ik probeer van mijn hoofd pc te verbinden naar mijn server (deze staat lokaal in hetzelfde netwerk)
    en onder windows kan ik em gewoon benaderen via \\server

    ow en een IP adres + poort heeft ook geen zin, evenals alleen IP adres of hostname...
    slakkiewoensdag 27 december 2006 @ 02:31
    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.
    mscholwoensdag 27 december 2006 @ 07:22
    quote:
    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.
    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:
    http://home.mschol.eu/fok/mysql.jpg

    hmmm als ik dreamweaver wil laten connecten naar de mysql server krijg ik van dreamweaver een unindenitfied error terug..
    d'r is dus iets niet lekker met mysql server...

    [ Bericht 7% gewijzigd door mschol op 27-12-2006 08:27:48 ]
    JeRawoensdag 27 december 2006 @ 08:11
    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]
    Al een FLUSH PRIVILEGES gedaan nadat je die user had aangemaakt?
    mscholwoensdag 27 december 2006 @ 08:27
    quote:
    Op woensdag 27 december 2006 08:11 schreef JeRa het volgende:

    [..]

    Al een FLUSH PRIVILEGES gedaan nadat je die user had aangemaakt?
    nee, maar ik ben er volgens mij achter:
    ik heb op me webhosting een php file met daarin een mysql_connect gedaan met username en wachtwoord en die werkte..
    vervolgens gekopieerd naar me andere lokale bestand, die deed het vervolgens ook...
    ben ik gaan vergelijken:
    blijkt dat ik zat te werken met een verkeerd wachtwoord

    was dus niet echt wakker

    overigens weigert dreamweaver te connecten, maar dat zal ook iets simpels zijn..

    [ Bericht 7% gewijzigd door mschol op 27-12-2006 08:34:11 ]
    Tuvai.netwoensdag 27 december 2006 @ 08:54
    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?
    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.
    Tuvai.netwoensdag 27 december 2006 @ 08:57
    quote:
    Op maandag 25 december 2006 21:27 schreef SuperRembo het volgende:
    Voeren die spammers eigenlijk ook javascript uit?
    Ligt d'r aan hoe je 't bekijkt. Stel je hebt een pagina waar je formuliertje op staat, en waar ook een hoop JS op te vinden is, dan zou de spambot deze JS activeren als deze de pagina zou bezoeken. Meestal doen ze dat echter niet en gaan ze meteen voor de (_POST) procedure die jij voor je formulier hebt, dus dan komen ze niet voorbij de daadwerkelijke pagina.
    slakkiewoensdag 27 december 2006 @ 11:17
    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
    Ik doelde meer op mysql -h hostname.com -u user -p vanaf je client naar je server.

    Mmm. ik zie dat je de user ELKE wilt laten inloggen, met passwd, maar die heeft er geen. Denk dat daar je probleem ook zit.
    -edit: dat gaf je ook aan, ik ben ook nog niet wakker-
    Desdinovawoensdag 27 december 2006 @ 20:50
    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.
    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.

    ik vind het een methode, en ik zie momenteel niet in hoe het niet zou kunnen werken. tenzij je geen javascript hebt ingeschakeld, maar das debiel.
    Swetseneggerwoensdag 27 december 2006 @ 22:17
    quote:
    Op woensdag 27 december 2006 20:50 schreef Desdinova het volgende:

    [..]

    een captcha is hinderlijk voor de user.
    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.

    Maar zolang de useragent geen javascript kan uitvoeren zal je plan waterdicht zijn. Alleen denk ik dat wanneer een spambot verregaand OCR technieken beheerst, het uitvoeren van wat clientside scripting ook geen probleem zal zijn.
    Desdinovawoensdag 27 december 2006 @ 22:47
    ik vind ze hinderlijk.

    helemaal als ze slecht leesbaar zijn en ook nog eens hoofdlettergevoelig.
    Swetseneggerwoensdag 27 december 2006 @ 22:51
    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.
    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.
    mscholwoensdag 27 december 2006 @ 23:16
    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.
    niet langzamerhand, zodra je em 1x mis kan tikken schiet het z'n doel voorbij imho...
    Swetseneggerwoensdag 27 december 2006 @ 23:28
    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...
    Dat langzamerhand slaat op spamcontrol in het algemeen.
    Lightdonderdag 28 december 2006 @ 01:16
    quote:
    Op woensdag 27 december 2006 23:28 schreef Swetsenegger het volgende:

    [..]

    Dat langzamerhand slaat op spamcontrol in het algemeen.
    Feit is wel dat spamcontrol nodig is. Anders blijf je berichten aan het verwijderen.
    Swetseneggerdonderdag 28 december 2006 @ 01:19
    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.
    Vertel mij wat. zelfs op mijn fucking weblogje waar geen hond naar keek.
    Ik heb 50K records moeten wissen...
    (ik stuurde mezelf een 'nieuw bericht' mailtje, maar die stond nog op een mail adres wat niet meer bestond.) En de spammers submitte op een bericht id wat niet getoont werd, dus het hele nut van hun spam ontging me.

    Maar goed...
    Lightdonderdag 28 december 2006 @ 01:23
    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...
    Ongeveer net als mijn weblogje dus. In een voorzichtige schatting komt nog steeds op bijna 95% van de reacties op spam uit.
    Tuvai.netdonderdag 28 december 2006 @ 15:17
    quote:
    Op woensdag 27 december 2006 20:50 schreef Desdinova het volgende:

    [..]

    een captcha is hinderlijk voor de user.
    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.
    beertendonderdag 28 december 2006 @ 19:34
    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.
    Jij bent geen gewone gebruiker. Je bent webmaster en hebt begrip voor die captcha's. De "gewone" gebruiker ervaart dit anders.
    Tuvai.netdonderdag 28 december 2006 @ 19:37
    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.
    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.
    Bartje71donderdag 28 december 2006 @ 21:15
    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
    Tuvai.netdonderdag 28 december 2006 @ 21:16
    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
    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!".
    Bartje71donderdag 28 december 2006 @ 21:36
    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.
    beertenvrijdag 29 december 2006 @ 00:25
    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.
    Sta je een url überhaupt niet toe? Of laat je de link achterwege? Dus geen <a href=""></a>?
    jooleevrijdag 29 december 2006 @ 00:41
    @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
    Bartje71vrijdag 29 december 2006 @ 08:44
    Ik sta inderdaad helemaal geen URL's (en ook geen html) toe. Maar het hangt een beetje van je toepassing af of dat bruikbaar is.
    Desdinovavrijdag 29 december 2006 @ 09:44
    quote:
    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
    dan zou je ook kunnen zeggen dat je hem met css gewoon een display: none geeft

    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?
    Tuvai.netvrijdag 29 december 2006 @ 11:23
    Ik krijg de laatste paar dagen ineens weer (pogingen tot) spam in mijn gastenboekjes. Ik gebruik zelf een captcha waarvan de code in een soort van handschrift-font word weergeven en waarvan de startwaarde z'n x en y assen random zijn. Ik krijg dan vaak één spamberichtje wat dan gewoon door mijn captcha heenkomt, vervolgens krijg ik de dagen/uren daarna op gastenboek.php een hoop GET en POST requests met spam, maar met diezelfde captcha code die natuurlijk dan niet goed meer is.

    Misschien een echte persoon die 't altijd eerst effe uitprobeert?
    Chandlervrijdag 29 december 2006 @ 12:12
    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?
    Tuvai.netvrijdag 29 december 2006 @ 12:16
    Elk product sowieso een uniek ID geven in de producten-tabel van de database, en een 'aantal' veldje per product.

    Meeste van m'n klanten willen dat de webshops die ik voor hun bouw zo werken, dat wanneer iemand iets besteld, ze dat kunnen zien in een aparte 'Bestellingen' pagina in het Admin Panel. Voor bestellingen dus ook een aparte tabel in de database. Vaak willen ze dat dan gecombineerd met een mail systeempje zodat ze naderhand de totaalprijs plus de bijbehorende portokosten kunnen mailen door enkel deze bedragen in te voeren. Je kunt natuurlijk ook nog andere betaalmogelijkheden er aan vast hangen zoals Paypal en iDeal.

    Vaak werk ik overigens ook met het 3 stappenplan:
    1) Email validatie. Klant plaatst bestelling en vult daarbij natuurlijk z'n gegevens in. Er word vervolgens een mail gestuurd naar het ingevulde adres met een linkje waar de klant zijn email adres kan verifiëren.
    2) Betalingsvalidatie. Klant moet natuurlijk betalen. Wanneer de eigenaar/webmaster dit bedrag ontvangen heeft, gaan we naar stapje 3.
    3) Verzenden van product.
    Chandlervrijdag 29 december 2006 @ 12:21
    Correct, natuurlijk heeft ieder produkt zijn eigen ID, echter heeft deze webshop van ieder artikel maar 1 stuk...

    Ik heb nu 2 tabellen.

    1. klanten (gegevens van de klant)
    2. klanten_bestellingen (link naar produkten + code van de bestelling)

    doe jij het ook zo?


    best pittig hoor, een webshop bouwen
    Tuvai.netvrijdag 29 december 2006 @ 12:23
    Ik heb meestal een tabel 'bestellingen'. Pas wanneer de klant de bestelling doet gaat er een record naar deze tabel waar de bestelling en de gegevens van de klant in staan. Een aparte tabel voor klanten heb ik alleen bij de webshops waar klanten bijvoorbeeld een vast account kunnen registreren.
    Swetseneggervrijdag 29 december 2006 @ 12:44
    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.
    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.
    Chandlervrijdag 29 december 2006 @ 12:58
    En hoe werkt dat iDeal eingelijk? kon er namelijk geen scripts ed voor vinden
    Tuvai.netvrijdag 29 december 2006 @ 13:02
    iDeal werkt via de aangesloten banken. Als je zeg maar SNS bank hebt, en je geeft op een webshop aan dat je via SNS bank wilt betalen, dan word je doorgestuurd naar de site van SNS waar je middels je digipas/pincode direct kunt betalen. In tegenstelling tot Paypal waar je een eigen formuliertje met een gebruikersID hebt.
    slakkievrijdag 29 december 2006 @ 13:31
    [PHP] 2 formulieren uit elkaar houde
    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
    Tuvai.netvrijdag 29 december 2006 @ 13:33
    quote:
    Of een hidden input type gebruiken om de forms uit elkaar te houden, of de submit buttons een naam geven.
    Swetseneggervrijdag 29 december 2006 @ 13:41
    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
    voor ecommerce zijn er plug ins te vinden.

    Maar het ligt ook nog eens aan het abonnement. Je hebt ideal basic en ideal advanced. Advanced is via een secured connectie waarbij je ook direkt zeker weet dat de klant betaald hebt. Bij basic moet je hashed in een bepaalde volgorde de bestelling doorsturen en krijg je uiteindelijk van ideal een status xml terug. Hierbij heb je nog de verplichting om zelf via het ideal dashboard te controleren of de betaling gelukt is.

    Ik vond de implementatie van ideal basic door het ontbreken van duidelijke documentatie niet eenvoudig. Ik heb zelf het script voor de hashing enzo geschreven en dat werkt allemaal prima. Je kan natuurlijk ook gewoon een betaalboer in de arm nemen. Hoewel ja dan waarschijnlijk ook een hashing van de bestelling moet maken.
    Swetseneggervrijdag 29 december 2006 @ 13:45
    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?
    Ik heb een tabel klanten, produkten, bestellingen en een tabel bestelling_content.
    tabel bestelling knoopt klant aan ordernummer (meerdere bestellingen per klant mogelijk) en tabel bestelling_content knoopt ordernummer aan produkten. (meerdere produkten per order nummer mogelijk).

    Zo heb ik een webshop bij een klant staan die afgelopen jaar anderhalve ton omzet gedraaid heeft.
    Desdinovavrijdag 29 december 2006 @ 14:51
    ik heb een kolom met timestamp, en nu wil ik dat ik alle rijen selecteer waar de maand in die timestamp bijvoorbeeld 11 is, maar ik kan neeergens vinden hoe dat moet

    kan iemand me hiermee helpen?
    Tuvai.netvrijdag 29 december 2006 @ 15:39
    mktime()
    beertenvrijdag 29 december 2006 @ 16:11
    Meneer met de webshop: is het wellicht niet handiger dat je een kant en klaar pakket installeert? Daarnaast valt me op, als ik het mag zeggen, dat je vrolijk aan het scripten bent en gaande weg pas echt nadenkt over hoe het zou moeten werken. Of zie ik het helemaal verkeerd? Hoeveel artikelen, heb je terugkerende klanten waarvan je de gegevens opslaat? Is IDeal nodig? CreditCard, of is een mailtje met betalingsgegevens ook voldoende? Hoeveel klanten verwacht je per week/maand?
    Als je bestellingen opslaat, sla je dan ook de prijzen op? Immers, een klant koopt iets voor een bepaalde prijs en tussentijdse prijsstijgingen zouden niet eerlijk zijn en je betalingen in de war schoppen.Om maar iets te noemen.
    Sla je klantgegevens op? Privacy, beveiling?

    Heeft de hostingprovider geen kant en klare webshop ter beschikking?
    Ik haal even wat namen uit de installatieservice van een van mijn providers.

    CubeCart 2
    CubeCart 3
    osCommerce
    phpCOIN
    phpShop

    Probeer slechts hulpvaardig mee te denken
    Tuvai.netvrijdag 29 december 2006 @ 16:25
    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.
    beertenvrijdag 29 december 2006 @ 16:32
    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.
    Ben ik helemaal met je eens. Het was maar een idee...
    Desdinovazaterdag 30 december 2006 @ 11:44
    quote:
    Op vrijdag 29 december 2006 15:39 schreef Tuvai.net het volgende:
    mktime()
    hoe integeer ik dat in een query dan?
    SuperRembozaterdag 30 december 2006 @ 12:39
    quote:
    Op zaterdag 30 december 2006 11:44 schreef Desdinova het volgende:

    [..]

    hoe integeer ik dat in een query dan?
    Dat gewoon met MySQL functies, en die vind je in de manual.

    1
    2
    3
    SELECT *
    FROM mytable
    WHERE Month(From_Unixtime(mytimestamp)) = 11
    JeRazaterdag 30 december 2006 @ 14:11
    quote:
    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 ]
    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 expressies
    Tuvai.netzaterdag 30 december 2006 @ 14:18
    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:

    1SELECT * FROM tabel_bla WHERE datum>=".intval($mktime_begintijd)." AND datum<=".intval($mktime_eindtijd)."


    Een index op het datumveld creëren is sowieso aan te raden ja.
    SuperRembozaterdag 30 december 2006 @ 14:38
    quote:
    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.
    Maar dan met een BETWEEN natuurlijk
    Tuvai.netzaterdag 30 december 2006 @ 14:40
    quote:
    Op zaterdag 30 december 2006 14:38 schreef SuperRembo het volgende:

    [..]

    Maar dan met een BETWEEN natuurlijk
    JeRazaterdag 30 december 2006 @ 14:45
    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 gegaan
    Desdinovazaterdag 30 december 2006 @ 15:03
    mehnn ik snap echt weinig van dit deel
    ik heb het werkende met rembo's query, met de toevoeging UNIX_TIMESTAMP. nog niet helemaal vlekkeloos maar daar kom ik wel uit denk ik.

    ik heb gedacht aan een veld voor elke tijdeenheid (maand, dag, jaar, etc), maar het veldtype timestamp is zo lekker makkelijk automatisch.
    SuperRembozaterdag 30 december 2006 @ 15:46
    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
    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.
    JeRazaterdag 30 december 2006 @ 15:53
    quote:
    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.
    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 beschreef en dit herschrijven kost tijd.
    SuperRembozaterdag 30 december 2006 @ 16:13
    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 beschreef en dit herschrijven kost tijd.
    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.
    Het kan natuurlijk ook zijn dat de vergelijkingen altijd al worden gegroepeerd, in dat geval zullen de 2 query's even snel zijn.

    [ Bericht 8% gewijzigd door SuperRembo op 30-12-2006 16:19:18 ]
    jooleezaterdag 30 december 2006 @ 18:48
    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
    als ik een spambot zou maken is dat het eerste waar ik op laat controleren. dat valt zeer simpel te doen.
    om te kijken of een formulier buiten de website valt is al heel wat meer gedoe
    quote:
    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?
    er zijn genoeg gebruikers die cookies blokkeren en een slimme spambot stuurt gewoon ook een cookie mee


    //edit: het mysql probleem:
    je kunt natuurlijk ook het mysql date veld gebruiken i.p.v. timestamp. deze ondersteunt ook gelijk datums van vóór 1970

    [ Bericht 8% gewijzigd door joolee op 30-12-2006 18:53:48 ]
    Pileszaterdag 30 december 2006 @ 19:32
    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
    qu63zaterdag 30 december 2006 @ 19:48
    quote:
    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
    als je FireFox gebruikt kan dit ook
    Pileszaterdag 30 december 2006 @ 19:59
    quote:
    Op zaterdag 30 december 2006 19:48 schreef qu63 het volgende:

    [..]

    als je FireFox gebruikt kan dit ook
    mscholzondag 31 december 2006 @ 09:43
    ik lees nu dagelijks me post aantal uit vanuit fok, hier wil ik een grafiekje van maken wat het volgende kan:

    1 plaatje met grafiek, waarvan de X as in gesteld kan worden (week, maand, jaar) Y moet dynamisch mee gaan met de maximum waarde (dus de laatste dag die wordt getoond) + beetje extra speling (zodat de lijn niet tot aan de rand komt
    2 een lijn tussen de dagen trekken. (zodat je dus een mooi verloop krijgt te zien)

    iemand een idee hoe ik dit kan aanpakken?
    tutorials m.b.t. GD Libary en grafieken maken?
    slakkiezondag 31 december 2006 @ 11:55
    [php] SEO vriendelijke url's maken
    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.
    schwa78zondag 31 december 2006 @ 12:15
    Thanks voor het verplaatsen (Y)
    HuHuzondag 31 december 2006 @ 12:28
    @schwa78: urlencode().

    De URL wordt dan niet echt mooi (een spatie wordt %20 bijvoorbeeld), maar hij wordt wel geschikt om als link te gebruiken.
    Swetseneggerzondag 31 december 2006 @ 12:37
    bedoel je niet gewoon http://www.domein.nl/pagina/28 ipv http://www.domein.nl/pagina.php?id=28
    HuHuzondag 31 december 2006 @ 12:47
    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?
    Swetseneggerzondag 31 december 2006 @ 12:50
    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?
    str_replace()
    HuHuzondag 31 december 2006 @ 13:49
    1
    2
    3
    4
    5
    6
    7
    <?php
    $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);
    ?>


    Levert op: Hello-Carmen,-how-are-you?
    Swetseneggerzondag 31 december 2006 @ 14:17
    quote:
    Op zondag 31 december 2006 13:49 schreef HuHu het volgende:

    [ code verwijderd ]

    Levert op: Hello-Carmen,-how-are-you?
    Nee want hij is case sensitive
    HuHuzondag 31 december 2006 @ 14:20
    quote:
    Op zondag 31 december 2006 14:17 schreef Swetsenegger het volgende:

    [..]

    Nee want hij is case sensitive
    Hoe bedoel je? Ik heb de code hierboven getest en het resultaat hier geplakt.
    Swetseneggerzondag 31 december 2006 @ 14:23
    Verrassend, want een Ç is anders dan een ç
    Swetseneggerzondag 31 december 2006 @ 14:24
    Ow wacht ik zie het al
    schwa78zondag 31 december 2006 @ 14:35
    Thanks gasten
    fokME2zondag 31 december 2006 @ 18:08
    quote:
    Op zondag 31 december 2006 13:49 schreef HuHu het volgende:

    [ code verwijderd ]

    Levert op: Hello-Carmen,-how-are-you?
    Das wel een leuk stukje code moet ik zeggen
    HuHuzondag 31 december 2006 @ 19:08
    quote:
    Op zondag 31 december 2006 18:08 schreef fokME2 het volgende:

    [..]

    Das wel een leuk stukje code moet ik zeggen
    Met dank aan Google, Expert-Exchange, Roonaan en mijzelf.
    mvczondag 31 december 2006 @ 20:45
    Beste Fokkers, ik probeer al een tijdje het script VCD-db te installeren op de webspace die ik bij een webhosting bedrijf heb gekocht. Zodra ik de index.php in de setup directory open krijg ik deze foutmelding.

    De fout geeft aan dat er iets fout is in Ajax.php op line 46 op deze regel wordt verwezen naar AjaxBase.php Beide bestanden zijn hier te vinden.

    Wie zou er eens willen kijken naar wat er fout gaat bij het installeren ? Bedankt !
    Swetseneggermaandag 1 januari 2007 @ 00:31
    In een ooit door mij gestarte topicsreeks moet ik even gelukkig nieuwjaar wensen natuurlijk.
    Veel php plezier in 2007!
    qu63maandag 1 januari 2007 @ 00:33
    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!
    dan wens ik een ieder veel gevloek, getier, en vooral veel scriptplezier toe!
    Lightmaandag 1 januari 2007 @ 00:41
    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, Swets
    beertenmaandag 1 januari 2007 @ 02:34
    quote:
    Op zondag 31 december 2006 20:45 schreef mvc 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.

    En aan iedereen: het allergoeiste voor 2007!
    Lightmaandag 1 januari 2007 @ 02:43
    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.
    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.
    beertenmaandag 1 januari 2007 @ 13:01
    quote:
    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.
    Dank voor de aanvulling
    Chandlermaandag 1 januari 2007 @ 13:52
    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!
    Zelfde!

    en maar blijven hopen dat ik dit jaar eerder zelf met oplossingen op eigen problemen kom...
    JeRamaandag 1 januari 2007 @ 22:30
    quote:
    Op zondag 31 december 2006 13:49 schreef HuHu het volgende:

    [ code verwijderd ]

    Levert op: Hello-Carmen,-how-are-you?
    Wel opletten met alle entities die je niet met die regex opvangt, die zijn nu namelijk geconverteerd je zou er voor kunnen kiezen om die op een andere manier te parsen (weglaten?) of de input bij voorbaat al te filtreren.