FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - Deel 69
Keiichivrijdag 20 februari 2009 @ 08:04

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

    Aangezien ik 'm op slot gegooid had, game on
  • DeTolkvrijdag 20 februari 2009 @ 08:09
    Ik wil iedereen die me in het vorige topic heeft geholpen heel erg bedanken.

    Morgen ga ik dan toch maar bovenstaand boek kopen....
    mstxvrijdag 20 februari 2009 @ 08:18
    tvp
    #ANONIEMvrijdag 20 februari 2009 @ 08:26
    tvp
    Chandlervrijdag 20 februari 2009 @ 08:57
    tvp
    Catch22-vrijdag 20 februari 2009 @ 09:21
    Ik werk tegenwoordig meer met C#.net ft. Asp.net werkt toch wat beter, vooral omdat VS2008 een goeie editor is.

    laatst weer ff een phpsite inelkaar gezet, das toch weer even wennen.

    In .net gebruiken we databasetools, dus MySQL heb je dan niet meer nodig (niet echt iig, heel soms), dat scheelt een hoop geklooi. Ook het debuggen is makkelijker.
    mstxvrijdag 20 februari 2009 @ 09:26
    quote:
    Op vrijdag 20 februari 2009 09:21 schreef Catch22- het volgende:
    Ik werk tegenwoordig meer met C#.net ft. Asp.net werkt toch wat beter, vooral omdat VS2008 een goeie editor is.

    laatst weer ff een phpsite inelkaar gezet, das toch weer even wennen.

    In .net gebruiken we databasetools, dus MySQL heb je dan niet meer nodig (niet echt iig, heel soms), dat scheelt een hoop geklooi. Ook het debuggen is makkelijker.
    Ik heb gisteren de spullen voor deze opleiding/cursus binnengekregen; http://www.microsoft.com/learning/mcp/mcts/webapps/default.mspx
    Dus ik ben benieuwd of het echt zoveel beter werkt.
    Roy_Tvrijdag 20 februari 2009 @ 09:33
    n.a.v. slacker_nl hieronder:

    1
    2
    3
    <?php
    echo(vsprintf("%s%s%s", array('t''v''p')));
    ?>


    [ Bericht 64% gewijzigd door Roy_T op 20-02-2009 10:03:05 ]
    slacker_nlvrijdag 20 februari 2009 @ 09:43
    1
    2
    3
    <?php
    print join("", array("t""v""p"));
    ?>
    qu63vrijdag 20 februari 2009 @ 10:03
    quote:
    Op vrijdag 20 februari 2009 09:43 schreef slacker_nl het volgende:

    [ code verwijderd ]
    GlowMousevrijdag 20 februari 2009 @ 12:11
    1
    2
    3
    <?php
    echo strrev('pvt');
    ?>
    Kerolvrijdag 20 februari 2009 @ 12:16
    tvp
    Keiichivrijdag 20 februari 2009 @ 12:17
    Hey, stoppen met de

    1
    2
    3
    4
    5
    6
    <?php
    $arr 
    = array(0x74,0x76,0x70);
    while(
    $arr) {
      
    printf("%c"array_shift($arr));
    }
    ?>


    Er is ook een bookmark functie
    Chandlervrijdag 20 februari 2009 @ 12:40
    ooh, vertel eens? waar zit die dan?
    DeTolkvrijdag 20 februari 2009 @ 13:01
    in het vorige topic zat ik met het probleem mbt een dropdown menu.
    Dat is nu opgelost.

    Wanneer ik geen keuze maak uit de dropdownbox (waar vestigingen in zitten met daaraan een mail adres ) krijg ik uit de cgi-bin/mail-a-form een standaard gegenereerde pagina met daarin de melding dat er geen geadresseerde is ingevoerd.

    De drop down box is een verplicht veld, net als meerdere velden in mijn contactformulier. Als er in deze velden niks wordt ingevoerd krijg je een pop-up te zien met de melding dat je wat in moet vullen.

    Maar wanneer ik de mail-a-form probeer te omzeilen door ook hiervoor:

    1
    2
    3
    4
    5
    6
       if (theForm.to.value == "")
      {
        alert("Een Vestiging selecteren.u.b.");
       theForm.to.focus();
        return (false);
      }


    te plaatsen, gebeurt er niks als ik het formulier probeer te versturen zonder een keuze uit de dropdown te kiezen....

    Hoe kan ik de

    1<form method="post" action="/cgi-bin/mail-a-form" onSubmit="return Validatie(this)">


    omzeilen ?
    Chandlervrijdag 20 februari 2009 @ 13:05
    return false ipv (false)
    DeTolkvrijdag 20 februari 2009 @ 13:13
    quote:
    Op vrijdag 20 februari 2009 13:05 schreef Chandler het volgende:
    return false ipv (false)
    nope, krijg nog steeds de standaardpagina van mail-a-form
    qu63vrijdag 20 februari 2009 @ 14:16
    quote:
    Op vrijdag 20 februari 2009 14:15 schreef Jo0Lz het volgende:
    [PHP/(My)SQL] voor dummies - Deel 69
    Daar verder.
    Dat wisten we al
    Lightvrijdag 20 februari 2009 @ 16:43
    quote:
    Op vrijdag 20 februari 2009 13:01 schreef DeTolk het volgende:
    in het vorige topic zat ik met het probleem mbt een dropdown menu.
    Dat is nu opgelost.

    Wanneer ik geen keuze maak uit de dropdownbox (waar vestigingen in zitten met daaraan een mail adres ) krijg ik uit de cgi-bin/mail-a-form een standaard gegenereerde pagina met daarin de melding dat er geen geadresseerde is ingevoerd.

    De drop down box is een verplicht veld, net als meerdere velden in mijn contactformulier. Als er in deze velden niks wordt ingevoerd krijg je een pop-up te zien met de melding dat je wat in moet vullen.

    Maar wanneer ik de mail-a-form probeer te omzeilen door ook hiervoor:
    [ code verwijderd ]

    te plaatsen, gebeurt er niks als ik het formulier probeer te versturen zonder een keuze uit de dropdown te kiezen....

    Hoe kan ik de
    [ code verwijderd ]

    omzeilen ?
    Eigenlijk is dat natuurlijk geen PHP vraag, en met MySQL heeft het ook niets te maken.
    slacker_nlvrijdag 20 februari 2009 @ 18:37
    quote:
    Op vrijdag 20 februari 2009 12:17 schreef Keiichi het volgende:
    Hey, stoppen met de
    [ code verwijderd ]

    Er is ook een bookmark functie
    1
    2
    3
    <?php
    $fok
    ->bookmark("1257581"):
    ?>



    urselvrijdag 20 februari 2009 @ 21:00
    quote:
    Op donderdag 19 februari 2009 21:09 schreef HuHu het volgende:
    Een VIEW is dus handig op momenten dat je niet alle data in een tabel aan een ander ter beschikking wilt stellen, zonder dat de ander daar moeite voor moet doen. Je kunt natuurlijk met GRANT gaan kloten en alleen rechten geven op bepaalde kolommen in een tabel, maar een VIEW is veel eenvoudiger en duidelijker. Daarnaast kun je geen LIMIT toepassing op een GRANT, wat in mijn geval wel nodig is .
    Dus eigenlijk is dat het enige voordeel dat je hiermee haalt, dat niet alle data beschikbaar is.
    Want in de view welke je in de andere post meldde, kan je dat namelijk ook gewoon met een SELECT doen. Dus vandaar dat het voor mij een beetje onduidelijk was wat het voordeel hiern nu eigenlijk was.
    KoekjesTwistervrijdag 20 februari 2009 @ 21:02
    quote:
    Op vrijdag 20 februari 2009 21:00 schreef ursel het volgende:

    [..]

    Dus eigenlijk is dat het enige voordeel dat je hiermee haalt, dat niet alle data beschikbaar is.
    Want in de view welke je in de andere post meldde, kan je dat namelijk ook gewoon met een SELECT doen. Dus vandaar dat het voor mij een beetje onduidelijk was wat het voordeel hiern nu eigenlijk was.
    Zou het niet handig zijn in combinatie met bepaalde UPDATE en DELETE statements? Volgens mij is een inner join bij een DELETE statement niet mogelijk, een view zou dit mogelijk kunnen maken.
    GlowMousevrijdag 20 februari 2009 @ 21:06
    quote:
    Op vrijdag 20 februari 2009 21:02 schreef KoekjesTwister het volgende:

    [..]

    Zou het niet handig zijn in combinatie met bepaalde UPDATE en DELETE statements? Volgens mij is een inner join bij een DELETE statement niet mogelijk, een view zou dit mogelijk kunnen maken.
    http://dev.mysql.com/doc/refman/5.0/en/view-updatability.html
    quote:
    For a view to be updatable, there must be a one-to-one relationship between the rows in the view and the rows in the underlying table.
    LittleTortillaBoyzaterdag 21 februari 2009 @ 00:49
    TVP
    Intrepidityzaterdag 21 februari 2009 @ 01:08
    1
    2
    3
    <?php
    echo implode("v", array("t""p"));
    ?>
    Chandlerzaterdag 21 februari 2009 @ 11:59
    Ik heb een vraag.

    Ik heb een scriptje geschreven om meerdere bestanden aan een ZIP archive toe te voegen, echter wil ik dat de archive onder de xxxxxx bytes blijft.

    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
    <?php
    set_time_limit
    (0);

    error_reporting(E_ALL);

    $base_dir   "d:/files/";
    $base_files "*";
    $archive_name "d:/zip";
    $archive_size 8000000;
    $cur_archive  0;

    // leees directory
    $dirArray = array();

    foreach (
    GLOB($base_dir $base_files) AS $file)
    {
        if (!
    is_dir($file))
        {
            
    $dirArray[$file]='';
        }
    }

    function 
    addFile($arc$file)
    {
        
    //echo 'add: ' . $file . "<br />";
        //flush();
        /*
        $zip = new ZipArchive;

        if (!file_exists($arc))
        {
            $zOpen = $zip->open($arc, ZIPARCHIVE::OVERWRITE);
        }
        else
        {
            $zOpen = $zip->open($arc, ZIPARCHIVE::CREATE);
        }
        
        $p = pathinfo($file);
        
        if ($zOpen === true)
        {
            $zip->addFile($file, $p['basename']);
        }
        
        $zip->close;
        
        unset($zip);
        
        */
        
        
    exec("pkzip -ex " $arc " " $file$error);
        
    clearstatcache();
    }

    function 
    removeFile($arc$file)
    {
        
    //echo 'remove: ' . $file . "<br />";
        //flush();
        /*
        $zip = new ZipArchive;

        if (!file_exists($arc))
        {
            $zOpen = $zip->open($arc, ZIPARCHIVE::OVERWRITE);
        }
        else
        {
            $zOpen = $zip->open($arc, ZIPARCHIVE::CREATE);
        }

        $p = pathinfo($file);

        if ($zOpen === true)
        {
            $zip->deleteName($p['basename']);
        }

        $zip->close;

        unset($zip);
        
        */
        
        
    exec("pkzip " $arc " -d " $file$error);
        
    clearstatcache();
    }

    echo 
    $archive_name $cur_archive ".zip<br />";
    flush();

    $add 0;

    foreach (
    $dirArray AS $filename => $null)
    {
        
    $add++;
        
    clearstatcache();
        
    addFile($archive_name $cur_archive ".zip",
                
    $filename);
        
    clearstatcache();
        if (
    filesize($archive_name $cur_archive ".zip") > $archive_size)
        {
            
    removeFile($archive_name $cur_archive ".zip",
                       
    $filename);
            
    $cur_archive++;
            echo 
    'writen ' $add ' files <br /><br />';
            
    $add 1;
            echo 
    $archive_name $cur_archive ".zip<br />";
            
    flush();
            
    addFile($archive_name $cur_archive ".zip",
                    
    $filename);
        }
        
    clearstatcache();
    }
    ?>


    echter werkt dit niet echt goed, wanneer ik een zip bestand wil maken stopt hij (bij gebruik van exec) bij het tweede bestand op ruim 6mb en gaat niet verder.

    Als ik de ZipArchive gebruik krijg ik opeens een apache error en stopt het script.. Anyone?

    Naar aanleiding van een ander topic :)
    cablegunmasterzondag 22 februari 2009 @ 01:53
    edit

    -Fixed-

    [ Bericht 47% gewijzigd door cablegunmaster op 22-02-2009 02:12:11 ]
    Ofyles2zondag 22 februari 2009 @ 02:42
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    $db = mysql_connect("localhost","account","wachtwoord") or die ("Verbinding mislukt");
    mysql_select_db("easyc",$db);
    $news_SQL="SELECT * FROM news ORDER BY news_datetime DESC";
    $news_result=mysql_query($news_SQL);
    //Berichten weergeven
    while($news=mysql_fetch_array($news_result)){
       if(strlen($news['news_main'])>50){
          $news['news_main']=substr($news['news_main'],0,40) . " ... <a href=news2.php?news_id=" . $news['news_id'] . ">meer</a>";
       }
       echo "<div class=\"news\">";
       echo "<div class=\"news_datetime\">" .$news['news_datetime'] . "</div>";
       echo "<div class=\"news_header\">" . $news['news_header'] . "</div>";
       echo "<div class=\"news_main\">" .$news['news_main'] . "</div>";
       echo "</div><br>";
    }
    mysql_close();
    ?>


    Deze tekst heb ik dus ingevoerd, hoe krijg ik het voor elkaar ingekorte tekst weer in de oorspronkelijke stand terug te krijgen?
    amvrosioszondag 22 februari 2009 @ 07:10
    quote:
    Op zondag 22 februari 2009 02:42 schreef Ofyles2 het volgende:

    [ code verwijderd ]

    Deze tekst heb ik dus ingevoerd, hoe krijg ik het voor elkaar ingekorte tekst weer in de oorspronkelijke stand terug te krijgen?
    die substr kort het in

    probeer onderstaande eens

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    $db 
    mysql_connect("localhost","account","wachtwoord") or die ("Verbinding mislukt");
    mysql_select_db("easyc",$db);
    $news_SQL="SELECT * FROM news ORDER BY news_datetime DESC";
    $news_result=mysql_query($news_SQL);
    //Berichten weergeven
    while($news=mysql_fetch_array($news_result)){
       if(
    strlen($news['news_main'])>50){
          
    $news['news_main']=$news['news_main'] ;
       }
       echo 
    "<div class=\"news\">";
       echo 
    "<div class=\"news_datetime\">" .$news['news_datetime'] . "</div>";
       echo 
    "<div class=\"news_header\">" $news['news_header'] . "</div>";
       echo 
    "<div class=\"news_main\">" .$news['news_main'] . "</div>";
       echo 
    "</div><br>";
    }
    mysql_close();
    ?>


    [ Bericht 81% gewijzigd door amvrosios op 22-02-2009 07:11:04 (code toegevoegd) ]
    Mookaizondag 22 februari 2009 @ 08:23
    quote:
    Op zaterdag 21 februari 2009 11:59 schreef Chandler het volgende:
    Ik heb een vraag.

    Ik heb een scriptje geschreven om meerdere bestanden aan een ZIP archive toe te voegen, echter wil ik dat de archive onder de xxxxxx bytes blijft.
    [ code verwijderd ]

    echter werkt dit niet echt goed, wanneer ik een zip bestand wil maken stopt hij (bij gebruik van exec) bij het tweede bestand op ruim 6mb en gaat niet verder.

    Als ik de ZipArchive gebruik krijg ik opeens een apache error en stopt het script.. Anyone?

    Naar aanleiding van een ander topic
    Is de Apache error een beetje zinvol? Of segfault Apache gewoon?
    GlowMousezondag 22 februari 2009 @ 12:11
    quote:
    Op zondag 22 februari 2009 07:10 schreef amvrosios het volgende:

    [..]

    die substr kort het in

    probeer onderstaande eens
    [ code verwijderd ]
    Dan heeft die hele if ook geen zin meer he?
    Ofyles2zondag 22 februari 2009 @ 14:13
    quote:
    Op zondag 22 februari 2009 07:10 schreef amvrosios het volgende:

    [..]

    die substr kort het in

    probeer onderstaande eens
    [ code verwijderd ]
    Ik heb de substr geprobeerd, ik wil de code zodanig uitschrijven dat je door middel van een link de volledige tekst kunt terughalen.
    Buonissimozondag 22 februari 2009 @ 15:08
    Hoi, Ik ben een totale PHP-noob en heb een vraagje. Op mijn site heb ik een contactformulier in PHP en zou het volgende willen veranderen: Als er een mail gestuurd wordt naar mijn mailadres komt er in de 'onderwerpregel' steeds 'Contactname Buonissimo - Kok aan huis' staan. Ik zou echter willen dat de mensen in het contactformulier zelf een onderwerp kunnen invullen en dat dit dan in de onderwerpregel van de gestuurde mail komt te staan. Kan iemand mij de code geven hoe dit moet? Want ik ken totaal geen PHP. Mijn formulierbestanden zien er als volgt uit.

    Eerste bestand:

    <body>

    <div id="page-wrap">

    <img src="images/kokaanhuis-homecooking-thuiskok.gif" alt="kok aan huis,thuiskok,homecooking" /><br /><br />




    <div id="contact-area">

    <form method="post" action="contactengine.php">

    <label for="Aantal" id="Aantal">Aantal genodigden:</label>
    <input type="text" name="Aantal" />

    <label for="Datum" id="Datum">Datum event:</label>
    <input type="text" name="Datum" />

    <label for="Bericht" id="Bericht">Vragen, suggesties of opmerkingen:</label><br /><textarea name="Bericht" rows="20" cols="20"></textarea>

    <label for="Naam" id="Naam">Naam:</label>
    <input type="text" name="Naam" />

    <label for="Woonplaats" id="Woonplaats">Woonplaats:</label>
    <input type="text" name="Woonplaats" />

    <label for="Email" id="Email">Email:</label>
    <input type="text" name="Email" />



    <input type="submit" name="submit" value="Verzend" class="submit-button" />
    </form>

    <div style="clear: both;"></div>

    </div>


    Tweede bestand:

    <?php

    $EmailFrom = "info@buonissimo-kokaanhuis.be";
    $EmailTo = "info@buonissimo-kokaanhuis.be";
    $Subject = "Contactname Buonissimo - Kok aan huis";
    $Aantal = Trim(stripslashes($_POST['Aantal']));
    $Datum = Trim(stripslashes($_POST['Datum']));
    $Bericht = Trim(stripslashes($_POST['Bericht']));
    $Naam = Trim(stripslashes($_POST['Naam']));
    $Woonplaats = Trim(stripslashes($_POST['Woonplaats']));
    $Email = Trim(stripslashes($_POST['Email']));


    // validation
    $validationOK=true;
    if (!$validationOK) {
    print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
    exit;
    }

    // prepare email body text
    $Body = "";
    $Body .= "Aantal: ";
    $Body .= $Aantal;
    $Body .= "\n";
    $Body .= "Datum: ";
    $Body .= $Datum;
    $Body .= "\n";
    $Body .= "Bericht: ";
    $Body .= $Bericht;
    $Body .= "\n";
    $Body .= "Naam: ";
    $Body .= $Naam;
    $Body .= "\n";
    $Body .= "Woonplaats: ";
    $Body .= $Woonplaats;
    $Body .= "\n";
    $Body .= "Email: ";
    $Body .= $Email;
    $Body .= "\n";


    $success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");


    if ($success){
    print "<meta http-equiv=\"refresh\" content=\"0;URL=kokaanhuis-thuiskok-bedankje.php\">";
    }
    else{
    print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
    }
    ?>

    Hopelijk kan iemand me helpen.
    Intrepidityzondag 22 februari 2009 @ 15:14
    quote:
    Op zondag 22 februari 2009 15:08 schreef Buonissimo het volgende:
    Hoi, Ik ben een totale PHP-noob en heb een vraagje. Op mijn site heb ik een contactformulier in PHP en zou het volgende willen veranderen: Als er een mail gestuurd wordt naar mijn mailadres komt er in de 'onderwerpregel' steeds 'Contactname Buonissimo - Kok aan huis' staan. Ik zou echter willen dat de mensen in het contactformulier zelf een onderwerp kunnen invullen en dat dit dan in de onderwerpregel van de gestuurde mail komt te staan. Kan iemand mij de code geven hoe dit moet? Want ik ken totaal geen PHP. Mijn formulierbestanden zien er als volgt uit.

    Eerste bestand:

    <body>

    <div id="page-wrap">

    <img src="images/kokaanhuis-homecooking-thuiskok.gif" alt="kok aan huis,thuiskok,homecooking" /><br /><br />




    <div id="contact-area">

    <form method="post" action="contactengine.php">

    <label for="Aantal" id="Aantal">Aantal genodigden:</label>
    <input type="text" name="Aantal" />

    <label for="Datum" id="Datum">Datum event:</label>
    <input type="text" name="Datum" />

    <label for="Onderwerp" id="Onderwerp">Onderwerp:</label><br />
    <input type="text" name="Onderwerp" />


    <label for="Bericht" id="Bericht">Vragen, suggesties of opmerkingen:</label><br /><textarea name="Bericht" rows="20" cols="20"></textarea>

    <label for="Naam" id="Naam">Naam:</label>
    <input type="text" name="Naam" />

    <label for="Woonplaats" id="Woonplaats">Woonplaats:</label>
    <input type="text" name="Woonplaats" />

    <label for="Email" id="Email">Email:</label>
    <input type="text" name="Email" />



    <input type="submit" name="submit" value="Verzend" class="submit-button" />
    </form>

    <div style="clear: both;"></div>

    </div>


    Tweede bestand:

    <?php

    $EmailFrom = "info@buonissimo-kokaanhuis.be";
    $EmailTo = "info@buonissimo-kokaanhuis.be";
    $Subject = Trim(stripslashes($_POST['Onderwerp']));
    $Aantal = Trim(stripslashes($_POST['Aantal']));
    $Datum = Trim(stripslashes($_POST['Datum']));
    $Bericht = Trim(stripslashes($_POST['Bericht']));
    $Naam = Trim(stripslashes($_POST['Naam']));
    $Woonplaats = Trim(stripslashes($_POST['Woonplaats']));
    $Email = Trim(stripslashes($_POST['Email']));


    // validation
    $validationOK=true;
    if (!$validationOK) {
    print "<meta http-equiv="refresh" content="0;URL=error.htm">";
    exit;
    }

    // prepare email body text
    $Body = "";
    $Body .= "Aantal: ";
    $Body .= $Aantal;
    $Body .= "\n";
    $Body .= "Datum: ";
    $Body .= $Datum;
    $Body .= "\n";
    $Body .= "Bericht: ";
    $Body .= $Bericht;
    $Body .= "\n";
    $Body .= "Naam: ";
    $Body .= $Naam;
    $Body .= "\n";
    $Body .= "Woonplaats: ";
    $Body .= $Woonplaats;
    $Body .= "\n";
    $Body .= "Email: ";
    $Body .= $Email;
    $Body .= "\n";


    $success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");


    if ($success){
    print "<meta http-equiv="refresh" content="0;URL=kokaanhuis-thuiskok-bedankje.php">";
    }
    else{
    print "<meta http-equiv="refresh" content="0;URL=error.htm">";
    }
    ?>

    Hopelijk kan iemand me helpen.
    Dat zou 'ie moeten wezen
    GlowMousezondag 22 februari 2009 @ 15:17
    Nuttige validatiecheck in de code!

    http://www.scriptorama.nl/security/mail-en-headers
    Buonissimozondag 22 februari 2009 @ 15:37
    quote:
    Op zondag 22 februari 2009 15:14 schreef Intrepidity het volgende:

    [..]

    Dat zou 'ie moeten wezen
    Hartelijk dank! Het is gelukt
    Chandlerzondag 22 februari 2009 @ 21:12
    quote:
    Op zondag 22 februari 2009 08:23 schreef Mookai het volgende:

    [..]

    Is de Apache error een beetje zinvol? Of segfault Apache gewoon?
    Nee eingelijk niet kan er iig niet wijs uit worden.

    Andere vraag, weet iemand hoe je links uit een zoekopdracht op google kunt extracten? (alleen de gewone links en niet de gesponsorde links)
    Mookaizondag 22 februari 2009 @ 23:38
    quote:
    Op zondag 22 februari 2009 21:12 schreef Chandler het volgende:

    [..]

    Nee eingelijk niet kan er iig niet wijs uit worden.

    Andere vraag, weet iemand hoe je links uit een zoekopdracht op google kunt extracten? (alleen de gewone links en niet de gesponsorde links)
    Kun je hem toch posten ofzo? Tenzij je het al opgelost hebt natuurlijk.
    Chandlermaandag 23 februari 2009 @ 09:24
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Vastgelopen toepassing: apache.exe, versie: 2.2.8.0, vastgelopen module: php_zip.dll, versie: 5.2.5.5, vastgelopen op: 0x000062e3.

    Zie Help en ondersteuning op http://go.microsoft.com/fwlink/events.asp voor meer informatie.

    0000: 41 70 70 6c 69 63 61 74   Applicat
    0008: 69 6f 6e 20 46 61 69 6c   ion Fail
    0010: 75 72 65 20 20 61 70 61   ure  apa
    0018: 63 68 65 2e 65 78 65 20   che.exe 
    0020: 32 2e 32 2e 38 2e 30 20   2.2.8.0 
    0028: 69 6e 20 70 68 70 5f 7a   in php_z
    0030: 69 70 2e 64 6c 6c 20 35   ip.dll 5
    0038: 2e 32 2e 35 2e 35 20 61   .2.5.5 a
    0040: 74 20 6f 66 66 73 65 74   t offset
    0048: 20 30 30 30 30 36 32 65    000062e
    0050: 33                        3       
    gielingdinsdag 24 februari 2009 @ 00:52
    Ik heb een probleempje, voor het croppen van wat afbeeldingen heb ik het volgende scriptje van internet geplukt:

    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
    <?php
    function cropImage($nw$nh$source$stype$dest) {
        
    $size getimagesize($source);
        
    $w $size[0];
        
    $h $size[1];
        switch(
    $stype) {
            case 
    'gif':
            
    $simg imagecreatefromgif($source);
            break;
            case 
    'jpg':
            
    $simg imagecreatefromjpeg($source);
            break;
            case 
    'png':
            
    $simg imagecreatefrompng($source);
            break;
        }
        
    $dimg imagecreatetruecolor($nw$nh);
        
    $wm $w/$nw;
        
    $hm $h/$nh;
        
    $h_height $nh/2;
        
    $w_height $nw/2;
        if(
    $w$h) {
            
    $adjusted_width $w $hm;
            
    $half_width $adjusted_width 2;
            
    $int_width $half_width $w_height;
            
    imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
        } elseif((
    $w <$h) || ($w == $h)) {
            
    $adjusted_height $h $wm;
            
    $half_height $adjusted_height 2;
            
    $int_height $half_height $h_height;
            
    imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);
        } else {
            
    imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
        }
        
    imagefilledrectangle($dimg00$width 1$height 1$background);
        
    imagejpeg($dimg,$dest,100);
    }


    $get_cat mysql_query("select id,picture FROM prim_product ORDER BY id ASC");
    while(
    $cat mysql_fetch_assoc($get_cat)) {

        
    cropImage(10279'uploads/'.$cat["picture"], 'jpg''obj_images_hp/'.$cat["picture"]);

    }
    ?>


    Alleen is het zo dat bij imagecopyresampled de default achtergrondkleur zwart is. Bij langwerpige afbeeldingen zie je nu links en rechts (zoals verwacht) twee zwarte balken. Ik zou graag willen dat de achtergrond kleur wit blijft... ik heb er al even mee lopen te stoeien maar nog niet gelukt. Hier iemand een suggestie? :)
    credit--dinsdag 24 februari 2009 @ 01:17
    Je hebt 3 imagecopyresampled calls, bij welke, of bij allemaal?
    gielingdinsdag 24 februari 2009 @ 12:15
    in ieder geval bij de eerste twee, zit me nu even af te vragen wat de derde doet
    Lightdinsdag 24 februari 2009 @ 13:19
    quote:
    Op dinsdag 24 februari 2009 12:15 schreef gieling het volgende:
    in ieder geval bij de eerste twee, zit me nu even af te vragen wat de derde doet
    Die derde doet niets.
    Heb je ook verschillende plaatjes geprobeerd (gif/jpg/png)?
    gielingdinsdag 24 februari 2009 @ 13:33
    Nee, het gaat om een aardige collectie afbeeldingen die al in jpg formaat zijn opgeslagen... Ik was iets aan het lezen over ImageFilledRectangle maar in alle voorbeelden gaat het over een nieuwe afbeelding die wordt aangemaakt, waarbij ik het nodig heb bij bestaande afbeeldingen...
    Roy_Tdinsdag 24 februari 2009 @ 13:36
    quote:
    Op dinsdag 24 februari 2009 13:33 schreef gieling het volgende:
    in alle voorbeelden gaat het over een nieuwe afbeelding die wordt aangemaakt, waarbij ik het nodig heb bij bestaande afbeeldingen...
    Wat denk je dat imagecreatetruecolor() doet?
    gielingdinsdag 24 februari 2009 @ 14:12
    mm - scherp gelukt btw
    markiemarkdinsdag 24 februari 2009 @ 16:23
    Ik ben bezig een site te maken waarbij zoekresultaten worden weergegeven. Gaat allemaal goed, resultaten worden weergegeven zoals ik dat wil.
    Alleen als ik terug keer naar mijn zoekformulier dmv de back button, krijg ik een hinderlijke melding dat de post variabelen opnieuw gepost worden. Dat is uiteraard prima, maar hoe voorkom ik deze melding. En niet als browser setting, maar in mijn site.
    Wel vaker hier mee te maken gehad, nooit eerder echt op gelet eigenlijk. Kan op Google niks vinden. Komt waarschijnlijk omdat ik niet weet waar ik moet beginnen.
    ralfiedinsdag 24 februari 2009 @ 16:26
    quote:
    Op dinsdag 24 februari 2009 16:23 schreef markiemark het volgende:
    Ik ben bezig een site te maken waarbij zoekresultaten worden weergegeven. Gaat allemaal goed, resultaten worden weergegeven zoals ik dat wil.
    Alleen als ik terug keer naar mijn zoekformulier dmv de back button, krijg ik een hinderlijke melding dat de post variabelen opnieuw gepost worden. Dat is uiteraard prima, maar hoe voorkom ik deze melding. En niet als browser setting, maar in mijn site.
    Wel vaker hier mee te maken gehad, nooit eerder echt op gelet eigenlijk. Kan op Google niks vinden. Komt waarschijnlijk omdat ik niet weet waar ik moet beginnen.
    Daarom worden de meeste zoekformulieren aangestuurd via de GET variabelen

    zoek.php?query=ik%20wil%20iets%20zoeken&page=3

    scheelt een hoop gezeik in vergelijking met dingen als frames, javascript/ajax etc.
    Roy_Tdinsdag 24 februari 2009 @ 16:34
    Juist, gewoon GET gebruiken Kunnen bezoekers het nog bookmarken/doorsturen ook.
    Catch22-dinsdag 24 februari 2009 @ 17:46
    quote:
    Op zondag 22 februari 2009 02:42 schreef Ofyles2 het volgende:

    [ code verwijderd ]

    Deze tekst heb ik dus ingevoerd, hoe krijg ik het voor elkaar ingekorte tekst weer in de oorspronkelijke stand terug te krijgen?
    1
    2
    3
       if(strlen($news['news_main'])>50){
          echo substr($news['news_main'],0,40) . " ... <a href=news2.php?news_id=" . $news['news_id'] . ">meer</a>";
       }
    ?
    hello_moto1992woensdag 25 februari 2009 @ 18:13
    Goedenavond,

    ik zou graag op mijn site iets simpels (wat ik zelf onmogelijk kan maken) hebben.

    Namelijk gewoon een invoerveld waar je een muzieknummer in kunt vullen. Dit moet dan ergens op een pagina komen (mag gewoon toegankelijk zijn voor iedereen).

    Dus gewoon zo:

    [invoerveld] [ok]

    Weet iemand waar ik dit op het internet kan vinden? Ik weet niet zo goed waar ik op moet zoeken.
    Mookaidonderdag 26 februari 2009 @ 13:47
    quote:
    Op maandag 23 februari 2009 09:24 schreef Chandler het volgende:

    [ code verwijderd ]


    Wat raar, in de code die je post gebruik je juist niet ZipArchive (commented), maar pkzip via een exec en toch is er een error in php_zip.dll. Als je die php_zip.dll uit je php.ini haalt, helpt dat dan? Als je het niet gebruikt dan is het toch overbodig.
    cablegunmasterdonderdag 26 februari 2009 @ 18:06
    quote:
    Op woensdag 25 februari 2009 18:13 schreef hello_moto1992 het volgende:
    Goedenavond,

    ik zou graag op mijn site iets simpels (wat ik zelf onmogelijk kan maken) hebben.

    Namelijk gewoon een invoerveld waar je een muzieknummer in kunt vullen. Dit moet dan ergens op een pagina komen (mag gewoon toegankelijk zijn voor iedereen).

    Dus gewoon zo:

    [invoerveld] [ok]

    Weet iemand waar ik dit op het internet kan vinden? Ik weet niet zo goed waar ik op moet zoeken.

    psst.... last.fm doet het automatisch
    maar handmatig kan ook doormiddel van een website + sql + php

    [ Bericht 7% gewijzigd door cablegunmaster op 26-02-2009 18:12:37 ]
    slacker_nldonderdag 26 februari 2009 @ 18:30
    je hebt niet eens een db nodig om dat te doen..
    whoopsvrijdag 27 februari 2009 @ 15:44
    Voor een bepaalde wedstrijd heb ik 20.000 actiecodes nodig. Deze codes moeten uiteraard uniek zijn, en niet makkelijk te raden.

    Nu heb ik zelf een scriptje gemaakt wat deze codes genereert, maar ik heb geen idee of er nog andere dingen zijn waar ik op moet letten bij het aanmaken van deze codes.

    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
    <?php
    function generate_code($max,$set){
        
    // That character set has this many numbers.
        
    $num_chars strlen($set);
        
        
    // We start with an empty result.
        
    $result='';
        
        
    // Generate the code
        
    for($i=0;$i<$max;$i++){        
            
    // Choose which postition from the character set we want
            
    $rand rand(0,$num_chars);
            
    // Get that character
            
    $char substr($set,$rand-1,1);
            
    // Put it in our result set
            
    $result.="$char";
        }
        return 
    $result;
    }

    // We want our code to be this many strings
    $max=8;

    // This is the available character set
    $char_set='abcdefghijklmnopqrstuvwxyz0123456789';

    echo 
    "<pre>";

    // Generate and display codes
    for($i=0;$i<20000;$i++){
        
    $code generate_code($max,$char_set);
        echo 
    "$i ; $code<br>";
    }
    echo 
    "</pre>";
    ?>


    Output:
    quote:
    0 ; 1nkzc85o
    1 ; 4skdasjg
    2 ; wxu9s144
    3 ; ip94pgag
    4 ; ul7yk2cf
    5 ; kojm7ttu
    6 ; gev07pvf
    7 ; 5uak1bsm
    8 ; opa0he6t
    9 ; tg6r1qc8
    <etcetera....>
    Iemand tips en tricks?
    Roy_Tvrijdag 27 februari 2009 @ 16:06
    Er kunnen in die 20.000 natuurlijk aardig wat dubbelen zitten op deze manier
    Catch22-vrijdag 27 februari 2009 @ 16:11
    Sja..

    Met 20000 codes wordt het relatief makkelijk raden natuurlijk. Maar ik denk dat het zo wel goed zal gaan hoor.

    Ik zou er alleen nog even een check ingooien of de code al bestaat.

    [code=php]
    function generate_codes($max,$set){
    // That character set has this many numbers.
    $num_chars = strlen($set);

    // We start with an empty result.
    $result=array();
    $tmpstring='';
    for($i=0;$i<20000;$i++)
    {
    // Generate the code
    for($i=0;$i<$max;$i++)
    {
    // Choose which postition from the character set we want
    $rand = rand(0,$num_chars);
    // Get that character
    $char = substr($set,$rand-1,1);
    // Put it in our result set
    $tmpstring = "$char";
    if(!in_array($tmpstring, $result))
    {
    $result[] = $tmpstring;
    }
    else
    {
    $i--;
    }

    }
    $result[]
    }
    return $result;
    }

    // We want our code to be this many strings
    $max=8;

    // This is the available character set
    $char_set='abcdefghijklmnopqrstuvwxyz0123456789';
    $array = array();


    // Generate and display codes

    $codes = generate_codes($max,$char_set);


    echo "<pre>";
    print_r($codes);
    echo "</pre>";

    [/code]
    zoiets.
    Roy_Tvrijdag 27 februari 2009 @ 16:15
    quote:
    Op vrijdag 27 februari 2009 16:11 schreef Catch22- het volgende:

    Met 20000 codes wordt het relatief makkelijk raden natuurlijk. Maar ik denk dat het zo wel goed zal gaan hoor.
    Ja, want met die 8 karakters die gebruikt worden heb je slechts ruim 2,8 biljoen mogelijkheden (oftewel: 0,0000007% kans dat een willekeurige combinatie bestaat)
    GlowMousevrijdag 27 februari 2009 @ 16:21
    quote:
    $tmpstring = "$char";
    Heb je die code nou zitten overtikken, of verdwijnen er plotseling punten bij het copy/pasten? Het blijft overigens akelig om "$char" te zien.
    whoopsvrijdag 27 februari 2009 @ 16:31
    Dank voor jullie reacties. Een check op dubbelen gebeurt wel als ik de waardes in de database gooi, dus daar maak ik me niet zo druk om.

    Ik ga er ook niet direct vanuit dat iemand zo'n code raadt, maar was meer benieuwd of er wellicht bestaande algorithmen zijn om dit te doen of dat anderen het ook zo aanpakken...
    slacker_nlvrijdag 27 februari 2009 @ 16:38
    whoops, http://snipplr.com/view/1027/generate-random-string/
    Xcaliburvrijdag 27 februari 2009 @ 16:42
    quote:
    Op vrijdag 27 februari 2009 15:44 schreef whoops het volgende:
    Voor een bepaalde wedstrijd heb ik 20.000 actiecodes nodig. Deze codes moeten uiteraard uniek zijn, en niet makkelijk te raden.

    Iemand tips en tricks?
    www.randomcodegenerator.com
    beertenzaterdag 28 februari 2009 @ 21:21
    Hoi,

    ik ben voornemens een php/mysql menu te bouwen. Output als unordened list.
    Als men het menu gebruikt op de site, dan kan ik doormiddel van de gemaakte keuzes in het menu wel bijbouden wat men wil zien. De positie in de menustructuur. Hoofd- en submenu's.
    Als ik een url direct intik weet ik niet waar ik vandaan kwam of heen wil. Depositie in het menu is dus onduidelijk. Voorwaarde is dat de pagina zelf zijn positie in de menu-structuur activeerd. Oftewel, als ik een pagiina direct aanroep via de url, dan dient het bijbehorende menupad op te lichten in de menu's. (a:active{} idee)

    Hoe doe ik dit het handigst?
    Het gaat om 2, hooguit 3 niveau's in het menu, met hooguit 10 pagina's per level. Recursieve functies zijn me niet onbekend. Neem ik in iedere pagina een variabele op die ik meegeef aan een menu-functie, zodat de actuele positie in het menu bepaald kan worden? Moet ik naar een controller/view systeem om de navigatie af te handelen? De betreffende site is hier qua structuur al enigzins op ingericht. Moet ik denken aan url's met $_GET-variabelen? Momenteel heb ik nog enkele pagina's waaran data niet uit een database komt maar direct in de code staat. Statische pagina's.
    Ook wil ik de database met menustructuur gebruiken om een sitemap te genereren. Wat zijn hier haken en ogen?

    Iemand voorbeelden/ideeen/tips/artikelen/info over dit onderwerp? De boel scripten moet mij wel lukken. Voor ik begin wil ik info inwinnen. That's all.
    hello_moto1992zondag 1 maart 2009 @ 14:10
    quote:
    Op donderdag 26 februari 2009 18:06 schreef cablegunmaster het volgende:

    [..]

    psst.... last.fm doet het automatisch
    maar handmatig kan ook doormiddel van een website + sql + php
    Ja, dat denk ik ook wel ja Maar hoe ?
    cablegunmasterzondag 1 maart 2009 @ 14:21
    quote:
    Op zondag 1 maart 2009 14:10 schreef hello_moto1992 het volgende:

    [..]

    Ja, dat denk ik ook wel ja Maar hoe ?
    welke ?
    1e
    of 2e..

    mensen zijn ook zo duidelijk


    probleempje
    webpagina's met divs

    [ Bericht 11% gewijzigd door cablegunmaster op 01-03-2009 15:34:16 ]
    Likkende_Lassiemaandag 2 maart 2009 @ 08:15
    Vraagje

    In een webshop geef ik de mogelijkheid om gedane bestellingen te downloaden als XML.
    De opbouw is als volgt.

    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
    <bestellingen>
       <bestelling>   
          <bestelnummer>5</bestelnummer>
          <klantnummer>51508</klantnummer>
          <aflever_adres>
             <bedrijfsnaam></bedrijfsnaam>
             <straat_huisnummer></straat_huisnummer>
             <postcode></postcode>
             <plaats></plaats>
             <land></land>
          </aflever_adres>
          <factuur_adres>
             <bedrijfsnaam></bedrijfsnaam>
             <straat_huisnummer></straat_huisnummer>
             <postcode></postcode>
             <plaats></plaats>
             <land></land>
          </factuur_adres>
          <aflever_datum>02-03-2009</aflever_datum>
          <bestel_datum>01-03-2009</bestel_datum>
          <status>1</status>
          <opmerkingen></opmerkingen>
          <artikel>
             <artikelnummer>51566110</artikelnummer>
             <artikelnummer_optioneel></artikelnummer_optioneel>
             <aantal>2</aantal>
             <naam>BIEFSTUK</naam>
             <eenheid></eenheid>
             <inhoud>0</inhoud>
             <prijs>5.02</prijs>
             <btw_percentage></btw_percentage>
             <opmerkingen></opmerkingen>
             <status>1</status>
          </artikel>
       </bestelling>   
    </bestellingen>


    Nu heb ik het verzoek gekregen dit ook als .csv te kunnen aanleveren, maar is het handig om dit in 1 bestand te stoppen? Logischer zou zijn 2 bestanden, 1 met de bestellingen + info, en 1 met de regels per bestelling. Iemand hier tips over?

    [ Bericht 1% gewijzigd door Likkende_Lassie op 02-03-2009 08:27:00 ]
    Roy_Tmaandag 2 maart 2009 @ 08:37
    Je XML is niet helemaal logisch: je kunt slechts één artikel kwijt op deze manier. Wil je er meer kwijt, dan zul je <artikelen> moeten maken, en daar meerdere keren <artikel> in kunnen zetten. Ook zou ik de data in een standaard formaat noteren.

    Los van deze extragratis tips (:P) is hiervoor CSV gebruiken gewoon ongeschikt, omdat je dan de relatie tussen de order en de artikelen kwijt bent. Waarvoor willen ze die CSV gaan gebruiken?
    Likkende_Lassiemaandag 2 maart 2009 @ 08:56
    Het is momenteel wel mogelijk om meerdere artikelen toe te voegen, door de artikeltag vaker te herhalen.
    Het klopt dat het logischer is om het in <artikelen> te plaatsen, wat ik zal doen

    Hoe bedoel je het standaard formaat?
    CSV is inderdaad zeer ongeschikt hiervoor, in het 2e csv bestand zou ik nog wel een koppeling kunnen maken met het ordernummer.....
    Ze willen dit gaan gebruiken omdat hun systeem XML niet ondersteunt.
    Catch22-maandag 2 maart 2009 @ 09:01
    Wiens systeem ?
    Likkende_Lassiemaandag 2 maart 2009 @ 09:04
    Van een klant van mij. Meerdere klanten draaien op dit systeem, waarvan enkele wel XML ondersteunen.
    Roy_Tmaandag 2 maart 2009 @ 09:13
    quote:
    Op maandag 2 maart 2009 08:56 schreef Likkende_Lassie het volgende:
    Het is momenteel wel mogelijk om meerdere artikelen toe te voegen, door de artikeltag vaker te herhalen.
    Het klopt dat het logischer is om het in <artikelen> te plaatsen, wat ik zal doen
    Graag, want door gewoon <artikel> vaker te herhalen krijg je een XML die amper te parsen is
    quote:
    Hoe bedoel je het standaard formaat?
    Je gebruikt nu een NL formaat. Een internationale standaard als ISO 8601 of RFC 2822 zou beter zijn (zie de PHP docs over date()).
    quote:
    CSV is inderdaad zeer ongeschikt hiervoor, in het 2e csv bestand zou ik nog wel een koppeling kunnen maken met het ordernummer.....
    Ze willen dit gaan gebruiken omdat hun systeem XML niet ondersteunt.
    Tja, je kunt van alles bakken, maar het blijft een brakke oplossing Werkt hun systeem dan wel wanneer je twee CSV's maakt?
    Nashjemaandag 2 maart 2009 @ 10:31
    Ik heb een function nieuws die ik meerdere keren aanroep op pagina's, maar php zegt dat dit niet mag, terwijl dit vorige week allemaal goed is gegaan Totdat ik een get scriptje had gemaakt.. Wat er los van zou moeten staan.
    1Fatal error: Cannot redeclare nieuws()
    Roy_Tmaandag 2 maart 2009 @ 10:34
    Het gaat niet om die aanroep, het gaat om wat er in de foutmelding staat: je kunt de functie niet twee keer aanmaken.

    Je hebt dus twee keer dit in je code staan:

    1
    2
    3
    4
    5
    <?php
    function nieuws() {
       ...
    }
    ?>


    Aanroepen mag je het zoveel doen als je wilt.
    Intrepiditymaandag 2 maart 2009 @ 10:35
    quote:
    Op maandag 2 maart 2009 10:31 schreef Nashje het volgende:
    Ik heb een function nieuws die ik meerdere keren aanroep op pagina's, maar php zegt dat dit niet mag, terwijl dit vorige week allemaal goed is gegaan Totdat ik een get scriptje had gemaakt.. Wat er los van zou moeten staan.
    [ code verwijderd ]
    De foutmelding zegt natuurlijk dat je 2 maal eenzelfde functie probeert aan te maken, maar zonder code kan ik er weinig meer van zeggen..
    Nashjemaandag 2 maart 2009 @ 10:49
    quote:
    Op maandag 2 maart 2009 10:34 schreef Roy_T het volgende:
    Het gaat niet om die aanroep, het gaat om wat er in de foutmelding staat: je kunt de functie niet twee keer aanmaken.

    Je hebt dus twee keer dit in je code staan:
    [ code verwijderd ]

    Aanroepen mag je het zoveel doen als je wilt.
    Ik heb 2 includes. 1tje voor het menu en 1tje voor het nieuws (content). In beide scripten staat een function nieuws ja, maar dat heb ik ook nodig. Hoezo aanroepen dan?
    Lightmaandag 2 maart 2009 @ 11:06
    quote:
    Op maandag 2 maart 2009 10:49 schreef Nashje het volgende:

    [..]

    Ik heb 2 includes. 1tje voor het menu en 1tje voor het nieuws (content). In beide scripten staat een function nieuws
    Daar gaat het dus fout. Je zult een van de twee nieuwsfuncties moeten hernoemen. Functienamen moeten uniek zijn.
    Intrepiditymaandag 2 maart 2009 @ 11:27
    quote:
    Op maandag 2 maart 2009 10:49 schreef Nashje het volgende:

    [..]

    Ik heb 2 includes. 1tje voor het menu en 1tje voor het nieuws (content). In beide scripten staat een function nieuws ja, maar dat heb ik ook nodig. Hoezo aanroepen dan?
    En hoe moet het PHP script verder weten welke van de 2 nieuws-functies je wilt gebruiken dan?
    Nashjemaandag 2 maart 2009 @ 11:38
    quote:
    Op maandag 2 maart 2009 11:27 schreef Intrepidity het volgende:

    [..]

    En hoe moet het PHP script verder weten welke van de 2 nieuws-functies je wilt gebruiken dan?
    Nou ehh ik wil ze allebei gebruiken. Op beide pagina's.
    Tijnmaandag 2 maart 2009 @ 11:40
    quote:
    Op maandag 2 maart 2009 11:38 schreef Nashje het volgende:

    [..]

    Nou ehh ik wil ze allebei gebruiken. Op beide pagina's.
    Als je twee functies wilt gebruiken die allebei iets anders doen, dan kun je ze niet hetzelfde noemen natuurlijk.
    Intrepiditymaandag 2 maart 2009 @ 11:40
    quote:
    Op maandag 2 maart 2009 11:38 schreef Nashje het volgende:

    [..]

    Nou ehh ik wil ze allebei gebruiken. Op beide pagina's.
    Het punt is dus dat het geen 2 pagina's meer zijn als je iets include.. dan word het samengevoegd tot 1 lap code, en dan is het verschil tussen de 2 nieuwsfuncties niet meer duidelijk.. gewoon 1 hernoemen dus.
    Daarnaast is nieuws() natuurlijk gewoon een slechte functienaam...
    Nashjemaandag 2 maart 2009 @ 11:42
    Als ik de ene hernoem doet ie het nog niet.

    Maar je mag eigenlijk dus maar 1 functie aanmaken, en die functie meerdere malen aanroepen? Maar hoe kan ik die functie vervolgens aanroepen? Wat voor script?
    Xcaliburmaandag 2 maart 2009 @ 11:43
    quote:
    Op maandag 2 maart 2009 10:49 schreef Nashje het volgende:

    [..]

    Ik heb 2 includes. 1tje voor het menu en 1tje voor het nieuws (content). In beide scripten staat een function nieuws ja, maar dat heb ik ook nodig. Hoezo aanroepen dan?
    ik vraag me sowieso af waarom je een functie "nieuws" in het menu hebt....

    Daarnaast is het wel handig als de naam van de functie aangeeft wat de functie doet. "nieuws" is nogal weinigzeggend, behalve dat het kennelijk iets met nieuws te maken heeft.... Er vanuit gaande dat beide functies iets anders doen, is het probleem met de naamgeving op die manier ook vrij eenvoudig op te lossen natuurlijk
    Intrepiditymaandag 2 maart 2009 @ 11:45
    quote:
    Op maandag 2 maart 2009 11:42 schreef Nashje het volgende:
    Als ik de ene hernoem doet ie het nog niet.

    Maar je mag eigenlijk dus maar 1 functie aanmaken, en die functie meerdere malen aanroepen? Maar hoe kan ik die functie vervolgens aanroepen? Wat voor script?
    Misschien doe je er goed aan nog eens een PHP boek open te slaan Vooral als je niet weet hoe je functies definieert en aanroept..
    Roy_Tmaandag 2 maart 2009 @ 11:45
    quote:
    Op maandag 2 maart 2009 11:42 schreef Nashje het volgende:

    Maar je mag eigenlijk dus maar 1 functie aanmaken, en die functie meerdere malen aanroepen? Maar hoe kan ik die functie vervolgens aanroepen? Wat voor script?
    Ik weet dat dit het "voor dummies" tpic is, maar het zou erg helpen als je iig de moeite zou doen om op PHP.net te lezen wat een functie is en hoe je 'm gebruikt.
    Tijnmaandag 2 maart 2009 @ 11:52
    quote:
    Op maandag 2 maart 2009 11:42 schreef Nashje het volgende:

    Maar je mag eigenlijk dus maar 1 functie aanmaken, en die functie meerdere malen aanroepen? Maar hoe kan ik die functie vervolgens aanroepen? Wat voor script?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    function supertof($dingen)
    {
       echo 
    $dingen.' zijn supertof!';

       return 
    true;
    }

    supertof('bananen');
    supertof('frietvorkjes');
    supertof('topics op fok');
    ?>


    Voila, 1 functie die 3x wordt aangeroepen.

    Als je dit niet begrijpt, is een basiscursus PHP misschien wel een goed idee.
    Roy_Tmaandag 2 maart 2009 @ 12:25
    Wat is het nut van die "return true", Tijn?
    Intrepiditymaandag 2 maart 2009 @ 12:39
    quote:
    Op maandag 2 maart 2009 12:25 schreef Roy_T het volgende:
    Wat is het nut van die "return true", Tijn?
    In dit geval niet zoveel, maar het kan een goede gewoonte zijn standaard terug te geven of de uitvoer gelukt is of niet.. Hoewel op den duur exceptions natuurlijk prettiger zijn..
    Roy_Tmaandag 2 maart 2009 @ 12:43
    quote:
    Op maandag 2 maart 2009 12:39 schreef Intrepidity het volgende:

    In dit geval niet zoveel, maar het kan een goede gewoonte zijn standaard terug te geven of de uitvoer gelukt is of niet.. Hoewel op den duur exceptions natuurlijk prettiger zijn..
    Ik had het over dit geval Puur persoonlijk zet ik sowieso nooit een echo() in een functie; dat regel ik wel in de view. Door enkel een string te returnen, heb je dan al "true".
    Intrepiditymaandag 2 maart 2009 @ 12:47
    quote:
    Op maandag 2 maart 2009 12:43 schreef Roy_T het volgende:

    [..]

    Ik had het over dit geval Puur persoonlijk zet ik sowieso nooit een echo() in een functie; dat regel ik wel in de view. Door enkel een string te returnen, heb je dan al "true".
    Ik denk dat het gebruik van MVC voorlopig even buiten de scope van de kennis van Nashje valt maar je hebt gelijk
    Tijnmaandag 2 maart 2009 @ 12:47
    quote:
    Op maandag 2 maart 2009 12:25 schreef Roy_T het volgende:
    Wat is het nut van die "return true", Tijn?
    Oh dat is er niet, maar ik zorg altijd dat een functie iets returnt. Het zou natuurlijk beter zijn om in dit geval de string te returnen, maar goed, het is sowieso meer bedoeld als pseudo-code om te laten zien hoe je 1 functie meerdere keren kunt aanroepen.
    Roy_Tmaandag 2 maart 2009 @ 12:52
    Je hebt gelijk Tijn Ik hoop dat 'ie het snapt
    cablegunmastermaandag 2 maart 2009 @ 20:39
    http://trinitati.nl/agenda.php

    select * from kalender where datum > now() order by datum,tijd asc

    waarom mag ik die dubbele order by wel gebruiken in de sql van de phpmyadmin
    en niet in de php zelf? want daar snapt hij de vraag niet.

    kan ik dit anders schrijven?


    het idee is dat hij ordert bij datum en dan bij tijd in de phpmyadmin doet hij dit netjes maar de php laat de wensen over
    GlowMousemaandag 2 maart 2009 @ 20:41
    Waarom mag dat in php niet? Wat geeft mysql_error()?
    cablegunmastermaandag 2 maart 2009 @ 20:41
    quote:
    Op maandag 2 maart 2009 20:41 schreef GlowMouse het volgende:
    Waarom mag dat in php niet? Wat geeft mysql_error()?
    niks hij accepteert het en doet niks. en geeft alleen order by datum weer. en niet bij tijd. ( extra veld)


    laat maar

    denk dat het zo wel werkt


    stomme refresh refresht stom! 4 x refreshen doet hij het wel goed

    [ Bericht 7% gewijzigd door cablegunmaster op 02-03-2009 20:49:11 ]
    Catch22-maandag 2 maart 2009 @ 21:00
    quote:
    Op maandag 2 maart 2009 12:39 schreef Intrepidity het volgende:

    [..]

    In dit geval niet zoveel, maar het kan een goede gewoonte zijn standaard terug te geven of de uitvoer gelukt is of niet.. Hoewel op den duur exceptions natuurlijk prettiger zijn..
    ik zou maar niet naar naar een andere programmeertaal overstappen. Zulke php-eigen dingen (fouten imo) werken in geeneen andere taal volgens mij. In C# bijv. heb je een returntype en daar hou je je aan. Als je niets te returnen hebt moet je dat ook niet doen.
    Tijnmaandag 2 maart 2009 @ 21:38
    quote:
    Op maandag 2 maart 2009 21:00 schreef Catch22- het volgende:

    [..]

    ik zou maar niet naar naar een andere programmeertaal overstappen. Zulke php-eigen dingen (fouten imo) werken in geeneen andere taal volgens mij. In C# bijv. heb je een returntype en daar hou je je aan. Als je niets te returnen hebt moet je dat ook niet doen.
    In veel scripttalen kun je returnen wat je wil vanuit een functie, zonder dat je van te voren een return type hoeft te definiëren. Dat is niet specifiek voor PHP, ook in Python, Perl en Ruby kun je vrij returnen.
    cablegunmastermaandag 2 maart 2009 @ 22:42
    quote:
    Op maandag 2 maart 2009 21:38 schreef Tijn het volgende:

    [..]

    In veel scripttalen kun je returnen wat je wil vanuit een functie, zonder dat je van te voren een return type hoeft te definiëren. Dat is niet specifiek voor PHP, ook in Python, Perl en Ruby kun je vrij returnen.
    java dacht ik ook
    Lightmaandag 2 maart 2009 @ 22:44
    quote:
    Op maandag 2 maart 2009 22:42 schreef cablegunmaster het volgende:

    [..]

    java dacht ik ook
    Als je Javascript bedoelt, zou je best eens gelijk kunnen hebben. Als je echt Java bedoelt niet, daar moet je een return type opgeven. bij het declareren van een functie. En dan moet je ook iets van dat type teruggeven.
    slacker_nlmaandag 2 maart 2009 @ 23:05
    Ligt eraan, een void doet niks..
    1
    2
    3
    4
    5
    6
    7
    public void do_nothing(String bla) {
         system.println(bla);
    }

    public String do_string(String bla) {
         return bla + "bla";
    }
    Lightmaandag 2 maart 2009 @ 23:13
    quote:
    Op maandag 2 maart 2009 23:05 schreef slacker_nl het volgende:
    Ligt eraan, een void doet niks..
    [ code verwijderd ]
    Bij een void mag je niets teruggeven. Je moet je nog steeds aan de declaratie houden.
    daReaperwoensdag 4 maart 2009 @ 00:47
    lama

    [ Bericht 98% gewijzigd door daReaper op 04-03-2009 01:49:53 ]
    Catch22-woensdag 4 maart 2009 @ 09:01
    quote:
    Op maandag 2 maart 2009 23:13 schreef Light het volgende:

    [..]

    Bij een void mag je niets teruggeven. Je moet je nog steeds aan de declaratie houden.
    Ik vind dat wel prettig programmeren.

    Evenals gewoon types aan je variabelen geven, het schept gewoon veel meer duidelijkheid.
    Lekkere_Kwalwoensdag 4 maart 2009 @ 10:54
    quote:
    Op maandag 2 maart 2009 22:44 schreef Light het volgende:

    [..]

    Als je Javascript bedoelt, zou je best eens gelijk kunnen hebben. Als je echt Java bedoelt niet, daar moet je een return type opgeven. bij het declareren van een functie. En dan moet je ook iets van dat type teruggeven.
    Maar dat kan je weer oplossen met een template
    daReaperwoensdag 4 maart 2009 @ 21:31
    Ik probeer een fotoalbum in mijn site in te bouwen. Ik heb hiervoor Plogger gedownload, nadat ik erachter kwam dat deze eenvoudig binnenin een site in te bouwen is door enkel 2 functies op de juiste momenten aan te roepen. Nou stuit ik echter op 1 probleem:

    Ik werk zelf met templates, wat er op neer komt dat alle output pas aan het eind van het script wordt "geprint". Plogger werkt echter met directe prints, waardoor alles helemaal in de soep loopt. Op dit moment ziet mijn script er zo uit:

    1
    2
    3
    4
    5
    6
    <?php
    if ($page == "fotos") { ////////// FOTO'S ////////////
      
    $site->AddParam("GALLERY_HEAD",the_gallery_head());
      
    $content the_gallery();
    }
    ?>


    de functies "the_gallery_head()" en "the_gallery()" printen dus direct hun info, maar ik wil eigenlijk dat al die prints dus worden geredirect naar bijvoorbeeld $content. Is er een mogelijkheid om dit te doen?
    GlowMousewoensdag 4 maart 2009 @ 21:40
    Een andere gallery gebruiken (gallery.sf.net) of output bufferen.
    daReaperwoensdag 4 maart 2009 @ 21:44
    quote:
    Op woensdag 4 maart 2009 21:40 schreef GlowMouse het volgende:
    Een andere gallery gebruiken (gallery.sf.net) of output bufferen.
    Ik heb naar gallery gekeken, maar die is te moeilijk in mijn site te integreren... Ik ga kijken naar dat gebuffer.
    Lightwoensdag 4 maart 2009 @ 21:44
    quote:
    Op woensdag 4 maart 2009 21:31 schreef daReaper het volgende:
    Ik probeer een fotoalbum in mijn site in te bouwen. Ik heb hiervoor Plogger gedownload, nadat ik erachter kwam dat deze eenvoudig binnenin een site in te bouwen is door enkel 2 functies op de juiste momenten aan te roepen. Nou stuit ik echter op 1 probleem:

    Ik werk zelf met templates, wat er op neer komt dat alle output pas aan het eind van het script wordt "geprint". Plogger werkt echter met directe prints, waardoor alles helemaal in de soep loopt. Op dit moment ziet mijn script er zo uit:
    [ code verwijderd ]

    de functies "the_gallery_head()" en "the_gallery()" printen dus direct hun info, maar ik wil eigenlijk dat al die prints dus worden geredirect naar bijvoorbeeld $content. Is er een mogelijkheid om dit te doen?
    Yep, kijk eens naar ob_start() en gerelateerde functies.
    Lightwoensdag 4 maart 2009 @ 21:45
    quote:
    Op woensdag 4 maart 2009 21:44 schreef daReaper het volgende:

    [..]

    Ik heb naar gallery gekeken, maar die is te moeilijk in mijn site te integreren...
    Je kunt ook zelf een gallery bouwen
    daReaperwoensdag 4 maart 2009 @ 22:06
    Het heeft even wat moeite gekost, maar ik heb 'm eindelijk:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    if ($page == "fotos") { ////////// FOTO'S ////////////
      
    ob_start();
      
    the_gallery_head();
      
    $gallery_head ob_get_contents();
      
    ob_clean();
      
    $site->AddParam("GALLERY_HEAD"$gallery_head);
      
    the_gallery();
      
    $content =& new Template(array(
        
    "text"=>ob_get_contents(),
        
    "die_on_bad_params"=>0,
      ));
      
    ob_end_clean();
    }
    ?>
    Twisted_Logicvrijdag 6 maart 2009 @ 11:30
    Beste mensen,

    Ik ben momenteel bezig om een menu door een database aan te sturen. Dat is inmiddels al gelukt, alleen wil ik er nu ook een dropdown menu van maken. Het dropdown gedeelte doe ik dmv een style sheet.

    Het enige wat ik niet voor me kaar kan krijgen is dat de submenu items naast het menu item waar het bijhoort komt.

    Zo ziet de database eruit:

    Menu
    menu_id
    pagina_id
    menu_volgorde

    Submenu
    submenu_id
    pagina_id
    menu_id

    In het submenu komt dus het menu_id te staan van het menu waar het onder hoort te komen staan.

    Nou ziet de code er als volgt uit.
    Code van het menu:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $Menu_Query 
    $Sql->Query("SELECT * FROM menu ORDER BY menu_volgorde ASC");
    while(
    $Menu mysql_fetch_array($Menu_Query)) {

    $Menu_naam $Txt->safeoutput($Menu['menu_naam']);
    $Pagina_id $Txt->safeoutput($Menu['pagina_id']);

    $Tpl->newBlock('MENU');
    $Tpl->Assign('MENU_NAAM'$Menu_naam);
    $Tpl->Assign('PAGINA_ID'$Pagina_id);
    ?>


    En de code van het submenu heb ik als volgt:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $Submenu_Query 
    $Sql->Query("SELECT m.*, s.* FROM menu m, submenu s WHERE m.menu_id = s.menu_id");
    while(
    $Submenu mysql_fetch_array($Submenu_Query)) {

    if( 
    $Sql->Count($Submenu_Query) != ){
    $Submenu_naam $Txt->safeoutput($Submenu['submenu_naam']);
    $Pagina_id $Txt->safeoutput($Submenu['pagina_id']);

    $Tpl->newBlock('SUBMENU');
    $Tpl->Assign('SUBMENU_NAAM'$Submenu_naam);
    $Tpl->Assign('PAGINA_ID'$Pagina_id);
    }
    }
    ?>


    Ik moet het voormekaar krijgen om er een check in te krijgen dat hij bij elk menu item gaat kijken of er submenu items zijn. Dit krijg ik echter nog niet voormekaar.

    Kan / wil iemand mij even uit de brand helpen? :) Want weet echt niet meer hoe ik dit moet aanpakken :X
    Lekkere_Kwalvrijdag 6 maart 2009 @ 11:55
    Wat je wil is een JOIN waardoor als er voor een menu_id geen submenu_id is, de waardes NULL erin komen te staan, waar je op kan toetsen.

    Trouwens counten op !=0 heeft weinig effect want als er een zero result set is, komt hij volgens mij niet eens de fetch-while-loop in.
    Catch22-vrijdag 6 maart 2009 @ 13:16
    Je kan een subselect maken

    1SELECT * FROM menu WHERE menu_id IN (SELECT menu_id FROM submenu)

    dan krijg je alles terug met een submenuitem.

    1SELECT count(*) FROM menu WHERE menu_id IN (SELECT menu_id FROM submenu) AND menu_id = '$menuId'

    je krijgt 1 terug als hij submenuitems heeft of niet.

    Je opzet is niet echt mooi moet ik zeggen. Je kan misschien beter gewoon 1 tabel aanhouden met beide menu's en een parent_id er bij. Dan kan je hetzelfde en eventueel zelfs een extra laag er in maken.

    Het submenu is namelijk gelijk aan het menu, buiten dat er een parent is. En je hebt zo geen order in je submenu. Daarbij kan je dan alle klassen e.d. voor alle menu's gebruiken. Maar dit is enkel een tip
    Roy_Tvrijdag 6 maart 2009 @ 13:18
    quote:
    Op vrijdag 6 maart 2009 13:16 schreef Catch22- het volgende:

    Je opzet is niet echt mooi moet ik zeggen. Je kan misschien beter gewoon 1 tabel aanhouden met beide menu's en een parent_id er bij. Dan kan je hetzelfde en eventueel zelfs een extra laag er in maken.
    Eensch Een submenu item is in pricipe eenzelfde entitiet als een hoofdmenu item, alleen dan met een parent item.
    Lekkere_Kwalvrijdag 6 maart 2009 @ 14:28
    Wat ze denk ik bedoelen is dat er voor elk menu slechts één submenu kan zijn, terwijl jouw 2 tabellen suggereren dat er willekeurige koppelingen (dus ook 2 submenu's voor 1 menu) mogelijk zijn. Beide situaties zijn niet per sé incorrect, dat hangt van je bedoeling af. Ik kan me ook voorstellen dat je de mogelijkheid wilt dat er meerdere submenu's samengevoegd in één menu komen... Zo niet dan is je huidige oplossing inderdaad niet optimaal.

    Echter de oplossing van één menutabel met per menu evt. een parent sluit geen cirkelkoppelingen uit waar een script behoorlijk van op z'n bek kan gaan (menu 1 heeft menu 2 als parent en menu 2 heeft menu 1 als parent). Dit vereist wel weer 2 tabellen met een constraint dat de foreign key menu_id (of parent_id beter gezegd) uniek is in dat tabel.

    @Catch_22: schoonheidsopmerking: IN-statements zijn performancekilling als z'n tabel groot wordt, want elke keer moet hij die hele lijst van ID's af om te zien of het betreffende ID daarin staat. Een JOIN doet dat onder de motorkap en stukken sneller, vooral als er een index aanwezig is. Je 2e query is namelijk exact een RIGHT JOIN verwoord in pre-JOIN-tijdperk SQL
    Nashjevrijdag 6 maart 2009 @ 14:40
    Hoe voer ik een query uit na een submit?

    Heb nu:
    1
    2
    3
    if(!empty($_POST["submit"]))

    $query = "INSERT INTO besparingsformulieren (voornaam,achternaam) VALUES ($Voornaam,$Achternaam)";
    Xcaliburvrijdag 6 maart 2009 @ 14:45
    Ik zet altijd een variabele 'action', op basis waarvan ik een handeling ga uitvoeren
    Lekkere_Kwalvrijdag 6 maart 2009 @ 14:49
    quote:
    Op vrijdag 6 maart 2009 14:40 schreef Nashje het volgende:
    Hoe voer ik een query uit na een submit?

    Heb nu:
    [ code verwijderd ]
    Daar is isSet voor, en dan dien je tegelijk ook te controleren of ál je variabelen die je wilt invoeren geSet zijn En als je het helemaal netjes wilt doen moet er natuurlijk nog een anti-injection over de variabelen heen.
    Nashjevrijdag 6 maart 2009 @ 14:52
    quote:
    Op vrijdag 6 maart 2009 14:49 schreef Lekkere_Kwal het volgende:

    [..]

    Daar is isSet voor, en dan dien je tegelijk ook te controleren of ál je variabelen die je wilt invoeren geSet zijn En als je het helemaal netjes wilt doen moet er natuurlijk nog een anti-injection over de variabelen heen.
    Ja dat doet ie al. Onder de if empty submit komen enkele variabelen die die dan ophaalt. Daarom wil ik die query daar ook onder zetten. Als de variabelen zijn opgehaald moet ie die vervolgens in de database gooien met INSERT.
    Lekkere_Kwalvrijdag 6 maart 2009 @ 14:58
    Ja ipv empty gebruik isset:
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    if (isset($_POST['submit'])){
     if(isset(
    $_POST['voornaam']) && isset($_POST['achternaam'])){
       
    // hier $Voornaam en $Achternaam ophalen en filteren
       
    $query "INSERT INTO besparingsformulieren (voornaam,achternaam) VALUES ($Voornaam,$Achternaam)";
     }
    }
    ?>

    Ik vraag me trouwens wel af hoe nuttig je database-tabel is met alleen een voornaam en achternaam (wat als er 2 Jan Jansens zijn?), maar wellicht is dat alleen een voorbeeldje van je.
    Lekkere_Kwalvrijdag 6 maart 2009 @ 15:01
    quote:
    Op vrijdag 6 maart 2009 14:45 schreef Xcalibur het volgende:
    Ik zet altijd een variabele 'action', op basis waarvan ik een handeling ga uitvoeren
    Action is toch al een 'gereserveerd' FORM attribuut? Dat specificeert welke pagina (de URI letterlijk) wordt opgevraagd als je op Submit klikt, waarbij de waarde NULL staat voor de huidige pagina. nvm

    [ Bericht 7% gewijzigd door Lekkere_Kwal op 06-03-2009 15:24:46 ]
    Roy_Tvrijdag 6 maart 2009 @ 15:14
    quote:
    Op vrijdag 6 maart 2009 15:01 schreef Lekkere_Kwal het volgende:

    Action is toch al een 'gereserveerd' FORM attribuut? Dat specificeert welke pagina (de URI letterlijk) wordt opgevraagd als je op Submit klikt, waarbij de waarde NULL staat voor de huidige pagina.
    Dus? Dat heeft toch helemaal niets te maken met de namen van je inputs?
    Lekkere_Kwalvrijdag 6 maart 2009 @ 15:24
    quote:
    Op vrijdag 6 maart 2009 15:14 schreef Roy_T het volgende:

    [..]

    Dus? Dat heeft toch helemaal niets te maken met de namen van je inputs?
    Oeps inderdaad
    Nashjevrijdag 6 maart 2009 @ 15:28
    Dat doet ie niet, in ieder geval, hij schrijft de gegevens niet weg in de database .
    Nashjevrijdag 6 maart 2009 @ 15:30
    quote:
    Op vrijdag 6 maart 2009 14:58 schreef Lekkere_Kwal het volgende:
    Ik vraag me trouwens wel af hoe nuttig je database-tabel is met alleen een voornaam en achternaam (wat als er 2 Jan Jansens zijn?), maar wellicht is dat alleen een voorbeeldje van je.
    Klopt. Ik doe dit eerst effe om het werkend te maken, later als het werkt komen er ook nog personeelsnummer, telefoonnummer en woonplaats bij.
    Lekkere_Kwalvrijdag 6 maart 2009 @ 15:34
    quote:
    Op vrijdag 6 maart 2009 15:28 schreef Nashje het volgende:
    Dat doet ie niet, in ieder geval, hij schrijft de gegevens niet weg in de database :{.
    Welke error geeft hij terug? Probeer in ieder geval even een vaste input-query (dus die variabelen vaste waardes geven om te checken dat de query überhaupt werkt). Als dat werkt eventjes:
    1
    2
    3
    4
    <?php
    // na isset-controles
    print_r($_POST);
    ?>

    Zodat je kan zien wat er daadwerkelijk binnenkomt vanuit via POST (wellicht heb je per ongeluk de methode nog op GET staan).
    Nashjevrijdag 6 maart 2009 @ 16:20
    Is inmiddels gelukt. Bedankt Lekkere_Kwal .
    splendorzaterdag 7 maart 2009 @ 19:27
    Hoe kun je GET variabelen aan een php file meegeven als je deze via de console uitvoert?
    Ik probeer een cronjob te draaien en cronjob.php werkt gewoon, maar zodra ik er ?password=mijnwachtwoord achter zet werkt het niet meer.

    De hele regel is:
    */1 * * * * /usr/local/bin/php -q -f /home/mijngebruikersnaam/domains/mijndomeinnaam/public_html/cronjob.php?password=mijnwachtwoord
    Intrepidityzaterdag 7 maart 2009 @ 19:41
    quote:
    Op zaterdag 7 maart 2009 19:27 schreef splendor het volgende:
    Hoe kun je GET variabelen aan een php file meegeven als je deze via de console uitvoert?
    Ik probeer een cronjob te draaien en cronjob.php werkt gewoon, maar zodra ik er ?password=mijnwachtwoord achter zet werkt het niet meer.

    De hele regel is:
    */1 * * * * /usr/local/bin/php -q -f /home/mijngebruikersnaam/domains/mijndomeinnaam/public_html/cronjob.php?password=mijnwachtwoord
    Aangezien GET puur voor HTTP bedoeld is kan dat niet..
    Voor zover ik weet is het gebruik van $_SERVER["argc"] en $_SERVER["argv"] de enige methode, waarbij argc het aantal parameters is, en argv de parameters bevat.
    http://nl2.php.net/manual/en/reserved.variables.argv.php

    Als je persee met GET wilt werken kun je eventueel wget op een localhost adres uitvoeren..
    splendorzaterdag 7 maart 2009 @ 19:51
    Ah dankje, zoiets zocht ik inderdaad.
    Die arguments is neem ik aan te vergelijken met -f en -v die ik achter php (in windows php.exe) zet? Daar doe je ongeveer hetzelfde.
    Dus ik zou zoiets als "cronjob.php mijnwachtwoord" moeten hebben en dan controleren op $_SERVER["argv"] == "mijnwachtwoord"?
    Roy_Tzaterdag 7 maart 2009 @ 19:52
    Ik zou het gewoon met wget doen, dan ben je het snelste klaar.
    Intrepidityzaterdag 7 maart 2009 @ 20:52
    quote:
    Op zaterdag 7 maart 2009 19:51 schreef splendor het volgende:
    Ah dankje, zoiets zocht ik inderdaad.
    Die arguments is neem ik aan te vergelijken met -f en -v die ik achter php (in windows php.exe) zet? Daar doe je ongeveer hetzelfde.
    Dus ik zou zoiets als "cronjob.php mijnwachtwoord" moeten hebben en dan controleren op $_SERVER["argv"] == "mijnwachtwoord"?
    $_SERVER["argv"][1] zou dan "mijnwachtwoord" zijn..
    [0] is de naam van het script, 1 en hoger zijn de argumenten, geexplode op spatie zegmaar..
    splendorzondag 8 maart 2009 @ 11:54
    Ja idd, daar kwam ik ook al snel achter.
    Ik zal ook even naar wget kijken, al werkt het nu wel.
    Ik had alleen per ongeluk de datum verkeerd ingesteld, dus ik werd wakker met 450 e-mails
    Doagerezondag 8 maart 2009 @ 12:25
    Ook even een vraagje.. Ik ben bezig met een contact formulier met php.

    In plaats dat het bericht wordt verstuurd, wordt er gevraagd of ik het contact.php formulier wil opslaan.. Iemand enig idee wat er niet goed aan is?

    Heb de 2 bestanden hier neer gezet: http://members.home.nl/k.schievink/test/

    Alvast bedankt.
    Twisted_Logiczondag 8 maart 2009 @ 12:49
    Die Ziggo server ondersteund geen PHP volgens mij
    jakeeszondag 8 maart 2009 @ 12:50
    quote:
    Op zondag 8 maart 2009 12:25 schreef Doagere het volgende:
    Ook even een vraagje.. Ik ben bezig met een contact formulier met php.

    In plaats dat het bericht wordt verstuurd, wordt er gevraagd of ik het contact.php formulier wil opslaan.. Iemand enig idee wat er niet goed aan is?

    Heb de 2 bestanden hier neer gezet: http://members.home.nl/k.schievink/test/

    Alvast bedankt.
    zie mijn vorig topic PHP --> form vraagje ik had hetzelfde probleem. je moet je formulier vaniut localhost ophalen en starten.
    Doagerezondag 8 maart 2009 @ 12:56
    quote:
    Op zondag 8 maart 2009 12:50 schreef jakees het volgende:

    [..]

    zie mijn vorig topic PHP --> form vraagje ik had hetzelfde probleem. je moet je formulier vaniut localhost ophalen en starten.
    Hoe moet ik dat gaan doen dan? (ben nieuwe met php)
    Intrepidityzondag 8 maart 2009 @ 12:58
    quote:
    Op zondag 8 maart 2009 12:50 schreef jakees het volgende:

    [..]

    zie mijn vorig topic PHP --> form vraagje ik had hetzelfde probleem. je moet je formulier vaniut localhost ophalen en starten.
    Dat heeft er niks mee te maken, haar host ondersteunt gewoon geen PHP.. Dan kun je dat ding wel lekker op localhost gaan draaien maar dan kan niemand anders erbij.
    Dus: zoek een host die wel PHP ondersteuning heeft.
    Roy_Tzondag 8 maart 2009 @ 12:58
    Ik vermoed eerder dat @Home gewoon geen ondersteuning heeft voor PHP.
    Doagerezondag 8 maart 2009 @ 13:13
    quote:
    Op zondag 8 maart 2009 12:58 schreef Roy_T het volgende:
    Ik vermoed eerder dat @Home gewoon geen ondersteuning heeft voor PHP.
    Dus het met het php bestand is niks mis? (Als ik het op een host zet met php ondersteuning werkt het dus gewoon?)
    Roy_Tzondag 8 maart 2009 @ 13:24
    quote:
    Op zondag 8 maart 2009 13:13 schreef Doagere het volgende:

    Dus het met het php bestand is niks mis? (Als ik het op een host zet met php ondersteuning werkt het dus gewoon?)
    Ik heb niet inhoudelijk gekeken Maar het probleem wat je nu hebt komt iig niet door het bestand.
    Doagerezondag 8 maart 2009 @ 13:31
    quote:
    Op zondag 8 maart 2009 13:24 schreef Roy_T het volgende:

    [..]

    Ik heb niet inhoudelijk gekeken Maar het probleem wat je nu hebt komt iig niet door het bestand.
    Heb even een gratis webhost gezocht die php ondersteund, het formulier lijkt inderdaad te werken. Als ik geen naam,email, bericht invul krijg ik hiervan een melding.

    Als ik alles heb ingevult dan krijg ik het volgende te zien:
    quote:
    Warning: mail() [function.mail]: Safety Restriction in effect. The mail() command is not allowed, contact the admin. in /www/110mb.com/k/i/m/y/y/_/_/_/kimyy/htdocs/post.php on line 82
    Uw bericht is verzonden. U krijgt zo spoedig mogelijk antwoord.
    http://kimyy.110mb.com/contact.htm
    Roy_Tzondag 8 maart 2009 @ 13:32
    Die melding lijkt me duidelijk toch? Er is een veiligheidsrestrictie die het sturen van mail niet toestaat (en terecht, want anders zou iedere spammer deze gratis server gebruiken voor het verzorgen van hun spamruns).
    jakeeszondag 8 maart 2009 @ 13:52
    Ik krijg het het uitvoeren van een insert sql telkens de volgende foutmelding

    1"Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\phpdev\www\ontwikkel\voegspelertoe.php". 


    Ik heb de sql gedraaid in de mysqladmin en de php code daardoor laten genereren. De php code is:

    1
    2
    $sql = 'INSERT INTO `spelers` (`spelers_id`, `spelers_voornaam`, `spelers_achternaam`, 
    `spelers_gsm`, `spelers_punten`) VALUES (\'\', \'aa\', \'bb\', \'cc\', \'0\');';


    Kan iemand me hierbij helpen?
    Roy_Tzondag 8 maart 2009 @ 14:00
    Lees de foutmelding eens zou ik zeggen. Het ligt helemaal niet aan je query
    Doagerezondag 8 maart 2009 @ 14:10
    Volgens ziggo wordt php wel ondersteund..
    quote:
    Ondersteunt u voor webhosting nog andere scripting talen dan PHP en Perl, zoals bijvoorbeeld ASP?

    Er worden naast PHP en Perl nog verschillende scripting talen ondersteund. Dit zijn bijvoorbeeld de verschillende shells (bash, tcsh, sh) maar bijvoorbeeld ook Python. ASP wordt echter niet ondersteund.

    Mocht u een taal missen dan kunt u hiervoor altijd een vraag bij ons neerleggen. Indien u per se een eigen omgeving wenst in te richten, is een vrijblijvend overleg aangaande co-locatie diensten ons advies.
    Roy_Tzondag 8 maart 2009 @ 14:15
    Bron (URL)?
    Doagerezondag 8 maart 2009 @ 14:48
    https://onderwijs.casematelecom.nl/template/casema/faq.php
    jakeeszondag 8 maart 2009 @ 14:59
    quote:
    Op zondag 8 maart 2009 14:00 schreef Roy_T het volgende:
    Lees de foutmelding eens zou ik zeggen. Het ligt helemaal niet aan je query
    ok, sorry had een site gecontroleerd en daar stond dat het een probleem kon zijn dat je query geen resultaat heeft. Ik zag nu dat het twee dingen kunnen zijn:
    1) "database heeft geen database connections meer open". Volgens de website moet ik de volgende variabele aanpassen naar 0$conf['db_conntype'] = "0". Er staan vier config.php bestanden op mijn pc en bij alle vier staat er geen $conf variabele.
    2) "mysql server draait niet". Ik heb dit gecontroleerd en zie dat de mysql up is. De current database is leeg dus dat vind ik wel raar. Het resultaat:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Connection id:          233
    Current database:
    Current user:           ODBC@localhost
    Server version:         4.0.0-alpha-nt
    Protocol version:       10
    Connection:             . via named pipe
    Client characterset:    latin1
    Server characterset:    latin1
    UNIX socket:            MySQL
    Uptime:                 2 days 19 hours 11 min 21 sec
    Threads: 1  Questions: 2453  Slow queries: 0  Opens: 110  Flush tables: 1  Open
    tables: 0  Queries per second avg: 0.010


    ik kom er niet uit. alvast bedankt weer.
    GlowMousezondag 8 maart 2009 @ 15:17
    jakees: de melding die je geeft heeft niets met de inhoud van $sql te maken. Je post dus veel te weinig code.

    Doagere: misschien komt het omdat je bij @home zat, maar php-ondersteuning heb je op de webhost die je net gaf niet.
    KoekjesTwisterzondag 8 maart 2009 @ 19:05
    Ik ben in PHP met regular expressions bezig, maar het parsen van een image URL gaat niet helemaal lekker.

    Een klein voorbeeld:
    1src=.{0,10}\"(.{0,100}\.jpg)\"


    Dit werkt uitstekend voor JPG bestanden, maar JPEG, GIF en PNG slaat hij over. Ik heb het geprobeerd met:

    1src=.{0,10}\"(.{0,100}\.[jpg|jpeg|gif|png])\"


    Maar dat lijkt helaas niet te werken. Hoe kan ik dit laatste stapje doen?
    SuperRembozondag 8 maart 2009 @ 19:46
    Je moet de [] even vervangen door ()
    KoekjesTwisterzondag 8 maart 2009 @ 20:16
    Dat gaat voor mij wel een klein probleem worden, want de functie preg_match_all zet alles tussen haakjes in de resultset. Is er nog een alternatief?
    Xcaliburzondag 8 maart 2009 @ 20:22
    is het dan niet

    1src=.{0,10}\"(.{0,100}\.)(jpg|jpeg|gif|png)\" 


    De if-constructie lijkt me verder goed.
    jakeeszondag 8 maart 2009 @ 20:43
    quote:
    Op zondag 8 maart 2009 15:17 schreef GlowMouse het volgende:
    jakees: de melding die je geeft heeft niets met de inhoud van $sql te maken. Je post dus veel te weinig code.

    Doagere: misschien komt het omdat je bij @home zat, maar php-ondersteuning heb je op de webhost die je net gaf niet.
    GlowMouse dit is me code:
    1
    2
    3
    4
    $conn = mysql_connect("localhost", "root ","") or die(mysql_error());
    $conn = mysql_select_db("zaalvoetbal", $conn) or die(mysql_error());
    $sql = 'INSERT INTO `spelers` (`spelers_id`, `spelers_voornaam`, `spelers_achternaam`, `spelers_gsm`, `spelers_punten`) VALUES (\'\', \'aa\', \'bb\', \'cc\', \'0\');'; 
    mysql_query($sql,$conn) or die (mysql_error());

    Wanneer ik de vierde regel niet uitvoer krijg ik geen foutmelding. Wanneer ik dit wel doe dan krijg ik dus de foutmelding :
    1Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in 
    Xcaliburzondag 8 maart 2009 @ 20:55
    heb je je wachtwoord gecensureerd, of is die echt blanco?
    jakeeszondag 8 maart 2009 @ 21:12
    quote:
    Op zondag 8 maart 2009 20:55 schreef Xcalibur het volgende:
    heb je je wachtwoord gecensureerd, of is die echt blanco?
    ik ben nu alleen nog even lokaal aan het ontwikkelen. Dat wachtwoord verzet ik nog wel hoor ;-)
    SuperRembozondag 8 maart 2009 @ 21:17
    quote:
    Op zondag 8 maart 2009 20:16 schreef KoekjesTwister het volgende:
    Dat gaat voor mij wel een klein probleem worden, want de functie preg_match_all zet alles tussen haakjes in de resultset. Is er nog een alternatief?
    preg_match geeft alle gematchte subpatterns terug, dus dat is geen probleem.
    Je kan het subpattern wat je zoekt ook een naam geven, dan kan je 'm makkelijker uit de array vissen:
    quote:
    It is possible to name the subpattern with (?P<name>pattern) since PHP 4.3.3. Array with matches will contain the match indexed by the string alongside the match indexed by a number, then.
    Roy_Tzondag 8 maart 2009 @ 22:48
    quote:
    Jij hebt een SchoolConnect verbinding begrijp ik, waar die webspace onder valt? In dat geval Ziggo even bellen zou ik zeggen
    Lekkere_Kwalmaandag 9 maart 2009 @ 10:41
    quote:
    Op zondag 8 maart 2009 20:43 schreef jakees het volgende:

    [..]

    GlowMouse dit is me code:
    1
    2
    3
    4
    5
    6
    <?php
    $conn 
    mysql_connect("localhost""root ","") or die(mysql_error());
    $conn mysql_select_db("zaalvoetbal"$conn) or die(mysql_error());
    $sql 'INSERT INTO `spelers` (`spelers_id`, `spelers_voornaam`, `spelers_achternaam`, `spelers_gsm`, `spelers_punten`) VALUES (\'\', \'aa\', \'bb\', \'cc\', \'0\');'
    mysql_query($sql,$conn) or die (mysql_error());
    ?>

    De variabele $conn dubbel gebruiken is niet echt handig (wellicht werkt het maar daar moet je nooit op gokken). Maar ik denk dat de fout ontstaat doordat jouw string begint en eindigt met een single quote en er wel tig singel quotes erin voorkomen (de parser ziet geen verschil tussen ' en `). Dus dien je daar dubble quotes voor te gebruiken. En er zit een dubbele ; in op het eind (hoeft niet bij de query toegevoegd te worden, dat doet mysql_query voor jou):
    1
    2
    3
    4
    5
    6
    <?php
    $conn 
    mysql_connect("localhost""root ","") or die(mysql_error());
    $db mysql_select_db("zaalvoetbal"$conn) or die(mysql_error());
    $sql "INSERT INTO `spelers` (`spelers_id`, `spelers_voornaam`, `spelers_achternaam`, `spelers_gsm`, `spelers_punten`) VALUES ('', 'aa', 'bb', 'cc', '0')"
    $result mysql_query($sql,$db) or die (mysql_error());
    ?>

    En ik heb dus de return waarde van mysql_query in een variabele vangen zodat je daarna kan kijken of de insert gelukt is (immers een failed insert geeft geen mysql_error terug).
    KoekjesTwistermaandag 9 maart 2009 @ 11:19
    quote:
    Op zondag 8 maart 2009 21:17 schreef SuperRembo het volgende:

    [..]

    preg_match geeft alle gematchte subpatterns terug, dus dat is geen probleem.
    Je kan het subpattern wat je zoekt ook een naam geven, dan kan je 'm makkelijker uit de array vissen:
    [..]


    Dat klopt, maar dan moet ik dus de rest van mijn code aanpassen. Het meegeven van een naam is inderdaad wel een stuk netter.
    GlowMousemaandag 9 maart 2009 @ 12:14
    quote:
    Op maandag 9 maart 2009 10:41 schreef Lekkere_Kwal het volgende:

    [..]

    De variabele $conn dubbel gebruiken is niet echt handig (wellicht werkt het maar daar moet je nooit op gokken).
    En dat is het, mysql_select_db geeft een mooie true of false terug. En het tweede argument van mysql_query is niet van het booleaanse type.
    PiRANiAmaandag 9 maart 2009 @ 12:15
    Dit topic was ik kwijt..
    Chandlermaandag 9 maart 2009 @ 16:13
    Ik heb een vraagje hoe kan ik een class binnen een class gebruiken.

    Voor een project wil ik namelijk apparte classes maken voor oa MySQL, Forum, Rechten, Etc.

    Maar in de forum en rechten class wil ik gebruik maken van de MySQL class en de functies daarvan zonder deze opnieuw aan te hoeven maken.

    Wie kan mij hier eens wat meer over vertellen?
    Intrepiditymaandag 9 maart 2009 @ 16:18
    Aangezien het geen cursuscentrum is hier kun je ook gewoon eens rustig de documentatie doornemen
    http://nl2.php.net/zend-engine-2.php

    Niet echt een gerichte vraag die makkelijk te beantwoorden valt in zo'n topic..
    Chandlermaandag 9 maart 2009 @ 16:24
    @Intrepidity: ik ben al de hele dag bezig met het doornemen van documentatie maar kan er gewoon geen antwoord op vinden!. Ook niet in de documentatie waar je naar linkt, zal ongetwijfeld aan mij liggen...
    Intrepiditymaandag 9 maart 2009 @ 16:25
    quote:
    Op maandag 9 maart 2009 16:24 schreef Chandler het volgende:
    @Intrepidity: ik ben al de hele dag bezig met het doornemen van documentatie maar kan er gewoon geen antwoord op vinden!. Ook niet in de documentatie waar je naar linkt, zal ongetwijfeld aan mij liggen...
    Op de pagina "The Basics" staat wat je zoekt:
    http://nl2.php.net/manual/en/language.oop5.basic.php

    Even vertaald naar jouw situatie:
    $database = new Database();
    $database->functie();

    et voila
    Chandlermaandag 9 maart 2009 @ 16:31
    ik weet idd al hoe ik een class moet aanroepen, maar vroeg mij af hoe ik dus standaard van een andere class binnen een class gebruik kan maken

    dus in mijn forum class van mijn database class
    maar ook in mijn andere classes gebruik kan maken van mijn database class.
    Intrepiditymaandag 9 maart 2009 @ 16:35
    http://nl2.php.net/manual/en/function.include.php

    Als je nog niet eens zover komt zou ik je sterk aanraden een goed PHP boek te kopen of tutorials op internet te volgen..
    Chandlermaandag 9 maart 2009 @ 16:39
    OMG, ik script al jaren en weet echt wel wat include is hoor (of require_once).

    Maar goed ik begrijp dus nu uit jou woorden dat ik meerdere classes kan aanmaken

    1
    2
    3
    $class1 = new database();
    $class2 = new Forum();
    $class3 = new Ietsanders();


    waarbij class2 en class3 zonder gezeur gebruik kunnen maken van $class1

    :)
    Roy_Tmaandag 9 maart 2009 @ 16:40
    quote:
    Op maandag 9 maart 2009 16:31 schreef Chandler het volgende:
    ik weet idd al hoe ik een class moet aanroepen, maar vroeg mij af hoe ik dus standaard van een andere class binnen een class gebruik kan maken
    Hoe heb je het geprobeerd, en waaruit bleek dat het niet werkte (errors)?
    Roy_Tmaandag 9 maart 2009 @ 16:41
    quote:
    Op maandag 9 maart 2009 16:39 schreef Chandler het volgende:

    waarbij class2 en class3 zonder gezeur gebruik kunnen maken van $class1
    Vast niet, scope enzo. Maar je kunt binnen class2 natuurlijk prima een referentie maken naar class1.
    Intrepiditymaandag 9 maart 2009 @ 16:42
    quote:
    Op maandag 9 maart 2009 16:39 schreef Chandler het volgende:
    OMG, ik script al jaren en weet echt wel wat include is hoor (of require_once).

    Maar goed ik begrijp dus nu uit jou woorden dat ik meerdere classes kan aanmaken
    [ code verwijderd ]

    waarbij class2 en class3 zonder gezeur gebruik kunnen maken van $class1

    bestand class1.php
    1
    2
    3
    4
    5
    6
    <?php
    class1
    {
      function 
    foo() {}
    }
    ?>


    bestand class2.php
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    require_once("class1.php");
    class2
    {
      function 
    bar()
      {
        
    class1::foo();
      }
    }
    ?>


    Gewoon de classes die je nodig hebt includen en gebruiken...
    Sorry dat ik het zeg, maar het is niet echt te merken dat je al jaren script.. Dan had je namelijk genoeg ervaring gehad om zoiets makkelijk op te zoeken op php.net
    Roy_Tmaandag 9 maart 2009 @ 16:48
    quote:
    Op maandag 9 maart 2009 16:42 schreef Intrepidity het volgende:

    Dan had je namelijk genoeg ervaring gehad om zoiets makkelijk op te zoeken op php.net
    Dit is niet lullig bedoeld richting Chandler, maar hij kan geen documentatie lezen (niet enkel de PHP docs). Of hij weet niet hoe 'ie moet zoeken.
    Chandlermaandag 9 maart 2009 @ 16:50
    ik snap nu wat je bedoelt, echter kun je in het gebruik van class1::foo() geen $this-> gebruiken (heb ik ergens gelezen).

    Ow en dat je niet kunt zien dat ik al jaren script is helaas een van mijn zwakke punten. Zoals de meeste posters hier wel weten leer ik door te doen, lezen is helaas het vak waarop ik nooit zal slagen ongeacht ik uren door de teksten heen loop..

    Maar goed, ik doe mijn best om alles op te vatten en te begrijpen en tja meer kan ik niet hé..

    Ow... en dan nog mijn ervaring; dat heeft zich al geuit in vele goedlopende sites
    Chandlermaandag 9 maart 2009 @ 16:51
    quote:
    Op maandag 9 maart 2009 16:48 schreef Roy_T het volgende:

    [..]

    Dit is niet lullig bedoeld richting Chandler, maar hij kan geen documentatie lezen (niet enkel de PHP docs). Of hij weet niet hoe 'ie moet zoeken.
    Ik weet dat je het niet lullig bedoelt, maar zoeken en lezen is idd niet mijn sterkste vak! maar aan de andere kant heb ik wel bergen met energie om het te willen en te proberen maar soms zit ik er gewoon door heen

    Zoals NU!

    Wil wel zeggen dat ik sommige tutoriaals wel begrijp, maar dan zit het ook vol logische code waarbij er meer code voorbeelden zijn dan lappen tekst... alles wat ik weet heb ik geleerd door te vragen en door te spelen met bestaande code.. tja gaat niet snel maar ik kom er wel!
    Intrepiditymaandag 9 maart 2009 @ 16:53
    quote:
    Op maandag 9 maart 2009 16:50 schreef Chandler het volgende:
    ik snap nu wat je bedoelt, echter kun je in het gebruik van class1::foo() geen $this-> gebruiken (heb ik ergens gelezen).

    Ow en dat je niet kunt zien dat ik al jaren script is helaas een van mijn zwakke punten. Zoals de meeste posters hier wel weten leer ik door te doen, lezen is helaas het vak waarop ik nooit zal slagen ongeacht ik uren door de teksten heen loop..

    Maar goed, ik doe mijn best om alles op te vatten en te begrijpen en tja meer kan ik niet hé..

    Ow... en dan nog mijn ervaring; dat heeft zich al geuit in vele goedlopende sites
    Klopt, de :: operator is voor static aanroepen. Als je $bla = new Class1(); doet kun je vervolgens $bla->foo(); gebruiken. $this werkt alleen voor methodes en properties binnen de huidige klasse, tenzij je uitbreid op een bepaalde klasse: class2 extends class1.
    het is uiteraard niet aan te raden om forum extends database te gebruiken, want dat klopt gewoon niet.
    Chandlermaandag 9 maart 2009 @ 17:21
    :: werkt helaas niet in mijn geval :{

    voorbeeld:
    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
    <?php
    class tinyMySQL
    {
        
    //
        
    var $host;
        var 
    $user;
        var 
    $password;
        var 
    $database;
        var 
    $connectionLink;
        var 
    $databaseLink;
        
        function 
    __construct($host$username$password)
        {
            if (!
    $this->connectionLink = @mysql_connect($host,
                                                       
    $username,
                                                       
    $password))
            {
                throw new 
    Exception('Kan niet connecten met database server.');
            }
        }
        
        function 
    select_db($database)
        {
            if (
    $this->connectionLink)
            {
                if (!
    $this->databaseLink mysql_select_db($database,
                                                           
    $this->connectionLink))
                {
                    throw new 
    Exception('Kan database koppeling niet aanmaken');
                }
            }
            else
            {
                throw new 
    Exception('Geen database connectie beschikbaar om database te laden');
            }
        }
        
        
        function 
    query($sql)
        {
            if (
    $this->connectionLink)
            {
                if (!
    $result mysql_query($sql,
                                           
    $this->connectionLink))
                {
                    throw new 
    Exception('Error in query: ' $sql);
                }
            }
            else
            {
                throw new 
    Exception('Geen database connectie beschikaar');
            }
        }
        
        function 
    __destruct()
        {
            if (
    $this->connectionLink)
            {
                
    mysql_close($this->connectionLink);
                
                unset(
    $this->connectionLink);
            }
            else
            {
                throw new 
    Exception('Geen database connectie beschikaar');
            }
        }
    }

    class 
    test
    {
        public function 
    testIt()
        {
            
    $x tinyMySQL::query("SELECT * FROM users");
        }
    }

    $t = new test();

    $con = new TinyMySQL("localhost",
                         
    "root",
                         
    "");
    if (
    $con)
    {
        
    $con->select_db("nl_visfreaks");
        
    $t->testIt();
    }
    else
    {
        echo 
    'kan geen connectie maken';
    }
    ?>


    Ik denk dat ik het gewoon verkeerd zie, en op een of andere manier de class moet overnemen in mijn andere classes... oid...
    Intrepiditymaandag 9 maart 2009 @ 18:33
    In je klasse test in de functie testIt roep je query aan met ::, terwijl de betreffende functie niet static is. Eerst een instantie maken, dan met "->" een functie aanroepen.

    Correcte code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    class test
    {
      public function 
    testIt()
      {
        
    $con = new TinyMySQL("localhost""root""");
        if(
    $con)
        {
          
    $con->select_db("nl_visfreaks");
          return 
    $con->query("SELECT * FROM users");
        }
      }
    }

    $t = new test();
    $resultaat $t->testIt();

    // Doe hier iets met $resultaat
    ?>
    SuperRembomaandag 9 maart 2009 @ 19:02
    Er zijn eigenlijk 2 opties:
    1. Je geeft een instantie van je database class mee aan de constructor van je forum class
    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
    class Database
    {
       function __construct($server, $user, $password)
       {
          //...
       }
    }

    class Forum
    {
       var $db;
       
       function __construct($db)
       {
          $this->db = $db;
       }

       public function readTopics()
       {
          $topics = $this->db->query(...);
          return $topics;
       }
    }

    $db = new Database("server", "user", "password");
    $forum = new Forum($db);
    $topics = $forum->readTopics();


    2. Je maakt de configuratie van je database class zo dat je binnen je forum class een nieuwe instantie van je database class kan maken.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    class Database
    {
       public static function create()
       {
          return new Database("server", "user", "password");
       }
    }

    class Forum
    {
       public function readTopics()
       {
          $db = Database::create();
          $topics = $db->query(...);
          return $topics;
       }
    }

    $forum = new Forum();
    $topics = $forum->readTopics();
    Chandlermaandag 9 maart 2009 @ 20:33
    SR! jij snapt het idd!

    Ik denk dat optie 1 voor mij het beste is omdat ik anders voor ieder onderdeel een apparte connectie naar MySQL moet maken, al heb ik vandaag al wat andere sources gezien waarin men middels een controller alle classes laad, en deze classes door elkaar gebruikt kunnen worden, al is het mij nog niet geheel duidelijk hoe dit in zijn werk gaat.
    Xcaliburmaandag 9 maart 2009 @ 20:50
    Ik gebruik optie 1 altijd, daar heb ik wel goede ervaringen mee
    Lightmaandag 9 maart 2009 @ 20:52
    Je kunt ook nog een singleton gebruiken.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    class Database {
      private static 
    $instance null;

      public static function 
    getInstance() {
        if(empty(
    Database::$instance)) {
          
    Database::$instance = new Database();
        }
        return 
    Database::$instance;
      }

      private function 
    __construct() {
        
    // Private constructor, zo kun je niet per ongeluk zelf "new Database()" aanroepen.
      
    }
    }
    ?>


    Gebruiken is ook niet zo ingewikkeld:
    1
    2
    3
    4
    5
    6
    7
    <?php
    class Forum {
      public function 
    readTopic() {
        
    $db Database::getInstance();
      }
    }
    ?>
    Lightmaandag 9 maart 2009 @ 20:54
    quote:
    Op maandag 9 maart 2009 20:50 schreef Xcalibur het volgende:
    Ik gebruik optie 1 altijd, daar heb ik wel goede ervaringen mee
    Volgens mij trek je daar wel heel veel databaseverbindingen mee open. En da's verspilling van resources. Het maakt het ook lastiger om bijvoorbeeld een lijst van alle queries op te vragen.
    Xcaliburmaandag 9 maart 2009 @ 21:11
    Is dat zo?

    Je maakt maar 1x een db-connectie, daarna geef je de connectie mee als variabele aan je andere classes. Dan wordt er toch niet voor iedere class een nieuwe verbinding geopend?
    Lightmaandag 9 maart 2009 @ 21:14
    Je hebt gelijk, ik haalde nummer 1 en nummer 2 van SR door elkaar.
    Xcaliburmaandag 9 maart 2009 @ 21:17
    *phew*
    Chandlermaandag 9 maart 2009 @ 22:00
    :D ik heb inderdaad gekozen voor de optie 1 van SR en dat werkt nu perfect!

    Zelfs snel een MySQL class in elkaar geschroefd, zie voorbeeld:

    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
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    <?php
    class tinyMySQL
    {
        
    //
        
    private $hostname null;
        private 
    $username null;
        private 
    $password null;
        private 
    $database null;
        
        private 
    $db_con null;
        
        
    // check
        
    public $queries = array();

        function 
    __construct($hostname ''$username ''$password ''$database '')
        {
            if (!empty(
    $hostname) && !empty($username))
            {
                
    $this->connect($hostname,
                               
    $username,
                               
    $password);
                               
                if (
    $this->db_con && !empty($database))
                {
                    if (!
    $this->select_db($database))
                    {
                        
    trigger_error('Kan database niet laden, probeer het nogmaals'E_USER_NOTICE);
                    }
                }
            }
        }
        
        public function 
    connect($hostname$username$password)
        {
            if (!empty(
    $hostname) && !empty($username))
            {
                
    $this->db_con mysql_connect($hostname,
                                              
    $username,
                                              
    $password);
                                            
                if (!
    $this->db_con)
                {
                    return 
    false;
                }
                
                
    $this->hostname $hostname;
                
    $this->username $username;
                
    $this->password $password;
                
                return 
    true;
            }
            else
            {
                
    trigger_error('Kan geen connectie maken met de database server met incomplete gegevens'E_USER_NOTICE);
            }
        }

        function 
    select_db($database)
        {
            if (
    $this->db_con)
            {
                
    $try_select = @mysql_select_db($database,
                                               
    $this->db_con);
                                     
                if (
    $try_select)
                {
                    
    $this->database $database;

                    return 
    true;
                }
                else
                {
                    
    trigger_error('Kan database koppeling niet aanmaken'E_USER_NOTICE);
                }
            }
            else
            {
                
    trigger_error('Geen database connectie beschikbaar om database te laden'E_USER_NOTICE);
            }
            
            return 
    false;
        }
        
        
        public function 
    query($sql$unbuffered false)
        {
            if (
    $this->db_con)
            {
                
    // lees query bench totaal items
                
    $x count($this->queries)+1;

                
    // queries bench data
                
    $this->queries[$x] = array("query" => $sql,
                                           
    "start" => time(),
                                           
    "end"   => 0);

                
    // wat voor query is het en voer het uit
                
    if ($unbuffered == true)
                {
                    
    $query_status = @mysql_unbuffered_query($sql,
                                                            
    $this->db_con);
                }
                else
                {
                    
    $query_status = @mysql_query($sql,
                                                 
    $this->db_con);
                }
                
                
    // eind tijd.
                
    $this->queries[$x]['end'] = time();
                
    $this->queries[$x]['time'] = round($this->queries[$x]['end'] - $this->queries[$x]['start'], 4);
                
                
    // query in de fout? sla fout in bench op.
                
    if (!$query_status)
                {
                    
    // error gevonden dus error in query array zetten

                    
    $this->queries[$x]['error'] = mysql_error();
                    
    $this->queries[$x]['errno'] = mysql_errno($this->db_con);
                    
    $this->queries[$x]['minfo'] = mysql_info($this->db_con);
                }
                
                return 
    $query_status;
            }
            else
            {
                
    trigger_error('Geen database connectie beschikaar'E_USER_NOTICE);

                return 
    false;
            }
        }
        
        public function 
    escape($string)
        {
            if (
    $this->db_con)
            {
                if (
    function_exists('mysq_real_escape_string'))
                {
                    return @
    mysql_real_escape_string($string);
                }
                else
                {
                    return @
    mysql_escape_string($string);
                }
            }
            else
            {
                
    trigger_error('Geen database connectie beschikaar'E_USER_NOTICE);

                return 
    false;
            }
        }
        
        public function 
    affected_rows()
        {
            if (
    $this->db_con)
            {
                
    $status = @mysql_affected_rows($this->db_con);
                
                if (
    $status != false)
                {
                    
    $this->queries[count($this->queries)]['affected_rows'] = $status;
                }
                
                return 
    $status;
            }
            else
            {
                
    trigger_error('Geen database connectie beschikaar'E_USER_NOTICE);

                return 
    false;
            }
        }
        
        public function 
    fetch_array($result)
        {
            return @
    mysql_fetch_array($result);
        }
        
        public function 
    fetch_assoc($result)
        {
            return @
    mysql_fetch_assoc($result);
        }

        public function 
    fetch_object($result)
        {
            return @
    mysql_fetch_object($result);
        }
        
        public function 
    result($result$start 0)
        {
            
    $items = @mysql_result($result,
                                   
    $start);
                                   
            if (
    $items != false)
            {
                
    $this->queries[count($this->queries)]['result'] = $items;
            }
            
            return 
    $items;
        }

        public function 
    last_id()
        {
            if (
    $this->con)
            {
                return @
    mysql_insert_id($this->db_con);
            }
            else
            {
                
    trigger_error('Geen database connectie beschikaar'E_USER_NOTICE);

                return 
    false;
            }
        }
        
        public function 
    num_rows($result)
        {
            if (
    $this->db_con)
            {
                
    $items = @mysql_num_rows($result);

                if (
    $items != false)
                {
                    
    $this->queries[count($this->queries)]['items'] = $items;
                }

                return 
    $items;

            }
            else
            {
                
    trigger_error('Geen database connectie beschikaar'E_USER_NOTICE);

                return 
    false;
            }
        }

        public function 
    close()
        {
            if (
    $this->db_con)
            {
                
    $try_close = @mysql_close($this->db_con);
                if (
    $try_close)
                {
                    
    $this->db_hostname null;
                    
    $this->db_username null;
                    
    $this->db_password null;
                    
    $this->db_database null;
                    
                    
    $this->db_con null;
                    
                    return 
    true;
                }
                else
                {
                    return 
    false;
                }
            }
            else
            {
                
    trigger_error('Kan geen database koppeling sluiten, geen koppeling gevonden'E_USER_NOTICE);
            }
        }
        
        function 
    __destruct()
        {
            
    $this->close();
        }
    }
    ?>


    Je kunt met deze class op meedere manieren connecten etc... leek mij iig wel handig tevens zit er een stukje benchmarking in, altijd handig als je opzoek bent naar slome queries!

    Comments? wil graag leren om het beter te doen, dus heb je iets te melden; meld het ;)
    GlowMousemaandag 9 maart 2009 @ 22:04
    == true is lelijk, en microtime is nauwkeuriger.
    Lightmaandag 9 maart 2009 @ 22:06
    Voor benchmarking kun je beter microtime(true) gebruiken ipv time(). Dan krijg je microseconden, stukken nauwkeuriger dan seconden als het gaat om querytijd.
    Catch22-maandag 9 maart 2009 @ 23:57
    je kan beter
    if($var)/if(!$var)
    doen dan
    if($var == true) / if($var == false)
    Chandlerdinsdag 10 maart 2009 @ 08:53
    Ik zal microtime eens inbouwen maar wat is er dan zo vies aan == true / false

    if (!$var) kan ook maar wat is er zo anders aan dan?

    Verder nog inhoudelijke comments op bv errors afvangen etc?
    Catch22-dinsdag 10 maart 2009 @ 09:11
    Het is wat korter/netter.

    Als je het serieus wil aanpakken kan je beter loggen. Users moeten in principe geen errors zien.

    en over commentaar; 'If it was hard to write, it should be hard to understand'
    Chandlerdinsdag 10 maart 2009 @ 09:18
    quote:
    Op dinsdag 10 maart 2009 09:11 schreef Catch22- het volgende:
    Het is wat korter/netter.

    Als je het serieus wil aanpakken kan je beter loggen. Users moeten in principe geen errors zien.

    en over commentaar; 'If it was hard to write, it should be hard to understand'
    Maar nog steeds snap ik het voordeel van (!$var) niet ipv ($var == false)

    En kun je mij eens een tipje geven hoe ik deze errors beter kan afvangen cq gebruiken.
    SuperRembodinsdag 10 maart 2009 @ 09:26
    quote:
    Op dinsdag 10 maart 2009 09:18 schreef Chandler het volgende:
    Maar nog steeds snap ik het voordeel van (!$var) niet ipv ($var == false)
    Dan kan je net zo goed (($var == false) == true) schrijven.
    Chandlerdinsdag 10 maart 2009 @ 09:30
    Tuurlijk kan dat al snap ik het nog steeds niet
    Lekkere_Kwaldinsdag 10 maart 2009 @ 10:16
    Er is ook geen functioneel voordeel, als je echter veel dev't ga je geen tijd verkwisten aan het uitgebreid uittikken van dergelijke expressies als je met if($var) of if(!$var) er ook bent...
    Chandlerdinsdag 10 maart 2009 @ 11:10
    ok, tnx dus minder toetsen indrukken is het voordeel
    Roy_Tdinsdag 10 maart 2009 @ 12:21
    Als je nou drie === gebruikt, dan heb je weer wél iets aan jouw notatie Maar dan moet het gebruik van === wel toegevoegde waarde hebben
    Catch22-dinsdag 10 maart 2009 @ 13:06
    en dat heeft het bij een boolean niet. of hij moet TRUE zijn, of true, of TruE
    Roy_Tdinsdag 10 maart 2009 @ 13:31
    quote:
    Op dinsdag 10 maart 2009 13:06 schreef Catch22- het volgende:
    en dat heeft het bij een boolean niet. of hij moet TRUE zijn, of true, of TruE
    Uiteraard Je moet wel zeker met een boolean te maken hebben uiteraard. $var = array(); voldoet ook aan !$var, ook al is het geen boolean false maar een lege array.
    __Saviour__dinsdag 10 maart 2009 @ 14:50
    Is de $HTTP_REFERER waarde iets wat door de host uitgeschakeld kan worden?
    Ik krijg de waarde niet uitgelezen namelijk. Het script draaide eerst op een andere host en is direct overgezet, daar werkte het eerste prima.
    Chandlerdinsdag 10 maart 2009 @ 15:06
    Nou ik heb weer aardig wat geleerd.

    Nu eens een andere vraag, en ja ik heb dit zelf al geprobeerd maar kwam niet tot een bevredigend antwoord:

    Is het mogelijk om binnen een tabel aantallen te tellen waarbij de volgende waarden op gaan.

    count1 aantal velden met 0
    count2 aantal velden die niet 0 bevatten.

    en dit alles in 1 query?

    voorbeeld:
    "SELECT count(id) FROM online WHERE user_id = '0'"
    Chandlerdinsdag 10 maart 2009 @ 15:10
    quote:
    Op dinsdag 10 maart 2009 14:50 schreef __Saviour__ het volgende:
    Is de $HTTP_REFERER waarde iets wat door de host uitgeschakeld kan worden?
    Ik krijg de waarde niet uitgelezen namelijk. Het script draaide eerst op een andere host en is direct overgezet, daar werkte het eerste prima.
    Voor zover ik weet niet, dit wordt namelijk door de browser mee gezonden.
    Tuvai.netdinsdag 10 maart 2009 @ 15:14
    quote:
    Op dinsdag 10 maart 2009 11:10 schreef Chandler het volgende:
    ok, tnx dus minder toetsen indrukken is het voordeel
    En weer ietsiepietsie performance-winst. if($boolean == true) is namelijk weer een extra CPU handeling ten opzichte van if($Boolean) .
    quote:
    Op dinsdag 10 maart 2009 15:06 schreef Chandler het volgende:
    Nou ik heb weer aardig wat geleerd.

    Nu eens een andere vraag, en ja ik heb dit zelf al geprobeerd maar kwam niet tot een bevredigend antwoord:

    Is het mogelijk om binnen een tabel aantallen te tellen waarbij de volgende waarden op gaan.

    count1 aantal velden met 0
    count2 aantal velden die niet 0 bevatten.

    en dit alles in 1 query?

    voorbeeld:
    "SELECT count(id) FROM online WHERE user_id = '0'"
    Je kunt met GROUP BY bepaalde groeperingen in een query verrichten wanneer je functies als SUM(), COUNT() en AVG() gebruikt.
    quote:
    Op dinsdag 10 maart 2009 14:50 schreef __Saviour__ het volgende:
    Is de $HTTP_REFERER waarde iets wat door de host uitgeschakeld kan worden?
    Ik krijg de waarde niet uitgelezen namelijk. Het script draaide eerst op een andere host en is direct overgezet, daar werkte het eerste prima.
    $HTTP_SERVER is ouderwets, probeer anders $_SERVER['HTTP_REFERER'] eens.

    Tevens TeeVeePee.
    Xcaliburdinsdag 10 maart 2009 @ 15:20
    quote:
    Op dinsdag 10 maart 2009 15:06 schreef Chandler het volgende:
    Nou ik heb weer aardig wat geleerd.

    Nu eens een andere vraag, en ja ik heb dit zelf al geprobeerd maar kwam niet tot een bevredigend antwoord:

    Is het mogelijk om binnen een tabel aantallen te tellen waarbij de volgende waarden op gaan.

    count1 aantal velden met 0
    count2 aantal velden die niet 0 bevatten.

    en dit alles in 1 query?

    voorbeeld:
    "SELECT count(id) FROM online WHERE user_id = '0'"
    een Count op de velden met 0 is geen probleem natuurlijk. 2 counts met verschillende voorwaarden in 1 query gaat niet lukken, tenzij je een subquery gaat maken ofzo....

    Je kunt wel je ene count van je totaal aantal velden aftrekken (die je misschien al weet?), dan ben je er ook
    Roy_Tdinsdag 10 maart 2009 @ 15:30
    quote:
    Op dinsdag 10 maart 2009 15:14 schreef Tuvai.net het volgende:

    En weer ietsiepietsie performance-winst. if($boolean == true) is namelijk weer een extra CPU handeling ten opzichte van if($Boolean) .
    Hoe veel honderdduizenden keren per seconde moet je dat doen om die performancewinst te merken?
    __Saviour__dinsdag 10 maart 2009 @ 15:31
    quote:
    Op dinsdag 10 maart 2009 15:14 schreef Tuvai.net het volgende:
    $HTTP_SERVER is ouderwets, probeer anders $_SERVER['HTTP_REFERER'] eens.
    En dat was de oplossing inderdaad. Bedankt.
    Tuvai.netdinsdag 10 maart 2009 @ 15:35
    quote:
    Op dinsdag 10 maart 2009 15:30 schreef Roy_T het volgende:

    [..]

    Hoe veel honderdduizenden keren per seconde moet je dat doen om die performancewinst te merken?
    Je merkt er in de praktijk inderdaad vrij weinig aan. Maar ten eerste vind ik het netter staan (waarom nog eens een == true /false achter een variabele knallen die al een Boolean/Bit type is?) en als ik daar ook nog eens een, al dan niet theoretische, snelheidswinst uit kan halen dan is dat leuk meegenomen. Is ook een stukje programmeermentaliteit natuurlijk, ik ben een optimalisatie-dwangneuroot.
    Catbertdinsdag 10 maart 2009 @ 15:41
    quote:
    Op dinsdag 10 maart 2009 15:14 schreef Tuvai.net het volgende:
    En weer ietsiepietsie performance-winst. if($boolean == true) is namelijk weer een extra CPU handeling ten opzichte van if($Boolean) .
    Brakke compiler als 'ie dat niet wegoptimaliseert.
    Roy_Tdinsdag 10 maart 2009 @ 15:43
    Ik vind het ook netter hoor, daarom doe ik het ook. Maar de snelheidswinst is zo klein, dat die me echt m'n reet zal roesten. Als je dit soort optimalisaties echt nodig hebt, dan heb je zoveel traffic dat je er ook een extra server bij kan prakken (en da's vaak nog goedkoper ook)
    Lekkere_Kwaldinsdag 10 maart 2009 @ 15:47
    quote:
    Op dinsdag 10 maart 2009 15:41 schreef Catbert het volgende:

    [..]

    Brakke compilerparser als 'ie dat niet wegoptimaliseert.
    Tuvai.netdinsdag 10 maart 2009 @ 15:50
    quote:
    Op dinsdag 10 maart 2009 15:43 schreef Roy_T het volgende:
    Ik vind het ook netter hoor, daarom doe ik het ook. Maar de snelheidswinst is zo klein, dat die me echt m'n reet zal roesten. Als je dit soort optimalisaties echt nodig hebt, dan heb je zoveel traffic dat je er ook een extra server bij kan prakken (en da's vaak nog goedkoper ook)
    Al die losse gevalletjes an sich maken inderdaad helemaal niks uit. Het gaat me echter om de big picture. Ik krijg liever code van iemand die logisch programmeert, dan van iemand die maar iets doet en allerlei overbodige vergelijkingen en handelingen verricht . Dat is hetzelfde verhaal wat betreft XHTML en CSS. Je hebt broncodetechnische correctheid, maar de semantiek die er achter ligt, die is wat mij betreft veel belangrijker.
    Catch22-dinsdag 10 maart 2009 @ 17:44
    Precies.

    Het gaat niet alleen om of het optimaal is, maar ook of het leesbaar is.

    1
    2
    3
    $c = $_POST['an'];
    $b = $_POST['vn'];
    $d = f($c,$d);

    is hetzelfde als
    1
    2
    3
    $voorNaam = $_POST['voorNaam'];
    $achterNaam = $_POST['achterNaam'];
    $completeNaam = MaakCompleteNaamVanLosseDelen($voorNaam, $achterNaam);


    Het eerste zal wellicht iets sneller geparsed worden, maar als je het later terugleest tussen andere code is het volkomen onbegrijpelijk.
    Roy_Tdinsdag 10 maart 2009 @ 17:48
    Ik ben het er volmondig mee eens hoor

    Maar zodra er vars/functies/etc in het nederlands gebruikt worden, krijg ik een allergische reactie. Dat dan weer wel.
    Catch22-dinsdag 10 maart 2009 @ 18:03
    ik ook, slechts ter illustratie. Programmeer zelf ook in het engels hoor.
    Roy_Tdinsdag 10 maart 2009 @ 18:06
    Thank God

    Ik ken er genoeg die NL gebruiken, echt verschrikkelijk. Neem je een codebase over, gaat (bijv.) onze duitse medewerker ermee aan de slag... "erm, can someone please translate the friggin' code?"

    Als je het in het NL wilt doen, wees dan een vent en maak een wrapper voor iedere functie, zodat strtolower() gewoon reeksnaaronderkast() wordt, etc
    Tuvai.netdinsdag 10 maart 2009 @ 18:18
    Nederlandse benamingen voor variabelen/functies/methoden inderdaad. Niet alleen is Engels duidelijker omdat programmeertalen ook in het Engels zijn, maar het komt me ook meestal beter uit. Aantallen beginnen met mij meestal met een 'Amt' benaming, Strings ter indicatie van iets met 'Str', enz.

    Duitsers zijn op dat gebied inderdaad erg ja. Of uitleg van bijvoorbeeld flags in een block comment in een of andere rare taal, kom ik ook vaak tegen.
    jakeesdinsdag 10 maart 2009 @ 18:37
    quote:
    Op maandag 9 maart 2009 10:41 schreef Lekkere_Kwal het volgende:

    [..]

    De variabele $conn dubbel gebruiken is niet echt handig (wellicht werkt het maar daar moet je nooit op gokken). Maar ik denk dat de fout ontstaat doordat jouw string begint en eindigt met een single quote en er wel tig singel quotes erin voorkomen (de parser ziet geen verschil tussen ' en `). Dus dien je daar dubble quotes voor te gebruiken. En er zit een dubbele ; in op het eind (hoeft niet bij de query toegevoegd te worden, dat doet mysql_query voor jou):
    [ code verwijderd ]

    En ik heb dus de return waarde van mysql_query in een variabele vangen zodat je daarna kan kijken of de insert gelukt is (immers een failed insert geeft geen mysql_error terug).
    sorry voor mijn late reactie. Ik heb je code erin gegooid en ik krijg nog de zelfde melding. Ik heb ook een select geprobeerd en de code is nu:
    1
    2
    3
    4
    5
    6
    <?php
    $conn = mysql_connect("localhost", "root ","") or die(mysql_error());
    $db = mysql_select_db("zaalvoetbal", $conn) or die(mysql_error());
    $sql = "SELECT * FROM `spelers`";
    $result = mysql_query($sql,$db) or die (mysql_error());
    ?>

    Ik krijg nu nog steeds de foutmelding: "Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in ...".

    Heeft iemand een idee?
    GlowMousedinsdag 10 maart 2009 @ 18:52
    quote:
    Op dinsdag 10 maart 2009 14:50 schreef __Saviour__ het volgende:
    Is de $HTTP_REFERER waarde iets wat door de host uitgeschakeld kan worden?
    Ik krijg de waarde niet uitgelezen namelijk. Het script draaide eerst op een andere host en is direct overgezet, daar werkte het eerste prima.
    Kijk eens naar register_globals.
    GlowMousedinsdag 10 maart 2009 @ 18:54
    quote:
    Op dinsdag 10 maart 2009 18:37 schreef jakees het volgende:

    [..]

    sorry voor mijn late reactie. Ik heb je code erin gegooid en ik krijg nog de zelfde melding. Ik heb ook een select geprobeerd en de code is nu:
    [ code verwijderd ]

    Ik krijg nu nog steeds de foutmelding: "Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in ...".

    Heeft iemand een idee?
    Het tweede argument van mysql_query is de connection identifier, niet een boolean.
    Lightdinsdag 10 maart 2009 @ 19:24
    quote:
    Op dinsdag 10 maart 2009 18:52 schreef GlowMouse het volgende:

    [..]

    Kijk eens naar register_globals.
    Zoals Tuvai al schreef, is $HTTP_REFERER ouderwets. Gewoon de code aanpassen is beter.
    En register_globals is een ***optie. Vooral als je een provider treft waar je het niet uit kunt zetten (ja, die bestaan). register_globals moet gewoon uit. Gelukkig wordt'ie afgeschaft.
    jakeesdinsdag 10 maart 2009 @ 19:27
    quote:
    Op dinsdag 10 maart 2009 18:54 schreef GlowMouse het volgende:

    [..]

    Het tweede argument van mysql_query is de connection identifier, niet een boolean.
    THX!! heb me helemaal suf zitten rukken zoeken!
    Tuvai.netdinsdag 10 maart 2009 @ 19:31
    quote:
    Op dinsdag 10 maart 2009 19:24 schreef Light het volgende:
    Gelukkig wordt'ie afgeschaft.
    Amen to that. Een functionaliteit als register_globals hoort niet in een programmeertaal thuis.
    SuperRembodinsdag 10 maart 2009 @ 19:42
    quote:
    Op dinsdag 10 maart 2009 18:18 schreef Tuvai.net het volgende:
    Aantallen beginnen met mij meestal met een 'Amt' benaming, Strings ter indicatie van iets met 'Str', enz.
    Hè bah
    Tuvai.netdinsdag 10 maart 2009 @ 19:46
    quote:
    Op dinsdag 10 maart 2009 19:42 schreef SuperRembo het volgende:

    [..]

    Hè bah


    Dat is een gewoonte die ik me aangeleerd heb, zodat ik ook verder in mijn bronbestanden weet welke variabelen van welk type zijn. Vooral in geval van veel verschillende scopes en vooral in C# (veel verschillende data 'types') vind ik dat weer handig. Wel zo handig om meteen te kunnen zien dat 'Lbl...' naar een label verwijst, 'Btn...' naar een button, 'Amt' naar een numeriek aantal, enz.
    Intrepiditydinsdag 10 maart 2009 @ 19:51
    quote:
    Op dinsdag 10 maart 2009 19:46 schreef Tuvai.net het volgende:

    [..]



    Dat is een gewoonte die ik me aangeleerd heb, zodat ik ook verder in mijn bronbestanden weet welke variabelen van welk type zijn. Vooral in geval van veel verschillende scopes en vooral in C# (veel verschillende data 'types') vind ik dat weer handig. Wel zo handig om meteen te kunnen zien dat 'Lbl...' naar een label verwijst, 'Btn...' naar een button, 'Amt' naar een numeriek aantal, enz.
    In PHP kan ik het me nog voorstellen, maar in C# Types staan vast na het declareren van een variabele, en met een simpele mouseover over de variabele krijg je alle info die je nodig hebt.. Stel dat je ergens een getal hebt die je intHuppeldepup genoemd hebt, en je bedenkt later dat het toch wel handig is om er een floating point getal van te maken.. kun je overal je namen gaan aanpassen
    Prefixes in strong typed talen zijn je reinste onzin..
    Tuvai.netdinsdag 10 maart 2009 @ 19:54
    quote:
    Op dinsdag 10 maart 2009 19:51 schreef Intrepidity het volgende:

    [..]

    In PHP kan ik het me nog voorstellen, maar in C# Types staan vast na het declareren van een variabele, en met een simpele mouseover over de variabele krijg je alle info die je nodig hebt.. Stel dat je ergens een getal hebt die je intHuppeldepup genoemd hebt, en je bedenkt later dat het toch wel handig is om er een floating point getal van te maken.. kun je overal je namen gaan aanpassen
    Prefixes in strong typed talen zijn je reinste onzin..
    Ik gebruik het dan ook niet overal. En gezien het feit dat jij refereert naar een tooltip, denk ik dat je van Visual Studio uit gaat. Ik werk naast VS ook zéér regelmatig met notepad++.
    GlowMousedinsdag 10 maart 2009 @ 20:21
    quote:
    Op dinsdag 10 maart 2009 19:24 schreef Light het volgende:

    [..]

    Zoals Tuvai al schreef, is $HTTP_REFERER ouderwets. Gewoon de code aanpassen is beter.
    En register_globals is een ***optie. Vooral als je een provider treft waar je het niet uit kunt zetten (ja, die bestaan). register_globals moet gewoon uit. Gelukkig wordt'ie afgeschaft.
    Dat kom je hopelijk vanzelf wel tegen als je op register_globals zoekt, maar dan weet ie iig waarom het fout gaat.

    Amt is gek als prefix omdat het onduidelijk is wat het verschil is met een unsigned integer.
    Catch22-dinsdag 10 maart 2009 @ 20:21
    quote:
    Op dinsdag 10 maart 2009 19:46 schreef Tuvai.net het volgende:

    [..]



    Dat is een gewoonte die ik me aangeleerd heb, zodat ik ook verder in mijn bronbestanden weet welke variabelen van welk type zijn. Vooral in geval van veel verschillende scopes en vooral in C# (veel verschillende data 'types') vind ik dat weer handig. Wel zo handig om meteen te kunnen zien dat 'Lbl...' naar een label verwijst, 'Btn...' naar een button, 'Amt' naar een numeriek aantal, enz.
    Ik doe dat ook wel met asp.net elementen, maar niet met variabelen. Ik weet aan de hand van de naam van de variabele precies wat het is.

    hongaarse notatie toch? Ook niet mijn ding.
    Tuvai.netdinsdag 10 maart 2009 @ 22:53
    quote:
    Op dinsdag 10 maart 2009 20:21 schreef Catch22- het volgende:

    [..]

    Ik doe dat ook wel met asp.net elementen, maar niet met variabelen. Ik weet aan de hand van de naam van de variabele precies wat het is.
    Ik het merendeel van de gevallen ook. In extreme gevallen met bijvoorbeeld veel scopes beroep ik me op dergelijke notaties gewoon om het voor mezelf en anderen duidelijk te houden.
    slacker_nlwoensdag 11 maart 2009 @ 04:32
    quote:
    Op dinsdag 10 maart 2009 19:51 schreef Intrepidity het volgende:

    [..]

    In PHP kan ik het me nog voorstellen, maar in C# Types staan vast na het declareren van een variabele, en met een simpele mouseover over de variabele krijg je alle info die je nodig hebt.. Stel dat je ergens een getal hebt die je intHuppeldepup genoemd hebt, en je bedenkt later dat het toch wel handig is om er een floating point getal van te maken.. kun je overal je namen gaan aanpassen
    Nah, das moeilijk s/intHuppeldepup/floatHuppeldepup/g
    Catch22-woensdag 11 maart 2009 @ 09:01
    Denk niet dat er veel mensen C# in VI programmeren.
    Intrepiditywoensdag 11 maart 2009 @ 09:39
    quote:
    Op woensdag 11 maart 2009 04:32 schreef slacker_nl het volgende:

    [..]

    Nah, das moeilijk s/intHuppeldepup/floatHuppeldepup/g
    Afgezien van hoeveel moeite het kost is het met een fatsoenlijke IDE gewoon nergens voor nodig Daarnaast, wat doe je als er per ongeluk al een keer een floatHuppeldepup in je project bestond ergens? krijg je nogal unwanted behaviour van denk ik..
    Catbertwoensdag 11 maart 2009 @ 09:54
    Die quasi hungarian notation is not done in Java en C# programmeren. Als je dat ooit voor een serieus bedrijf gaat doen slaan ze dergelijke praktijken er subiet uit.
    Catch22-woensdag 11 maart 2009 @ 11:39
    quote:
    Op woensdag 11 maart 2009 09:39 schreef Intrepidity het volgende:

    [..]

    Afgezien van hoeveel moeite het kost is het met een fatsoenlijke IDE gewoon nergens voor nodig Daarnaast, wat doe je als er per ongeluk al een keer een floatHuppeldepup in je project bestond ergens? krijg je nogal unwanted behaviour van denk ik..
    VS2008 biedt ook gewoon aan alles te wijzigen als je de naam van je variabele aanpast

    als ik een var 'username' tegenkom, weet ik zelf wel dat het een string is. Dat een id een int is, weet ik ook wel etc
    Intrepiditywoensdag 11 maart 2009 @ 12:11
    quote:
    Op woensdag 11 maart 2009 11:39 schreef Catch22- het volgende:

    [..]

    VS2008 biedt ook gewoon aan alles te wijzigen als je de naam van je variabele aanpast

    als ik een var 'username' tegenkom, weet ik zelf wel dat het een string is. Dat een id een int is, weet ik ook wel etc
    Ja, dat zeg ik dus.. maar als je intBlaat in floatBlaat gaat wijzigen/refractoren, en er bestond toevallig al een floatBlaat, dan gaat het mis volgensmij
    Catch22-woensdag 11 maart 2009 @ 12:54
    Ja dan loopt het in de soep, maar dan is je naamgeving ook niet goed
    Lightwoensdag 11 maart 2009 @ 14:28
    quote:
    Op woensdag 11 maart 2009 12:11 schreef Intrepidity het volgende:

    [..]

    Ja, dat zeg ik dus.. maar als je intBlaat in floatBlaat gaat wijzigen/refractoren, en er bestond toevallig al een floatBlaat, dan gaat het mis volgensmij
    Dan verander je daarna toch gewoon floatBlaat in floatBlaat2?
    -SG-woensdag 11 maart 2009 @ 15:55
    Ik kom me hier ook aanmelden als dummie . Maar eerst even het topic doorlezen.
    spaceninjapiratewoensdag 11 maart 2009 @ 16:04
    Ik ben dit topic ook actief aan het volgen na die discussie over die database klasse

    Ik had er alleen nog 1 vraag over. Zitten er voordelen aan de singleton methode die Light voorstelde tegenover de methode die Chandler uiteindelijk koos? Ik heb er wat op gegoogled en zie dat er wat mensen "tegen" een singleton zijn omdat het niet true oop is. Maar goed aangezien mijn oop kennis nogal basic is kan ik hier vrij weinig mee...
    Intrepiditywoensdag 11 maart 2009 @ 16:21
    quote:
    Op woensdag 11 maart 2009 16:04 schreef spaceninjapirate het volgende:
    Ik ben dit topic ook actief aan het volgen na die discussie over die database klasse

    Ik had er alleen nog 1 vraag over. Zitten er voordelen aan de singleton methode die Light voorstelde tegenover de methode die Chandler uiteindelijk koos? Ik heb er wat op gegoogled en zie dat er wat mensen "tegen" een singleton zijn omdat het niet true oop is. Maar goed aangezien mijn oop kennis nogal basic is kan ik hier vrij weinig mee...
    Waarom zou het niet OOP zijn? Je werkt nog steeds met een object, met de regel dat er binnen de applicatie maar 1 object van dat type mag bestaan, bijvoorbeeld om resources te beschermen. Een van de meest gebruikte OO design patterns, dus het argument dat het niet OO genoeg is lijkt me onzin. Ik gebruik zelf ook een singleton databaseklasse in mijn PHP applicaties, zodat er maar 1 actieve verbinding per pagina aanroep bestaat.
    -SG-woensdag 11 maart 2009 @ 16:29
    Oke, ik heb een probleem. Mijn PHP skills zijn -10 maar ik moet al een soort van script gaan maken. Ik moet zelfs een soort van ticketservice maken. De bedoeling is dan dat wij mensen ons laten mailen en eerst het geld laat overmaken. En dan sturen wij ze de kaarten voor het concert.

    Alleen ik zou mijn god niet weten hoe ik dit moet doen. Heb ook al in mijn php boek gekeken maar daar wordt ik ook niet veel wijzer van. Iemand die mij kan helpen/tips geven hoe ik dit moet aanpakken?
    Roy_Twoensdag 11 maart 2009 @ 16:32
    quote:
    Op woensdag 11 maart 2009 16:29 schreef -SG- het volgende:

    Iemand die mij kan helpen/tips geven hoe ik dit moet aanpakken?
    Uitbesteden, zodat je een solide en veilig (!!) systeem krijgt. En dat is vast goedkoper dan jou een jaar aan te laten rommelen.

    Een beetje knutselen is leuk, maar dan wel aan een knutselproject. Niet aan een app als dit.

    edit: Ik ga er dus even vanuit dat het spannender is dan een mailtje sturen, en je te maken hebt met users, voorraad, etc.
    Intrepiditywoensdag 11 maart 2009 @ 16:33
    Wat valt er nog te PHP'en als zij julie mailen, en vervolgens alles achter de schermen afgehandeld wordt? Je hebt een mailscript nodig?
    -SG-woensdag 11 maart 2009 @ 16:40
    quote:
    Op woensdag 11 maart 2009 16:33 schreef Intrepidity het volgende:
    Wat valt er nog te PHP'en als zij julie mailen, en vervolgens alles achter de schermen afgehandeld wordt? Je hebt een mailscript nodig?
    Hmm misschien is dat beter ja .
    -SG-woensdag 11 maart 2009 @ 16:41
    quote:
    Op woensdag 11 maart 2009 16:32 schreef Roy_T het volgende:

    [..]

    Uitbesteden, zodat je een solide en veilig (!!) systeem krijgt. En dat is vast goedkoper dan jou een jaar aan te laten rommelen.

    Een beetje knutselen is leuk, maar dan wel aan een knutselproject. Niet aan een app als dit.

    edit: Ik ga er dus even vanuit dat het spannender is dan een mailtje sturen, en je te maken hebt met users, voorraad, etc.
    Nou het hoeft niet allemaal gerealiseerd te worden. Het is voor school en de site zal waarschijnlijk nooit de lucht in gaan.
    Roy_Twoensdag 11 maart 2009 @ 16:49
    Ah, een 6- is genoeg dus Ik ging uit van iets wat in productie moet (en dus een 9+ moet zijn).
    -SG-woensdag 11 maart 2009 @ 16:54
    quote:
    Op woensdag 11 maart 2009 16:49 schreef Roy_T het volgende:
    Ah, een 6- is genoeg dus Ik ging uit van iets wat in productie moet (en dus een 9+ moet zijn).
    Nou het liefst natuurlijk een 9+ .

    Maar wij maken een site voor een feest organisator. Nu moet ik daarvan de 'ticketservice' maken.

    Nu had ik zo bedacht. Mensen moeten hun naam ingeven. Hun email adres. Hoeveel kaarten ze willen kopen (het mogen er max 6 zijn). Welk feest ze naar toe willen (iedereen feest heeft ook weer een andere kaart prijs) dan moet het ook nog uitgerekend worden hoeveel hij/zij moet betalen. En dan op verzenden klikken (en moet ie dus automatisch naar onze mail gaan en het liefst moeten de klanten dus weer direct een mail krijgen dat hun mail in behandeling wordt genomen).

    Maar how the fuck ga ik beginnen ? En is dit wel een handig idee wat ik hier beschrijf?
    Catbertwoensdag 11 maart 2009 @ 17:13
    quote:
    Op woensdag 11 maart 2009 16:54 schreef -SG- het volgende:
    Maar how the fuck ga ik beginnen ? En is dit wel een handig idee wat ik hier beschrijf?
    Begin eens met een formulier waar mensen die kaarten kunnen bestellen. Dus een formulier met mailadres, aantal en concert, en sla dat dan op in een database. Als je dat hebt, heb je een goed begin. Als je dat niet uit kunt vogelen, is het zaak dat je genoeg zelfstudie doet om het wel te kunnen.
    -SG-woensdag 11 maart 2009 @ 17:32
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    <html>
    <
    head>
    <
    title>Ticketservice</title>
    </
    head>

    <
    body>
    <
    form name "form1">
        
    voornaam: <input type="text"><br>
        
    achternaam: <input type="text"><br>
    </
    form>
    </
    body>
    </
    html>
    ?>


    Klopt dit? Zo heb ik toch vak waar je je naam in kan schrijven toch?
    Likkende_Lassiewoensdag 11 maart 2009 @ 18:48
    quote:
    Op woensdag 11 maart 2009 17:32 schreef -SG- het volgende:

    [ code verwijderd ]

    Klopt dit? Zo heb ik toch vak waar je je naam in kan schrijven toch?
    Dit dien je buiten de PHP tags te zetten.
    Tevens zou ik kiezen voor <form method="POST"> ipv </form>
    Catch22-woensdag 11 maart 2009 @ 19:04
    en je inputs een name geven is ook wel handig om later eea op te halen

    wat de fuck doe je voor opleiding dat je dit niet weet? Ik wil je dag niet verpesten, maar als je nog geen html formulier kan maken dan heb ik weinig vertrouwen in een goede afloop.

    En over die singletons; je moet niet letten op wat 'men' zegt dat mag, moet, niet mag en niet moet. Sommige dingen zijn heel lomp, maar je moet gewoon doen wat je zelf prettig vindt. Als het werk is het oke.

    Tenzij het ultralomp is, maar vaak zijn zulke gevallen meer smaakkwesties dan kwesties van kunnen/niet kunnen

    [ Bericht 39% gewijzigd door Catch22- op 11-03-2009 20:06:10 ]
    cablegunmasterwoensdag 11 maart 2009 @ 20:34
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    <html>
    <
    head>
    <
    title>Ticketservice</title>
    </
    head>

    <
    body>
    <
    form name "form1" action=" echo $_SERVER['PHP_SELF']; " method="post">
        
    voornaam:   <input type="text" name="vnaam"><br>
        
    achternaam: <input type="text" name="anaam"><br>
    </
    form>
    </
    body>
    </
    html>
    ?>


    1
    2
    3
    4
    5
    6
    <?php
    result 

    echo 
    $_POST['vnaam'];
    echo 
    $_POST['anaam'];
    echo 
    "deze kun je gebruiken om in een database te stoppen <img class="rde_img_smiley" src="http://i.fok.nl/s/smile.gif" width="15" height="15" alt="" />";
    ?>


    we helpen wel stukje bij beetje
    je mist een knopje om op submit te drukken!!

    [ Bericht 3% gewijzigd door cablegunmaster op 11-03-2009 22:45:57 ]
    -SG-woensdag 11 maart 2009 @ 21:23
    Thnx cablegunmaster.

    Maar een submit knop kan dat ook zo:

    1
    2
    3
    <?php
    <input type="submit" value="Verzenden">
    ?>


    ?
    Intrepiditywoensdag 11 maart 2009 @ 21:45
    Dude, we zitten hier in het PHP topic, niet in het leer-hier-basic-HTML-topic..
    http://www.handleidinghtml.nl/
    Catch22-woensdag 11 maart 2009 @ 21:51
    sg, ik zou gewoon zon formulier maken dat de uitkomst naar je toe mailt. als je met deze kennis dingen in een db moet gaan opslaan en uitlezen ben je heel lang bezig denk ik
    cablegunmasterwoensdag 11 maart 2009 @ 22:44
    quote:
    Op woensdag 11 maart 2009 21:51 schreef Catch22- het volgende:
    sg, ik zou gewoon zon formulier maken dat de uitkomst naar je toe mailt. als je met deze kennis dingen in een db moet gaan opslaan en uitlezen ben je heel lang bezig denk ik
    valt mee gebeurt ook niet handmatig je denkt teveel met 1 ding een database is ontworpen voor VEEL informatie
    Xcaliburwoensdag 11 maart 2009 @ 22:47
    quote:
    Op woensdag 11 maart 2009 21:51 schreef Catch22- het volgende:
    sg, ik zou gewoon zon formulier maken dat de uitkomst naar je toe mailt. als je met deze kennis dingen in een db moet gaan opslaan en uitlezen ben je heel lang bezig denk ik
    huh
    en wat moet je dan met die mails?
    cablegunmasterwoensdag 11 maart 2009 @ 22:47
    quote:
    Op woensdag 11 maart 2009 21:23 schreef -SG- het volgende:
    Thnx cablegunmaster.

    Maar een submit knop kan dat ook zo:
    [ code verwijderd ]

    ?
    ja en dan ga je of naar dezelfde pagina of naar een andere pagina
    en daar pleur je de php neer ^^ zovan we gaan er iets mee doen
    cablegunmasterwoensdag 11 maart 2009 @ 22:47
    quote:
    Op woensdag 11 maart 2009 22:47 schreef Xcalibur het volgende:

    [..]

    huh
    en wat moet je dan met die mails?
    handmatig invoeren in excell
    Catch22-woensdag 11 maart 2009 @ 23:06
    bijvoorbeeld

    denk jij dat hij een half CRM kan opzetten met de kennis die hij heeft? als je nog geen fatsoenlijk input box kan maken kom je echt niet ver met tutorials
    Catbertdonderdag 12 maart 2009 @ 10:48
    quote:
    Op woensdag 11 maart 2009 22:44 schreef cablegunmaster het volgende:
    valt mee gebeurt ook niet handmatig je denkt teveel met 1 ding een database is ontworpen voor VEEL informatie
    Gast, hij bedoelt dat SG dan een hele tijd bezig is met de implementatie, vooral omdat hij niks weet en alles voorgekauwd wil hebben.
    Nashjedonderdag 12 maart 2009 @ 12:18
    Als je alles voorgekauwd wil hebben zou ik naar webmastersites gaan en daar zoeken op mailform en downloaden die hap.
    Catch22-donderdag 12 maart 2009 @ 12:24
    Ja, of een joomla/wordpress install, dat kan iedereen aap
    daReaperzaterdag 14 maart 2009 @ 23:05
    Ik heb drie tabellen:

    forum, forum_topics en forum_messages.
    Nou wil ik eigenlijk in 1 query o.a. de volgende dingen te weten komen: hoeveel topics er in een (sub)forum zitten en hoeveel posts er in een forum zitten.

    dat eerste kan ik nog makkelijk voor elkaar krijgen met deze query:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        SELECT 
          f.id, 
          f.code, 
          f.name, 
          f.subject, 
          f.main, 
          f.access,
          COUNT(ft.id) as topics
        FROM 
          forums AS f
        LEFT JOIN forum_topics AS ft ON f.id = ft.forum
        GROUP BY ft.forum

    1
    2
    3
    4
    5
    +----+------+-----------+--------------------------+------+--------+--------+
    | id | code | name      | subject                  | main | access | topics |
    +----+------+-----------+--------------------------+------+--------+--------+
    |  1 | TEST | Testforum | Dit is maar voor de test |    1 |      0 |      3 |
    +----+------+-----------+--------------------------+------+--------+--------+


    Als ik echter ook nog het aantal posts in het hele subforum wil weten, wordt het me te moeilijk. De volgende query doet het in elk geval niet:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        SELECT 
          f.id, 
          f.code, 
          f.name, 
          f.subject, 
          f.main, 
          f.access,
          COUNT(ft.id),
          COUNT(fm.id)
        FROM 
          forums AS f
        LEFT JOIN forum_topics AS ft ON f.id = ft.forum
        LEFT JOIN forum_messages AS fm ON ft.id = fm.topic
        GROUP BY ft.forum, fm.topic

    1
    2
    3
    4
    5
    6
    7
    +----+------+-----------+--------------------------+------+--------+--------+----------+
    | id | code | name      | subject                  | main | access | topics | messages |
    +----+------+-----------+--------------------------+------+--------+--------+----------+
    |  1 | TEST | Testforum | Dit is maar voor de test |    1 |      0 |     12 |       12 |
    |  1 | TEST | Testforum | Dit is maar voor de test |    1 |      0 |      2 |        2 |
    |  1 | TEST | Testforum | Dit is maar voor de test |    1 |      0 |      7 |        7 |
    +----+------+-----------+--------------------------+------+--------+--------+----------+


    Voor de duidelijkheid: het aantal topics = 3 en het aantal berichten = 21

    Hoe los ik dit op?

    [ Bericht 0% gewijzigd door daReaper op 14-03-2009 23:10:37 ]
    GlowMousezaterdag 14 maart 2009 @ 23:10
    Dit moet je niet in één query willen, en kun je beter gedenormaliseerd opslaan in de forumtabel.
    daReaperzaterdag 14 maart 2009 @ 23:23
    Na nog wat speurwerk kwam ik de functie COUNT(DISTINCT ...) tegen, nu werkt het prima:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        SELECT 
          f.id, 
          f.code, 
          f.name, 
          f.subject, 
          f.main, 
          f.access,
          COUNT(DISTINCT ft.id) as topics,
          COUNT(fm.id) as messages
        FROM 
          forums AS f
        LEFT JOIN forum_topics AS ft ON f.id = ft.forum
        LEFT JOIN forum_messages AS fm ON ft.id = fm.topic

    1
    2
    3
    4
    5
    +----+------+-----------+--------------------------+------+--------+--------+----------+
    | id | code | name      | subject                  | main | access | topics | messages |
    +----+------+-----------+--------------------------+------+--------+--------+----------+
    |  1 | TEST | Testforum | Dit is maar voor de test |    1 |      0 |      3 |       21 |
    +----+------+-----------+--------------------------+------+--------+--------+----------+
    quote:
    Op zaterdag 14 maart 2009 23:10 schreef GlowMouse het volgende:
    Dit moet je niet in één query willen, en kun je beter gedenormaliseerd opslaan in de forumtabel.
    Waarom raadt je deze manier af?
    GlowMousezaterdag 14 maart 2009 @ 23:30
    quote:
    Op zaterdag 14 maart 2009 23:23 schreef daReaper het volgende:
    [..]

    Waarom raadt je deze manier af?
    Omdat het traag is en je dat gaat merken wanneer je wat meer bezoekers of een wat grotere poststabel krijgt. Kijk eens naar de db-structuur van enkele fora (die van myreact en phpbb kun je zo inzien zonder installatie) om ideeën op te doen.
    qu63zondag 15 maart 2009 @ 00:33
    Ik wil een feedback form naar mezelf mailen. Ik heb hier een keuze veld in waar je meerdere items aan kunt klikken
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Extra boek toevoegen:<select name="boek" size="5" multiple="multiple" id="boek">
                      <option value="1">Alleen voor vaders €10,45</option>
                      <option value="2">Bijdehandboekje voor vaders €8,20</option>
                      <option value="3">Baby management voor mannen €16,90</option>
                      <option value="4">De negenmaandengids voor mannen €21,90</option>
                      <option value="5">Topvaders €17,95</option>
                      <option value="6">De 60 minuten vader €8,90</option>
                      <option value="7">Vader zijn met hart en handen €12,85</option>
                      <option value="8">Leuke spelletjes voor baby en papa €13,45</option>
                      <option value="9">62 dingen die een beetje vader echt moet kunnen €11,90</option>
                      <option value="10">De ideale vader bestaat niet €11,90</option>
                      <option value="11">Papa worden €9,90</option>
                   </select>

    Hoe kan ik dit nou netjes in een mailtje zetten?
    Ik heb nu dit
    1
    2
    3
    4
    5
    6
    7
    <?php
    $boek 
    = array($_POST['boek']);
    foreach(
    $boek as $b)
                {
                    echo 
    $message .= "Extra boek: <a href=\"boek.php?id=$b\">Bestel</a>\n";
                }
    ?>

    maar dat werkt dus niet..

    Iemand een tip?
    En hoe krijg ik die link werkend in mn mail?
    spaceninjapiratezondag 15 maart 2009 @ 02:56
    quote:
    Op zondag 15 maart 2009 00:33 schreef qu63 het volgende:
    Ik wil een feedback form naar mezelf mailen. Ik heb hier een keuze veld in waar je meerdere items aan kunt klikken
    [ code verwijderd ]

    Hoe kan ik dit nou netjes in een mailtje zetten?
    Ik heb nu dit
    [ code verwijderd ]

    maar dat werkt dus niet..

    Iemand een tip?
    En hoe krijg ik die link werkend in mn mail?
    Dit zou volgens mij moeten werken.

    1<select name="boek[]" size="5" multiple="multiple" id="boek">


    1
    2
    3
    4
    foreach($_POST['boek'] as $b)
                {
                    echo "Extra boek: <a href=\"boek.php?id=$b\">Bestel</a>\n";
                }
    qu63zondag 15 maart 2009 @ 03:11
    quote:
    Op zondag 15 maart 2009 02:56 schreef spaceninjapirate het volgende:

    [..]

    Dit zou volgens mij moeten werken.
    [ code verwijderd ]


    [ code verwijderd ]
    Mja, dan krijg ik als ik 2 en 3 geselcteerd heb:
    1
    2
    3
    Extra boek: <a href="boek.php?id=2">Bestel</a><br />
    Extra boek: <a href="boek.php?id=2">Bestel</a><br />
    Extra boek: <a href="boek.php?id=3">Bestel</a><br />

    Dus 2x nummer 2..

    print_r() geeft
    1
    2
    3
    4
    5
    Array
    (
        [0] => 2
        [1] => 3
    )

    Dus dat snap ik ff niet..
    spaceninjapiratezondag 15 maart 2009 @ 16:22
    Ik heb net nog even getest maar mijn lokale test vestandje werkt volgens mij gewoon. Krijg je het zelfde effect bij deze code?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    if(isset($_POST['submit'])){
       foreach($_POST['boek'] as $b){
                   echo "Extra boek: <a href=\"boek.php?id=$b\">Bestel</a><br/>\n";
       }
    }
    ?>
    <form action="#" method="post">
      <select name="boek[]" size="5" multiple="multiple" id="boek">
        <option value="1">Alleen voor vaders ¤10,45</option>
        <option value="2">Bijdehandboekje voor vaders ¤8,20</option>
        <option value="3">Baby management voor mannen ¤16,90</option>
        <option value="4">De negenmaandengids voor mannen ¤21,90</option>
      </select>
      <input type="submit" name="submit" value="submit" />
    </form>
    qu63zondag 15 maart 2009 @ 17:56
    quote:
    Op zondag 15 maart 2009 16:22 schreef spaceninjapirate het volgende:
    Ik heb net nog even getest maar mijn lokale test vestandje werkt volgens mij gewoon. Krijg je het zelfde effect bij deze code?
    [ code verwijderd ]
    Kom er achter dat ik teste met
    1
    2
    3
    <?php
    echo $message .= blablabla
    ?>

    Waardoor het dus steeds langer werd :')

    Thanks anyways!
    jeweetz17maandag 16 maart 2009 @ 23:57
    Ik ben nog maar kort bezig met het maken van websites en scripting en drgelijke, ik ben nu met een website bezig waar ik graag een soort test op wil zetten, ik had het volgedne in mijn hoofd:
    een stuk of 10 tot 20 vragen met meerkeuze antwoorden varieerend van 2 tot 10 antwoord mogelijkheden, en aan de hand van die vragen moet er een advies uitkomen. bijvoorbeeld:
    vraag1 hoe oud bent u?
    0-18
    19-32
    33-50
    50+
    vraag2 bent u beweust met uw milieu bezig
    heel veel
    veel
    normaal
    een beetje
    weinig
    heel weinig
    niet
    vraag3 heeft u veel kleren
    ja
    nee
    gemiddeld

    de volgende adviesen zijn er dan.

    1. u kunt het beste voor strijkijzer 5 gaan ........
    2 u kunt het beste strijkijzer 3b kiezen
    3 het beste advies voor u is versie 3v, deze is goedkoop, handig in gebruik en is mileubewusst.

    doormiddel van een waarde die elk antwoord heeft moet er dus een advies uit komen die het beste past bij de ingevulde antwoorden, hoop dat het zo een beetje te begrijpen is?

    heb ook geen idee of het in dit topic thuis hoort excuses als het fout staat!
    maar kan iemand mij hiermee helpen een voorbeeld script of iets dergelijks. het liefst wil ik de test via mijn eigen site houden dus geen externe link na een andere site voor de test maar echt de test op mijn site.
    cablegunmasterdinsdag 17 maart 2009 @ 00:00
    quote:
    Op maandag 16 maart 2009 23:57 schreef jeweetz17 het volgende:
    Ik ben nog maar kort bezig met het maken van websites en scripting en drgelijke, ik ben nu met een website bezig waar ik graag een soort test op wil zetten, ik had het volgedne in mijn hoofd:
    een stuk of 10 tot 20 vragen met meerkeuze antwoorden varieerend van 2 tot 10 antwoord mogelijkheden, en aan de hand van die vragen moet er een advies uitkomen. bijvoorbeeld:
    vraag1 hoe oud bent u?
    0-18
    19-32
    33-50
    50+
    vraag2 bent u beweust met uw milieu bezig
    heel veel
    veel
    normaal
    een beetje
    weinig
    heel weinig
    niet
    vraag3 heeft u veel kleren
    ja
    nee
    gemiddeld

    de volgende adviesen zijn er dan.

    1. u kunt het beste voor strijkijzer 5 gaan ........
    2 u kunt het beste strijkijzer 3b kiezen
    3 het beste advies voor u is versie 3v, deze is goedkoop, handig in gebruik en is mileubewusst.

    doormiddel van een waarde die elk antwoord heeft moet er dus een advies uit komen die het beste past bij de ingevulde antwoorden, hoop dat het zo een beetje te begrijpen is?

    heb ook geen idee of het in dit topic thuis hoort excuses als het fout staat!
    maar kan iemand mij hiermee helpen een voorbeeld script of iets dergelijks. het liefst wil ik de test via mijn eigen site houden dus geen externe link na een andere site voor de test maar echt de test op mijn site.
    wij moeten het voor jou maken ??
    Roy_Tdinsdag 17 maart 2009 @ 00:07
    quote:
    Op maandag 16 maart 2009 23:57 schreef jeweetz17 het volgende:

    maar kan iemand mij hiermee helpen (...)
    Hoe ver ben je al? Wat werkt er (nog) niet?
    Lightdinsdag 17 maart 2009 @ 00:09
    quote:
    Op maandag 16 maart 2009 23:57 schreef jeweetz17 het volgende:
    Ik ben nog maar kort bezig met het maken van websites en scripting en drgelijke, ik ben nu met een website bezig waar ik graag een soort test op wil zetten, ik had het volgedne in mijn hoofd:
    een stuk of 10 tot 20 vragen met meerkeuze antwoorden varieerend van 2 tot 10 antwoord mogelijkheden, en aan de hand van die vragen moet er een advies uitkomen. bijvoorbeeld:

    ... knip ...

    doormiddel van een waarde die elk antwoord heeft moet er dus een advies uit komen die het beste past bij de ingevulde antwoorden, hoop dat het zo een beetje te begrijpen is?

    heb ook geen idee of het in dit topic thuis hoort excuses als het fout staat!
    maar kan iemand mij hiermee helpen een voorbeeld script of iets dergelijks. het liefst wil ik de test via mijn eigen site houden dus geen externe link na een andere site voor de test maar echt de test op mijn site.
    Klinkt leuk. Wat heb je zelf al geknutseld? Waar loop je vast? Of verwacht je dat wij zo'n script voor je in elkaar zetten? Ik kan natuurlijk alleen voor mezelf spreken, maar ik denk dat je hier dan fout zit.
    cablegunmasterdinsdag 17 maart 2009 @ 00:16
    quote:
    Op dinsdag 17 maart 2009 00:09 schreef Light het volgende:

    [..]

    Klinkt leuk. Wat heb je zelf al geknutseld? Waar loop je vast? Of verwacht je dat wij zo'n script voor je in elkaar zetten? Ik kan natuurlijk alleen voor mezelf spreken, maar ik denk dat je hier dan fout zit.
    Catch22-dinsdag 17 maart 2009 @ 10:07
    wat is je budget ?
    Roy_Tdinsdag 17 maart 2009 @ 10:39
    quote:
    Op dinsdag 17 maart 2009 10:07 schreef Catch22- het volgende:
    wat is je budget ?
    Tuvai.netdinsdag 17 maart 2009 @ 10:45
    quote:
    Op dinsdag 17 maart 2009 10:07 schreef Catch22- het volgende:
    wat is je budget ?
    Dat dus.

    Mensen met PHP programmatuur helpen, die er zelf absoluut niet uit komen nadat ze er de nodige moeite in gestoken hebben, prima. Daar is dit topic voor. Maar ik krijg het een beetje op m'n heupen van die lui die zich totaal niet in programmeren willen verdiepen, maar hier 'effe' een webshop- en/of pollsysteem voorgekauwd willen hebben. Dat laat je maar aan een professional over.
    #ANONIEMdinsdag 17 maart 2009 @ 10:52
    Wij bouwen niets op verzoek he

    Daarnaast; ugh. Ik moet mijn DB class echt nog een keer aanpassen, ding is zo lelijk
    Catch22-dinsdag 17 maart 2009 @ 11:53
    quote:
    Op dinsdag 17 maart 2009 10:52 schreef Scorpie het volgende:
    Wij bouwen niets op verzoek he
    ik wel hoor
    Roy_Tdinsdag 17 maart 2009 @ 12:50
    quote:
    Op dinsdag 17 maart 2009 11:53 schreef Catch22- het volgende:

    ik wel hoor
    Ik ook Maar dan wel tegen 80 euro per uur
    Swetseneggerdinsdag 17 maart 2009 @ 12:54
    quote:
    Op dinsdag 17 maart 2009 12:50 schreef Roy_T het volgende:

    [..]

    Ik ook Maar dan wel tegen 80 euro per uur
    Ik bouw het voor een vast bedrag van 750,- ex btw
    Catch22-dinsdag 17 maart 2009 @ 12:55
    Als er geen factuur hoeft te komen doe ik het voor de helft

    reactie op roy natuurlijk
    Roy_Tdinsdag 17 maart 2009 @ 13:13
    Ik doe niet aan vaste bedragen en zonder factuur
    daReaperdinsdag 17 maart 2009 @ 22:57
    Volgens mij ben ik gek aan het worden... Ziet iemand hier mijn fout?

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      if (sizeof($data) > $ppp) {
        $pages = array("F_PAGES" => array());
        for ($a = 0; $a < ceil(sizeof($data)/$ppp); $a++) {
          echo "$curpage == $a+1: ".($curpage == ($a+1))."<br />\n";
          array_push($pages["F_PAGES"], 
            array(
              "F_PAGE_NO" => $a+1,
              "F_PAGE_URL" => ($curpage == ($a+1)) ? "" : $basedir.$page."/".$fullurl,
            )
          );
        }
        print_r($pages);
      }


    output:
    1 == 0+1: 1
    1 == 1+1: 1

    Ik snap er helemaal niets van... Sinds wanneer is 1 gelijk aan 1+1 ?
    GlowMousedinsdag 17 maart 2009 @ 23:03
    1
    2
    3
    4
    5
    6
    <?php
    $curpage 
    1;
    for(
    $a=0$a<=2$a++) {
        echo 
    "$curpage == $a+1: ".($curpage == ($a+1))."<br />\n";
    }
    ?>

    1
    2
    3
    1 == 0+1: 1
    1 == 1+1: 
    1 == 2+1: 

    Zoals het hoort. Wat zegt var_dump over $curpage?
    daReaperdinsdag 17 maart 2009 @ 23:06
    quote:
    Op dinsdag 17 maart 2009 23:03 schreef GlowMouse het volgende:

    [ code verwijderd ]


    [ code verwijderd ]

    Zoals het hoort. Wat zegt var_dump over $curpage?
    Bedoel je daarmee de output van "die(var_dump($curpage));"? Dat is: bool(true)
    daReaperdinsdag 17 maart 2009 @ 23:07
    quote:
    Op dinsdag 17 maart 2009 23:06 schreef daReaper het volgende:

    [..]

    Bedoel je daarmee de output van "die(var_dump($curpage));"? Dat is: bool(true)
    Kijk, daar heb je me al te pakken

    Ergens anders had ik staan:
    $curpage = $_GET['page'] || 1;

    gewenning van Perl

    Bedankt voor de tip!
    GlowMousedinsdag 17 maart 2009 @ 23:07
    Opgelost dus

    $curpage = isset($_GET['page']) ? intval($_GET['page']) : 1;
    daReaperdinsdag 17 maart 2009 @ 23:09
    quote:
    Op dinsdag 17 maart 2009 23:07 schreef GlowMouse het volgende:
    Opgelost dus

    $curpage = isset($_GET['page']) ? intval($_GET['page']) : 1;
    Jep, gelukkig nu ik nog haren over heb.

    Waar ik dus mee in de war was:

    1
    2
    C:\Users\Bart>perl -e "$x = 1; print ($x || 1); $x = 2; print ($x || 1); $x = 0; print ($x || 1);"
    121
    Catch22-woensdag 18 maart 2009 @ 09:51
    en als de page geen integer is ?
    PiRANiAwoensdag 18 maart 2009 @ 09:56
    quote:
    Op dinsdag 17 maart 2009 23:07 schreef GlowMouse het volgende:
    Opgelost dus

    $curpage = isset($_GET['page']) ? intval($_GET['page']) : 1;
    hoe noem je die notitie? weet je dat?
    Tuvai.netwoensdag 18 maart 2009 @ 09:57
    quote:
    Op woensdag 18 maart 2009 09:56 schreef PiRANiA het volgende:

    [..]

    hoe noem je die notitie? weet je dat?
    Ternary operation.

    http://en.wikipedia.org/wiki/Ternary_operation

    Is overigens niet alleen mogelijk in PHP. Alle grotere programmeertalen ondersteunen ternary operations.
    Roy_Twoensdag 18 maart 2009 @ 10:03
    En vanaf PHP 5.3:

    1
    2
    3
    <?php
    $var1 
    ?: $var2
    ?>


    Als $var1 == true, return $var1, anders return $var2 :)
    Catch22-woensdag 18 maart 2009 @ 10:10
    dit is ook logica van het jaar 0, maar dat is php he

    zulke oplossingen zijn niet al te best voor de leesbaarheid (voor jezelf en voor een ander), je kan het dus beter voorkomen.
    Tuvai.netwoensdag 18 maart 2009 @ 10:13
    quote:
    Op woensdag 18 maart 2009 10:10 schreef Catch22- het volgende:
    dit is ook logica van het jaar 0, maar dat is php he

    zulke oplossingen zijn niet al te best voor de leesbaarheid (voor jezelf en voor een ander), je kan het dus beter voorkomen.
    Ik vind een ternary opteration leesbaarder en overzichtelijker dan een hele if(x==y){...}else{...} constructie, eigenlijk. Maar goed, ieder zijn meug.
    Roy_Twoensdag 18 maart 2009 @ 10:30
    quote:
    Op woensdag 18 maart 2009 10:10 schreef Catch22- het volgende:
    dit is ook logica van het jaar 0, maar dat is php he
    Erm... zitten ternary operations niet in zo'n beetje iedere taal
    #ANONIEMwoensdag 18 maart 2009 @ 10:50
    quote:
    Op woensdag 18 maart 2009 10:10 schreef Catch22- het volgende:
    dit is ook logica van het jaar 0, maar dat is php he

    zulke oplossingen zijn niet al te best voor de leesbaarheid (voor jezelf en voor een ander), je kan het dus beter voorkomen.
    Als een developer geen ternary operator kan lezen zet ik mijn twijfels bij zijn/haar basiskwaliteiten als developer.
    GlowMousewoensdag 18 maart 2009 @ 11:14
    [PHP/(My)SQL] voor dummies - Deel 70