Imho is de mooiste oplossing om de logistiek achter een website te scheiden van de presentatie. Wat ik dus meestal doe is een PHP-bestand schrijven waar alle bewerkingen worden uitgevoerd en waarin ik een template laadt die mijn gegevens kan presenteren.quote:Op zaterdag 14 oktober 2006 15:30 schreef super-muffin het volgende:
Ik ben nou bezig met mijn eigen site aan het omzetten in PHP en mySQL.
Nu staan veel query's midden in de pagina. Ik vind dat niet echt netjes. Stoppen jullie die in een apart bestand of stel ik me aan?
Miniem, maar een check is op z'n minst wel netjes. Als je je sessionid een PRIMARY KEY maakt wordt ie automatisch ook UNIQUE en dan krijg je een foutmelding terug als je een al bestaande session id probeert te inserten, dus daar zou je eventueel op kunnen checkenquote:Op zaterdag 14 oktober 2006 15:32 schreef SkaterSam het volgende:
Maar hoe vaak komt het voor dat dezelfde sessionid's worden gegenereerd @random? Het betreft trouwens nu nog een systeem waar maar enkele mensen op inloggen... Een stuk of 10 zeg maar, dan is die kans toch miniem...?
Op aanraden van Crazaay (geloof ik) heb ik eens naar CodeIgniter gekeken. Hiermee wordt het je behoorlijk makkelijk gemaakt om een cleane website te maken.quote:Op zaterdag 14 oktober 2006 16:09 schreef JeRa het volgende:
[..]
Imho is de mooiste oplossing om de logistiek achter een website te scheiden van de presentatie. Wat ik dus meestal doe is een PHP-bestand schrijven waar alle bewerkingen worden uitgevoerd en waarin ik een template laadt die mijn gegevens kan presenteren.Zoiets kun je bewerkstelligen met Smarty.
Ja, maar dat zou dan moeten gebeuren als je inlogt, en niet nadat je al bent ingelogd.quote:Op zaterdag 14 oktober 2006 16:10 schreef JeRa het volgende:Miniem, maar een check is op z'n minst wel netjes. Als je je sessionid een PRIMARY KEY maakt wordt ie automatisch ook UNIQUE en dan krijg je een foutmelding terug als je een al bestaande session id probeert te inserten, dus daar zou je eventueel op kunnen checken
lege kolommen kan je toevoegen door een extra <td> in je tabel te zetten... gewoon geen data inzettenquote:Op woensdag 11 oktober 2006 20:34 schreef Swetsenegger het volgende:
Ja dat doet die snippet van Piles ook, werkt inderdaad prima, behalve dat ik nu moet uitvinden hoe ik lege kolommen plak.
[..]
Ja dat is dus mooi kut, want ook DAT moet ik oplossen
gebruik anders deze ` (dus naast het uitroepteken..) voor ieder getal, dan slikt Excel allesquote:Op woensdag 11 oktober 2006 20:34 schreef Swetsenegger het volgende:
Ja dat is dus mooi kut, want ook DAT moet ik oplossen
Aha, wel een goeie om te bookmarken.quote:Op zaterdag 14 oktober 2006 16:09 schreef JeRa het volgende:
[..]
Imho is de mooiste oplossing om de logistiek achter een website te scheiden van de presentatie. Wat ik dus meestal doe is een PHP-bestand schrijven waar alle bewerkingen worden uitgevoerd en waarin ik een template laadt die mijn gegevens kan presenteren.Zoiets kun je bewerkstelligen met Smarty.
De afhandeling van CSV door Excel is behoorlijk brak. De voorloopnullen zijn er nog wel doorheen te krijgen, maar een string met een komma erin wordt opgesplitst in 2 cellen, zelfs als de string tussen "" staat. dat kan je weer oplossen door een tab als schijdingsteken te gebruiken en alle tabs in de strings door een spatie te vervangen.quote:Op woensdag 11 oktober 2006 20:34 schreef Swetsenegger het volgende:
[..]
Ja dat is dus mooi kut, want ook DAT moet ik oplossen
Uiteindelijk geniet het de voorkeur om als uitgangspunt het model 2 paradigma te nemen. Dat betekent onder andere dat je inderdaad dus geen enkele business code in je HTML plaatst. In plaats daarvan gebruik je een templating systeem, zoals JeRa met Smarty al aan heeft gegeven. Uiteraard hangt het af van de omvang van een website in hoeverre een dergelijke benadering echt noodzakelijk is. In ieder geval is het een goed uitgangspunt om je ontwikkel- en daarbij je abstractieniveau te verhogen wat zeker noodzakelijk is, wanneer je begint aan het ontwikkelen van webapplicaties.quote:Op zaterdag 14 oktober 2006 15:30 schreef super-muffin het volgende:
Ik ben nou bezig met mijn eigen site aan het omzetten in PHP en mySQL.
Nu staan veel query's midden in de pagina. Ik vind dat niet echt netjes. Stoppen jullie die in een apart bestand of stel ik me aan?
Die kans mag dan wel miniem zijn, maar de kans is aanwezig en dat lijkt mij al voldoende om deze uit te sluiten. Stel dàt het gebeurt; dat wil je niet. Een oplossing kan dan zijn om middels een soort lus-systeem een random key te genereren, waarbij hij telkens blijft genereren totdat een key is gegenereerd welke nog niet voorkomt in de tabel. In 99% van de gevallen al de lus slechts één maal doorlopen worden, maar mocht er bij toeval toch een key worden gegenereerd die reeds bestaat, dan maakt ie weer een nieuwe.quote:Op zaterdag 14 oktober 2006 15:32 schreef SkaterSam het volgende:
Maar hoe vaak komt het voor dat dezelfde sessionid's worden gegenereerd @random? Het betreft trouwens nu nog een systeem waar maar enkele mensen op inloggen... Een stuk of 10 zeg maar, dan is die kans toch miniem...? En met AUTO_INCREMENT bedoel je als ik vanuit de DB een sessionid zou aanmaken?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | //Controleer of de login geen dubbele session stamps oplevert... function checkLogin() { // Maak enkele variables om in de DB te voegen session_regenerate_id(); $fingerprint = $this->makeFingerprint(); $fingerprint = mysql_real_escape_string($fingerprint); // Controleer of die variable al bestaat $login_query = "SELECT COUNT(l.session_stamp) AS fingerprint FROM logged_in AS l WHERE l.session_stamp = '" . $fingerprint . "'"; $login_resource = mysql_query($login_query); $login_result = mysql_fetch_assoc($login_resource); if ($login_result['fingerprint'] == 1) { $this->checkLogin(); } return $fingerprint; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | do { // Maak random session id session_regenerate_id(); $fingerprint = $this->makeFingerprint(); $fingerprint = mysql_real_escape_string($fingerprint); // Controleer de session id $query = 'SELECT COUNT(...) AS num FROM tabel etc etc'; $result = mysql_query($query); $data = mysql_fetch_assoc($result); } while (intval($data['num']) > 0); ?> |
Ha, ja zo kan het ook, ik vroeg me ook al af of mijn manier niet erg gevoelig was voor bugs... Want mijn manier doet precies hetzelfde toch ? Of wordt het dan een soort van nested loop... ?quote:Op zondag 15 oktober 2006 14:12 schreef JeRa het volgende:
@SkaterSam
Ik denk eerder dat FuifDuif zoiets bedoelt:
[ code verwijderd ]
Jouw functie werkt niet, omdat je $this->checkLogin() wel aanroept maar $fingerprint helemaal niet verandert :) als je dit had geschreven:quote:Op zondag 15 oktober 2006 14:24 schreef SkaterSam het volgende:
[..]
Ha, ja zo kan het ook, ik vroeg me ook al af of mijn manier niet erg gevoelig was voor bugs... Want mijn manier doet precies hetzelfde toch ? Of wordt het dan een soort van nested loop... ?
1 2 3 | $fingerprint = $this->checkLogin(); } |
1 2 3 | for($j = 1; $j <= $aantal; $j++) { echo "<tr><td><label><span class="style2">Onderdeel</span></td><td><input type="text" id=i name="textfield[]" maxlength="8"></label></td></tr>"; } ?> |
werkt, bedanktquote:Op maandag 16 oktober 2006 16:48 schreef Roönaän het volgende:
als alles is ingevuld kan je gewoon foreach($_POST['textfield'] as $name => $value) gebruiken
1 2 3 4 5 | $bla1 = $_POST['bla1']; $bla2 = $_POST['bla2']; $bla3 = $_POST['bla3']; ?> |
Is die er dan wel ?quote:Op dinsdag 17 oktober 2006 12:16 schreef GI het volgende:
[ code verwijderd ]
Maar het is niet volgens de "nette regels" om het op die manier te doen.
quote:Op dinsdag 17 oktober 2006 12:12 schreef appelsientje het volgende:
... Nu weet ik dat er een methode is om die POST gegevens in Variabelen te zetten...
1 2 3 4 5 6 | <input type="text" name="bla[]" /> <input type="text" name="bla[]" /> <input type="text" name="bla[]" /> <input type="submit" /> </form> |
1 2 | print_r($bla); |
1 2 3 | echo $var1; } |
1 2 3 | print_r($_POST); print('</pre>'); |
Je kunt ook meteen adviseren om register_globals aan te zettenquote:Op dinsdag 17 oktober 2006 12:16 schreef GI het volgende:
[ code verwijderd ]
Maar het is niet volgens de "nette regels" om het op die manier te doen.
1 2 3 4 5 6 | foreach ($_REQUEST as $key => $value){ if (in_array($key, $values)){ $$key = $value; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // alle waardes uitlezen $artikelcode = $_POST['artc']; $omschrijving = $_POST['omsc']; $prijs = $_POST['prijs']; //in de query zetten: foreach($_POST['textfield1'] as $name => $value) { foreach($_POST['textfield2'] as $name2 => $value2) { mysql_query("INSERT INTO pakket ( Artikelcode, Omschrijving, Prijs, Onderdeel, Naam ) VALUES ('$artikelcode', '$omschrijving', '$prijs', '$value', '$value2');"); } } ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |