abonnement Unibet Coolblue Bitvavo
pi_42672565
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?
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.
pi_42672582
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...?
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
  zaterdag 14 oktober 2006 @ 16:21:46 #243
12221 Tijn
Powered by MS Paint
pi_42672836
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.
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.
  zaterdag 14 oktober 2006 @ 17:03:18 #244
65471 SkaterSam
Lurking Galore
pi_42673785
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
Ja, maar dat zou dan moeten gebeuren als je inlogt, en niet nadat je al bent ingelogd.
Let's make life easy
Typo's are the demon spawn from hell !
pi_42673994
quote:
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
lege kolommen kan je toevoegen door een extra <td> in je tabel te zetten... gewoon geen data inzetten
die voorloopnullen kan je misschien oplossen door het ding tussen quotes te outputten? Maar dan zit je daar weer mee
  zaterdag 14 oktober 2006 @ 17:19:18 #246
62215 qu63
..de tijd drinkt..
pi_42674214
quote:
Op woensdag 11 oktober 2006 20:34 schreef Swetsenegger het volgende:
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 alles
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_42680925
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.
Aha, wel een goeie om te bookmarken.

Nu gaat het om een redelijk simpele site, en ik ben ook nog maar een kleine beginneling
pi_42682302
quote:
Op woensdag 11 oktober 2006 20:34 schreef Swetsenegger het volgende:
[..]
Ja dat is dus mooi kut, want ook DAT moet ik oplossen
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.
Je kunt ook een html pagina met een tabel genereren en die laten downloaden als .xls, dat slikt Excel ook.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_42688150
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?
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.
pi_42688288
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?
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.

Echter, gebruik maken van de auto increment functie van de database is ook een optie. Je genereert dan een sleutel en plaatst daar bijvoorbeeld de nieuw aan te maken record ID achter (of voor). Op die manier is je session key sowieso altijd uniek binnen de tabel (en het systeem).
  zondag 15 oktober 2006 @ 13:56:51 #251
65471 SkaterSam
Lurking Galore
pi_42696368
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
//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-&gt;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-&gt;checkLogin();
        }
        
        return
$fingerprint;    
    }
?>

Zoiets?
Let's make life easy
Typo's are the demon spawn from hell !
pi_42696812
@SkaterSam

Ik denk eerder dat FuifDuif zoiets bedoelt:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
do {
    
// Maak random session id
    
session_regenerate_id();
    
$fingerprint = $this-&gt;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']) &gt; 0);
?>
  zondag 15 oktober 2006 @ 14:24:31 #253
65471 SkaterSam
Lurking Galore
pi_42697108
quote:
Op zondag 15 oktober 2006 14:12 schreef JeRa het volgende:
@SkaterSam

Ik denk eerder dat FuifDuif zoiets bedoelt:
[ code verwijderd ]
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... ?
Let's make life easy
Typo's are the demon spawn from hell !
pi_42697442
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... ?
Jouw functie werkt niet, omdat je $this->checkLogin() wel aanroept maar $fingerprint helemaal niet verandert :) als je dit had geschreven:

1
2
3
if (conditie) {
    $fingerprint = $this->checkLogin();
}


Dan had het wél gewerkt. Maar zelfs dan is een iteratieve methode te prefereren boven een recursieve methode, omdat het in dit geval zowel lekkerder weg leest als stabieler is (PHP crasht bij een stack overflow, niet dat dat mag voorkomen, maar het komt niet voor als je het iteratief aanpakt).
pi_42715547
wat bepaalt of het bestand index.php eerder gelezen wordt dan index.html? is dat de browser of de server?

en is het (in geval van server) te vertrouwen om een statische 'voorpagina' index.html te noemen (als html eerst geopend wordt) om vervolgens door te linken naar index.php?
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_42715640
de server bepaalt dat.

En dat vertrouwen kan je hebben denk ik als je zelf invloed hebt op een en ander. Als je hosting bedrijf plotseling de instellingen veranderd heeft het niet zoveel zin. Dan zou je index.php van naam kunnen veranderen zodat er maar 1 index file is.
pi_42716796
dankuzeer
ja normaal gesproken zou ik gewoon een ander bestand aanhouden, maar de index is al helemaal dynamisch opgezet en dat zou betekenen dat ik al mn links moet aanpassen van index.php naar een ander bestand. dr is ook niet echt een if voor te zetten ofzo.. tenzij ik met cookies zou gaan werken..
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_42716989
misschien kan je met $_SERVER['REQUEST_URI'] uitlezen of iemand www.domein.nl/index.php ingetypt heeft of alleen www.domein.nl/. In het geval van het tweede zou je dan een "frontpage.html" kunnen inladen als pagina, en anders de dynamische content.
  maandag 16 oktober 2006 @ 16:27:28 #259
76511 Xtr3mE
X to the Z
pi_42721488
wie kan mij helpen met het volgende: ik zit er er al sinds gisteren mee en wordt er gek van :{

Ik heb met een array (door de gebruiker in te voeren op de pagina ervoor) wat textvelden gemaakt die allemaal ingevuld worden. Nu wil ik die waardes uitlezen en in een een database stoppen.

Maar het wil maar niet lukken. Ik neem aan dat je deze uit moet lezen in een nieuwe array? of moet het op een andere manier?

en bij het invoeren met de mysql_query, hoe kunnen meerdere waardes dan worden ingevoerd of moet er ook een soort van array gemaakt worden dat ie dus bijv bij 6 textfields ook 6x een mysql_query moet uitvoeren?

ik heb dus nu de volgende dingen:

toevoegen.php - hier worden 2 variabelen en het aantal van de textfields aangegeven

toevoegen2.php - hier worden de 2 varabiablen ook opgeslagen en er wordt een rij van textfields aangemaakt. met de onderstaande code

1
2
3
<?php
for($j = 1; $j &lt;= $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>"; }
?>


toevoegen3.php - hier moet alles uitgelezen worden en ingevoerd worden in de database, verder niks. (ja en een melding of het gelukit is of niet)
It's time to kick ass and chew bubble gum... and I'm all out of bubble gum
pi_42721597
als alles is ingevuld kan je gewoon foreach($_POST['textfield'] as $name => $value) gebruiken
  dinsdag 17 oktober 2006 @ 08:41:48 #261
76511 Xtr3mE
X to the Z
pi_42732298
quote:
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
werkt, bedankt
It's time to kick ass and chew bubble gum... and I'm all out of bubble gum
  dinsdag 17 oktober 2006 @ 12:12:31 #262
10119 appelsientje
Het beste onder de zon
pi_42736786
Hallo ik heb misschien een basic vraagje Maar ik heb ooit eens iets gedaan maar ik kan me niet meer voor de geest halen hoe ik dat toen gedaan heb

Ik heb een formulier gemaakt om de ingevulde gegevens te bewerken/versturen (duh) ..om deze POST gegevens op te halen doe je meestal $bla = $_POST['bla'];

Maar nu heb ik heel veel post gegevens (en sommige zijn leeg) en die wil ik niet allemaal handmatig gaan inkloppen
dus:
1
2
3
4
5
<?php
$bla1
= $_POST['bla1'];
$bla2 = $_POST['bla2'];
$bla3 = $_POST['bla3'];
?>


... Nu weet ik dat er een methode is om die POST gegevens in Variabelen te zetten...
Maar hoe doe je dat ook weer... ik dacht iets met var_dump() maar dat is het volgens mij ook niet....
To deny our impulses would deny the very thing that make us human.
  dinsdag 17 oktober 2006 @ 12:16:09 #263
4159 GI
Nee ik heet geen JOE
pi_42736882
1
2
3
<?php
extract
($_POST);
?>

Maar het is niet volgens de "nette regels" om het op die manier te doen .
  dinsdag 17 oktober 2006 @ 12:31:08 #264
10119 appelsientje
Het beste onder de zon
pi_42737261
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 .
Is die er dan wel ? ik kende deze manier niet.. had het toen anders gedaan.. maar geen idee hoe
To deny our impulses would deny the very thing that make us human.
pi_42738401
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...

Met extract() is dat dus inderdaad, maar het beste kun je toch op de oude manier verder gaan en dus alle variabelen apart toewijzen. Als je veel gegevens van hetzelfde type hebt, dan kun je natuurlijk gebruik maken van arrays:

1
2
3
4
5
6
<form method="post" action="pagina.php">
    <input type="text" name="bla[]" />
    <input type="text" name="bla[]" />
    <input type="text" name="bla[]" />
    <input type="submit" />
</form>


pagina.php:
1
2
$bla = $_POST['bla'];
print_r($bla);


  dinsdag 17 oktober 2006 @ 13:17:20 #266
46383 Tiemie
sowieso wel!
pi_42738495
1
2
3
while (list ($var1, $var2) = each ($_POST){
   echo $var1;
}


waarom wil je de post-waarden eigelijk in variabelen hebben? is niet echt nodig :P .

ik gebruik voor het debuggen gewoon

1
2
3
print('<pre>');
print_r($_POST);
print('</pre>');


En als ik een post-variabele wil echo-en of inserten dan roep ik deze aan met $_POST['naam'];
pi_42751179
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 .
Je kunt ook meteen adviseren om register_globals aan te zetten
pi_42763989
ik doe altijd

1
2
3
4
5
6
$values = array('postwaarde1','postwaarde2','postwaarde3');
foreach ($_REQUEST as $key => $value){
   if (in_array($key, $values)){
      $$key = $value;
   }
}


dan worden alleen de waardes die jij hebt opgegeven omgezet naar de gelijknamige variabelen.
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_42766515
Ik zit met een dubbele 'foreach' in de knoei als ik het wil toevoegen aan de database:

ik heb 2 array's met textfields (aantal is verschillend) textfield1[] en textfield2[]

nu moet dit uitgelezen worden en in een databse gestopt worden.

de 1e waarde uit textfield1 hoort bij de 1e waarde uit het textfield2 enz.

ik heb het met de volgende code geprobeerd:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
// alle waardes uitlezen
    
$artikelcode = $_POST['artc'];
    
$omschrijving = $_POST['omsc'];
    
$prijs = $_POST['prijs'];

    
//in de query zetten:
    
foreach($_POST['textfield1'] as $name =&gt; $value)
    {
    foreach(
$_POST['textfield2'] as $name2 =&gt; $value2)
    {
    
mysql_query("INSERT INTO pakket ( Artikelcode, Omschrijving, Prijs, Onderdeel, Naam )
    VALUES ('$artikelcode', '$omschrijving', '$prijs', '$value', '$value2');"
);
    }
    }
?>


maar dan krijg ik het volgende:



maar het zou dus dit moeten worden:

It's time to kick ass and chew bubble gum... and I'm all out of bubble gum
pi_42775517
@Xtr3mE

Zo raar is dat niet, je hebt een nested loop (loop in een loop) waarbij je allebei de items 2 keer doorloopt, oftewel 2x2 = 4 items je moet dus een manier zien te verzinnen hoe je de informatie uit textfield1 koppelt aan textfield2, en het geheel dan 2x doorlopen om de juiste 2 items te krijgen.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')