Ik heb gisteren de spullen voor deze opleiding/cursus binnengekregen; http://www.microsoft.com/learning/mcp/mcts/webapps/default.mspxquote:Op vrijdag 20 februari 2009 09:21 schreef Catch22- het volgende:
Ik werk tegenwoordig meer met C#.net ft. Asp.netwerkt 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.
1 2 3 | echo(vsprintf("%s%s%s", array('t', 'v', 'p'))); ?> |
1 2 3 | print join("", array("t", "v", "p")); ?> |
1 2 3 4 5 6 | $arr = array(0x74,0x76,0x70); while($arr) { printf("%c", array_shift($arr)); } ?> |
1 2 3 4 5 6 | { alert("Een Vestiging selecteren.u.b."); theForm.to.focus(); return (false); } |
1 |
Dat wisten we alquote:Op vrijdag 20 februari 2009 14:15 schreef Jo0Lz het volgende:
[PHP/(My)SQL] voor dummies - Deel 69
Daar verder.
Eigenlijk is dat natuurlijk geen PHP vraag, en met MySQL heeft het ook niets te maken.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 ?
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 | $fok->bookmark("1257581"): ?> |
Dus eigenlijk is dat het enige voordeel dat je hiermee haalt, dat niet alle data beschikbaar is.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.
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.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.
http://dev.mysql.com/doc/refman/5.0/en/view-updatability.htmlquote: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.
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.
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 | 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(); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $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(); ?> |
die substr kort het inquote: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 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $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(); ?> |
Is de Apache error een beetje zinvol? Of segfault Apache gewoon?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
Dan heeft die hele if ook geen zin meer he?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.quote:Op zondag 22 februari 2009 07:10 schreef amvrosios het volgende:
[..]
die substr kort het in
probeer onderstaande eens
[ code verwijderd ]
Dat zou 'ie moeten wezenquote: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.
Nee eingelijk nietquote:Op zondag 22 februari 2009 08:23 schreef Mookai het volgende:
[..]
Is de Apache error een beetje zinvol? Of segfault Apache gewoon?
Kun je hem toch posten ofzo? Tenzij je het al opgelost hebt natuurlijk.quote:Op zondag 22 februari 2009 21:12 schreef Chandler het volgende:
[..]
Nee eingelijk nietkan 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)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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 |
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 | 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($dimg, 0, 0, $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(102, 79, 'uploads/'.$cat["picture"], 'jpg', 'obj_images_hp/'.$cat["picture"]); } ?> |
Die derde doet niets.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
Wat denk je dat imagecreatetruecolor() doet?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...
Daarom worden de meeste zoekformulieren aangestuurd via de GET variabelenquote: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.
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 | echo substr($news['news_main'],0,40) . " ... <a href=news2.php?news_id=" . $news['news_id'] . ">meer</a>"; } |
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.quote:
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.
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 | 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>"; ?> |
Iemand tips en tricks?quote:0 ; 1nkzc85o
1 ; 4skdasjg
2 ; wxu9s144
3 ; ip94pgag
4 ; ul7yk2cf
5 ; kojm7ttu
6 ; gev07pvf
7 ; 5uak1bsm
8 ; opa0he6t
9 ; tg6r1qc8
<etcetera....>
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)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.
Heb je die code nou zitten overtikken, of verdwijnen er plotseling punten bij het copy/pasten? Het blijft overigens akelig om "$char" te zien.quote:$tmpstring = "$char";
www.randomcodegenerator.comquote: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?
Ja, dat denk ik ook wel jaquote: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![]()
welke ?quote:Op zondag 1 maart 2009 14:10 schreef hello_moto1992 het volgende:
[..]
Ja, dat denk ik ook wel jaMaar hoe
?
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 | <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> |
Graag, want door gewoon <artikel> vaker te herhalen krijg je een XML die amper te parsen isquote: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
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:Hoe bedoel je het standaard formaat?
Tja, je kunt van alles bakken, maar het blijft een brakke oplossingquote: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.
1 |
1 2 3 4 5 | function nieuws() { ... } ?> |
De foutmelding zegt natuurlijk dat je 2 maal eenzelfde functie probeert aan te maken, maar zonder code kan ik er weinig meer van zeggen..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 gegaanTotdat ik een get scriptje had gemaakt.. Wat er los van zou moeten staan.
[ code verwijderd ]
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?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.
Daar gaat het dus fout. Je zult een van de twee nieuwsfuncties moeten hernoemen. Functienamen moeten uniek zijn.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
En hoe moet het PHP script verder weten welke van de 2 nieuws-functies je wilt gebruiken dan?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?
Nou ehh ik wil ze allebei gebruiken. Op beide pagina's.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?
Als je twee functies wilt gebruiken die allebei iets anders doen, dan kun je ze niet hetzelfde noemen natuurlijk.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.quote:Op maandag 2 maart 2009 11:38 schreef Nashje het volgende:
[..]
Nou ehh ik wil ze allebei gebruiken. Op beide pagina's.
ik vraag me sowieso af waarom je een functie "nieuws" in het menu hebt....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?
Misschien doe je er goed aan nog eens een PHP boek open te slaanquote: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?
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.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?
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 | function supertof($dingen) { echo $dingen.' zijn supertof!'; return true; } supertof('bananen'); supertof('frietvorkjes'); supertof('topics op fok'); ?> |
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..quote:Op maandag 2 maart 2009 12:25 schreef Roy_T het volgende:
Wat is het nut van die "return true", Tijn?
Ik had het over dit gevalquote: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 denk dat het gebruik van MVC voorlopig even buiten de scope van de kennis van Nashje valtquote:Op maandag 2 maart 2009 12:43 schreef Roy_T het volgende:
[..]
Ik had het over dit gevalPuur 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".
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.quote:Op maandag 2 maart 2009 12:25 schreef Roy_T het volgende:
Wat is het nut van die "return true", Tijn?
niksquote:Op maandag 2 maart 2009 20:41 schreef GlowMouse het volgende:
Waarom mag dat in php niet? Wat geeft mysql_error()?
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.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..
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.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.
java dacht ik ookquote: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.
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.quote:
1 2 3 4 5 6 7 | system.println(bla); } public String do_string(String bla) { return bla + "bla"; } |
Bij een void mag je niets teruggeven. Je moet je nog steeds aan de declaratie houden.quote:Op maandag 2 maart 2009 23:05 schreef slacker_nl het volgende:
Ligt eraan, een void doet niks..
[ code verwijderd ]
Ik vind dat wel prettig programmeren.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.
Maar dat kan je weer oplossen met een templatequote: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.
1 2 3 4 5 6 | if ($page == "fotos") { ////////// FOTO'S //////////// $site->AddParam("GALLERY_HEAD",the_gallery_head()); $content = the_gallery(); } ?> |
Ik heb naar gallery gekeken, maar die is te moeilijk in mijn site te integreren... Ik ga kijken naar dat gebuffer.quote:Op woensdag 4 maart 2009 21:40 schreef GlowMouse het volgende:
Een andere gallery gebruiken (gallery.sf.net) of output bufferen.
Yep, kijk eens naar ob_start() en gerelateerde functies.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?
Je kunt ook zelf een gallery bouwenquote: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...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 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(); } ?> |
1 2 3 4 5 6 7 8 9 10 11 | $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); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $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) != 0 ){ $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); } } ?> |
1 |
1 |
Eenschquote: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.
1 2 3 | $query = "INSERT INTO besparingsformulieren (voornaam,achternaam) VALUES ($Voornaam,$Achternaam)"; |
Daar is isSet voor, en dan dien je tegelijk ook te controleren of ál je variabelen die je wilt invoeren geSet zijnquote:Op vrijdag 6 maart 2009 14:40 schreef Nashje het volgende:
Hoe voer ik een query uit na een submit?
Heb nu:
[ code verwijderd ]
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.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 zijnEn als je het helemaal netjes wilt doen moet er natuurlijk nog een anti-injection over de variabelen heen.
1 2 3 4 5 6 7 8 | 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)"; } } ?> |
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. nvmquote: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
Dus? Dat heeft toch helemaal niets te maken met de namen van je inputs?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.
Oeps inderdaadquote: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?
Klopt. Ik doe dit eerst effe om het werkend te maken, later als het werkt komen er ook nog personeelsnummer, telefoonnummer en woonplaats bij.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.
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: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 :{.
1 2 3 4 | // na isset-controles print_r($_POST); ?> |
Aangezien GET puur voor HTTP bedoeld is kan dat niet..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
$_SERVER["argv"][1] zou dan "mijnwachtwoord" zijn..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"?
zie mijn vorig topic PHP --> form vraagje ik had hetzelfde probleem. je moet je formulier vaniut localhost ophalen en starten.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.
Hoe moet ik dat gaan doen dan? (ben nieuwe met php)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.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.
Dus het met het php bestand is niks mis? (Als ik het op een host zet met php ondersteuning werkt het dus gewoon?)quote:Op zondag 8 maart 2009 12:58 schreef Roy_T het volgende:
Ik vermoed eerder dat @Home gewoon geen ondersteuning heeft voor PHP.
Ik heb niet inhoudelijk gekekenquote: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?)
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.quote:Op zondag 8 maart 2009 13:24 schreef Roy_T het volgende:
[..]
Ik heb niet inhoudelijk gekekenMaar het probleem wat je nu hebt komt iig niet door het bestand.
http://kimyy.110mb.com/contact.htmquote: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.
1 |
1 2 | `spelers_gsm`, `spelers_punten`) VALUES (\'\', \'aa\', \'bb\', \'cc\', \'0\');'; |
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.
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: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
1 2 3 4 5 6 7 8 9 10 11 12 | 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 |
1 |
1 |
1 |
GlowMouse dit is me code: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.
1 2 3 4 | $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()); |
1 |
ik ben nu alleen nog even lokaal aan het ontwikkelen. Dat wachtwoord verzet ik nog wel hoor ;-)quote:Op zondag 8 maart 2009 20:55 schreef Xcalibur het volgende:
heb je je wachtwoord gecensureerd, of is die echt blanco?
preg_match geeft alle gematchte subpatterns terug, dus dat is geen probleem.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?
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.
Jij hebt een SchoolConnect verbinding begrijp ik, waar die webspace onder valt? In dat geval Ziggo even bellen zou ik zeggenquote:Op zondag 8 maart 2009 14:48 schreef Doagere het volgende:
https://onderwijs.casematelecom.nl/template/casema/faq.php
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):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());
?>
1 2 3 4 5 6 | $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()); ?> |
Dat klopt, maar dan moet ik dus de rest van mijn code aanpassen. Het meegeven van een naam is inderdaad wel een stuk netter.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:
[..]
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.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).
Op de pagina "The Basics" staat wat je zoekt: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...
1 2 3 | $class2 = new Forum(); $class3 = new Ietsanders(); |
Hoe heb je het geprobeerd, en waaruit bleek dat het niet werkte (errors)?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
Vast niet, scope enzo. Maar je kunt binnen class2 natuurlijk prima een referentie maken naar class1.quote:Op maandag 9 maart 2009 16:39 schreef Chandler het volgende:
waarbij class2 en class3 zonder gezeur gebruik kunnen maken van $class1
bestand class1.phpquote: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
1 2 3 4 5 6 | class1 { function foo() {} } ?> |
1 2 3 4 5 6 7 8 9 10 | require_once("class1.php"); class2 { function bar() { class1::foo(); } } ?> |
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.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
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 heenquote: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.
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.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
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 | 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'; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 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 ?> |
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 | { 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(); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | { 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(); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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. } } ?> |
1 2 3 4 5 6 7 | class Forum { public function readTopic() { $db = Database::getInstance(); } } ?> |
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.quote:Op maandag 9 maart 2009 20:50 schreef Xcalibur het volgende:
Ik gebruik optie 1 altijd, daar heb ik wel goede ervaringen mee
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 | 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(); } } ?> |
Maar nog steeds snap ik het voordeel van (!$var) niet ipv ($var == false)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'
Dan kan je net zo goed (($var == false) == true) schrijven.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)
Uiteraardquote: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![]()
Voor zover ik weet niet, dit wordt namelijk door de browser mee gezonden.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.
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 11:10 schreef Chandler het volgende:
ok, tnx dus minder toetsen indrukken is het voordeel
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 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'"
$HTTP_SERVER is ouderwets, probeer anders $_SERVER['HTTP_REFERER'] eens.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.
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....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'"
Hoe veel honderdduizenden keren per seconde moet je dat doen om die performancewinst te merken?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) .![]()
En dat was de oplossing inderdaad. Bedankt.quote:Op dinsdag 10 maart 2009 15:14 schreef Tuvai.net het volgende:
$HTTP_SERVER is ouderwets, probeer anders $_SERVER['HTTP_REFERER'] eens.
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.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?
Brakke compiler als 'ie dat niet wegoptimaliseert.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) .
quote:Op dinsdag 10 maart 2009 15:41 schreef Catbert het volgende:
[..]
Brakke compilerparser als 'ie dat niet wegoptimaliseert.
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.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)
1 2 3 | $b = $_POST['vn']; $d = f($c,$d); |
1 2 3 | $achterNaam = $_POST['achterNaam']; $completeNaam = MaakCompleteNaamVanLosseDelen($voorNaam, $achterNaam); |
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: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).
1 2 3 4 5 6 | $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()); ?> |
Kijk eens naar register_globals.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.
Het tweede argument van mysql_query is de connection identifier, niet een boolean.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?
Zoals Tuvai al schreef, is $HTTP_REFERER ouderwets. Gewoon de code aanpassen is beter.quote:
THX!! heb me helemaal suf zitten rukken zoeken!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.
Amen to that.quote:Op dinsdag 10 maart 2009 19:24 schreef Light het volgende:
Gelukkig wordt'ie afgeschaft.
Hè bahquote: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.
quote:
In PHP kan ik het me nog voorstellen, maar in C#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 gebruik het dan ook niet overal.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..
Dat kom je hopelijk vanzelf wel tegen als je op register_globals zoekt, maar dan weet ie iig waarom het fout gaat.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.
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.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 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.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.
Nah, das moeilijk s/intHuppeldepup/floatHuppeldepup/gquote: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
![]()
Afgezien van hoeveel moeite het kost is het met een fatsoenlijke IDE gewoon nergens voor nodigquote:Op woensdag 11 maart 2009 04:32 schreef slacker_nl het volgende:
[..]
Nah, das moeilijk s/intHuppeldepup/floatHuppeldepup/g
VS2008 biedt ook gewoon aan alles te wijzigen als je de naam van je variabele aanpastquote: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 nodigDaarnaast, 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..
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 volgensmijquote: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
Dan verander je daarna toch gewoon floatBlaat in floatBlaat2?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
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.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...
Uitbesteden, zodat je een solide en veilig (!!) systeem krijgt. En dat is vast goedkoper dan jou een jaar aan te laten rommelen.quote:Op woensdag 11 maart 2009 16:29 schreef -SG- het volgende:
Iemand die mij kan helpen/tips geven hoe ik dit moet aanpakken?
Hmm misschien is dat beter jaquote: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?
Nou het hoeft niet allemaal gerealiseerd te worden. Het is voor school en de site zal waarschijnlijk nooit de lucht in gaan.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 liefst natuurlijk een 9+quote:Op woensdag 11 maart 2009 16:49 schreef Roy_T het volgende:
Ah, een 6- is genoeg dusIk ging uit van iets wat in productie moet (en dus een 9+ moet zijn).
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.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?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <html> <head> <title>Ticketservice</title> </head> <body> <form name = "form1"> voornaam: <input type="text"><br> achternaam: <input type="text"><br> </form> </body> </html> ?> |
Dit dien je buiten de PHP tags te zetten.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?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <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 | 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="" />"; ?> |
1 2 3 | <input type="submit" value="Verzenden"> ?> |
valt meequote: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
huhquote: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
ja en dan ga je of naar dezelfde pagina of naar een andere paginaquote:Op woensdag 11 maart 2009 21:23 schreef -SG- het volgende:
Thnx cablegunmaster.
Maar een submit knop kan dat ook zo:
[ code verwijderd ]
?
handmatig invoeren in excellquote:Op woensdag 11 maart 2009 22:47 schreef Xcalibur het volgende:
[..]
huh![]()
en wat moet je dan met die mails?
Gast, hij bedoelt dat SG dan een hele tijd bezig is met de implementatie, vooral omdat hij niks weet en alles voorgekauwd wil hebben.quote:Op woensdag 11 maart 2009 22:44 schreef cablegunmaster het volgende:
valt meegebeurt ook niet handmatig je denkt teveel met 1 ding een database is ontworpen voor VEEL informatie
1 2 3 4 5 6 7 8 9 10 11 12 | 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 | +----+------+-----------+--------------------------+------+--------+--------+ |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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 | +----+------+-----------+--------------------------+------+--------+--------+----------+ |
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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 | +----+------+-----------+--------------------------+------+--------+--------+----------+ |
Waarom raadt je deze manier af?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.
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.quote:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <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> |
1 2 3 4 5 6 7 | $boek = array($_POST['boek']); foreach($boek as $b) { echo $message .= "Extra boek: <a href=\"boek.php?id=$b\">Bestel</a>\n"; } ?> |
Dit zou volgens mij moeten werken.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?
1 |
1 2 3 4 | { echo "Extra boek: <a href=\"boek.php?id=$b\">Bestel</a>\n"; } |
Mja, dan krijg ik als ik 2 en 3 geselcteerd heb:quote:Op zondag 15 maart 2009 02:56 schreef spaceninjapirate het volgende:
[..]
Dit zou volgens mij moeten werken.
[ code verwijderd ]
[ code verwijderd ]
1 2 3 | Extra boek: <a href="boek.php?id=2">Bestel</a><br /> Extra boek: <a href="boek.php?id=3">Bestel</a><br /> |
1 2 3 4 5 | ( [0] => 2 [1] => 3 ) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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> |
Kom er achter dat ik teste metquote: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 ]
1 2 3 | echo $message .= blablabla ?> |
wij moeten het voor jou maken ??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.
Hoe ver ben je al? Wat werkt er (nog) niet?quote:Op maandag 16 maart 2009 23:57 schreef jeweetz17 het volgende:
maar kan iemand mij hiermee helpen (...)
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.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.
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.
Dat dus.quote:Op dinsdag 17 maart 2009 10:07 schreef Catch22- het volgende:
wat is je budget ?
ik wel hoorquote:
Ik bouw het voor een vast bedrag van 750,- ex btwquote:Op dinsdag 17 maart 2009 12:50 schreef Roy_T het volgende:
[..]
Ik ookMaar dan wel tegen 80 euro per uur
1 2 3 4 5 6 7 8 9 10 11 12 13 | $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); } |
1 2 3 4 5 6 | $curpage = 1; for($a=0; $a<=2; $a++) { echo "$curpage == $a+1: ".($curpage == ($a+1))."<br />\n"; } ?> |
1 2 3 | 1 == 1+1: 1 == 2+1: |
Bedoel je daarmee de output van "die(var_dump($curpage));"? Dat is: bool(true)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?
Kijk, daar heb je me al te pakkenquote: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)
Jep, gelukkig nu ik nog haren over heb.quote:Op dinsdag 17 maart 2009 23:07 schreef GlowMouse het volgende:
Opgelost dus
$curpage = isset($_GET['page']) ? intval($_GET['page']) : 1;
1 2 | 121 |
hoe noem je die notitie? weet je dat?quote:Op dinsdag 17 maart 2009 23:07 schreef GlowMouse het volgende:
Opgelost dus
$curpage = isset($_GET['page']) ? intval($_GET['page']) : 1;
Ternary operation.quote:Op woensdag 18 maart 2009 09:56 schreef PiRANiA het volgende:
[..]
hoe noem je die notitie? weet je dat?
Ik vind een ternary opteration leesbaarder en overzichtelijker dan een hele if(x==y){...}else{...} constructie, eigenlijk. Maar goed, ieder zijn meug.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.
Erm... zitten ternary operations niet in zo'n beetje iedere taalquote:Op woensdag 18 maart 2009 10:10 schreef Catch22- het volgende:
dit is ook logica van het jaar 0, maar dat is php he![]()
Als een developer geen ternary operator kan lezen zet ik mijn twijfels bij zijn/haar basiskwaliteiten als developer.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.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |