abonnement Unibet Coolblue Bitvavo
pi_31588956
Ik heb een mailfunctie die mij een zipbestand als attachment stuurt:
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
<?php
Define
(DB,"database12");//define database
Define(EMAIL,"backup@domein.com");//define email
function MailBackup($content)
{
    
$filename = "Backup_".DB."_".date("d_m_y").".zip";    
    
$content = gzencode($content);

    
//should be a "more unique" string, worked for the test
    
$boundary = md5(time());

    
//base-64 encode
    
$content = chunk_split(base64_encode($content));

    
$subject = 'Backup van '.DB.' - '.date("m_d_y");

    
$headers  = 'MIME-Version: 1.0' ."\n"
              
. 'Content-type: multipart/mixed; boundary="' .$boundary .'"' ."\n"
              
. 'From: archive.php <postmaster@domein.nl>' ."\n"
              
. 'Reply-To: postmaster@domein.nl ' ."\n";

    
$headers .= "--" .$boundary ."\n"
             
. "Content-type: multipart/mixed;\n"
             
. 'Content-Disposition: attachment;'
             
. 'filename='.$filename .";\n"
             
. 'Content-transfer-encoding: base64' ."\n\n"
             
. $content ."\n\n"
             
. '--' .$boundary .'--';

    
mail(EMAIL, $subject, $message, $headers);
}
?>

Lijkt me dat je er wel wat mee kunt.
pi_31589497
Bedankt ikke_ook. Ik zal er morgen alles eens uitgebreid gaan bestuderen. Ik denk dat het wel moet lukken met de info die ik tot nu toe heb gekregen.

pi_31589522
hmm ik zie dat t eigenlijk [PHP/(My)SQL] voor dummies - deel 14 had moeten zijn
Kan een modje die zich verveelt dat ff fixen?Staat mooier in t lijstje
pi_31589773
tvp!

Ben nu maar weer eens MySQL aan het proberen te instaleren... Is nooit gelukt

Met mijn Reg_exp voor urls en emails wil ook niet echt
  Lieve Belg donderdag 20 oktober 2005 @ 22:11:36 #6
86282 Jump
[Belg.] Jump (de ~ (m.))
pi_31589782
ikko_ook: aangepast
Op zondag 28 oktober 2007 01:07 schreef clumsy_clown het volgende:
Jump daarentegen, is wáy minder braaf en lief dan hij lijkt
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; «shmoop|dingen» jawel, jij bent Superjump
  Lieve Belg donderdag 20 oktober 2005 @ 22:29:26 #7
86282 Jump
[Belg.] Jump (de ~ (m.))
pi_31590403
Ff sommige mensen op volgend topic attent maken: Voor alle users die TVP's gebruik(t)en.

Hoe spijtig ik het ook vind
Op zondag 28 oktober 2007 01:07 schreef clumsy_clown het volgende:
Jump daarentegen, is wáy minder braaf en lief dan hij lijkt
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; «shmoop|dingen» jawel, jij bent Superjump
pi_31606833
Ik heb een tellertje gebouwd, nu wil ik doormiddel van een cookie zorgen dat mensen maar 1 keer per dag geteld worden.

Hoe kan ik er voor zorgen dat een cookie ALTIJD verloopt om twaalf uur s'nachts. Mijn hele script werkt al, het cookie verloopt nu alleen al na een uur.


1
2
3
4
<?php
setcookie
("tellerblokkeren", "true",time()+3600, "/");

?>
Ja lekker!
pi_31607121
De tijd die staat voor 12 uur die nacht - time() is het aantal seconden dat time() verwijderd is van middernacht. Dat kun je vervolgens in setcookie voor 3600 in de plaats zetten. Het uitvinden hoe je de middernachtdatum uit kunt vinden lukt je vast wel
Hatsjoe!
pi_31607337
quote:
Op vrijdag 21 oktober 2005 16:42 schreef Ali Salami het volgende:
De tijd die staat voor 12 uur die nacht - time() is het aantal seconden dat time() verwijderd is van middernacht. Dat kun je vervolgens in setcookie voor 3600 in de plaats zetten. Het uitvinden hoe je de middernachtdatum uit kunt vinden lukt je vast wel
Ehm.. nee.. Hier snap ik dus serieus helemaal geen hol van. Maar misschien ligt dat gewoon aan mij. :s
Ja lekker!
  vrijdag 21 oktober 2005 @ 17:16:46 #11
1607 Ali Salami
Altijd actueel
pi_31607815
Nou, je zet die cookie op 12 uur 's nachts. Je moet dus weten op welke timestamp hij moet aflopen. Die timestamp is per dag variabel.

Overigens had ik het fout zonet, want je kunt uiteraard met die timestamp ook meteen het koekje zetten. Je gaat dus de timestamp uitzoeken die staat voor 12 uur die nacht. Dat doe je doormiddel van mktime(). Uiteraard moet je vantevoren uitzoeken welke dag het dan is, welke maand en welk jaar.

Je krijgt dus iets als

1
2
3
<?php
$koekje
=mktime(00,00,00,$maand,$dag,$jaar);
?>


Die waarde zet je vervolgens in het koekje

1
2
3
<?php
setcookie
("tellerblokkeren", "true",$koekje, "/");  
?>
Hatsjoe!
pi_31608475
En waarom niet gewoon:
1
2
3
<?php
setcookie
("tellerblokkeren", "true", strtotime("tomorrow 0"), "/");
?>
  vrijdag 21 oktober 2005 @ 18:18:39 #13
1607 Ali Salami
Altijd actueel
pi_31609076
Die nul geeft dan aan dat het op 00.00 uur moet worden gezet? Zo ja, dan is dat nog simpeler
Hatsjoe!
pi_31609191
quote:
Op vrijdag 21 oktober 2005 18:18 schreef Ali Salami het volgende:
Die nul geeft dan aan dat het op 00.00 uur moet worden gezet? Zo ja, dan is dat nog simpeler
Yep. Je mag ipv 0 ook 0:0:0 schrijven, dat komt op hetzelfde neer
pi_31613161
strtotime() is een erg ondergewaardeerde functie waarmee je heel gemakkelijk relatieve tijden kunt maken (in de trant van '+1 day') en welke rekening houdt met zomer- en wintertijd. Aanradertje

Tevens tvp
pi_31614565
strtotime() is inderdaad een handige functie, zolang je er maar voor zorgt dat de input correct is.
pi_31621833
Even een kort vraagje...
Ik ben met een spelletje bezig in php en alles voorloopt voorspoedig alleen heb ik wat problemen met de random in php, je zou kunnen zeggen dat het een hele goeie random is want je hebt werkelijk geen idee wat je krijgt alleen het nadeel is dat een spelletje een stabiele random nodg heeft en geen random die heel veel meer extremen laat zien dan gewoon elk getal ongeveer even vaak.

Voorbeeldje:
rand(1,10);
dan laat ie zien: 1,3,1,4,8,7,8,8,6,1,2
en ik heb dus liever dat ie wat 'eerlijker' omgaat met de getallen en niet de uitersten extra vaak, een spel moet een beetje eerlijk zijn en anders krijg je dat je werkelijk geen idee hebt hoe de uitkomst zal zijn.

Wat valt hieraan te doen?
-
pi_31621891
Volgens mij is rand toch behoorlijk random. Dat kun je zelf ook testen met iets als:
1
2
3
4
5
6
7
8
9
<?php
$randoms
= array();
for(
$i=0;$i&lt;10000;$i++) {
    
$randoms[rand(1,10)] += 1;
}
echo
"<pre>";
var_dump($randoms);
echo
"</pre>";
?>


Een uitkomst die ik daarmee krijg is
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
array(10) {
  [9]=>
  int(993)
  [1]=>
  int(991)
  [4]=>
  int(1021)
  [6]=>
  int(1065)
  [2]=>
  int(956)
  [10]=>
  int(1069)
  [5]=>
  int(982)
  [3]=>
  int(949)
  [7]=>
  int(995)
  [8]=>
  int(979)
}


Niet allemaal precies 1000 keer, maar de afwijking is ook niet echt groot.
pi_31621896
Het is normaal, omdat uitersten gewoon meer voorkomen. (1-3,7-10) en (4-6)

Je zou met 2 random's (dobbelstenen) kunnen werken, en deze laten optellen.

dus bv:
rand(1,5) en rand(0,5)

1 maal een nul om een uitkomst 1 ook mogelijk te maken.
Nu is een kans op 6 groter dan op een 1:
getallen om 6 te krijgen: 0+6,1+5,2+4,3+3,4+2,5+1
getallen om 1 te krijgen: 0+1

Ofwel: de kans om een 6 te krijgen, is 6 maal groter dan de kans op een 1
pi_31623155
quote:
Op zaterdag 22 oktober 2005 09:32 schreef the_disheaver het volgende:
Het is normaal, omdat uitersten gewoon meer voorkomen. (1-3,7-10) en (4-6)
Hoe kom je daar bij rand() heeft een uniforme distributie, elke mogelijke uitkomst heeft een gelijke kans.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31623971
quote:
Op vrijdag 21 oktober 2005 17:49 schreef Light het volgende:
En waarom niet gewoon:
[ code verwijderd ]
Dit werkt perfect! Thx!
Ja lekker!
  zaterdag 22 oktober 2005 @ 12:15:50 #22
47819 vbmot
Are those my feet?
pi_31624138
quote:
Op zaterdag 22 oktober 2005 11:21 schreef SuperRembo het volgende:

[..]

Hoe kom je daar bij rand() heeft een uniforme distributie, elke mogelijke uitkomst heeft een gelijke kans.
Er is heel wat geschreven over de bagger implementaties van random functies die in heel wat compilers e.d. worden gebruikt. Ik zou er dus niet blindelings op vertrouwen.
Looking for hotspots: wardriving or whoredriving?
Personal spam: http://www.kenya2ndhand.com
pi_31624473
quote:
Op zaterdag 22 oktober 2005 12:15 schreef vbmot het volgende:

[..]

Er is heel wat geschreven over de bagger implementaties van random functies die in heel wat compilers e.d. worden gebruikt. Ik zou er dus niet blindelings op vertrouwen.
Dat zal best. Maar geldt dat ook voor php? Uit een testje zoals die van Light blijkt helemaal geen afwijking.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31624481
quote:
Op zaterdag 22 oktober 2005 11:21 schreef SuperRembo het volgende:

[..]

Hoe kom je daar bij rand() heeft een uniforme distributie, elke mogelijke uitkomst heeft een gelijke kans.
Ja, de uitkomst zou iig gelijk zijn, en is het waarschijnlijk nagenoeg ook.

Maar als je naar de getallen 1-10 kijkt, en daar de uiterste waarde uit gaat halen:

Dat zijn 1,2,3&8,9,10
De niet uiterste waarde zijn 4,5,6,7

Ofwel: 6/10de is een uiterste waarde, ofwel de kans op een uiterste waarde is 60%.
pi_31624579
quote:
Op zaterdag 22 oktober 2005 12:15 schreef vbmot het volgende:

[..]

Er is heel wat geschreven over de bagger implementaties van random functies die in heel wat compilers e.d. worden gebruikt. Ik zou er dus niet blindelings op vertrouwen.
Dan ga je het testen, zoals met die paar regels code van mij.
pi_31624796
quote:
Op zaterdag 22 oktober 2005 12:33 schreef the_disheaver het volgende:

[..]

Ja, de uitkomst zou iig gelijk zijn, en is het waarschijnlijk nagenoeg ook.

Maar als je naar de getallen 1-10 kijkt, en daar de uiterste waarde uit gaat halen:

Dat zijn 1,2,3&8,9,10
De niet uiterste waarde zijn 4,5,6,7

Ofwel: 6/10de is een uiterste waarde, ofwel de kans op een uiterste waarde is 60%.
Dat ligt gewoon aan wat jij onder "uiterste waarde" verstaat. Je kan ook zeggen dat 1 en 10 de uiterste waarden zijn, dan is de kans op een uiterste waarde 20%.
Voor gewoon gebruik kan je er van uit gaan dat de rand() functie eerlijk is, elke waarde heeft een gelijke kans.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31632883
Vraagje:
Ik heb een cms gebouw, de pagina;s worden opgelagen in een mysql tabel.
Maar ik wil in een enkele pagina ook php gebruiken hoe kan ik dat doen?
pi_31635498
Ik ben opzoek naar een script om fotoalbums 'online' te krijgen. Ik heb al redelijk wat gezocht, gecopy-paste, maar het lukt met maar niet..

Ik zoek een script waarbij je:
>> Zipfiles uploaden
>> Zipfiles die je ftp hebt geupload openen
>> De foto's automatisch resizen
>> De foto dumpen in een aparte map per fotoalbum

Iemand?
pi_31642558
quote:
Op zaterdag 22 oktober 2005 20:45 schreef fokME2 het volgende:
Ik ben opzoek naar een script om fotoalbums 'online' te krijgen. Ik heb al redelijk wat gezocht, gecopy-paste, maar het lukt met maar niet..

Ik zoek een script waarbij je:
>> Zipfiles uploaden
>> Zipfiles die je ftp hebt geupload openen
>> De foto's automatisch resizen
>> De foto dumpen in een aparte map per fotoalbum

Iemand?
Gallery?
pi_31649606
quote:
Op zaterdag 22 oktober 2005 18:38 schreef Darkomen het volgende:
Vraagje:
Ik heb een cms gebouw, de pagina;s worden opgelagen in een mysql tabel.
Maar ik wil in een enkele pagina ook php gebruiken hoe kan ik dat doen?
Misschien iets met eval() ?
pi_31650945
quote:
Op zaterdag 22 oktober 2005 18:38 schreef Darkomen het volgende:
Vraagje:
Ik heb een cms gebouw, de pagina;s worden opgelagen in een mysql tabel.
Maar ik wil in een enkele pagina ook php gebruiken hoe kan ik dat doen?
niet?

je wilt gebruikers toch niet toestaan om php te gaan intypen? Het is toch een content management en niet "script hier buggy zooi" management.
pi_31650985
Is niet voor gebruikers, is gewoon voor mezelf en 2 anderen, die zijn te vertrouwen.
pi_31651069
Die kunnen dus scripts uploaden en die bied je via het cms aan om een script te kunnen selecteren uit de geuploade scripts, of op basis van filename. die include je vervolgens..

Maar inderdaad, eval is je vriend als je het anders wilt.

-r-
pi_31675227
hee ff gauw tussendoor,

wat is een acceptabele grootte voor een mysql tabel? met andere woorden, wanneer wordt het teveel?

de query's zullen vooral bestaan uit 'select dit waar dat is 1', dus een hoop zoekwerk. Hoeveel rijen zou ongeveer acceptabel zijn, en wat kan beter echt mijn limiet zijn?
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_31675273
Zolang je database-structuur in orde is, is er eigenlijk geen limiet.
  dinsdag 25 oktober 2005 @ 11:15:39 #36
61660 Lariekoek
Zo, jij bent echt grappig.
pi_31676201
Ik ben bezig met een webshop. Bij elk artikel moet ook een unieke tekst toegevoegd kunnen worden. Deze laad ik in een sessie en laat ik in het winkelmandje zien. Alleen wanneer ik nu meerdere artikellen van tekst wil voorzien staat bij elk artikel dezelfde tekst.

Ik gebruik de volgende code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (isset($verzonden))
          {
            
$_SESSION['tekst'] = $tekst;
          }
          echo
"<form method=\"post\" action=\"$PHP_SELF\">\n";
          echo
"<td><font color=\"#DAAE57\"> Tekst: </td>";
          echo
"<td><input type=\"text\" name=\"tekst\" size=\"17\" maxlength=\"9\">";
          echo
"<td><font size=\"1\" face=\"Arial\"><font color=\"#FFFFFF\">Max. 9 posities in hoofdletters</font</td>";
          echo
"</tr><tr>";
          echo
"<td><font color=\"#DAAE57\"> Kleur opdruk: </td>";
          echo
"<td><select size=\"1\" name=\"kleuropdruk\">
                <option>Zwart</option>
                <option>Wit</option></select></td>"
;
          echo
"<input type=\"submit\" name=\"verzonden\" value=\"Toevoegen\">";
          echo
"</form>";
?>


Iemand een idee hoe ik ervoor zorg dat bij elk artikel de eigen unieke tekst komt te staan? Het scherm laat trouwens in een keer alle artikkelen zien waaraan tekst toegevoegd kan worden. En dit is ook de bedoeling.
la·rie·koek (de ~ (m.)) 1 onzin
  dinsdag 25 oktober 2005 @ 11:38:49 #37
2391 Jimmy
Door het bot
pi_31676736
Waarom zou je zoveel tekst in een sessie gaan plaatsen?

Edit: als die tekst uit de database komt, waarom zou je het dan via de sessie in de html zetten?

Je kan die stap toch ook overslaan en het vanuit de database in de html plakken.
Rock 'n Roll Motherfucker - Join the Rock 'n Roll Jihad!
www.last.fm/user/JimmyShelter
Jimmy Shelter
Sleazerock.nl
  dinsdag 25 oktober 2005 @ 11:55:00 #38
61660 Lariekoek
Zo, jij bent echt grappig.
pi_31677074
Nee het word niet in de database opgeslagen.
De tekst bij het artikel moeten klanten zelf kunnen toevoegen.
la·rie·koek (de ~ (m.)) 1 onzin
pi_31677855
$_SESSION['tekst'] is geen array.

hint:
1
2
3
<?php
$_SESSION
['tekst']['__ARTICLE_ID__']
?>
pi_31682250
Ik heb weer is een probleem

Voor mijn forum een of andere hack er in geplaatst zodat ik PHP kan invoegen. Alleen de volgende regel geeft een foutmelding:

1while (preg_match("x3C% INCLUDE \"(S*?)\" %x3E",$ibforums->skin['template'],$incmatches)>0)


quote:
Warning: Delimiter must not be alphanumeric or backslash in /usr/home/jeroen/www/forum/sources/functions.php on line 2135
edit: whats wrong with it ? hoe kan ik het werkend krijgen? danku!
pi_31684056
1while (preg_match("/x3C% INCLUDE \"(\\S*?)\" %x3E/",$ibforums->skin['template'],$incmatches)>0)


Of

1'/x3C% INCLUDE "(\S*?)" %x3E/'


Dat scheelt een paar keer het escapen van de " en \.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31684068
wat dacht je van een / aan het begin en het einde van je delimiter? (Je eerste argument van preg_match)
Denk ik...
pi_31684096
niet delimiter maar pattern bedoelde ik.
Bah wat is het traag, ik bedoel dus wat SR zegt...
pi_31686189
Hmm de foutmelding is weg, maar ik kan nog steeds geen pagina include-en.. mischien dat iemand iets in deze code ziet wat niet klopt?

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
<?php
///

/// Find file sources/functions.php

/// at the beginning after php and copyright insert these lines (between ///)

///

function include_hack_handler($buf)

{       

    global
$include_temp_str;

    
$include_temp_str.=$buf;

    return
"";

}

///


/// In sources/functions.php find this line:

$text = preg_replace( "/(<|<)% (BOARD HEADER|CSS|JAVASCRIPT|TITLE|BOARD|STATS|GENERATOR|COPYRIGHT|NAVIGATION) %(>|>)/i", "&#60;% \2 %&#62;", $text );

/// Replace it with

$text = preg_replace( "/(<|<)% (BOARD HEADER|CSS|JAVASCRIPT|TITLE|BOARD|STATS|GENERATOR|COPYRIGHT|NAVIGATION|INCLUDE \"\S*?\") %(>|>)/i", "&#60;% \2 %&#62;", $text );

///


///

///In file sources/functions.php find

    
function do_output($output_array) {

        global
$DB, $Debug, $skin_universal, $ibforums;

/// replace with

    
function do_output($output_array) {

        global
$DB, $Debug, $skin_universal, $ibforums, $include_temp_str;

///


///

///In file sources/functions.php after

  
$ibforums-&gt;skin['template'] = str_replace( "<% NAVIGATION %>"     , $nav                     , $ibforums-&gt;skin['template']);


/// insert this

                //

                //  Include tag hack

                //

                
$incmatches=array();

                while (
preg_match("x3C% INCLUDE \"(S*?)\" %x3E",$ibforums-&gt;skin['template'],$incmatches)&gt;0)

                {

                    
$include_temp_str="";

                    
ob_start('include_hack_handler');

                    include(
$incmatches[1]);

                    
ob_end_flush();

                    
$ibforums-&gt;skin['template'] = str_replace("<".$incmatches[0].">",$include_temp_str,$ibforums-&gt;skin['template']);

                    
$incmatches=array();

                }

///


//Now you can use this directive in board wrapper:


&lt;% INCLUDE "http://www.yourdomain.com/test.php" %&gt;


//You can include any valid PHP or HTML file this way.
?>
pi_31686579
Ik zie wel dat de nieuwe code-tag met scrollbars knap waardeloos is als de horizontale scrollbar buiten beeld is
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31687222
quote:
Op dinsdag 25 oktober 2005 21:16 schreef SuperRembo het volgende:
Ik zie wel dat de nieuwe code-tag met scrollbars knap waardeloos is als de horizontale scrollbar buiten beeld is
[offtopic]
Ik vind de oplossing van GoT in ieder geval beter, die bieden een knopje waarmee je weliswaar de layout verneukt (nou ja, voor één post), maar wel in één keer de code ziet
pi_31693763
In principe kan je code tags idd gewoon collapsen tot één regel waar alleen "klik hier voor alle code" staat. Geen idee of dat is wat GoT doet?
pi_31693767
GoT laat normaal een scrollbare versie van de code zien, en indien gewenst kun je de code tot volledige breedte uitklappen goeiemorgen trouwens!
pi_31693810
Goedemorgen

Een ander forum waar ik zit is simpelweg niet gecentreerd en daar loopt de layout gewoon aan de rechterkant door. Daar is ook geen ubb, maar is het invoerveld hetzelfde als de post wordt, dmv pre en een mooie font. Ik moet zeggen dat dat erg prettig werkt. Images plaatsen kan alleen via links natuurlijk dan, maar goed. Het is erg clean.
pi_31693845
quote:
Op woensdag 26 oktober 2005 05:53 schreef Ro�a� het volgende:
In principe kan je code tags idd gewoon collapsen tot één regel waar alleen "klik hier voor alle code" staat. Geen idee of dat is wat GoT doet?
Dat heb ik inderdaad ook wel eens gezien, en dat werkt ook wel handig
pi_31693851
quote:
Op woensdag 26 oktober 2005 06:40 schreef Light het volgende:

[..]

Dat heb ik inderdaad ook wel eens gezien, en dat werkt ook wel handig
Wow, volgens mij gaat er iets niet goed met de encoding van Roönaäns naam in die quote

[ Bericht 2% gewijzigd door JeRa op 26-10-2005 06:50:01 ]
pi_31693858
Hmmja, vaag.
pi_31693867
Browser restart werkt ook al niet
pi_31695383
Maar iemand enig idee hoe ik die 'hack' werkend krijg?
  woensdag 26 oktober 2005 @ 12:22:04 #55
61660 Lariekoek
Zo, jij bent echt grappig.
pi_31697740
Nog even 2 vraagjes..
Ik ben bezig met een winkelmandje waarbij gebruikers een artikel kunnen selecteren en hier zelf een persoonlijke tekst bij kunnen toevoegen.

Vanuit het winkelmandje volgt er een link naar de pagina teksttoevoegen.php waar de tekst toegevoegd kan worden. Dit sla ik op in een sessie.

1
2
3
4
5
6
7
8
9
<?php
if (isset($verzonden))
          {
            
$_SESSION['tekst']['artikel_id'] = $tekst;
          }
          echo
"<form method=\"post\" action=\"$PHP_SELF\">\n";
          echo
"<td><font color=\"#DAAE57\">Tekst:</td>";
          echo
"<td><input type=\"text\" name=\"tekst\" size=\"17\" maxlength=\"9\">";
?>


In het winkelmandje lees ik dit vervolgens weer uit

1
2
3
4
<?php

      
echo "<td width=\"85\" align=\"center\"><font size=\"2\" face=\"Verdana\" color=\"#FFFFFF\">".$tekst['artikel_id']."</td>";
?>


Nu heb ik 2 probleempjes.

De eerste keer tekst toevoegen gaat goed, en laat hij keurig de ingevoerde tekst zien. Wanneer ik deze tekst nu wil wijzigen krijg ik als tekst terug Array.

Wanneer er van 1 artikel twee stuks besteld worden moet er twee keer tekst ingevuld worden. Dit mag twee keer een andere tekst zijn, alleen neemt hij de eerst ingevoerde tekst klakkeloos over.

Iemand enig idee hoe ik deze 2 problemen kan oplossen?
la·rie·koek (de ~ (m.)) 1 onzin
pi_31698696
1) Dan maak je dus niet goed gebruik van Arrays.
2) Zie 1.

Btw, wat leesvoer: http://nl3.php.net/variables.predefined & http://nl3.php.net/register_globals

Tip: laat meer van je code zien, want we kunnen op deze manier niks
  woensdag 26 oktober 2005 @ 13:23:59 #57
61660 Lariekoek
Zo, jij bent echt grappig.
pi_31699061
Dit is zeg maar de gehele code.

winkelwagen.php
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
<?php
php
session_start
();
include
"config.inc.php";
echo
"<body bgcolor=\"#000000\">";
echo
"<body link=\"#FFFFFF\" vlink=\"#FFFFFF\" alink=\"#FFFFFF\">";

// Toevoegen
if( isset( $_POST['ADD'] ) && ereg('^[1-9][0-9]*$', $_POST['aantal'])) {
$_SESSION['winkelwagen'][$_POST['artikelid']] = $_POST['aantal'];
}
// Verwijderen
if( isset( $_GET['DEL'] ) ) {
unset(
$_SESSION['winkelwagen'][$_GET['DEL']]);
}
// Laat lijst zien
if( $_SESSION['winkelwagen'] ) {
  
$totaal = 0;
  
$totaalart = 0;
  echo
"<table border=\"0\" width=\"539\" cellspacing=\"0\" cellpadding=\"0\" id=\"table1\">";
  echo
"<tr>";
  echo
"<td width=\"47\" align=\"center\"><b><font size=\"2\" face=\"Verdana\" color=\"#DAAE57\">Aantal</font></b></td>";
  echo
"<td width=\"58\" align=\"center\"><b><font face=\"Verdana\" color=\"#DAAE57\" size=\"2\">Naam</font></b></td>";
  echo
"<td width=\"152\" align=\"center\"><b><font size=\"2\" face=\"Verdana\" color=\"#DAAE57\">Omschrijving</font></b></td>";
  echo
"<td width=\"73\" align=\"center\"><b><font size=\"2\" face=\"Verdana\" color=\"#DAAE57\">Prijs in ¤</font></b></td>";
  echo
"<td width=\"85\" align=\"center\"><b><font size=\"2\" face=\"Verdana\" color=\"#DAAE57\">Tekst</font></b></td>";
  echo
"<td width=\"91\" align=\"center\"><b><font size=\"2\" face=\"Verdana\" color=\"#DAAE57\">Tekst kleur</font></b></td>";
  echo
"<td width=\"20\" align=\"center\"> </td>";
  echo
"</tr>";
  foreach (
$_SESSION['winkelwagen'] as $key=&gt;$val )
  {
    
$sql = "SELECT * FROM artikel WHERE artikel_id=$key";
    
$resultaat = mysql_query($sql);
    while (
$rij = mysql_fetch_array($resultaat))
    {
      echo
"<tr>";
      echo
"<td width=\"47\" align=\"center\"><font size=\"2\" face=\"Verdana\" color=\"#FFFFFF\">$val</td>";
      echo
"<td width=\"58\" align=\"center\"><font size=\"2\" face=\"Verdana\" color=\"#FFFFFF\">".$rij["naam"]."</td>";
      echo
"<td width=\"152\" align=\"center\"><font size=\"2\" face=\"Verdana\" color=\"#FFFFFF\">".$rij["omschrijving"]."</td>";
      
$totaalart = totaalart + ($rij["prijs"] * $val);
      echo
"<td width=\"73\" align=\"center\"><font size=\"2\" face=\"Verdana\" color=\"#FFFFFF\">".number_format($totaalart, 2, ',', ' ')."</td>";
      echo
"<td width=\"85\" align=\"center\"><font size=\"2\" face=\"Verdana\" color=\"#FFFFFF\">".$tekst[$artikel_id]."</td>";
      echo
"<td width=\"91\" align=\"center\"><font size=\"2\" face=\"Verdana\" color=\"#FFFFFF\"></td>";
      echo
"<td width=\"20\" align=\"center\"><font size=\"2\" face=\"Verdana\" color=\"#DAAE57\"><a href=\"$PHP_SELF?DEL=$key\"><img src=\"images\del.gif\" border=\"0\" alt=\"Verwijder ".$rij["naam"]."\"></a></td>";
      echo
"</tr>";
      
$totaal = $totaal + ($rij["prijs"] * $val);
    }
  }
  echo
"<tr>";
  echo
"<td width=\"47\" align=\"center\"> </td>";
  echo
"<td width=\"58\" align=\"center\"> </td>";
  echo
"<td width=\"152\" align=\"center\"><b><font size=\"2\" face=\"Verdana\" color=\"#DAAE57\">Totaal bedrag:</font></b></td>";
  echo
"<td width=\"73\" align=\"center\"><font size=\"2\" face=\"Verdana\" color=\"#DAAE57\">".number_format($totaal, 2, ',', ' ')."</font></td>";
  echo
"<td width=\"85\" align=\"center\"> </td>";
  echo
"<td width=\"91\" align=\"center\"> </td>";
  echo
"<td width=\"20\" align=\"center\"> </td>";
  echo
"</tr>";
  echo
"</table>";
  } else {

    echo
"<font color=\"#FFFFFF\">De winkelwagen is momenteel leeg...";

}

if (
$_GET["artikelid"]) {

    
$sql = "SELECT * FROM artikel WHERE artikel_id=".$_GET["artikelid"];
    
$result = mysql_query($sql);
    if (
mysql_num_rows($result) &gt; 0) {
    
$naam = mysql_result($result, 0, "Naam");
    
$prijs = number_format(mysql_result($result, 0, "Prijs"), 2, ',', ' ');
    echo
"<font color=\"#DAAE57\">Artikel toevoegen aan winkelwagen</font>";
    echo
"<form method=\"post\" action=\"$PHP_SELF\">";
    echo
"<input type=\"hidden\" name=\"artikelid\" value=\"$artikelid\">";
    echo
"<input type=\"text\" name=\"aantal\" value=\"1\" size=\"2\" maxlength=2>";
    echo
"<font color=\"#FFFFFF\"> x Artikel: $naam (prijs: $prijs euro)</font>";
    echo
"<input type=\"submit\" name=\"ADD\" value=\"Toevoegen\">";
    echo
"</form>";
    }
}
?>


teksttoevoegen.php
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
<?php
php
session_start
();
include
"config.inc.php";
echo
"<body bgcolor=\"#000000\">";
echo
"<body link=\"#FFFFFF\" vlink=\"#FFFFFF\" alink=\"#FFFFFF\">";
$sitepad = "images/";

if(
$_SESSION['winkelwagen'] )
{
  foreach(
$_SESSION['winkelwagen'] as $key=&gt;$val )
  {
    
$sql = "SELECT * FROM artikel WHERE artikel_id=$key";
    
$resultaat = mysql_query($sql);
    while (
$rij = mysql_fetch_array($resultaat))
    for (
$nr=1; $nr&lt;=$val; $nr++)
    {
      
$sql = "SELECT * FROM afbeelding WHERE artikel_id=".$rij["artikel_id"];
      
$afbeeldingen = mysql_query($sql);
      if (
mysql_num_rows($afbeeldingen) &gt; 0)
      {
        while (
$afb_rij = mysql_fetch_array($afbeeldingen))
        {
          
$bestandsnaam = $sitepad.$afb_rij["afbeelding_id"].$afb_rij["bestandstype"];
          echo
"$key";
          echo
"".$tekst['__artikel_id__']."";
          echo
"<table border=0>";
          echo
"<tr>";
          echo
"<td><font color=\"#DAAE57\">Artikel:</td>";
          echo
"<td><img src=\"$bestandsnaam\" width=\"125\" height=\"30\"></td>";
          echo
"<td align=\"left\" valign=\"top\"></td>";
          echo
"</tr><tr>";
          echo
"<td>";
          echo
"<font color=\"#DAAE57\">Prijs per stuk:";
          echo
"</td>";
          echo
"<td><font color=\"#DAAE57\">".number_format($rij["prijs"], 2, ',', '')."</td>";
          echo
"<td></td>";
          echo
"</tr><tr>";
          if (isset(
$verzonden))
          {
            
$_SESSION['tekst'][$artikel_id] = $tekst;
          }
          echo
"<form method=\"post\" action=\"$PHP_SELF\">\n";
          echo
"<td><font color=\"#DAAE57\">Tekst:</td>";
          echo
"<td><input type=\"text\" name=\"tekst\" size=\"17\" maxlength=\"9\">";
          echo
"<td><font size=\"1\" face=\"Arial\"><font color=\"#FFFFFF\">Max. 9 posities in hoofdletters</font></td>";
          echo
"</tr><tr>";
          echo
"<td><font color=\"#DAAE57\">Kleur opdruk:</td>";
          echo
"<td></td>";
          echo
"<input type=\"submit\" name=\"verzonden\" value=\"Toevoegen\">";
          echo
"</form>";
          echo
"</tr>";
          echo
"</table>";
        }
      }
    }
  }
}
?>
la·rie·koek (de ~ (m.)) 1 onzin
pi_31699170
1
2
$tip = 'als je enkele quotes gebruikt 
    dan hoef je "dubbele quotes" niet te escapen';
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  woensdag 26 oktober 2005 @ 13:33:48 #59
61660 Lariekoek
Zo, jij bent echt grappig.
pi_31699288
quote:
Op woensdag 26 oktober 2005 13:29 schreef SuperRembo het volgende:

[ code verwijderd ]
Ok thnx
la·rie·koek (de ~ (m.)) 1 onzin
pi_31699613
teksttoevoegen.php
r41 $_SESSION['tekst'][$artikel_id] = $tekst;
Waar staan $artikel_id & $tekst ?

Ik ga 'm verder niet debuggen, is niet te doen met zo'n code (nofi). Ik raad je aan om toch maar eens een goed boek of een aantal goede tutorials te lezen.
pi_31702987
Ik heb mijn code nu min of meer werkend.. Alleen mn script moet een cookie controlleren (of je ingelogd bent) en dan een slowchat weergeven. Wat er nu gebeurd is dat alleen de regel Welkom gast! log in voor meer opties. .

Terwijl ik, als ik naar het document zelf ga, wel gewoon alles zie (dus cookie klopt nogsteeds).

Iemand een idee? Werkt mn controlle niet na een include?
pi_31703893
ik heb het min of meer opgelost nog wel wat kleine kinderziektes..
pi_31706174
Ik heb een probleem en ik begin ondertussen redelijk wanhopig te worden. Ik kan namelijk geen enkele oplossing bedenken/vinden. Ik heb een PHP bestand dat een afbeelding upload en deze vervolgens aan mij mailt. Maar bij dat laatste gaat het soms mis. Behoorlijk mis.

De afbeelding wordt wél geupload, maar de mail met de afbeelding wordt niet naar mij verzonden. Dat terwijl degene die de afbeelding upload wél een bedankmailtje krijgt.

Ik ben erachter gekomen dat afbeeldingen met extra data niet worden gemailt. Een gewoon JPEG-tje gaat prima. Maar een foto van een digitale camera, met daarin allerlei gegevens als merk, datum, tijd, thumbnail, enz... , loopt compleet in de soep.

Hieronder de code voor het mailtje naar mij toe:

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
<?php
$header
="";
$message="";
$boundary='--' . md5( time() );
$priority='3 (Normal)';
$charset="iso-8859-1";
$ctencoding="8bit";
$subject="Een nieuwe afbeelding";
$body  = "Een nieuwe afbeelding.";
$to="mij@mail.nl";
$from=$naam."<".$email.">";
$sep= chr(13) . chr(10);
$ctype=$_FILES['imagefile']['type'];
$disposition="inline";
$filename = basename($path);
$message .="--$boundary\n";
$message .= "Content-Type: text/plain; charset=$charset\n";
$message .= "Content-Transfer-Encoding: $ctencoding\nContent-Disposition: $disposition\n\n" . $body ."\n";
$message .="--$boundary\nContent-Type: $ctype; name=\"$filename\"\n";
$message .="Content-Transfer-Encoding: base64\nContent-Disposition: attachment; filename=\"$filename\"\n";
$linesz= filesize($path)+1;
$fp= fopen( $path, 'r' );
$content = chunk_split(base64_encode(fread( $fp, $linesz)));
fclose($fp);
$message .= $sep.$content.$sep.$boundary."--";

$header.="From: $from\nX-Priority: $priority\n";
$header.="Mime-Version: 1.0\nContent-Type: multipart/mixed;\n boundary=\"$boundary\"\n";
$header.="Content-Transfer-Encoding: $ctencoding\nX-Mailer: Php/libMailv1.3\n";

mail($to,$subject,$message."\n",$header);
?>


Als iemand hierin een fout ziet, of een goed werkend script weet, dan hoor ik het graag.
pi_31706206
Owja: de $naam, $email en $path worden bovenin ergens gemaakt. Dat gaat gewoon goed.
pi_31708367
quote:
Die bovenste link is niet voor bijlagen, voor zover ik het begrijp.

Die andere 2 links zijn classes die je moet installeren, maar daar kan ik (volgens mij) niet bij. Ik heb gewoon een server bij een hosting provider en niet een eigen server.

Of begrijp ik het gewoon verkeerd?
pi_31708401
Overigens heb ik de code overgenomen van http://nl3.php.net/manual/en/ref.mail.php#54863 .
pi_31716373
Gewoon phpmailer gebruiken. Een class is niets meer dan een phpscript met een class definition erin. Als je zelf php files op je server kan zetten, kan je ook de derde class erop zetten. PEAR kan je ook zelf erop zetten, maar kost wat meer moeite als je beginnende PHPer bent. (Niet veel moeite though).
pi_31717391
Ik ben niet zo goed met joins etc, dus dat wil ik leren maar wat doe ik fout bij deze join?

"SELECT p.username,p.id,p.Model FROM profielen p INNER JOIN profielen_images i ON i.user_id = p.id WHERE COUNT(i.id) > 0"

Ik heb dus 2 tabellen, profielen en profielen_images en ik wil de profielen selecteren welke 1 of meerdere fotos hebben?
pi_31717425
quote:
Op donderdag 27 oktober 2005 05:47 schreef Roonaan het volgende:
Gewoon phpmailer gebruiken. Een class is niets meer dan een phpscript met een class definition erin. Als je zelf php files op je server kan zetten, kan je ook de derde class erop zetten. PEAR kan je ook zelf erop zetten, maar kost wat meer moeite als je beginnende PHPer bent. (Niet veel moeite though).
Ok... ik heb PHPmailer geinstalleerd en hij werkt. Maar mijn probleem is nog steeds niet over. JPG bestanden met daarin EXIF informatie (eigenaar, merk, datum, enz...) kan ik niet als bijlage meegeven. De mail wordt dan gewoon niet verzonden. Dat terwijl PHPmailer gewoon een "Message has been sent" geeft.

Kan het soms aan de mailserver liggen?
pi_31717578
quote:
Op donderdag 27 oktober 2005 09:13 schreef Darkomen het volgende:
Ik ben niet zo goed met joins etc, dus dat wil ik leren maar wat doe ik fout bij deze join?

"SELECT p.username,p.id,p.Model FROM profielen p INNER JOIN profielen_images i ON i.user_id = p.id WHERE COUNT(i.id) > 0"

Ik heb dus 2 tabellen, profielen en profielen_images en ik wil de profielen selecteren welke 1 of meerdere fotos hebben?
Als je de count in je WHERE clausule zet, moet je die ook wel in je select zetten. Dat INNER JOIN is volgens mij niet nodig, en kan je gewoon vervangen door een komma.

SELECT count(*), p.id FROM profielen p, profielen_images i WHERE i.user_id = p.id AND count(p.id) > 0

Ik weet niet zeker of het werkt, maar ik denk dat je zo in de goede richting zit.
Vicariously I live while the whole world dies
pi_31717645
quote:
Op donderdag 27 oktober 2005 09:15 schreef HuHu het volgende:

[..]

Ok... ik heb PHPmailer geinstalleerd en hij werkt. Maar mijn probleem is nog steeds niet over. JPG bestanden met daarin EXIF informatie (eigenaar, merk, datum, enz...) kan ik niet als bijlage meegeven. De mail wordt dan gewoon niet verzonden. Dat terwijl PHPmailer gewoon een "Message has been sent" geeft.

Kan het soms aan de mailserver liggen?
Echo de mail eens, eens kijken wat je krijgt.

Edit: Die query klopt ook niet, ik begin er steeds minder van te begrijpen :S
pi_31717744
quote:
Op donderdag 27 oktober 2005 09:31 schreef Darkomen het volgende:

[..]

Echo de mail eens, eens kijken wat je krijgt.

Edit: Die query klopt ook niet, ik begin er steeds minder van te begrijpen :S
Het werkt wel, de headers en zo zijn allemaal correct. Er wordt alleen niets verzonden. Gebruik ik een andere JPG of een tekst-document als bijlage, dan krijg ik binnen een seconde die mail in m'n inbox.

En probeer jij de query van nyny83 eens. Een inner join is gewoon een lijstje van tabellen die je bij de FROM opneemt (gescheiden door komma's) en de voorwaarden (i.user_id = p.id) neem je op in de WHERE.
pi_31717825
Hij zegt al dat het niet werkt.. welke foutmelding krijg je? Ik kan het hier natuurlijk niet zelf testen, ik heb jouw tabellen niet etc. Misschien kunnen we wat met je foutmelding.
Vicariously I live while the whole world dies
pi_31717876
even niet goed gelezen. Misschien is dit wat. Ik neem aan dat de profielen zonder image niet voorkomen in profielen_images.

1
2
3
4
SELECT p.id
FROM profielen p
WHERE p.id IN (SELECT i.user_id
               FROM profielen_images i)


Met deze query verzamel je alle ID's uit profielen die voorkomen in profielen_images. Dacht ik.
pi_31718006
Huhu uddm die komen daar niet in voor, ik kreeg "SELECT count(*), p.id FROM profielen p, profielen_images i WHERE i.user_id = p.id AND count(p.id) > 0
Invalid use of group function"

Ik ga zo even die andere query proberen.


Verdwijnt die mail trouwens niet gewoon in een junkmail of geblokeerd door je provider? eg. probeer eens een andere email adres om na te verzenden?
pi_31718066
aha... da's waar ook ja, als je een count doet moet je altijd een group by doen. Probeer eens aan het einde GROUP BY p.id te doen.
Vicariously I live while the whole world dies
pi_31718101
Een ander mailadres maakt ook niet uit. Heb het geprobeerd met Demon, HCCnet. Gmail en de Universiteit Utrecht.

Ik ga toch echt vermoeden dat het aan mijn server ligt. Ik ga eens kijken of ik op een andere server kan testen.
pi_31718103
Nah je bovenstaande query werkt ook al dus ik ben blij, maar toch even geprobeerd
SELECT count(*), p.id FROM profielen p, profielen_images i WHERE i.user_id = p.id AND count(p.id) > 0 GROUP BY p.id
Invalid use of group function
  FOK!-Schrikkelbaas donderdag 27 oktober 2005 @ 10:01:24 #80
2057 Tokus
whale oil beef hooked
pi_31718106
quote:
Op donderdag 27 oktober 2005 09:56 schreef Darkomen het volgende:
Huhu uddm die komen daar niet in voor, ik kreeg "SELECT count(*), p.id FROM profielen p, profielen_images i WHERE i.user_id = p.id AND count(p.id) > 0
Invalid use of group function"
zoals hierboven al gezegd, voor een count moet je een Group By in je query hebben.
Maar... je "and count(p.id) > 0" zal ook niet werken.
Daarvoor moet je "having count(p.id) > 0" gebruiken.
Nothing lasts forever but the certainty of change
pi_31718158
quote:
Op woensdag 26 oktober 2005 16:49 schreef LeeHarveyOswald het volgende:
ik heb het min of meer opgelost nog wel wat kleine kinderziektes..
En 1 van die kinderziektes blijkt toch iets ernstiger...

Als ik als 'gast' naar www.pestforum.nl/chat.php ga krijg ik netjes 'welkom gast log in voor meer opties'

Als ik de regel invoeg in het forum, en dan als gast het forum bekijk, dan krijg ik enkel een blanco pagina.. (zelfs als ik bovenin de PHP code van de pagina die ik include een echo zet, dan zie ik die niet).

Echter, als ik wel ingelogd ben, dan werkt het wel goed..

iemand een idee?
pi_31718233
Kutserver

Op een andere server werkt het zonder problemen

Maar het probleem is dus (deels) opgelost. Het ligt in ieder geval niet aan mij.
pi_31718361
quote:
Op donderdag 27 oktober 2005 10:01 schreef Darkomen het volgende:
Nah je bovenstaande query werkt ook al dus ik ben blij, maar toch even geprobeerd
SELECT count(*), p.id FROM profielen p, profielen_images i WHERE i.user_id = p.id AND count(p.id) > 0 GROUP BY p.id
Invalid use of group function
nou snap ik het ff niet meer, met mn eerste query kreeg je toch ook een error? Werkt het nou allemaal wel of niet?
Vicariously I live while the whole world dies
pi_31718439
het werkt met de query:

SELECT p.id
FROM profielen p
WHERE p.id IN (SELECT i.user_id
FROM profielen_images i)
  FOK!-Schrikkelbaas donderdag 27 oktober 2005 @ 10:30:59 #85
2057 Tokus
whale oil beef hooked
pi_31718652
quote:
Op donderdag 27 oktober 2005 10:19 schreef Darkomen het volgende:
het werkt met de query:

SELECT p.id
FROM profielen p
WHERE p.id IN (SELECT i.user_id
FROM profielen_images i)
dat is onnodig moeilijk doen.

select p.id
from profielen p, profielen_images i
where p.id = i.user_id

zou precies hetzelfde resultaat moeten geven, maar is wel beter.
Nothing lasts forever but the certainty of change
pi_31718911
quote:
Op donderdag 27 oktober 2005 10:30 schreef Tokus het volgende:

[..]

dat is onnodig moeilijk doen.

select p.id
from profielen p, profielen_images i
where p.id = i.user_id

zou precies hetzelfde resultaat moeten geven, maar is wel beter.
Deze levert mij meerdere (157) resultaten op , dus alle images die in profiel_images staan.
De eerste query geeft me de disctincte userid op.
  FOK!-Schrikkelbaas donderdag 27 oktober 2005 @ 10:50:15 #87
2057 Tokus
whale oil beef hooked
pi_31719024
quote:
Op donderdag 27 oktober 2005 10:45 schreef Darkomen het volgende:

[..]

Deze levert mij meerdere (157) resultaten op , dus alle images die in profiel_images staan.
De eerste query geeft me de disctincte userid op.
Ah a, meerdere images. Dan zet je er een distinct tussen.
select distinct p.id......

maare, kan je tabel profielen_images user_id's bevatten die niet voorkomen in je tabel profielen? zo nee, dan kun je toch gewoon alleen selecteren uit je tabel profielen_images?
Nothing lasts forever but the certainty of change
pi_31719156
Niet alle info die ik nodig heb staat in de images tabel, vandaar dat ik de profielen tabel nodig heb.
pi_31719763
Is het mogelijk om te checken of een pagina ge-include is of niet?

Ik heb namelijk een probleem dat een php pagina af en toe ge-include wordt door een andere pagina, maar meestal gewoon direct wordt aangeroepen.

Deze pagina maakt gebruik van sessies, op het moment dat deze pagina ge-include wordt door een andere pagina krijg ik dus een session start error.

Nu wil ik dus eigenlijk in deze pagina een check maken of hij direct is aangeroepen of dat de pagina ge-include is. Aan de hand van het resultaat van deze check wil ik dan bepalen of de sessie gestart moet worden.

Ik hoop dat ik zo duidelijk genoeg ben geweest, zoja... is zoiets mogelijk?
Ja lekker!
pi_31720180
quote:
Op donderdag 27 oktober 2005 11:19 schreef Pronk het volgende:
Is het mogelijk om te checken of een pagina ge-include is of niet?

Ik heb namelijk een probleem dat een php pagina af en toe ge-include wordt door een andere pagina, maar meestal gewoon direct wordt aangeroepen.

Deze pagina maakt gebruik van sessies, op het moment dat deze pagina ge-include wordt door een andere pagina krijg ik dus een session start error.

Nu wil ik dus eigenlijk in deze pagina een check maken of hij direct is aangeroepen of dat de pagina ge-include is. Aan de hand van het resultaat van deze check wil ik dan bepalen of de sessie gestart moet worden.

Ik hoop dat ik zo duidelijk genoeg ben geweest, zoja... is zoiets mogelijk?
hey hey hey trekken we geen nummertjes meer tegenwoordig
pi_31721265
Er worden hier nooit nummertjes getrokken, jij hebt het probleem dat je een forum van een andere gebruikt en daar een hack van nog iemand anders gebruikt en ja niet iedereen kan je daar wat over vertellen.

In je pagina die de andere pagina include define('geinclude', true);
Op de geinclude pagina:
if (!defined('geinclude') )
{
/doe je sessie
}
pi_31721299
quote:
Op donderdag 27 oktober 2005 12:16 schreef Darkomen het volgende:
Er worden hier nooit nummertjes getrokken, jij hebt het probleem dat je een forum van een andere gebruikt en daar een hack van nog iemand anders gebruikt en ja niet iedereen kan je daar wat over vertellen.

In je pagina die de andere pagina include define('geinclude', true);
Op de geinclude pagina:
if ( defined('geinclude') )
{
/doe je sessie
}
Dat werkt inderdaad perfect! THX
Ja lekker!
pi_31721362
Oww ja, stond een foutje in, !defined moet het zijn
pi_31727472
quote:
Op donderdag 27 oktober 2005 10:07 schreef HuHu het volgende:
Kutserver

Op een andere server werkt het zonder problemen

Maar het probleem is dus (deels) opgelost. Het ligt in ieder geval niet aan mij.
http://nl3.php.net/exif

misschien dat hier verschilen zijn met beide servers?
quote:
Requirements

Your PHP must be compiled in with --enable-exif. PHP does not require any additional library for the exif module. Windows users must also have the mbstring extension enabled.
  donderdag 27 oktober 2005 @ 17:55:04 #96
61660 Lariekoek
Zo, jij bent echt grappig.
pi_31730561
Ik heb de boel maar even zwaar versimpeld.
Tot zover ben ik gekomen:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
php
$val
= 5;
for (
$nr=1; $nr&lt;=$val; $nr++)
{
  echo
"<form method='post' action='$PHP_SELF'>";
  echo
"<input type='text' name='arr[]' size='12' maxlength='9'><br>";
}
echo
"<input type='submit' value='Toevoegen'>";
echo
"</form>";
$test = $_POST['arr'];
echo
"$test";
?>


Na het drukken op toevoegen krijg ik nu steeds de text: Array
Ik doe ongetwijfeld iets fout, maar wat
la·rie·koek (de ~ (m.)) 1 onzin
pi_31730836
je maakt toch van arr een array dan is het logisch dat er array staat.

Doe maar eens print_r($_POST['arr']);
  donderdag 27 oktober 2005 @ 18:46:34 #98
61660 Lariekoek
Zo, jij bent echt grappig.
pi_31731809
quote:
Op donderdag 27 oktober 2005 18:07 schreef Darkomen het volgende:
je maakt toch van arr een array dan is het logisch dat er array staat.

Doe maar eens print_r($_POST['arr']);
Ja dat ziet er goed uit.
Die array is nu met een for lus weer uit te lezen neem ik aan?
la·rie·koek (de ~ (m.)) 1 onzin
pi_31732159
quote:
Op donderdag 27 oktober 2005 18:46 schreef Lariekoek het volgende:

[..]

Ja dat ziet er goed uit.
Die array is nu met een for lus weer uit te lezen neem ik aan?
Ja. Overigens staan dat soort dingen zeer duidelijk in de documentatie die jij uiteraard hebt doorgelezen.
  donderdag 27 oktober 2005 @ 19:04:15 #100
61660 Lariekoek
Zo, jij bent echt grappig.
pi_31732289
quote:
Op donderdag 27 oktober 2005 19:00 schreef sylvesterrr het volgende:

[..]

Ja. Overigens staan dat soort dingen zeer duidelijk in de documentatie die jij uiteraard hebt doorgelezen.
Ja!
Nog bedankt daarvoor..
la·rie·koek (de ~ (m.)) 1 onzin
  FOK!-Schrikkelbaas donderdag 27 oktober 2005 @ 20:16:26 #101
1972 Swetsenegger
Egocentrische Narcist
pi_31734464
Bestaat er een php functie welke een waarde snel procentueel kan vergelijken.
Met andere woorden:

if valueA-valueB < 5% van valueA

want (valueA-valueB)*(valueA/100) vind ik wat ranzig
pi_31734721
Lijk me niet dat die bestaat. Hoe had je dat in gedachten
En wat is er ranzig aan die vergelijking?

Gelukkig kan je zelf functies definieren in php
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas donderdag 27 oktober 2005 @ 20:34:00 #103
1972 Swetsenegger
Egocentrische Narcist
pi_31735010
Als een soort modulo ofzo
Ik zat heel ranzig te denken, maar toen ik hem hier boven uittikte vond ik het eigenlijk ook wel meevallen
pi_31736204
quote:
Op donderdag 27 oktober 2005 20:16 schreef Swetsenegger het volgende:
Bestaat er een php functie welke een waarde snel procentueel kan vergelijken.
Met andere woorden:

if valueA-valueB < 5% van valueA

want (valueA-valueB)*(valueA/100) vind ik wat ranzig
5% van valueA is niks anders dan
valueA * 0,05
  FOK!-Schrikkelbaas donderdag 27 oktober 2005 @ 21:20:14 #105
1972 Swetsenegger
Egocentrische Narcist
pi_31736615
quote:
Op donderdag 27 oktober 2005 21:07 schreef the_disheaver het volgende:

[..]

5% van valueA is niks anders dan
valueA * 0,05
Joh!

Dat is niet wat ik vraag
pi_31736812
Hee Superrembo, kom je weer meedoen met PHP Golf?

http://www.phpfreakz.nl/forum.php?forum=5&iid=721061
pi_31736824
quote:
Op donderdag 27 oktober 2005 20:16 schreef Swetsenegger het volgende:
Bestaat er een php functie welke een waarde snel procentueel kan vergelijken.
Met andere woorden:

if valueA-valueB < 5% van valueA

want (valueA-valueB)*(valueA/100) vind ik wat ranzig
if(valueA-valueB < valuaA / 20)

Ook ranzig?
  FOK!-Schrikkelbaas donderdag 27 oktober 2005 @ 21:37:42 #108
1972 Swetsenegger
Egocentrische Narcist
pi_31737206
quote:
Op donderdag 27 oktober 2005 20:34 schreef Swetsenegger het volgende:
Ik zat heel ranzig te denken, maar toen ik hem hier boven uittikte vond ik het eigenlijk ook wel meevallen
dusch...
pi_31738397
quote:
Op donderdag 27 oktober 2005 21:26 schreef Wifibro het volgende:
Hee Superrembo, kom je weer meedoen met PHP Golf?

http://www.phpfreakz.nl/forum.php?forum=5&iid=721061
Bedankt voor de tip.

En de lat ligt al op 52 tekens
(Limbo dansen, niet hoogspringen )
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas donderdag 27 oktober 2005 @ 22:20:11 #110
1972 Swetsenegger
Egocentrische Narcist
pi_31738583
Ik zal 'm maar even crossposten
quote:
Beste PHP-ers,


--[ PHP Golf
Een nieuwe editie van PHP Golf!

--[ Wat is PHP Golf?
De bedoeling is een PHP script te maken met zo min mogelijk karakters.
Dus zo min mogelijk letters, nummers, spaties, newlines en dergelijke.
Met het script moet je een doelstelling bereiken.
We gaan ervan uit dat je de recenste PHP 4.x, op het moment 4.4,
versie hebt en standaard php.ini configuratie. Tenzij anders vermeld.
(Standaard: register_globals = off)

Het script moet op UNIX-gebaseerde en Windows systemen werken.

--[ Voor wie is PHP Golf?
De competitie is voor iedereen toegankelijk.

--[ Inzendingen
Je kunt je oplossing sturen naar:

phpgolf [at] gmail.com
(Disclaimer: je e-mail zal niet worden gebruikt voor
spam of worden doorgegeven aan derden)

--[ Doelstelling
Het script moet de volgende output genereren:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZA
CDEFGHIJKLMNOPQRSTUVWXYZAB
DEFGHIJKLMNOPQRSTUVWXYZABC
EFGHIJKLMNOPQRSTUVWXYZABCD
FGHIJKLMNOPQRSTUVWXYZABCDE
GHIJKLMNOPQRSTUVWXYZABCDEF
HIJKLMNOPQRSTUVWXYZABCDEFG
IJKLMNOPQRSTUVWXYZABCDEFGH
JKLMNOPQRSTUVWXYZABCDEFGHI
KLMNOPQRSTUVWXYZABCDEFGHIJ
LMNOPQRSTUVWXYZABCDEFGHIJK
MNOPQRSTUVWXYZABCDEFGHIJKL
NOPQRSTUVWXYZABCDEFGHIJKLM
OPQRSTUVWXYZABCDEFGHIJKLMN
PQRSTUVWXYZABCDEFGHIJKLMNO
QRSTUVWXYZABCDEFGHIJKLMNOP
RSTUVWXYZABCDEFGHIJKLMNOPQ
STUVWXYZABCDEFGHIJKLMNOPQR
TUVWXYZABCDEFGHIJKLMNOPQRS
UVWXYZABCDEFGHIJKLMNOPQRST
VWXYZABCDEFGHIJKLMNOPQRSTU
WXYZABCDEFGHIJKLMNOPQRSTUV
XYZABCDEFGHIJKLMNOPQRSTUVW
YZABCDEFGHIJKLMNOPQRSTUVWX
ZABCDEFGHIJKLMNOPQRSTUVWXY

Nu mag jij het script programmeren en liefst zo kort mogelijk.


--[ Deadline:

De deadline is over 8 dagen.
Vrijdag 19:00 4 november 2005

-----

Post in dit topic vragen/suggesties.
GEEN OPLOSSINGEN!

Mocht je een oplossing hebben, dan mag je gerust je karakter aantal posten.
Dit om andere te stimuleren

Diegene die het minste karakters heeft gebruikt, wint!

Veel succes,

Tri Pham
  donderdag 27 oktober 2005 @ 23:12:30 #111
76312 sh4dow
¯¯¯¯¯¯¯¯¯
pi_31740561
Even een vraag, ik heb een tijdje een gastenboek script gebruikt met een tekstbestand. Nu heb ik zelf een nieuw gastenboek gemaakt met een mySQL database.
Graag zou ik de oude berichten uit het tekstbestand willen toevoegen aan de database, om de oude berichten niet verloren te laten gaan.

Het tekstbestand ziet er zo uit:
1
2
<?php $Bericht[] = array('Patrick','iemand@hotmail.com',' ','Herveld','14-09-2004 21:46:28','Berichtje'); ?>
<?php $Bericht[] = array('Thomas','iemand@hotmail.com',' ','Hoogkerk','14-09-2004 23:16:05','Berichtje'); ?>

enz, zo staan er 311 berichten in dit tekstbestand, in Arrays.
Hoe kan ik deze array nu splitten, en dan ieder bericht in een loop toevoegen aan de database?
  FOK!-Schrikkelbaas donderdag 27 oktober 2005 @ 23:14:41 #112
1972 Swetsenegger
Egocentrische Narcist
pi_31740647
quote:
Op donderdag 27 oktober 2005 23:12 schreef sh4dow het volgende:
Even een vraag, ik heb een tijdje een gastenboek script gebruikt met een tekstbestand. Nu heb ik zelf een nieuw gastenboek gemaakt met een mySQL database.
Graag zou ik de oude berichten uit het tekstbestand willen toevoegen aan de database, om de oude berichten niet verloren te laten gaan.

Het tekstbestand ziet er zo uit:
[ code verwijderd ]

enz, zo staan er 311 berichten in dit tekstbestand, in Arrays.
Hoe kan ik deze array nu splitten, en dan ieder bericht in een loop toevoegen aan de database?
staan er array's in het tekstbestand of platte tekst welke je zelf array maakt?

explode kan je arrays mee splitten: http://nl3.php.net/manual/nl/function.explode.php
  donderdag 27 oktober 2005 @ 23:19:11 #113
76312 sh4dow
¯¯¯¯¯¯¯¯¯
pi_31740814
Nee er staan echt arrays in het tekstbestand, zoals hierboven in het voorbeeld dus. Dat zijn de eerste 2 regels uit het tekstbestand.

Als het plaintext zou zijn, was me dat wel gelukt. Ik ben al met foreach bezig, maar ik kom er niet uit :S
pi_31742355
Include dat bestand, en je hebt een pracht van een array ($Bericht).
1
2
3
4
5
6
7
<?php
include_once('mijntekstbestandmetberichten.php');
for($i=0;$i<count($Berichten);$i++)
{
  // huidig bericht = $Bericht[$i] (array!)
}
?>
pi_31743371
Over dat golf ding, zit nu op 95.
Ik klooi verder.
pi_31754501
Ik doe niet meer mee met dat golf ding; snap er toch de balle van. Ben er gisteren even mee bezig geweest maar zo vet is mijn kennis nou ook weer niet zoals $c=$a{$b}
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 28 oktober 2005 @ 15:20:07 #117
125047 Lamme_Sterfkanarie
tweet tweet en dan ineens niet
pi_31755718
array met alle letters maken

tellertje tot 26 laten tellen
1 keer printen, <br> d'r achteraan.
met array_shift de A d'r afhalen zodat alles opschuift en die dan met array_push de A achteraan de array neerzetten. als de teller bij 26 is heeft ie alles gehad..

of denk ik weer te simpel?
Ik heb het godverdomme gehad met die onkunde van je!
pi_31756067
Mwah, als je dat in < 80 tekens kan ben je wel briljant :-) kzit nu op 65.
  vrijdag 28 oktober 2005 @ 15:35:03 #119
125047 Lamme_Sterfkanarie
tweet tweet en dan ineens niet
pi_31756211
Ben d'r nog niet mee bezig geweest. Dit was ff een brainfart over hoe ik het zou aanpakken als het geen wijdstrijdje met zo min mogelijk karakters was
als je van die array of zou kunnen komen scheelde het al een bende karakters. Als ik de ascii table d'r bij pak zie ik wel dat alle letters een opeenvolgende waarde hebben. Is daar niets mee te doen? Beginnen bij de A en steeds 1 d'r bij optellen met een loop en dat in een andere loop 26 keer doen terwijl je steeds 1 waarde hoger begint

geen idee of je browser die ascii waarde als een letter weergeeft hoor. Heb me daar nooit zo mee bezig gehouden.
Ik heb het godverdomme gehad met die onkunde van je!
pi_31757131
Doe iets met chr(65) tot en met chr(90). Ik zit nu op 67 tekens, maar het met nog minder tekens.
  vrijdag 28 oktober 2005 @ 16:06:02 #121
125047 Lamme_Sterfkanarie
tweet tweet en dan ineens niet
pi_31757208
kzal me d'r straks ook wel ff mee bezighouden als ik tijd heb. Kijken wat ik er van kan bakken
Ik heb het godverdomme gehad met die onkunde van je!
  FOK!-Schrikkelbaas vrijdag 28 oktober 2005 @ 16:28:44 #122
1972 Swetsenegger
Egocentrische Narcist
pi_31757861
Zoals ik op phpfreakz al zei "Met gekut met arrays ga je niet winnen denk ik". Sylvesterrrrs opmerking leek mij ook de meest bruikbare methode, je kan natuurlijk heel simpel lussen van 65 tot 90. Alleen.... hoe laat je hem de tweede keer van 66 tot 90 PLUS 65 echoën

Overigens zegt iemand op 52 karakters te zitten.
pi_31758424
quote:
Op vrijdag 28 oktober 2005 16:28 schreef Swetsenegger het volgende:
Alleen.... hoe laat je hem de tweede keer van 66 tot 90 PLUS 65 echoën
que?
quote:
Overigens zegt iemand op 52 karakters te zitten.
Doet ie goed. Ik heb wel wat beters te doen hoor.
  vrijdag 28 oktober 2005 @ 16:48:49 #124
125047 Lamme_Sterfkanarie
tweet tweet en dan ineens niet
pi_31758444
de A moet weer achter de Z komen op de 2e regel. enz.
Ik heb het godverdomme gehad met die onkunde van je!
pi_31760089
- edit dan maar :S -

[ Bericht 94% gewijzigd door Roonaan op 29-10-2005 11:08:42 ]
pi_31760191
quote:
Op vrijdag 28 oktober 2005 17:55 schreef Roonaan het volgende:
64 tekens

[ code verwijderd ]

Hij kan efficienter als je die nummers bij 0 kan laten starten tot 702. Alleen moeten dan de modulussen anders.
Als je de { en } weghaalt zit je al op 62 tekens

Als je dan nog <br> gebruikt ipv <br/> zit je op 61.

Als laatste nog <? gebruiken in plaats van <?php en je zit al op 58. Dan kan je ook nog de spatie tussen <? $i= weghalen, dat wordt dan <?$i= en je komt op 57.

Als je dan ook nog de ; aan het einde weghaald zit je op 56.

[ Bericht 6% gewijzigd door HuHu op 28-10-2005 18:09:10 ]
pi_31760251
Maar dan nog kom je niet aan 52 ;-)
pi_31760333
- Edit dan maar -

[ Bericht 49% gewijzigd door Roonaan op 29-10-2005 11:08:53 ]
pi_31760426
quote:
Op vrijdag 28 oktober 2005 18:08 schreef Roonaan het volgende:

[ code verwijderd ]
57.

55 als je de sluittags weghaalt.
1<?while($i++<702)echo$i%27?chr(65+($i-1)%26):'<br>';


Zo zit je op 52.
pi_31760616
Jups, tot die conclusie was ik ook gekomen. Same as yapf dus.

Maar met wat bit operations, kan het dan niet korter?

-r-
pi_31760770
[Centraal]PHP - Golf wedstrijd
Daar kunnen jullie lekker verder spelen met jullie Golf, dan blijft dit topic een beetje schoon

-edit-
Oeps, ik zie dat ik dat topic onder de naam van mn vriendin heb gepost
pi_31760863
Hmm, zo is de lol er wel een beetje af nu er complete code gepost is
Op phpfreakz wordt gevraagd geen code te posten, doe 't dan ook niet hier.

Ik zit zelf op 49.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31760954
ach, vorige keer was iedereen dol op het samenwerken.
pi_31761146
Samenwerken is ok, maar er stond volgens mij geen complete code.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas vrijdag 28 oktober 2005 @ 19:22:51 #135
1972 Swetsenegger
Egocentrische Narcist
pi_31762297
Code posten is niet echt de bedoeling eigenlijk
Overigens snap ik ';m nog niet ook

en de code is 51 karakters, geen 52

-edit- je kan niet tellen swets..
  FOK!-Schrikkelbaas vrijdag 28 oktober 2005 @ 19:47:59 #136
1972 Swetsenegger
Egocentrische Narcist
pi_31762908
quote:
Op vrijdag 28 oktober 2005 18:27 schreef ikke_ook het volgende:
[Centraal]PHP - Golf wedstrijd
Daar kunnen jullie lekker verder spelen met jullie Golf, dan blijft dit topic een beetje schoon

-edit-
Oeps, ik zie dat ik dat topic onder de naam van mn vriendin heb gepost
Waarom zou het een beetje schoon moeten blijven
Kan je erg veel van leren.
pi_31764623
Hallo,

Ben op dit moment bezig met een stukje random te genereren arrays oftwel het volgende idee dat vooral Sop heeft aangedragen.

Ik heb een paar mensen in een lijst ziten en sommige mense mogen sommige mensen kiezen en sommige niet. Nou heb ik eventjes een voorbeeld uit de hand gemaakt. Nu heb ik ieder persoon voorzien van een array met daarin de mogelijke mensen die ze kunnen kiezen. Echter krijg ik steeds errors met wat ik ook probeer..

zie code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?

$arr = array(11 => array(13, 14, 15, 16, 17),
             12 => array(13, 14, 15, 16, 17),
             13 => array(11, 12, 16, 17),
             14 => array(11, 12, 17),
             15 => array(11, 12, 16, 17),
             16 => array(11, 12, 13, 14, 15, 17),
             17 => array(11, 12, 13, 14, 15, 16));
             
foreach ($arr as $id => $narr)
{
    $tmpArr = $narr;
    
    if (isSet($remove) && is_array($remove))
    {
        foreach ($remove as $x => $verwijderkey)
        {
            foreach ($tmpArr as $xx => $value)
            {
                if ($tmpArr[$xx] == $verwijderkey)
                {
                    unset ($tmpArr[$xx]);
                }
            }
        }
    }
    
    if (is_array($tmpArr) && count($tmpArr) > 1)
    {
        $code = $tmpArr[rand(0, count($tmpArr)-1)];
    }
    else
    {
        foreach ($tmpArr as $key => $value)
        {
            $code = $value;
        }
    }
    
    $remove[] = $code;
    
    echo 'gebruiker ' . $id . ' heeft gebruiker ' . $code . ' getrokken <br>';
}

var_dump($remove);

?>


denk dat ik weer te diep doorspace ennuh zou volgens mij wel 1000x beter kunnen. Iemand een idee? als je het niet snapt probeer ik het nog wel wat beter uit te leggen
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31765858
Voor het begrip is het nuttiger als je gewoon namen gebruikt in plaats van nummers om gebruikers te identificeren.

Daarnaast een keuze maken of je je variabelen in het engels of het nederlands programmeerd, tevens is er de vraag wat $narr doet.

Een aanpak die je zou kunnen kiezen is om de array to sorteren op het aantal mensen dat iemand in zijn lijstje heeft. Zoals de opzet nu is (of ik mis iets) is het zo dat er iemand over zou blijven die niemand kan kiezen?

pi_31777689
Dus je ziet het liever met de namen? maar dan blijft het principe toch gelijk?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31802558
Ik heb het nu even zo gedaan.

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

$arr = array("eric" => array("tess", "joop", "kees", "loes", "joke"),
             "marc" => array("tess", "joop", "kees", "loes", "joke"),
             "tess" => array("eric", "marc", "loes", "joke"),
             "joop" => array("eric", "marc", "joke"),
             "kees" => array("eric", "marc", "loes", "joke"),
             "loes" => array("eric", "marc", "tess", "joop", "kees", "joke"),
             "joke" => array("eric", "marc", "tess", "joop", "kees", "loes"));

foreach ($arr as $id => $tmpArr)
{
    if (isSet($remove) && is_array($remove))
    {
        foreach ($remove as $x => $verwijderkey)
        {
            foreach ($tmpArr as $xx => $value)
            {
                if ($tmpArr[$xx] == $verwijderkey)
                {
                    unset ($tmpArr[$xx]);
                }
            }
        }
    }

    if (is_array($tmpArr) && count($tmpArr) > 1)
    {
        $code = $tmpArr[rand(0, count($tmpArr)-1)];
    }
    else
    {
        foreach ($tmpArr as $key => $value)
        {
            $code = $value;
        }
    }

    $remove[] = $code;

    echo 'gebruiker ' . $id . ' heeft gebruiker ' . $code . ' getrokken <br>';
}

var_dump($remove);

?>



en kreeg na veel F5en het volgende te zien

1
2
3
4
5
6
7
8
gebruiker eric heeft gebruiker joop getrokken 
gebruiker marc heeft gebruiker tess getrokken 
gebruiker tess heeft gebruiker joke getrokken 
gebruiker joop heeft gebruiker eric getrokken 
gebruiker kees heeft gebruiker marc getrokken 
gebruiker loes heeft gebruiker kees getrokken 
gebruiker joke heeft gebruiker loes getrokken 
array(7) { [0]=> string(4) "joop" [1]=> string(4) "tess" [2]=> string(4) "joke" [3]=> string(4) "eric" [4]=> string(4) "marc" [5]=> string(4) "kees" [6]=> string(4) "loes" } 


want veelal zag ik dit soort uitkomsten..

1
2
3
4
5
6
7
8
9
10
11
12
gebruiker eric heeft gebruiker joke getrokken 
gebruiker marc heeft gebruiker joop getrokken 
gebruiker tess heeft gebruiker eric getrokken 
gebruiker joop heeft gebruiker marc getrokken 
gebruiker kees heeft gebruiker loes getrokken 

Notice: Undefined offset: 1 in d:\www\usersort.php on line 29
gebruiker loes heeft gebruiker getrokken 

Notice: Undefined offset: 0 in d:\www\usersort.php on line 29
gebruiker joke heeft gebruiker getrokken 
array(7) { [0]=> string(4) "joke" [1]=> string(4) "joop" [2]=> string(4) "eric" [3]=> string(4) "marc" [4]=> string(4) "loes" [5]=> NULL [6]=> NULL } 


en nu zie je dus dat op regel 29 een error komt, oftewel de volgende regel.

1        $code = $tmpArr[rand(0, count($tmpArr)-1)];


maar ik check of de array reeds groter is dan 1 item, dan zou je toch verwachten dat dat goed gaat

en als ik de regel (28) dus boven de code voorzie van > 2 dan krijg ik steeds mindervaak een error maar alsnog soms een error in regel 29

Help me!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31803171
en als je $code = $tmpVar[array_rand($tmpVar)] doet?

also, $tmpVar is meer dan een tijdelijke var natuurlijk. Deze heeft wel degelijk een bepaalde betekenis en significante inhoudt ondanks het tijdelijke karakter. Beter om in het vervolg dan ook een variabele naam te kiezen die wat zegt over de intentie van de variabele dan haar levensduur.

-r-
pi_31803362
quote:
Op zondag 30 oktober 2005 10:03 schreef Chandler het volgende:

maar ik check of de array reeds groter is dan 1 item, dan zou je toch verwachten dat dat goed gaat

en als ik de regel (28) dus boven de code voorzie van > 2 dan krijg ik steeds mindervaak een error maar alsnog soms een error in regel 29

Help me!
Met je rand() ding ga je op zoek naar een key tussen 0 en het aantal keys. Da's leuk, maar als je als keys de getallen 1,3,5,7 overhoudt dan heb je 4 keys en een kans van 50% dat je een niet-bestaande key tussen 0 en 3 pakt.
pi_31804196
idd, heb reeds array_rand toegevoegd en dat is deels een oplossing want om de zoveel keer krijg ik alsnog een error

ipv
1
2
3
4
5
6
7
8
9
10
11
    if (is_array($tmpArr) && count($tmpArr) > 1)
    {
        $code = $tmpArr[rand(0, count($tmpArr)-1)];
    }
    else
    {
        foreach ($tmpArr as $key => $value)
        {
            $code = $value;
        }
    }


de oplossing van roonaan en een andere gebruiker

1$code = $tmpVar[array_rand($tmpVar)];


maar dan nog krijg ik wel eens een error op lijn 27 oftewel bovenstaande code maar dat zal komen omdat ik dan een lege array heb...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31804488
1
2
3
4
5
6
7
8
9
10
11
    if (is_array($tmpArr) && count($tmpArr) > 1)
    {
        $code = $tmpArr[rand(0, count($tmpArr)-1)];
    }
    else
    {
        foreach ($tmpArr as $key => $value)
        {
            $code = $value;
        }
    }


Dat gaat idd mis bij een lege array. Oplossing is simpel, zorgen dat je niets doet als de array leeg is.

1
2
3
4
5
6
7
8
9
    if (count($tmpArr) > 0)
    {
        $code = $tmpArr[array_rand($tmpArr)];
    }
    else
    {
        echo 'Geen keuze beschikbaar voor '.$id.'<br>';
        break;
    }
pi_31805513
True, ik denk dat ik maar ff een routine ga maken dat wanneer alles goed is de gebruiker door gaat en anders overnieuw moet kiezen (automatisch natuurlijk )
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31805554
Maar goed, ik zit nu met een andere test... weer zelf bedacht...

Ga nu het idee omdraaien, wil nu inplaats van de wel mogelijkheden in een array te zetten de niet mogelijkheden in een array zetten

Dus ga weer hard aan het coden want ben niet zo ziek meer dus heb weer wat hersens beschikbaar...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31807210
Hier is de volgende.

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

$arr = array("eric" => array("eric", "marc"),
             "marc" => array("marc", "eric"),
             "tess" => array("tess", "joop", "kees"),
             "joop" => array("joop", "tess", "kees", "loes"),
             "kees" => array("kees", "tess", "joop"),
             "loes" => array("loes"),
             "joke" => array("joke"));

// build a second list.
foreach ($arr as $name => $null)
{
    $nArr[] = $name;
}

foreach ($arr as $id => $userRemove)
{
    $userChoose = $nArr;
    
    // verwijder mensen uit lijst :)
    foreach ($userRemove as $xid => $name)
    {
        foreach ($userChoose as $userid => $username)
        {
            if (isSet($userRemove[$userid]) && $userRemove[$userid] == $name)
            {
                unset($userChoose[$userid]);
            }
        }
    }

    // verwijder reeds geselecteerde mensen uit lijst :)
    if (isSet($userSelected) && is_array($userSelected))
    {
        foreach ($userSelected as $xxid => $name)
        {
            foreach ($userChoose as $uID => $tmp)
            {
                if (isSet($userChoose[$uID]) && $userChoose[$uID] == $name)
                {
                    unset($userChoose[$uID]);
                }
            }
        }
    }
    

    $code = $userChoose[array_rand($userChoose)];

    $userSelected[$id] = $code;

    echo 'gebruiker ' . $id . ' heeft gebruiker ' . $code . ' getrokken <br>';


}

var_dump($userSelected);

?>


echter zit het blijkbaar niet goed in elkaar want krijg bij iedere keuze fouten te zien en snap niet waar de fouten zitten?

OMG ben er nu al ruim een uur mee bezig geweest om te bugtesten iemand een idee?

oftwel uitkomst

1
2
3
4
5
6
7
8
9
10
gebruiker eric heeft gebruiker tess getrokken 
gebruiker marc heeft gebruiker kees getrokken 
gebruiker tess heeft gebruiker loes getrokken 
gebruiker joop heeft gebruiker joke getrokken 
gebruiker kees heeft gebruiker joop getrokken 
gebruiker loes heeft gebruiker marc getrokken 

Notice: Undefined index: in d:\www\usersort.php on line 49
gebruiker joke heeft gebruiker getrokken 
array(7) { ["eric"]=> string(4) "tess" ["marc"]=> string(4) "kees" ["tess"]=> string(4) "loes" ["joop"]=> string(4) "joke" ["kees"]=> string(4) "joop" ["loes"]=> string(4) "marc" ["joke"]=> NULL } 


The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31814231
Wat krijg je als je

$code = $userChoose[array_rand($userChoose)];

$userSelected[$id] = $code;

IN
$userSelected[$id] = $userChoose[array_rand($userChoose)];

veranderd?
pi_31814665
quote:
Op zondag 30 oktober 2005 17:32 schreef Darkomen het volgende:
Wat krijg je als je

$code = $userChoose[array_rand($userChoose)];

$userSelected[$id] = $code;

IN
$userSelected[$id] = $userChoose[array_rand($userChoose)];

veranderd?
Dan krijg je dat de variabele $code niet te gebruiken is bij het echo-statement even verderop
pi_31824906
Is het niet nuttiger om eerst de mensen te sorteren op het kleinst aantal mensen die ze mogen trekken, om te voorkomen dat ze op een gegeven moment niemand kunnen trekken, omdat die reeds getrokken zijn door andere, die in eerste instantie meer opties hadden?

-r-
  FOK!-Schrikkelbaas zondag 30 oktober 2005 @ 23:14:48 #151
1972 Swetsenegger
Egocentrische Narcist
pi_31825642
Waarom geeft mijn mysql column, welke NULL enabled is, en NULL als default waarde heeft
0
terug wanneer ik geen waarde invul?
pi_31825669
quote:
Op zondag 30 oktober 2005 22:52 schreef Roonaan het volgende:
Is het niet nuttiger om eerst de mensen te sorteren op het kleinst aantal mensen die ze mogen trekken, om te voorkomen dat ze op een gegeven moment niemand kunnen trekken, omdat die reeds getrokken zijn door andere, die in eerste instantie meer opties hadden?

-r-
Klinkt logisch, maar is geen garantie voor succes. Bij de laatste melding van Chandler liep het fout bij de laatste trekking, en dat is iemand met de ruimste keuze. En ik zie hier nog wel wat mogelijkheden voor functies als array_keys en in_array.
pi_31825796
quote:
Op zondag 30 oktober 2005 23:14 schreef Swetsenegger het volgende:
Waarom geeft mijn mysql column, welke NULL enabled is, en NULL als default waarde heeft
0
terug wanneer ik geen waarde invul?
Geen idee. Als ik het hier probeer gaat het wel goed. Weet je zeker dat die column NULL als default waarde heeft?
  FOK!-Schrikkelbaas zondag 30 oktober 2005 @ 23:28:11 #154
1972 Swetsenegger
Egocentrische Narcist
pi_31826068
quote:
Op zondag 30 oktober 2005 23:19 schreef Light het volgende:

[..]

Geen idee. Als ik het hier probeer gaat het wel goed. Weet je zeker dat die column NULL als default waarde heeft?


Op welke versie heb jij het geprobeerd?

-edit- opgelost. in plaats van niets invullen gewoon NULL invullen

[ Bericht 10% gewijzigd door Swetsenegger op 30-10-2005 23:35:22 ]
pi_31826273
quote:
Op zondag 30 oktober 2005 23:14 schreef Swetsenegger het volgende:
Waarom geeft mijn mysql column, welke NULL enabled is, en NULL als default waarde heeft
0
terug wanneer ik geen waarde invul?
Omdat MySQL vol met bugs, inconsequenties en andere vreemde dingen zit. ACM had er een lijst van online staan.
quote:
Weird behaviour
1. You can define a varchar/char field 'auto_increment'.
2. SELECT 'A' = 'a' gets you true.
3. Int(10) is the same as int(1) eventhough the manual says differently.
4. Tablenames are treated case-sensitive on *n?x systems, not on windows.
5. Change a piece of a table definition and mysql creates a temporary copy of the table, very nice if you have a 6GB table occupying a 10GB tablespace... (yes, the change will fail)
6. Adding indices result in a similar temporary copy.
7. What does zerofill do to a integer field? A database is meant to store data, not to format it while storing.
8. When I define a char(32) (md5-strings anyone) field, I really don't mean varchar(32) (MySQL automatically changes all char(X >4) to varchar(X)).
9. This is correct according to mysql: SELECT a, b, count(c) FROM d GROUP BY a; what will MySQL do with the b?
10. If you update a record and set it to the same value, mysql'll define that as unaffected. Even if it does change a timestamp field.

Bugs
1. Insert a NULL value in a NOT NULL field and the query gets executed. In short, you can't force NOT NULL...
2. Under high loads MySQL will restart itself occasionally. When a child doesn't die fast enough "socket already in use"-error occurs.
3. Replication doesn't work that well.
4. MySQL will always try to insert a date into a date field, even if you supply an empty or bogus string (it'll insert 0000-00-00 then).
5. When underflowing or overflowing a integer field, mysql will insert the largest or smallest possible value instead.
6. Long texts are chopped to the correct size, not denied.
7. MySQL will also insert 0 into a numeric field if you supply an empty or bogus string.
8. Close a connection and a long query still runs on... The only way to kill it is via the (mysql)admin
9. Connections with a timeout? Very nice when you need to do a lot of calculations on your data or a query lasts very long. "Lost connection to MySQL server during query"
10. You can insert the same value twice in a ENUM-field
Deze punten gaan vooral over versie 3.23.x, dat zal ook wel de reden zijn dat ie offline is.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas zondag 30 oktober 2005 @ 23:42:06 #156
1972 Swetsenegger
Egocentrische Narcist
pi_31826452
quote:
Op zondag 30 oktober 2005 23:35 schreef SuperRembo het volgende:

[..]

Omdat MySQL vol met bugs, inconsequenties en andere vreemde dingen zit. ACM had er een lijst van online staan.
[..]

Deze punten gaan vooral over versie 3.23.x, dat zal ook wel de reden zijn dat ie offline is.
Ja die ken ik al van www.yapf.net
Maar er staat alleen wat over NULL invoeren in een NOT NULL kolom.
In mijn geval vul ik een lege string in, dus niets en daar maakt mysql 0 van.

Indien het veld in mijn form nu leeg is, vul ik dus maar NULL in. dat gaat wel goed
pi_31826505
quote:
Op zondag 30 oktober 2005 23:28 schreef Swetsenegger het volgende:

[..]

[afbeelding]

Op welke versie heb jij het geprobeerd?

-edit- opgelost. in plaats van niets invullen gewoon NULL invullen
Ik heb het geprobeerd op mysql 4.0.25 die ik hier lokaal had draaien. (Had, ik ben bezig met een upgrade nu.)

En ik deed een insert into tabel (kolom1) values (1); waarbij kolom2 (die dus niet wordt genoemd) als default null was gedefinieerd. Dan komt er ook een waarde null in te staan.
pi_31826537
quote:
Op zondag 30 oktober 2005 23:42 schreef Swetsenegger het volgende:

[..]

Ja die ken ik al van www.yapf.net
Maar er staat alleen wat over NULL invoeren in een NOT NULL kolom.
In mijn geval vul ik een lege string in, dus niets en daar maakt mysql 0 van.

Indien het veld in mijn form nu leeg is, vul ik dus maar NULL in. dat gaat wel goed
Een lege string is niet gelijk aan NULL.
pi_31826648
Een lege string is zeker ook geen decimal.

(Er zit een typo in articelcode)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas zondag 30 oktober 2005 @ 23:51:50 #160
1972 Swetsenegger
Egocentrische Narcist
pi_31826694
quote:
Op zondag 30 oktober 2005 23:45 schreef Light het volgende:

[..]

Een lege string is niet gelijk aan NULL.
Daar was ik achter nu
Dit geeft immers geen NULL maar 0 als $_POST['second_price'] leeg is.

INSERT INTO table
(id,second_price)
VALUES(0,'".$_POST['second_price']."')
pi_31826971
quote:
Op zondag 30 oktober 2005 23:50 schreef SuperRembo het volgende:
Een lege string is zeker ook geen decimal.

(Er zit een typo in articelcode)
Bij MySQL is een hoop mogelijk, gezien wat ik zo lees.
pi_31828109
Hmm.. Men neme een simpele tabel "tabel" met twee kolommen "col1" en "col2". Col2 is gedefinieerd als INT en mag NULL bevatten. Col1 is gewoon een ID. (Het gaat nergens over, maar ter illustratie.)
Dan doen we "Insert into tabel (col1, col2) values (1, '')" waarbij dus een lege string naar col2 gezet wordt. Maar dat was een int. Voor MySQL een reden om er dan maar 0 van te maken.

Overigens gebeurt hetzelfde als ik een niet-lege string gebruik. De conversie lijkt hetzelfde te zijn als de (int) van php.
pi_31829745
quote:
Op zondag 30 oktober 2005 17:32 schreef Darkomen het volgende:
Wat krijg je als je

$code = $userChoose[array_rand($userChoose)];

$userSelected[$id] = $code;

IN
$userSelected[$id] = $userChoose[array_rand($userChoose)];

veranderd?
Een verdwijnende variabel, die ik idd niet bij het echo statement kan gebruiken
quote:
Op zondag 30 oktober 2005 17:47 schreef Light het volgende:
Dan krijg je dat de variabele $code niet te gebruiken is bij het echo-statement even verderop
Yep, dit is ff makkelijk en voor mij overzichtelijk...
quote:
Op zondag 30 oktober 2005 22:52 schreef Ro�a� het volgende:
Is het niet nuttiger om eerst de mensen te sorteren op het kleinst aantal mensen die ze mogen trekken, om te voorkomen dat ze op een gegeven moment niemand kunnen trekken, omdat die reeds getrokken zijn door andere, die in eerste instantie meer opties hadden?

-r-
Ok, ik vond dit al een uitdaging, en nu dus helemaal... hoe in vredus naam kan ik dit snel doen? als het MySQL was dan was dit simpel, en kon ik de query aanpassen maar werken met array's is niet mijn sterkste vak..

Heb je tips? hoef geen code! zolang je me maar in de goede richting wijst!
quote:
Op zondag 30 oktober 2005 23:15 schreef Light het volgende:
Klinkt logisch, maar is geen garantie voor succes. Bij de laatste melding van Chandler liep het fout bij de laatste trekking, en dat is iemand met de ruimste keuze. En ik zie hier nog wel wat mogelijkheden voor functies als array_keys en in_array.
hoe bedoel je dat? en waar denk jij dat mijn probleem zit? want ik kan dit helaas niet zo even 1234567890 uitvinden heb gisteren (tijdens het ziek zijn) de hele dag niets anders in me hoofd gehad dan de niet werkende code...

Tips, verwijzingen etc zijn van harte welkom!.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31829785
Wat wil je nou eigenlijk met dat script? Als het gewoon lootjes trekken was, dan zou iedereen kunnen kiezen uit iedereen behalve zichzelf. Als input zou je dan alleen een lijst namen hebben.
Maar bij jou begin je met een array waarbij sommige mensen veel meer keus hebben dan anderen
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31829872
SuperRembo; dat zou inderdaad een 'gewoon' lootjes trekken script zijn maar dat is hier niet het geval. In mijn script kun je ook kiezen dat mensen hun vriend/vriendin/vader/moeder en de keuze van vorig jaar niet mag kiezen (alleeen vorig jaar!).. dus dan wordt de sub array iets groter .

Het laatste script is dus een niet wat jij denkt het is net andersom, deze mensen mogen dus pertinent NIET gekozen worden

vb
1
2
3
$arr = array("eric" => array("eric", "marc"),
             "marc" => array("marc", "eric"),
             "tess" => array("tess", "joop", "kees"),


eric mag dus geen marc of eric trekken ennuh marc mag ook geen marc of eric trekken en als laatste voorbeeld mag tess geen tess/joop of kees trekken.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31829968
quote:
Op maandag 31 oktober 2005 07:42 schreef Chandler het volgende:

hoe bedoel je dat? en waar denk jij dat mijn probleem zit? want ik kan dit helaas niet zo even 1234567890 uitvinden heb gisteren (tijdens het ziek zijn) de hele dag niets anders in me hoofd gehad dan de niet werkende code...
Bij lootjes trekken heb je altijd het risico dat de laatste geen keuze meer heeft (of alleen zichzelf kan kiezen). Eigenlijk heb je die keuze altijd, maar je houdt er bij het programmeren al rekening mee dat iemand niet zichzelf mag kunnen kiezen. In je laatste voorbeeld was joke, die als laatste mag kiezen, nog niet gekozen. Enige overgebleven keuze is dus joke, maar die mag zichzelf niet kiezen, dus geen keuze. Oplossing is simpel de hele trekking nogmaals doen.
pi_31830090
klopt dat ben ik met je eens, maar deze code genereerd nogal vaak veel errors.. test het maar eens
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  FOK!-Schrikkelbaas maandag 31 oktober 2005 @ 08:39:13 #168
1972 Swetsenegger
Egocentrische Narcist
pi_31830143
quote:
Op maandag 31 oktober 2005 01:04 schreef Light het volgende:
Hmm.. Men neme een simpele tabel "tabel" met twee kolommen "col1" en "col2". Col2 is gedefinieerd als INT en mag NULL bevatten. Col1 is gewoon een ID. (Het gaat nergens over, maar ter illustratie.)
Dan doen we "Insert into tabel (col1, col2) values (1, '')" waarbij dus een lege string naar col2 gezet wordt. Maar dat was een int. Voor MySQL een reden om er dan maar 0 van te maken.

Overigens gebeurt hetzelfde als ik een niet-lege string gebruik. De conversie lijkt hetzelfde te zijn als de (int) van php.
Mjah,

Laten we zeggen dat ik verwacht dat wanneer ik een lege string naar een decimal stuur met als default value NULL dat ik dan ook NULL terug krijg

Het was weer een wijze les
pi_31831233
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
<?

  $vorigeTrekking = array(
               "eric" => array("eric", "marc"),
               "marc" => array("marc", "eric"),
               "tess" => array("tess", "joop", "kees"),
               "joop" => array("joop", "tess", "kees", "loes"),
               "kees" => array("kees", "tess", "joop"),
               "loes" => array("loes"),
               "joke" => array("joke")
               );
             
  $alleDeelnemers = array_keys($vorigeTrekking);
  
  // Wie mag wie wél loten
  $magLoten = array();
  foreach($alleDeelnemers as $naam) {
    $magLoten[$naam] = array_diff($alleDeelnemers, $vorigeTrekking[$naam]);
  }
  
  // Wie mag door wie geloot worden
  $magGelootWordenDoor = array();
  foreach($magLoten as $naam => $loten) {
    foreach($loten as $lot)
      $magGelootWordenDoor[$lot][] = $naam;
  }

  // Trekking doen. ob_start etc is om de data van
  // mislukte trekkingen te verbergen
  $i = 1;
  ob_start();
  $loting = loting($alleDeelnemers, $magLoten, $magGelootWordenDoor);
  while(!is_array($loting) && $i < 10) {
    ob_end_clean();
    echo '<br/>Trekking '.$i++.' mislukt: '.$loting; flush();
    ob_start();
    $loting = loting($alleDeelnemers, $magLoten, $magGelootWordenDoor);
  }
  ob_end_flush();  
  
  // Loting functie
  function loting($alleDeelnemers, $magLoten, $magGelootWordenDoor) {
    // Alle loten zijn getrokken
    if(count($alleDeelnemers) < 1) {
      return array();
    }
    // Kies een van de deelnemers die als volgende een lootje mag trekken
    shuffle($alleDeelnemers); 
    $deelnemer = array_pop($alleDeelnemers);
    
    // Geef de naam weer
    echo '<br/><b>'.$deelnemer.'</b>';
    
    // Tijdelijke arrays construeren om de intersectie te kunnen maken tussen
    // de loten die iemand mag trekken en de nog beschikbare loten
    $dnMagLoten = $magLoten[$deelnemer];
    $dnKanLoten = array_keys($magGelootWordenDoor);
    $dnLoten    = array_intersect($dnMagLoten, $dnKanLoten);
    
    if(count($dnLoten) < 1) {
      return '<br/>Loting mislukt.';
    } else {
      // Volgende drie regels zijn debug informatie
      echo '<br/>Mag: '.implode(',',$dnMagLoten);
      echo '<br/>Kan: '.implode(',',$dnKanLoten);
      echo '<br/>Som: '.implode(',',$dnLoten);
      // Trek een van de loten
      $getrokken = $dnLoten[array_rand($dnLoten)];
      // Geef een echo welk lot is getrokken
      echo '<br/><b>'.$deelnemer.' trekt '.$getrokken.'</b><br/>';
    }
    
    // De deelnemer kan niet nog een keer loten
    unset($magLoten[$deelnemer]);
    // Het lot kan ook niet meer getrokken worden
    unset($magGelootWordenDoor[$getrokken]);
    
    // Recursief andere mensen laten trekken
    $loting = loting($alleDeelnemers,$magLoten, $magGelootWordenDoor);
    
    // Kijken of de recursieve loting goed verlopen is
    if(is_array($loting)) {
      $resultaat = array_merge(array($deelnemer => $getrokken),$loting);
      return $resultaat;
    } else {
      return $loting;
    }
  }
  

?>
pi_31832338
quote:
Op maandag 31 oktober 2005 08:39 schreef Swetsenegger het volgende:

[..]

Mjah,

Laten we zeggen dat ik verwacht dat wanneer ik een lege string naar een decimal stuur met als default value NULL dat ik dan ook NULL terug krijg

Het was weer een wijze les
Afgezien van dit belachelijke gedrag van MySQL ( ); waarom probeerde je een string naar een decimal te sturen?
pi_31833293
Aangezien fok en phpfreakz toch aan het crossbreeden is. Mag ik jullie commentaar vragen op http://www.phpfreakz.nl/library.php?sid=20709 ?

-r-
pi_31834936
quote:
Op maandag 31 oktober 2005 09:54 schreef Ro�a� het volgende:
@Ro�a�

ik ga je code inspecteren, zal wel heel veel dingen niet begrijpen maar er mee stoeien zorgt voor kennis
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  FOK!-Schrikkelbaas maandag 31 oktober 2005 @ 12:56:08 #173
1972 Swetsenegger
Egocentrische Narcist
pi_31835236
quote:
Op maandag 31 oktober 2005 10:50 schreef JeRa het volgende:

[..]

Afgezien van dit belachelijke gedrag van MySQL ( ); waarom probeerde je een string naar een decimal te sturen?
Nou, ik was in de veronderstelling dat je bij een INSERT statement alle kolommen moest benoemen
dus stuurde ik VALUES(0,'".$_POST['second_price']."') naar de database.

Nu stuur ik gewoon NULL, en vanavond haal ik 'm gewoon helemaal uit de INSERT statement
pi_31836566
@Roonaan: ik ben nu al een tijd bezig je functie te ontleden maar heb een vraag en kan daar niet een begrijpelijk antwoord op vinden op www.php.net

waar staan de volgende functie voor!

array_intersect ? want uit de uitleg en voorbeeld kom ik niet

-edit-

en hoe is het mogelijk om het data uit een array te verwijderen middels een andere array..

ik probeer het nu zo te doen maar dat werkt niet echt

1
2
3
4
foreach ($excludeUsers as $id => $value)
        {
            unSet($includeUsers[$id]);
        }



[ Bericht 49% gewijzigd door Chandler op 31-10-2005 14:02:12 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31836913
Ik heb een probleem met cookies die moeten worden geplaatst en uitgelezen aan de hand van de GET waarde die aan een de pagina wordt meegegeven.

1
2
3
4
5
6
7
8
9
<?php
PHP
if (!isset($_COOKIE[$_GET['link']]))  
{
echo
"blabla";
setcookie("$_GET[link]", "true", strtotime("tomorrow 0"), "/");
}

?>


Het cookie wordt wel geplaatst (met de juiste waarde)
Als ik nu nog een keer dezelfde GET waarde aan de pagina mee geef dan zou er geen "blabla" op mijn scherm mogen verschijnen.
Dit gebeurt wel, dus het cookie wordt toch niet goed uitgelezen.

Heeft iemand een idee waarom dit fout gaat?
Ja lekker!
pi_31837436
quote:
Op maandag 31 oktober 2005 13:56 schreef Chandler het volgende:
@Roonaan: ik ben nu al een tijd bezig je functie te ontleden maar heb een vraag en kan daar niet een begrijpelijk antwoord op vinden op www.php.net

waar staan de volgende functie voor!

array_intersect ? want uit de uitleg en voorbeeld kom ik niet
array_intersect geeft alleen de waarde terug die in beide arrays voorkomen.

-r-
pi_31837710
ok, dan heb ik weer wat geleerd; jammer dat ze dat niet in het nederlands op php.net hebben staan maaruh goed weer wat geleerd
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31838281
@Roonaan: Het volgende is mijn uitkomst, toch wil ik je nog bedanken voor het plaatsen van een door jou geschreven code; je hebt me namelijk veel inzicht gegeven en laten zien dat ik nog heel veel moet leren.

Graag zou ik comments willen zien op het stukje dat ik heb geschreven.

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

$vorigeTrekking = array("eric" => array("eric", "marc"),
                        "marc" => array("marc", "eric"),
                        "tess" => array("tess", "joop", "kees"),
                        "joop" => array("joop", "tess", "kees", "loes"),
                        "kees" => array("kees", "tess", "joop"),
                        "loes" => array("loes"),
                        "joke" => array("joke"));

$alleDeelnemers = array_keys($vorigeTrekking);
$lootenSelect   = array();
$includeUsers   = array();
$over           = array();

echo '<pre>';
for ($x = 0; $x < 100; $x++)
{
    $doBreak = true;
    foreach ($vorigeTrekking as $kiesUser => $excludeUsers)
    {
        // bereken users die niet mag kiezen
        
        $includeUsers = $alleDeelnemers;
        $over         = $alleDeelnemers;
        
        foreach ($excludeUsers as $id => $value)
        {
            foreach ($over as $fID => $fName)
            {
                if ($fName == $value)
                {
                    unSet($over[$fID]);
                }
            }
        }
        echo '<br>';

        foreach ($lootenSelect as $id => $value)
        {
            foreach ($over as $fID => $fName)
            {
                if ($fName == $value)
                {
                    unSet($over[$fID]);
                }
            }
        }
        
        echo 'user            : ' . $kiesUser . "<br /><br /><br />";
        echo 'mag niet kiezen : ' . implode(", ", $excludeUsers) . "<br />";
        echo 'mag wel kiezen  : ' . implode(", ", $includeUsers) . "<br />";
        echo 'reeds gekozen   : ' . implode(", ", $lootenSelect) . "<br />";
        echo 'blijft over     : ' . implode(", ", $over) . "<br />";
        
        if (count($over) > 0)
        {
            $rnd = $alleDeelnemers[array_rand($over)];
            echo 'random          : ' . $rnd . "<br>";
        
            $lootenSelect[$kiesUser] = $rnd;
            echo '<hr>';
        }
        else
        {
            echo 'random          : geen mogelijkheid meer over, start over';
            $doBreak = false;
        }
    }

    if ($doBreak == true)
    {
        break;
    }
}

echo '</pre>';

echo 'selected users';
echo '<pre>';
var_dump($lootenSelect);
echo '</pre>';

?>


het idee is volgens mij het zelfde als die van jou maar dan met wat minder moelijke onderdelen

The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31838954
Commentaar: je gebruikt nog steeds engelse en nederlandse variabelenamen door elkaar. Je naamgeving is erg slordig. Tevens ben ik nog steeds overtuigd dat een recursieve aanpak hiervoor beter is.

-r-
pi_31839037
Okey... de variabelbenamingen kunnen beter, en zekers als je NL/ENG bedoelt maar daar heb ik helaas wel vaker last van, zal me ooit (spoedig) eens een vaste methode moeten aanleren.. en waarom denk je dat een recursive aanpak beter is? zou je dat eens kunnen uitleggen?

Heb je trouwens de code getest? hij doe't echt tis niet te geloven hehe..
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31840094
Recursief? Omdat als je het IRL zou doen het in principe ook een recursieve happening is :-) Meer dan een foreach. Zakdoekje leggen is wel weer loop-based daarentegen.

Getest? Gewoon extra debug lines laten outputten en vervolgens een peer keer draaien.

Die ob_start/ob_end_clean/ob_end_flush zat er pas heel laat in.

-r-
pi_31840935
quote:
Op maandag 31 oktober 2005 14:09 schreef Pronk het volgende:
Ik heb een probleem met cookies die moeten worden geplaatst en uitgelezen aan de hand van de GET waarde die aan een de pagina wordt meegegeven.
[ code verwijderd ]

Het cookie wordt wel geplaatst (met de juiste waarde)
Als ik nu nog een keer dezelfde GET waarde aan de pagina mee geef dan zou er geen "blabla" op mijn scherm mogen verschijnen.
Dit gebeurt wel, dus het cookie wordt toch niet goed uitgelezen.

Heeft iemand een idee waarom dit fout gaat?
Ik heb het opgelost! Voor de nieuwsgierigen, er kwam een "." voor in de meegestuurde GET waarde. Het cookie lijkt onmogelijk uit te lezen door die punt.
Ja lekker!
pi_31842066
@Roonaan; je zult ongetwijfeld gelijk hebben (ps ik reageer later op email )

-edit-

zelf gefixt

[ Bericht 65% gewijzigd door Chandler op 31-10-2005 17:25:29 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31843202
ps.

Ik heb net Wamp geinstalleerd (de laatste versie, php,mysql,apache etc) nu krijg ik echter steeds fout meldingen bij dit soort dingen.

echo parseTemplate(loadTemplate("./template.tpl"));

dat wil het nu zien als dit

$tpl = loadTemplate("./template.tpl");
echo parseTemplate($tpl);

maar dat wil ik dus weer niet, want het 1e voorbeeld is toch correct coding? en waar kan ik die setting in php.ini vinden cq veranderen?

Tnx
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_31844610
quote:
Op maandag 31 oktober 2005 15:23 schreef Ro�a� het volgende:
Tevens ben ik nog steeds overtuigd dat een recursieve aanpak hiervoor beter is.
Zolang PHP nog steeds crasht als je een recursieve functie op wat grotere datasets uitvoert (stack overflow) wijk ik toch uit naar andere talen om een aanpak te testen
pi_31890938
Ik heb een fotoalbum (deels zelf gemaakt / deels gedownload)
en deze geeft op de thumbnail pagina (soms, afhankelijk van het geladen album) de volgende notices:

Notice: Undefined offset: -1 in D:\Data\WebDesign\pronkmedia.nl\fotoalbum\klein.php on line 51

Notice: Undefined offset: -1 in D:\Data\WebDesign\pronkmedia.nl\fotoalbum\klein.php on line 53


Regel 49 t/m 59 zijn de volgende regels:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php

$NextDir
= "klein.php?dir=".$DirArray[$DirIndex + 1];
$PrevDir = "klein.php?dir=".$DirArray[$DirIndex - 1];
$NextDirNam = $DirArray[($DirIndex + 1)];
$PrevDirNam = $DirArray[($DirIndex - 1)];
if (
$DirIndex == 0) {
$PrevDir = "klein.php?dir=".$DirArray[(Count($DirArray) - 1)];
$PrevDirNam = $DirArray[(Count($DirArray) - 1)];
}
if ((
$DirIndex + 1) &gt; (Count($DirArray) - 1)) {
$NextDir = "klein.php?dir=".$DirArray[0];
$NextDirNam = $DirArray[0];

?>

Hier moet het dus ergens fout gaan, ziet iemand misschien wat er mis gaat? Hieronder staat de volledige code van de pagina: (deze pagina van het fotoalbum leest een directory uit en maakt thumbnails)


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
 
<HTML> 
<HEAD> 
<TITLE>Fotoalbum</TITLE> 
</HEAD> 
<BODY TEXT='#000000' LINK='#000000' VLINK='#000000' ALINK='#000000'> 

<TABLE WIDTH='800' BORDER='1' bordercolor='#FFFFFF' CELLSPACING='0' CELLPADDING='0' ALIGN='CENTER'> 
<TR> 
<TD bordercolor='#000000' bgcolor='#CCCCCC'><CENTER><STRONG>Foto overzicht: <? echo"$_GET[dir]"; ?></STRONG></CENTER></td> 
</TR> 
</TABLE> 

<? 
function getDirList ($dirName) { 
static $result_array=array(); 
$d = dir($dirName); 
while($entry = $d->read()) { 
if ($entry != "." && $entry != "..") { 
if (is_dir($dirName."/".$entry)) { 
array_push($result_array,$entry); 



$d->close(); 
sort($result_array); 
return $result_array; 

function getDirContents ($dirName) { 
static $result_array=array(); 
$d = dir($dirName); 
while($entry = $d->read()) { 
if ($entry != "." && $entry != "..") { 
if (!is_dir($dirName."/".$entry)) { 
str_replace(" ", "[spc]",(str_replace("&", "[amp]",$entry))); 
array_push($result_array,$entry); 



$d->close(); 
sort($result_array); 
return $result_array; 

$DirArray = getDirList("./"); 
for($i=0; $i < count($DirArray); $i++) { 
if($_GET['dir']==$DirArray[$i]) { 
$DirIndex = $i; 


$NextDir = "klein.php?dir=".$DirArray[$DirIndex + 1]; 
$PrevDir = "klein.php?dir=".$DirArray[$DirIndex - 1]; 
$NextDirNam = $DirArray[($DirIndex + 1)]; 
$PrevDirNam = $DirArray[($DirIndex - 1)]; 
if ($DirIndex == 0) { 
$PrevDir = "klein.php?dir=".$DirArray[(Count($DirArray) - 1)]; 
$PrevDirNam = $DirArray[(Count($DirArray) - 1)]; 

if (($DirIndex + 1) > (Count($DirArray) - 1)) { 
$NextDir = "klein.php?dir=".$DirArray[0]; 
$NextDirNam = $DirArray[0]; 

?> 

<TABLE WIDTH='800' BORDER='0' CELLSPACING='0' CELLPADDING='0' ALIGN='CENTER'> 
<tr> 
<td width='33%' valign='top'><table width='100%' height='50' bordercolor='#FFFFFF' border='1' cellspacing='0' cellpadding='3'><tr><td style='CURSOR: hand' onMouseover="this.bgColor='#CCCCCC'" onMouseout="this.bgColor='#FFFFFF'" onclick="window.location='<?echo"$PrevDir";?>';" valign='top' bordercolor='#000000'><?echo str_replace(".", " ",$PrevDirNam);?></td></tr></table><td> 
<td width='33%' valign='top'><table width='100%' height='50' bordercolor='#FFFFFF' border='1' cellspacing='0' cellpadding='3'><tr><td style='CURSOR: hand' onMouseover="this.bgColor='#CCCCCC'" onMouseout="this.bgColor='#FFFFFF'" onclick="window.location='index.php';" valign='top' align="center" bordercolor='#000000'>Terug naar het album overzicht</td></tr></table><td> 
<td width='33%' valign='top'><table width='100%' height='50' bordercolor='#FFFFFF' border='1' cellspacing='0' cellpadding='3'><tr><td style='CURSOR: hand' onMouseover="this.bgColor='#CCCCCC'" onMouseout="this.bgColor='#FFFFFF'" onclick="window.location='<?echo"$NextDir";?>';" valign='top' bordercolor='#000000'><?echo str_replace(".", " ",$NextDirNam);?></td></tr></table><td> 
</tr> 
</TABLE> 

<table width="800" border='0' cellspacing='0' cellpadding='0' align="center"><tr> 

<? 
$Column = 1; 
$DirName = $DirArray[$DirIndex]; 
$CurrentDir = "./".$DirName; 
$DirContents = getDirContents($CurrentDir); 
for($i=0; $i < count($DirContents); $i++) { 
echo "<td height='140' width='20%'><table width='100%' height='100%' bordercolor='#FFFFFF' border='1' cellspacing='0' cellpadding='3'><tr><td height='100%' style='CURSOR: hand' onMouseover=\"this.bgColor='#CCCCCC'\" onMouseout=\"this.bgColor='#FFFFFF'\" onclick=\"window.location='groot.php?dir=".str_replace(" ", "[spc]",(str_replace("&", "[amp]",$DirName)))."&image=".str_replace(" ", "[spc]",(str_replace("&", "[amp]",$DirContents[$i])))."&index=".$i."';\" valign='top' align='center' bordercolor='#000000'><img vspace='10' width='125' border='0' src='".$CurrentDir."/".$DirContents[$i]."'></td></tr></table></td>"; 
if($Column==5) { 
$Column = 0;  
echo "</tr>"; 

$Column++; 

if($Column != 0) { 
for($i=$Column; $i<8;$i++){ 
echo "<td>"; 


echo "</table>"; 
?> 

</BODY></HTML> 
?> 


Het script werkt overigens gewoon goed, ik wilde alleen alle notices wegwerken.
En deze krijg ik maar niet weg!
Ja lekker!
pi_31891522
Als $DirIndex = 0 is, dan krijg je hier $DirArray[$DirIndex - 1] die notice op. De array begint bij 0, dus -1 bestaat niet. Logisch.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31892524
quote:
Op woensdag 2 november 2005 11:19 schreef SuperRembo het volgende:
Als $DirIndex = 0 is, dan krijg je hier $DirArray[$DirIndex - 1] die notice op. De array begint bij 0, dus -1 bestaat niet. Logisch.
Dit heb ik nagekeken en dit klopt natuurlijk helemaal, maar wat kan ik nu doen om te zorgen dat die 'notice' verdwijnt. Dus hoe kan ik zorgen het script van te voren weet dat het niet verder of terug moet tellen?
Ja lekker!
pi_31892939
quote:
Op woensdag 2 november 2005 11:57 schreef Pronk het volgende:

[..]

Dit heb ik nagekeken en dit klopt natuurlijk helemaal, maar wat kan ik nu doen om te zorgen dat die 'notice' verdwijnt. Dus hoe kan ik zorgen het script van te voren weet dat het niet verder of terug moet tellen?
Door bv dit te doen:
1
2
3
if ($DirIndex > 0) {
    $PrevDir = "klein.php?dir=".$DirArray[$DirIndex - 1];
}

Er zijn natuurlijk nettere oplossingen te bedenken omdat je dit meerdere keren moet doen, maar dit is één manier iig

[ Bericht 3% gewijzigd door JeRa op 02-11-2005 12:24:07 ]
pi_31893470
Nouja, misschien niet de netste manier maar mijn notices zijn weg! Thx!
Ja lekker!
  woensdag 2 november 2005 @ 19:59:44 #191
76312 sh4dow
¯¯¯¯¯¯¯¯¯
pi_31906806
Om nog even terug te komen op m'n vraag.

Ik heb een .txt bestand met gastenboek berichten van een oud script. Nu heb ik een nieuw gastenboek met MySQL. Nu wil ik de oude berichten uit het txt bestand overzetten naar de MySQL database.

Hier een stukje van het data.txt bestand:

1
2
<?php $Bericht[] = array('Patrick','iemand@hotmail.com',' ','Herveld','14-09-2004 21:46:28','Berichtje'); ?>
<?php $Bericht[] = array('Thomas','iemand@hotmail.com',' ','Hoogkerk','14-09-2004 23:16:05','Berichtje'); ?>


Hoe krijg ik deze arrays nu in de database? Ik ben al een paar dagen bezig geweest, maar ik kom er echt niet uit.
pi_31907371
heb je een database met een table messages aangemaakt?

Open het bestand data.txt.
Zet onderaan het bestand de volgende code :
1
2
3
4
5
6
7
8
<?php
for($i=0;$i<count($Bericht);$i++){
   $query = "INSERT INTO messages (name,email,bla,woonplaats,date,message) 
            VALUES ('".$Bericht[$i][0]."','".$Bericht[$i][1]."','".$Bericht[$i][2]."',
            '".$Bericht[$i][3]."','".$Bericht[$i][4]."','".$Bericht[$i][5]."')";
   mysql_query($query)or die(mysql_error());
}
?>

Verander de bestandsnaam in data.php
Zet hem in een directory waarvanuit je php bestanden kunt uitvoeren
Roep data.php aan in je browser.

Lijkt me niet zo moeilijk toch?

[ Bericht 10% gewijzigd door ikke_ook op 02-11-2005 20:28:28 ]
  FOK!-Schrikkelbaas woensdag 2 november 2005 @ 20:20:18 #193
1972 Swetsenegger
Egocentrische Narcist
pi_31907551
Eerst laadt je gewoon de txt gewoon in een text editor en met de replace functie strip je <?php $Bericht[] = array( en ); ?>
Dan hou je dus
1
2
'Patrick','iemand@hotmail.com',' ','Herveld','14-09-2004 21:46:28','Berichtje'
'Thomas','iemand@hotmail.com',' ','Hoogkerk','14-09-2004 23:16:05','Berichtje'

over.
Ik ga er van uit dat elk bericht volledig op 1 regel staat? of staan er in 'berichtje' ook enters?

Even van het eerste uitgaand:
http://nl3.php.net/manual/nl/function.file.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$array
=file(berichten.txt);

//Hiermee zet hij je txt file in een array, waarbij elke regel een element is.

foreach ($array as $line){
//Hiermee stap je door de array heen

$line=str_replace(''','',$line);
//hiermee haal je de '
weg

$stuk
=explode(',',$line);
//hiermee verdeel je de regel in losse elementen

$query="INSERT INTO database
(id,naam,email,iets,woonplaats,datum,bericht)
VALUES(0,'"
.$stuk[0]."','".$stuk[1]."','".$stuk[2]."','".$stuk[3]."','".$stuk[4]."','".$stuk[5]."')";
mysql_query($query);
// naar database schrijven

}
?>
  FOK!-Schrikkelbaas woensdag 2 november 2005 @ 20:21:07 #194
1972 Swetsenegger
Egocentrische Narcist
pi_31907581
Die van ikke ook is een stuk slimmer
  woensdag 2 november 2005 @ 20:31:39 #195
76312 sh4dow
¯¯¯¯¯¯¯¯¯
pi_31908012
Ja ik heb de DB al klaar, ik ga nu even proberen die data.txt te includen en dan het script van ikke_ook te draaien.

Er zitten wel <BR> tags in het bestand
pi_31908215
in welk bestand zitten <br>'s? en wat bedoel je met includen??Heb je mijn beschrijving wel gelezen?daar hoef je niks te includen hoor..
  woensdag 2 november 2005 @ 20:40:05 #197
76312 sh4dow
¯¯¯¯¯¯¯¯¯
pi_31908380
in data.txt zitten wat <BR>'s in de 'berichtje' stukjes.

ik heb data.txt gerenamed naar data.php en deze include ik nu in een nieuw php bestand met jou code.
pi_31908630
Ok, dat kan ook idd, maar die <br> maakt niet uit hoor...die kun je toch ook gewoon in de database zetten?
  woensdag 2 november 2005 @ 20:51:08 #199
76312 sh4dow
¯¯¯¯¯¯¯¯¯
pi_31908812
Ja het is al gelukt met jou script alles komt netjes in de DB te staan nu, die <br>'s geven idd geen probleem, maar Swetsenegger had het daarover.

Heel erg bedankt!
pi_31908882
quote:
Op woensdag 2 november 2005 12:37 schreef Pronk het volgende:
Nouja, misschien niet de netste manier maar mijn notices zijn weg! Thx!
Voor $NextDir moet je een zelfde soort controle inbouwen (voor als je aan het eind van de lijst bent).

En als $PrevDir of $NextDir leeg zijn, dan moet je de links naar het volgende of vorige album niet tonen.

(Waarom gebruik je javascript en window.location en niet gewoon een <a> link?)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_31908959
quote:
Op woensdag 2 november 2005 20:51 schreef sh4dow het volgende:
Ja het is al gelukt met jou script alles komt netjes in de DB te staan nu, die <br>'s geven idd geen probleem, maar Swetsenegger had het daarover.

Heel erg bedankt!
Swets had het over newlines. Dus niet <br> maar \n.
  woensdag 2 november 2005 @ 22:07:55 #202
76312 sh4dow
¯¯¯¯¯¯¯¯¯
pi_31911603
Nog even een klein vraagje.

Ik wil graag de datums van de oude berichten omzetten naar een UNIX timestamp. Ik weet dat dit met de functie mktime kan. Maar hoe split ik dit datum format zodat ik mktime kan toepassen:

de datums zijn op deze manier opgeslagen: '14-09-2004 21:46:28'
  FOK!-Schrikkelbaas woensdag 2 november 2005 @ 22:12:39 #203
1972 Swetsenegger
Egocentrische Narcist
pi_31911796
nooit een unix timestamp gebruiken, gebruik gewoon DATETIME van mysql. Kan je tenminste mee rekenen.

DATETIME veld staat als 09-14-2004 21:46:28 dacht ik.
kwestie van dus TOCH je datum eruit trekken, exploden en op de juiste manier weer aan elkaar plakken. Dat lijkt me de snelste oplossing
pi_31911826
gewoon strtotime gebruiken?
pi_31911929
quote:
Op woensdag 2 november 2005 22:12 schreef Swetsenegger het volgende:
nooit een unix timestamp gebruiken, gebruik gewoon DATETIME van mysql. Kan je tenminste mee rekenen.

DATETIME veld staat als 09-14-2004 21:46:28 dacht ik.
kwestie van dus TOCH je datum eruit trekken, exploden en op de juiste manier weer aan elkaar plakken. Dat lijkt me de snelste oplossing
Ik gebruik ook een datetime veld, maar die waarde haal ik er altijd uit als een UNIX_TIMESTAMP, anders kun je er niet mee rekenen Ik snap niet zo goed wat jij bedoelt.

Hoe krijg jij een andere datum in dat datetime veld dan NOW() zonder een timestamp te gebruiken?
Ik gebruik daar FROM_UNIXTIME(timestamp) voor.

Combi van datetime en timestamp vind ik prima
  FOK!-Schrikkelbaas woensdag 2 november 2005 @ 22:20:33 #206
1972 Swetsenegger
Egocentrische Narcist
pi_31912122
quote:
Op woensdag 2 november 2005 22:15 schreef ikke_ook het volgende:

[..]

Ik gebruik ook een datetime veld, maar die waarde haal ik er altijd uit als een UNIX_TIMESTAMP, anders kun je er niet mee rekenen Ik snap niet zo goed wat jij bedoelt.
Als je een dag eerder wilt hebben kan je beter gewoon DATESUB van mysql gebruiken.

scheelt een hoop PHP gereken
pi_31912166
quote:
Op woensdag 2 november 2005 22:13 schreef Ro�a� het volgende:
gewoon strtotime gebruiken?
Die gaat fout met data in het formaat dd-mm-jjjj, met jjjj-mm-dd werkt het wel. Het was ook mijn eerste idee, maar ik ging het nog even testen
  woensdag 2 november 2005 @ 22:23:15 #208
76312 sh4dow
¯¯¯¯¯¯¯¯¯
pi_31912236
quote:
Op woensdag 2 november 2005 22:21 schreef Light het volgende:

Die gaat fout met data in het formaat dd-mm-jjjj, met jjjj-mm-dd werkt het wel. Het was ook mijn eerste idee, maar ik ging het nog even testen
Inderdaad Dat werkt niet, zie: http://195.241.108.27/scripts/convert/time.php

Iemand enig idee hoe ik dat kan omwisselen?
pi_31912287
quote:
Op woensdag 2 november 2005 22:20 schreef Swetsenegger het volgende:

[..]

Als je een dag eerder wilt hebben kan je beter gewoon DATESUB van mysql gebruiken.

scheelt een hoop PHP gereken
Maar als je nou een server in de VS hebt staan krijg je wel een verkeerde datum terug, en als je hem als timestamp uit de database haalt kun je er een formaat van maken naar eigen wens. Maar ik zal dat DATESUB eens bekijken want het klinkt wel handig
pi_31912580
quote:
Op woensdag 2 november 2005 22:23 schreef sh4dow het volgende:

[..]

Inderdaad Dat werkt niet, zie: http://195.241.108.27/scripts/convert/time.php

Iemand enig idee hoe ik dat kan omwisselen?
1
2
3
4
<?php
$datum
= '14-09-2004 21:46:28';
print
preg_replace('/(\d{2})-(\d{2})-(\d{4})/', '\\3-\\2-\\1', $datum);
?>

Dat levert 2004-09-14 21:46:28 op.
pi_31912596
Omwisselen van dd-mm-jjjj naar jjjj-mm-dd kan bijvoorbeeld met een regexp:

1
2
$in = '14-09-2004 21:46:28';
$out = preg_replace('/(\d+)-(\d+)-(\d+)/', '$3-$2-$1', $in);
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  woensdag 2 november 2005 @ 22:32:14 #212
76312 sh4dow
¯¯¯¯¯¯¯¯¯
  woensdag 2 november 2005 @ 22:39:40 #213
76312 sh4dow
¯¯¯¯¯¯¯¯¯
pi_31912929
Allemaal bedankt voor jullie hulp!

Dit is het uiteindelijke convert script geworden:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

include_once("config.php");
include("gastenboek.php");

for($i=0;$i<count($Bericht);$i++){

$time = $Bericht[$i][4]; 
$time = preg_replace('/(\d{2})-(\d{2})-(\d{4})/', '\\3-\\2-\\1', $time);
$tijd = strtotime($time);

   $query = "INSERT INTO gastenboek_nieuw (naam, woonplaats, email, website, bericht, datum) 
            VALUES ('".$Bericht[$i][0]."','".$Bericht[$i][3]."','".$Bericht[$i][1]."',
            '".$Bericht[$i][2]."','".$Bericht[$i][5]."','".$tijd."')";
   mysql_query($query)or die(mysql_error());
}

?>
  donderdag 3 november 2005 @ 21:02:53 #214
51748 H4ze
wait...what?
pi_31939253
Ik heb een pagina "groepsleden". Hier staat een lijst met groepsleden. Wanneer er op een bepaald groepslid wordt geklikt ga je naar de pagina van dat groepslid. Hierna moet de user ook weer snel terug kunnen naar de vorige pagina (groepsleden dus). Nu kan ik natuurlijk gewoon een linkje "back" maken en dat het path er gewoon neer planten, maar ik meen me ook te herinneren dat er een hele simpele php code was hiervoor. Ik ben 'm alleen ff kwijt Heb erop gegoogled, maar kon 'm niet vinden

Iemand?
*BURP*
pi_31939719
javascript:history.go(-1);

maar das geen PHP maar wel heel erg simpel
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  FOK!-Schrikkelbaas donderdag 3 november 2005 @ 22:32:13 #216
1972 Swetsenegger
Egocentrische Narcist
pi_31942467
quote:
Op woensdag 2 november 2005 22:24 schreef ikke_ook het volgende:

[..]

Maar als je nou een server in de VS hebt staan krijg je wel een verkeerde datum terug, en als je hem als timestamp uit de database haalt kun je er een formaat van maken naar eigen wens. Maar ik zal dat DATESUB eens bekijken want het klinkt wel handig
Je kan met mysql de datum ook in elk gewenst formaat zettenmet de DATE_FORMAT functie

1SELECT name, DATE_FORMAT(datum,'%d-%m-%Y %H:%i') AS dutch_date FROM tabel
pi_31953274
quote:
Op donderdag 3 november 2005 22:32 schreef Swetsenegger het volgende:

[..]

Je kan met mysql de datum ook in elk gewenst formaat zettenmet de DATE_FORMAT functie
[ code verwijderd ]
Voor mij werken de timestamps alsnog veel sneller omdat MySQL daar een index op kan brouwen (dat gaat niet als je een veld met functies binnen MySQL gaat aanpassen) en ik in PHP vantevoren razendsnel kan bepalen wat een conditie voor de timestamp moet zijn a.d.h.v. de vele functies die daarvoor in PHP beschikbaar zijn ook heb ik dan makkelijker het verschil tussen zomer- en wintertijd onder controle (MySQL geeft met jouw veld twee uur per jaar dubbele waarden terug, bij timestamps niet).

Bovendien ben ik van mening dat het visuele formaat van de tijd in de frontend moet worden bepaald (het liefst de template) in plaats van de backend die de data aanlevert.
  FOK!-Schrikkelbaas vrijdag 4 november 2005 @ 11:46:25 #218
1972 Swetsenegger
Egocentrische Narcist
pi_31955160
quote:
Op vrijdag 4 november 2005 10:34 schreef JeRa het volgende:

[..]

Voor mij werken de timestamps alsnog veel sneller omdat MySQL daar een index op kan brouwen (dat gaat niet als je een veld met functies binnen MySQL gaat aanpassen) en ik in PHP vantevoren razendsnel kan bepalen wat een conditie voor de timestamp moet zijn a.d.h.v. de vele functies die daarvoor in PHP beschikbaar zijn ook heb ik dan makkelijker het verschil tussen zomer- en wintertijd onder controle (MySQL geeft met jouw veld twee uur per jaar dubbele waarden terug, bij timestamps niet).

Bovendien ben ik van mening dat het visuele formaat van de tijd in de frontend moet worden bepaald (het liefst de template) in plaats van de backend die de data aanlevert.
Tja, diverse mysql goeroe's vertellen me juist weer NOOIT een timestamp te gebruiken, maar altijd datetime omdat sql sneller is dan php in omzetten.

Het zal wel. Ik gebruik datetime omdat ik het eenvoudiger vind en er mee kan doen wat ik wil. Als jij de timestamp wil gebruiken. Be my guest
  vrijdag 4 november 2005 @ 12:51:40 #219
51748 H4ze
wait...what?
pi_31957233
quote:
Op donderdag 3 november 2005 21:16 schreef Chandler het volgende:
javascript:history.go(-1);

maar das geen PHP maar wel heel erg simpel
Hmm..liever geen javascript.

Maar toch bedankt voor de reply
*BURP*
pi_31959162
Mag ik hier misschien hulp vragen mbt een php-script? Ik heb een thumbnail-creator gedownload voor mijn linux bak. Echter bij het aanspreken van ./<flename> gaat ie heel mooi thumbnails maken van jpg's.. maar de gifs slaat ie totaal over.

Nou kom ik er gewoon niet meer uit.. dus als men er oren naar heeft om te helpen.. graag
Alle mine.nu-domeinen werken weer o/
pi_31959393
quote:
Op vrijdag 4 november 2005 13:48 schreef P0rt0 het volgende:
Mag ik hier misschien hulp vragen mbt een php-script? Ik heb een thumbnail-creator gedownload voor mijn linux bak. Echter bij het aanspreken van ./<flename> gaat ie heel mooi thumbnails maken van jpg's.. maar de gifs slaat ie totaal over.

Nou kom ik er gewoon niet meer uit.. dus als men er oren naar heeft om te helpen.. graag
Doe eens een phpinfo() in een PHP-script en kijk bij 'gd' of deze ook support heeft voor GIF-afbeeldingen. Mijn gok is namelijk van niet
pi_31959458
quote:
Op donderdag 3 november 2005 21:02 schreef H4ze het volgende:
Nu kan ik natuurlijk gewoon een linkje "back" maken en dat het path er gewoon neer planten, maar ik meen me ook te herinneren dat er een hele simpele php code was hiervoor. Ik ben 'm alleen ff kwijt
Browsen is cilentside. PHP is serverside. Als je een pagina terugwilt, zul je dat toch echt door middel van een linkje moeten doen met ofwel het pad ofwel de javascript-code daarvoor gebruiken. Je moet niet alles met PHP willen doen, en aangezien je geen javascript wilt gebruiken zou ik toch echt voor het linkje met het adres gaan
  FOK!-Schrikkelbaas vrijdag 4 november 2005 @ 13:56:45 #223
1972 Swetsenegger
Egocentrische Narcist
pi_31959464
quote:
Op vrijdag 4 november 2005 13:54 schreef JeRa het volgende:

[..]

Doe eens een phpinfo() in een PHP-script en kijk bij 'gd' of deze ook support heeft voor GIF-afbeeldingen. Mijn gok is namelijk van niet
Aanvullend, tussen GD versie 1.6 en 2.nogwat is er geen gif support geweest.
Op php.net staat welke versies gif support hebben.
pi_31959530
quote:
Op vrijdag 4 november 2005 13:56 schreef Swetsenegger het volgende:

[..]

Aanvullend, tussen GD versie 1.6 en 2.nogwat is er geen gif support geweest.
Op php.net staat welke versies gif support hebben.
Nog meer aanvullend ( ), lange tijd hebben veel hosters geen GIF-support aangezet vanwege patenten en licenties en al dat soort meuk. Sinds een tijdje geldt dat niet meer, maar het zou goed kunnen dat sommige hosters ervoor gekozen hebben dit nog uit te laten staan (of het onbewust nog niet aan hebben gezet).
pi_31960313
|
|
V
pi_31962153
Om ff verder op in te gaan

Heb ff stukje uit mijn phpnfo gepaste hier

1
2
3
4
5
6
7
8
9
10
11
12
13
gd
GD Support  enabled  
GD Version  bundled (2.0.28 compatible)  
FreeType Support  enabled  
FreeType Linkage  with freetype  
FreeType Version  2.1.10  
GIF Read Support  enabled  
GIF Create Support  enabled  
JPG Support  enabled  
PNG Support  enabled  
WBMP Support  enabled  
XPM Support  enabled  
XBM Support  enabled  



Ik moet eigenlijk wel mijn verhaal compleet maken;

Ik heb eergisteren een heel mooi scriptje geleeched (genethumb.sh) en die maakt alles behalve gif. (bmp doe ik niet aan, dus nooit getest). Echter heb ik het niet bij neer laten zitten, en heb ik toen op hotscripts gezocht naar een dergelijk programma.

Die doet het wel met Gif etc.. alleen is die zo bout gescripts, dat ik perse mijn php.ini op 100mB moest zetten (mem_limit), want anders wou hij bij de 8 mb buffer geen thumbnails creeeren.

Wat ik graag wil weten, is waarin het script die ik persoonlijk vet mooi vind, word geregeld wat wel/niet word gebruikt om thumbs te creeeren.. en ook; Waarom hij geen Gif's pakt.

Hierbij de code van het betreffende script

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
#!/bin/sh
# genethumb.sh - Génération de thumbnails mortels de ta mère
# (c)  3 Jan 1998: version 0.0.4 by Samuel Hocevar <sam@via.ecp.fr>
#     22 May 2000: version 0.0.5 by Samuel Hocevar <sam@via.ecp.fr>
#     15 Nov 2000: version 0.0.6 by Samuel Hocevar <sam@zoy.org>
#                    with code from Sven Hartge <hartge@ds9.argh.org>
#     13 Dec 2000: version 0.0.7 by Samuel Hocevar <sam@zoy.org>
#                    now compatible with old ImageMagick versions
#                    added --rows option
#     27 Apr 2003: version 0.0.8 by Sam Hocevar <sam@zoy.org>
#                    removed all bashisms
#                    now compatible with all ImageMagick versions
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

version=0.0.8
THFILE=index.html
THDIR=.xvpics
THEXT=png      # change this to jpeg or whatever you want
THWIDTH=120    # thumbnail width
THHEIGHT=90    # thumbnail height
THCOLS=5       # change to set table width -- 0 for no tables

if [ "$1" != "" ]
then
  THCOLS=$1
fi

echo "genethumb.sh v$version -- report bugs to Samuel Hocevar <sam@zoy.org>"
echo "usage: genethumb.sh [number of columns]"

if [ -w $THFILE ]
then
  echo "saving $THFILE to $THFILE~"
  mv -f $THFILE $THFILE~
fi

if [ ! -d $THDIR ]
then
  echo "creating thumbnail directory $THDIR"
  mkdir $THDIR
fi

cat > $THFILE << EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   <meta name="GENERATOR" content="genethumb.sh version $version" />
   <meta name="Description" content="thumbnails of $PWD" />
   <title>Index of $PWD</title>
   <style type="text/css">
      img { border: 1pt; }
      body { background: white; color: black;
             font-family: sans-serif, Arial, Helvetica;
             font-size: 9pt; margin: 5pt; }
      h2 { color: black; background: white; font-size: 14pt; }
      a { text-decoration: none; }
      td.center { text-align: center; }
      td.nowrap { white-space: nowrap; }
      blockquote.center { text-align: center; }
   </style>
</head>

<body>

<table border="0" width="100%"><tr><td>
<h2>Index of $PWD</h2></td>
<td align="right">generated by <a
 href="http://sam.zoy.org/projects/unix/genethumb.html">genethumb.sh</a>
 version $version </td></tr></table>

<hr />

<table cellspacing="5" border="0">
  <tr>
EOF

compteur=0
created=0
find . -type f -maxdepth 1 | sed 's,^\./,,' | while read file
do
  # on vérifie que l'image n'est pas déjà un thumbnail ou une page html, et a
  # une extension quelconque (à améliorer un peu)
  case "$file" in

    *~|*.html|*.htm)
      echo "* skipping $file"
      ;;

    *)
      failed=0
      newfile="$THDIR/tn_$file.$THEXT"
      echo -n "* $file: "

      if [ -r "$newfile" ]
      then
        echo "thumbnail already exists."
      else
        convert -geometry ${THWIDTH}x${THHEIGHT} "$file" "$newfile" >/dev/null 2>&1
        if [ ! -r "$newfile" ]
        then
          echo "failed creating."
     failed=1
        else
          echo "done."
        fi
      fi

      if [ "$failed" = "0" ]
      then

        created="`expr 0$created + 1`"
        if [ -e "$newfile.info" ]
        then
          read filesize coordinates oldcoords compat < "$newfile.info"
        fi

        if expr "$version" ">" "$compat" >/dev/null 2>&1
        then
          read oldcoords filesize << EOF
`identify -format '%wx%h %b' "$file" | head -1`
EOF
          coordinates=`identify -format '%wx%h' "$newfile" | head -1`
          rm -f "$newfile.info"
          echo $filesize $coordinates $oldcoords $version > "$newfile.info"
          echo "  $newfile.info written."
        fi

        j="`echo $file | cut -b1-20`"
        if [ "$file" != "$j" ]
        then
          j="`echo $file | cut -b1-17`..."
        fi

        cat >> $THFILE << EOF
      <td align="center">
        <a href="$file"><img alt="$file ($oldcoords)"
        width="`echo $coordinates | cut -f1 -dx`"
        height="`echo $coordinates | cut -f2 -dx`"
        src="$newfile" /><br />$j<br />$oldcoords ($filesize)</a>
      </td>
EOF
        compteur="`expr 0$compteur + 1`"
        if [ x"$compteur" = "x$THCOLS" ]
        then
          echo "  </tr><tr>" >> $THFILE
          compteur=0
        fi
      fi
  esac
done

echo "done."

cat >> $THFILE << EOF
  </tr>
</table>

</body>
</html>
EOF
Alle mine.nu-domeinen werken weer o/
  vrijdag 4 november 2005 @ 16:18:39 #227
2391 Jimmy
Door het bot
pi_31963699
quote:
Op vrijdag 4 november 2005 15:27 schreef P0rt0 het volgende:

Hierbij de code van het betreffende script
[ code verwijderd ]
Zo te zien gebruikt dat script helemaal geen GD, maar ImageMagick, dan zul je dus moeten checken of de ImageMagick versie die je hebt wel gif ondersteuning biedt.
Rock 'n Roll Motherfucker - Join the Rock 'n Roll Jihad!
www.last.fm/user/JimmyShelter
Jimmy Shelter
Sleazerock.nl
pi_31964803
EN hoe check ik dat?

ik weet wel dat "convert plaatje.gif plaat2.jpg" werkt.
Alle mine.nu-domeinen werken weer o/
pi_31969102
quote:
Op vrijdag 4 november 2005 14:24 schreef Roonaan het volgende:
|
|
V
Gefeliciteerd
pi_31973476
tnx
pi_31973574
quote:
Op vrijdag 4 november 2005 15:27 schreef P0rt0 het volgende:


Hierbij de code van het betreffende script
[ code verwijderd ]
Dit is geen php... dus ik vraag me af wat je wil doen met je phpinfo()?

Of zie ik iets over het hoofd?
  zaterdag 5 november 2005 @ 13:59:20 #232
65471 SkaterSam
Lurking Galore
pi_31989436
Ik had een vraag, en misschien heb ik het antwoord al, maar ik wilde graag weten hoe jullie hier mee omgaan.

Ik heb een database met 3 tabellen, laat ik ze 1 2 en 3 noemen. Als ik dan een bepaald formulier aanroep waarin informatie voor alle 3 de tabellen staan, dan wil ik dus al die informatie naar hun respectievelijke tabel uploaden (invoegen). Nu gebruik ik altijd een code waarbij stap voor stap de data in de tabellen wordt ingevoegd. Dus eerst 1, dan 2, dan 3. Mijn vraag is nu hoe dat ik kan voorkomen dat ze worden ingevoegd wanneer 1 van de 3 een error geeft, dus dan heb ik bijvoorbeeld 1 en 2 al gedaan, maar is er bij de derde een error. (Ik ga ook even uit van het gebruik van een MyISAM tabel structuur) Hoe kan ik er voor zorgen dat ze alledrie tegelijkertijd worden ingevoegd, maar als een fout geeft een error geven.

Ik weet dat het kan met InnoDB structuur, met ROLLBACK, dat heb ik ook al geprobeerd, maar ik wilde graag weten hoe jullie hier tegen aan kijken. wat het beste is, als je meerdere tabellen wilt invoegen.
Let's make life easy
Typo's are the demon spawn from hell !
pi_31990053
Een transaction gebruiken is de enige nette en betrouwbare oplossing.
Misschien dat je achteraf zou kunnen controleren of het inserten in alle 3 de tabellen is geslaagd en als dat niet het geval is alle rows deleten die wel ge-insert zijn. Maar dat blijft geknoei.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_32035123
Ik ben bezig met een class voor page pointers oftewel << < 1 2 3 4 5 6 > >> etc maar dan alles geheel aanpasbaar. Echter stuit ik op wat problemen, soms heb ik pointers die kleiner zijn dan 1 neemt af en toe meer pages dan maxpages en tevens stopt ie soms op de verkeerde plaats etc.

Wie wil eens een kijkje nemen om in te zien waar het fout gaat/

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
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
<?

session_start();
// << < 1 2 3 4 5 6 7 8 8 10 > >>


class pointer
{
    function setup($arr)
    {
        // arr => ("<<", "<", ">", ">")
        
        $this->text->_toStart     = $arr[0];
        $this->text->_toStartBack = $arr[1];
        $this->text->_toEnd       = $arr[2];
        $this->text->_toEndBack   = $arr[3];
    }
    
    function setupDisplay($type = NULL, $number)
    {
        switch ($type)
        {
            case "number":
                // 1 2 3 4 5 6 7 8
                $this->config->_displayType = 1;
            break;
            
            case "next":
                // < >
                $this->config->_displayType = 2;
                
            break;
            
            case "nextend":

                if ($number == 0)
                {
                    // << < > >>
                    $this->config->_displayType = 3;
                }
                else
                {
                    // << < (2) > >>
                    $this->config->_displayType = 4;
                }
            break;
            
            default;
                // << < 1 2 3 4 5 6 7 > >>
                $this->config->_displayType = 0;
            break;
        }
    }
    
    function setupText($font, $color, $selectedColor)
    {
        $this->config->_displayFont          = $font;
        $this->config->_displayColor         = $color;
        $this->config->_displaySelectedColor = $selectedColor;
    }
    
    function setupPage($page, $idname, $extra)
    {
        $this->config->_pageUrl   = $page;
        $this->config->_pageID    = $idname;
        $this->config->_pageExtra = $extra;
    }
    
    function setValues($from, $counter, $total, $maxPages)
    {
        $this->config->_pageCurrentID = $from;
        $this->config->_pageTotal     = ceil ($total / $counter)+1;
        $this->config->_pageMax       = $maxPages;
    }

    function getText()
    {
        $txt = "";

        if ($this->config->_pageExtra == "")
        {
            $linkAdd = "";
        }
        else
        {
            $linkAdd = "&" . $this->config->_pageExtra;
        }

        // first <<
        if ($this->config->_displayType == 3 OR $this->config->_displayType == 4)
        {
            // current page [1 (2) 3 4 5 6]
            if ($this->config->_pageCurrentID > 2)
            {
                $txt .= '<a href="' .
                        $this->config->_pageUrl .
                        "?" . $this->config->_pageExtra . '">' . $this->text->_toStart . '</a> ';
            }
        }
        
        // < (previous)
        if ($this->config->_displayType == 2 OR $this->config->_displayType == 3 OR $this->config->_displayType == 4)
        {
            // current page [ 1 (2) 3 4 5
            if ($this->config->_pageCurrentID > 1)
            {
                $txt .= '<a href="' .
                        $this->config->_pageUrl . "?" .
                        $this->config->_pageID . "=" .
                        ($this->config->_pageCurrentID -1) .
                        $linkAdd . '">' . $this->text->_toStartBack . '</a> ';

            }
        }
        
        
        //*
        if ($this->config->_pageTotal > $this->config->_pageMax)
        {
            $start = 1;
            $end   = $this->config->_pageTotal;
        }
        else
        {
            $mid = $this->config->_pageMax / 2;
            
            if ($this->config->_pageCurrentID - $mid > 1)
            {
                if ($this->config->_pageCurrentID + $mid > $this->config->_pageTotal)
                {
                    $start = $this->config->_pageTotal - $this->config->_pageMax;
                    $end   = $this->config->_pageTotal;
                }
                else
                {
                    $start = $this->config->_pageCurrentID - $mid;
                    $end   = $this->config->_pageCurrentID + $mid;
                }
            }
            else
            {
                $start = 1;
                $end   = $this->config->_pageMax;
            }
        }
        
        for ($x = $start; $x < $end; $x++)
        {
            if ($x == $this->config->_pageCurrentID)
            {
                // bold text in case of current
                $txt .= '<a href="' .
                        $this->config->_pageUrl . "?" .
                        $this->config->_pageID . "=" . $x .
                        $linkAdd . '"><strong>' . $x . '</strong></a> ';
            }
            else
            {
                $txt .= '<a href="' .
                        $this->config->_pageUrl . "?" .
                        $this->config->_pageID . "=" . $x .
                        $linkAdd . '">' . $x . '</a> ';
            }
        }

        // > (next)
        if ($this->config->_displayType == 2 OR $this->config->_displayType == 3 OR $this->config->_displayType == 4)
        {
            // current page [ 1 2 3 4 (5) 6]
            if (($this->config->_pageCurrentID + 2) <= $this->config->_pageTotal)
            {
                $txt .= '<a href="' .
                        $this->config->_pageUrl . "?" .
                        $this->config->_pageID . "=" .
                        ($this->config->_pageCurrentID +1) .
                        $linkAdd . '">' . $this->text->_toEnd . '</a> ';

            }
        }

        // last >>
        if ($this->config->_displayType == 3 OR $this->config->_displayType == 4)
        {
            // current page [1 2 3 (4) 5 6]
            if (($this->config->_pageCurrentID +3) <= $this->config->_pageTotal)
            {
                $txt .= '<a href="' .
                        $this->config->_pageUrl . "?" .
                        $this->config->_pageID . "=" .
                        $this->config->_pageTotal .
                        $linkAdd . '">' .
                        $this->text->_toEndBack . '</a> ';
            }
        }

        return $txt;

    }
}

if ($_SERVER['REQUEST_METHOD'] == "POST")
{
    $_SESSION['total']   = $_POST['total'];
    $_SESSION['counter'] = $_POST['counter'];
    $_SESSION['pages']   = $_POST['pages'];

    header("Location: pages.php");
    exit();
}

if (isSet($_SESSION['total']))
{
    $total   = $_SESSION['total'];
    $counter = $_SESSION['counter'];
    $pages   = $_SESSION['pages'];
?>
<form method="post">
<table>
<tr>
<td>Total?</td><td><input type="text" name="total" value="<?=$total;?>"></td>
<td>Counter</td><td><input type="text" name="counter" value="<?=$counter;?>"></td>
<td>Max pages</td><td><input type="text" name="pages" value="<?=$pages;?>"></td>
<td><input type="submit" name="add" value="Verander"></td>
</tr>
</table>
</form>
<?
}
else
{
    $_SESSION['total']   = 99;
    $_SESSION['counter'] = 10;
    $_SESSION['pages']   = 10;
?>
<form method="post">
<table>
<tr>
<td>Total?</td><td><input type="text" name="total" value="<?=$_SESSION['total'];?>"></td>
<td>Counter</td><td><input type="text" name="counter" value="<?=$_SESSION['counter'];?>"></td>
<td>Max pages</td><td><input type="text" name="pages" value="<?=$_SESSION['pages'];?>"></td>
<td><input type="submit" name="add" value="Verander"></td>
</tr>
</table>
</form>
<?
}


$blaat  = new pointer();
$blaat->setup(array("<<", "<", ">", ">>"));
$blaat->setupDisplay("numbers", 0);
$blaat->setupText("arial", "blue", "darkblue");
$blaat->setupPage("pages.php", "from", "test=23&true=false");
$blaat->setValues($_GET['from'], $_SESSION['counter'], $_SESSION['total'], $_SESSION['pages']);

echo $blaat->getText();

echo '<hr>';

$blaat1  = new pointer();
$blaat1->setup(array("<<", "<", ">", ">>"));
$blaat1->setupDisplay("next", 0);
$blaat1->setupText("arial", "blue", "darkblue");
$blaat1->setupPage("pages.php", "from", "test=23&true=false");
$blaat1->setValues($_GET['from'], $_SESSION['counter'], $_SESSION['total'], $_SESSION['pages']);

echo $blaat1->getText();

echo '<hr>';

$blaat2  = new pointer();
$blaat2->setup(array("First", "Previous", "Next", "Last"));
$blaat2->setupDisplay("nextend", 0);
$blaat2->setupText("arial", "blue", "darkblue");
$blaat2->setupPage("pages.php", "from", "test=23&true=false");
$blaat2->setValues($_GET['from'], $_SESSION['counter'], $_SESSION['total'], $_SESSION['pages']);

echo $blaat2->getText();

echo '<hr>';

$blaat3  = new pointer();
$blaat3->setup(array("First", "Previous", "Next", "Last"));
$blaat3->setupDisplay("nextend", 0);
$blaat3->setupText("arial", "blue", "darkblue");
$blaat3->setupPage("pages.php", "from", "test=23&true=false");
$blaat3->setValues($_GET['from'], $_SESSION['counter'], $_SESSION['total'], $_SESSION['pages']);

echo $blaat3->getText();

echo '<hr>';
?>
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_32048002
Je gebruikt properties die je niet gedefinieerd hebt
pi_32050441
Hoe bedoel je roonaan? ik zie um namelijk niet maar dat zal wel komen omdat ik er de heletijd in zit?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_32050593
Ik had alleen $_GET['from'] niet gedefenieerd; maar nu heb ik dat even opgelost en heb volgens mij de fout ook al gevonden ipv > heb ik bij de 'pages 12345678etc' nu < gebruikt.

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
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
<?

session_start();

error_reporting(E_ALL);
// << < 1 2 3 4 5 6 7 8 8 10 > >>


class pointer
{
    function setup($arr)
    {
        // arr => ("<<", "<", ">", ">")
        
        $this->text->_toStart     = $arr[0];
        $this->text->_toStartBack = $arr[1];
        $this->text->_toEnd       = $arr[2];
        $this->text->_toEndBack   = $arr[3];
    }
    
    function setupDisplay($type = NULL, $number)
    {
        switch ($type)
        {
            case "number":
                // 1 2 3 4 5 6 7 8
                $this->config->_displayType = 1;
            break;
            
            case "next":
                // < >
                $this->config->_displayType = 2;
                
            break;
            
            case "nextend":

                if ($number == 0)
                {
                    // << < > >>
                    $this->config->_displayType = 3;
                }
                else
                {
                    // << < (2) > >>
                    $this->config->_displayType = 4;
                }
            break;
            
            default;
                // << < 1 2 3 4 5 6 7 > >>
                $this->config->_displayType = 0;
            break;
        }
    }
    
    function setupText($font, $color, $selectedColor)
    {
        $this->config->_displayFont          = $font;
        $this->config->_displayColor         = $color;
        $this->config->_displaySelectedColor = $selectedColor;
    }
    
    function setupPage($page, $idname, $extra)
    {
        $this->config->_pageUrl   = $page;
        $this->config->_pageID    = $idname;
        $this->config->_pageExtra = $extra;
    }
    
    function setValues($from, $counter, $total, $maxPages)
    {
        $this->config->_pageCurrentID = $from;
        $this->config->_pageTotal     = ceil ($total / $counter)+1;
        $this->config->_pageMax       = $maxPages;
    }

    function getText()
    {
        $txt = "";

        if ($this->config->_pageExtra == "")
        {
            $linkAdd = "";
        }
        else
        {
            $linkAdd = "&" . $this->config->_pageExtra;
        }

        // first <<
        if ($this->config->_displayType == 3 OR $this->config->_displayType == 4)
        {
            // current page [1 (2) 3 4 5 6]
            if ($this->config->_pageCurrentID > 2)
            {
                $txt .= '<a href="' .
                        $this->config->_pageUrl .
                        "?" . $this->config->_pageExtra . '">' . $this->text->_toStart . '</a> ';
            }
        }
        
        // < (previous)
        if ($this->config->_displayType == 2 OR $this->config->_displayType == 3 OR $this->config->_displayType == 4)
        {
            // current page [ 1 (2) 3 4 5
            if ($this->config->_pageCurrentID > 1)
            {
                $txt .= '<a href="' .
                        $this->config->_pageUrl . "?" .
                        $this->config->_pageID . "=" .
                        ($this->config->_pageCurrentID -1) .
                        $linkAdd . '">' . $this->text->_toStartBack . '</a> ';

            }
        }
        
        
        //*
        if ($this->config->_pageTotal < $this->config->_pageMax)
        {
            $start = 1;
            $end   = $this->config->_pageTotal;
        }
        else
        {
            $mid = $this->config->_pageMax / 2;
            
            if ($this->config->_pageCurrentID - $mid > 1)
            {
                if ($this->config->_pageCurrentID + $mid > $this->config->_pageTotal)
                {
                    $start = $this->config->_pageTotal - $this->config->_pageMax;
                    $end   = $this->config->_pageTotal;
                }
                else
                {
                    $start = $this->config->_pageCurrentID - $mid;
                    $end   = $this->config->_pageCurrentID + $mid;
                }
            }
            else
            {
                $start = 1;
                $end   = $this->config->_pageMax;
            }
        }
        
        for ($x = $start; $x < $end; $x++)
        {
            if ($x == $this->config->_pageCurrentID)
            {
                // bold text in case of current
                $txt .= '<a href="' .
                        $this->config->_pageUrl . "?" .
                        $this->config->_pageID . "=" . $x .
                        $linkAdd . '"><strong>' . $x . '</strong></a> ';
            }
            else
            {
                $txt .= '<a href="' .
                        $this->config->_pageUrl . "?" .
                        $this->config->_pageID . "=" . $x .
                        $linkAdd . '">' . $x . '</a> ';
            }
        }

        // > (next)
        if ($this->config->_displayType == 2 OR $this->config->_displayType == 3 OR $this->config->_displayType == 4)
        {
            // current page [ 1 2 3 4 (5) 6]
            if (($this->config->_pageCurrentID + 2) <= $this->config->_pageTotal)
            {
                $txt .= '<a href="' .
                        $this->config->_pageUrl . "?" .
                        $this->config->_pageID . "=" .
                        ($this->config->_pageCurrentID +1) .
                        $linkAdd . '">' . $this->text->_toEnd . '</a> ';

            }
        }

        // last >>
        if ($this->config->_displayType == 3 OR $this->config->_displayType == 4)
        {
            // current page [1 2 3 (4) 5 6]
            if (($this->config->_pageCurrentID +3) <= $this->config->_pageTotal)
            {
                $txt .= '<a href="' .
                        $this->config->_pageUrl . "?" .
                        $this->config->_pageID . "=" .
                        $this->config->_pageTotal .
                        $linkAdd . '">' .
                        $this->text->_toEndBack . '</a> ';
            }
        }

        return $txt;

    }
}

if (isSet($_GET['from']))
{
    $from = $_GET['from'];
}
else
{
    $from = 0;
}

if ($_SERVER['REQUEST_METHOD'] == "POST")
{
    $_SESSION['total']   = $_POST['total'];
    $_SESSION['counter'] = $_POST['counter'];
    $_SESSION['pages']   = $_POST['pages'];

    header("Location: pages.php");
    exit();
}

if (isSet($_SESSION['total']))
{
    $total   = $_SESSION['total'];
    $counter = $_SESSION['counter'];
    $pages   = $_SESSION['pages'];
?>
<form method="post">
<table>
<tr>
<td>Total?</td><td><input type="text" name="total" value="<?=$total;?>"></td>
<td>Counter</td><td><input type="text" name="counter" value="<?=$counter;?>"></td>
<td>Max pages</td><td><input type="text" name="pages" value="<?=$pages;?>"></td>
<td><input type="submit" name="add" value="Verander"></td>
</tr>
</table>
</form>
<?
}
else
{
    $_SESSION['total']   = 99;
    $_SESSION['counter'] = 10;
    $_SESSION['pages']   = 10;
?>
<form method="post">
<table>
<tr>
<td>Total?</td><td><input type="text" name="total" value="<?=$_SESSION['total'];?>"></td>
<td>Counter</td><td><input type="text" name="counter" value="<?=$_SESSION['counter'];?>"></td>
<td>Max pages</td><td><input type="text" name="pages" value="<?=$_SESSION['pages'];?>"></td>
<td><input type="submit" name="add" value="Verander"></td>
</tr>
</table>
</form>
<?
}


$blaat  = new pointer();
$blaat->setup(array("<<", "<", ">", ">>"));
$blaat->setupDisplay("numbers", 0);
$blaat->setupText("arial", "blue", "darkblue");
$blaat->setupPage("pages.php", "from", "test=23&true=false");
$blaat->setValues($from, $_SESSION['counter'], $_SESSION['total'], $_SESSION['pages']);

echo $blaat->getText();

echo '<hr>';

$blaat1  = new pointer();
$blaat1->setup(array("<<", "<", ">", ">>"));
$blaat1->setupDisplay("next", 0);
$blaat1->setupText("arial", "blue", "darkblue");
$blaat1->setupPage("pages.php", "from", "test=23&true=false");
$blaat1->setValues($from, $_SESSION['counter'], $_SESSION['total'], $_SESSION['pages']);

echo $blaat1->getText();

echo '<hr>';

$blaat2  = new pointer();
$blaat2->setup(array("First", "Previous", "Next", "Last"));
$blaat2->setupDisplay("nextend", 0);
$blaat2->setupText("arial", "blue", "darkblue");
$blaat2->setupPage("pages.php", "from", "test=23&true=false");
$blaat2->setValues($from, $_SESSION['counter'], $_SESSION['total'], $_SESSION['pages']);

echo $blaat2->getText();

echo '<hr>';

$blaat3  = new pointer();
$blaat3->setup(array("First", "Previous", "Next", "Last"));
$blaat3->setupDisplay("nextend", 0);
$blaat3->setupText("arial", "blue", "darkblue");
$blaat3->setupPage("pages.php", "from", "test=23&true=false");
$blaat3->setValues($from, $_SESSION['counter'], $_SESSION['total'], $_SESSION['pages']);

echo $blaat3->getText();

echo '<hr>';
?>
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_32051432
$this->text, $this->config, etc.
pi_32055117
Hoe zou ik kunnen uitrekenen hoelang het is geleden sinds een bepaalde datum?
is daar een funcite voor?
pi_32056484
omzetten naar timestamps en van elkaar aftrekken?
pi_32056681
Dat kan ik nog ;-)
maar hoe maak ik daar dan weer dagen van?

Ik heb dus gewoon een couter getelt sinds 05-11-2005 en wil weten hoeveel hits per dag.
pi_32056738
Weet je wat een timestamp voorstelt?
Dat zijn het aantal seconden sinds 1 januari 1970.
Dus als je die 2 timestamps van elkaar aftrekt heb je het aantal seconden tussen die 2 data.
Dus als je dat getal deelt door 86400 (60sec*60min*24uur) dan heb je het aantal dagen tussen die 2 data
pi_32056780
Dat wist ik idd niet, maar dat vergeet ik nu iig niet meer
Maar ik kom uit op 730 dagen terwijl dat 2 zou moeten zijn.
Dus ik loop te prutsen

[ Bericht 33% gewijzigd door Darkomen op 07-11-2005 14:40:28 ]
pi_32057412
Verkeerde datu, notificatie
pi_32090893
Hoe kan je uitzoeken met welke zoektermen je pagina word gevonden zoals bijvoorbeeld netstat ook doet?
pi_32091549
quote:
Op dinsdag 8 november 2005 16:17 schreef Darkomen het volgende:
Hoe kan je uitzoeken met welke zoektermen je pagina word gevonden zoals bijvoorbeeld netstat ook doet?
Ik denk mbv van $_SERVER['HTTP_REFERER']
Stel dat onderstaande url in die variabele staat, bedenk jij dan maar eens waar ik op gezocht heb
1http://www.google.nl/search?hl=nl&q=darkomen&btnG=Google+zoeken&meta=


Ik neem aan dat je bedoelt met welke zoektermen mensen op jouw site uit zijn gekomen?
pi_32092072
Dat is ook het enige wat ik kon bedenken.
  FOK!-Schrikkelbaas woensdag 9 november 2005 @ 21:49:35 #248
1972 Swetsenegger
Egocentrische Narcist
pi_32129879
Kan ik in een javascript een php array zetten?

bv
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript">
document.write('
<?         
if ($menu[$i]==1){ 
        $menu[$i]=0;
        }else{
        $menu[$i]=1;
}
?>
')</script>
pi_32130414
Het kan wel, maar niet op die manier. Zo wel:

1
2
3
4
echo '<script type="text/javascript">
echo 'var foo = ["' . implode('","', $foo) . '"]''
echo 'alert(foo.length);
echo '</script>
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas woensdag 9 november 2005 @ 22:12:57 #250
1972 Swetsenegger
Egocentrische Narcist
pi_32130730
quote:
Op woensdag 9 november 2005 22:04 schreef SuperRembo het volgende:
Het kan wel, maar niet op die manier. Zo wel:
[ code verwijderd ]
Ja dat snap ik dat dat werkt .
En uiteraard werkt mijn code niet, want client side gaat geen vars in mijn serverside scripting zetten.

Ok, even de probleem omschrijving dan.
Ik heb een boomstructuur menu. Prachtige hierarchische database gebouwd. Menu is dus helemaal vanuit CMS zelf aan te maken.

Het menu bestaat uit maximaal 3 levels bv:

1
2
3
4
5
6
7
8
9
10
11
hoofditem
         subitem
                subsubitem
                subsubitem
         subitem
hoofditem
         subitem
                subsubitem
         subitem
               subsubitem
               subsubitem


Terwille van de overzichtelijkheid zijn de subsubitems ingeklapt, welke door een javascript zichtbaar worden wanneer je op het plusje klikt naast een subitem welke childeren heeft.

(kijk maar op pandora.edoorebeek.nl)

Maar... het menu wordt uiteraard op elke page geinclude. De plusjes welke ik op de index page heb uitgeklapt. Staan weer ingeklapt op de eerst volgende andere pagina welke ik laad.
Ik wil dus simpelweg elke keer als ik op de link klik welke via javascript het menu uitklapt, dat ik een array aanvul, met welk menu item open is.

Die array wil ik op de volgende page weer uitlezen en direkt die menuitems openen.

Hopenlijk is mijn probleem omschrijving duidelijk
pi_32131016
Aha op die manier. Is het dan misschien handiger om die informatie in een cookie te zetten? Een cookie is makkelijk te lezen / te schrijven / aan te passen met javascript en met php.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas woensdag 9 november 2005 @ 22:25:59 #252
1972 Swetsenegger
Egocentrische Narcist
pi_32131208
Mjah, ik ben altijd nog al aan het worstelen met javascript cookies en IE (expiration lukt nooit zoals het moet. Werkt altijd wel prima in FF en Opera gek genoeg)

Ik kan natuurlijk ook gewoon in mijn javascript plusjes swap script een array maken en die vervolgens in mijn link echo'en.

Hmz, het is moeilijker dan ik in eerste instantie dacht.
pi_32131983
Als je het zonder cookies doet, hoe wil je dan de huidige status van de tree overdragen naar de volgende pagina.
Je zou ook met XMLHttp de nieuwe status naar de server kunnen sturen en die dan opslaan in de sessie of db.

Als ik het goed heb werkt GoT ook met cookies voor de in/uitklap status. En dat werkt prima
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas woensdag 9 november 2005 @ 22:49:27 #254
1972 Swetsenegger
Egocentrische Narcist
pi_32132148
quote:
Op woensdag 9 november 2005 22:45 schreef SuperRembo het volgende:
Als je het zonder cookies doet, hoe wil je dan de huidige status van de tree overdragen naar de volgende pagina.
Gewoon in de link

pagina.php?menu=0-3-5

dus alleen de open items in je link meegeven.
Alleen heeft javascript geen foreach functie
quote:
Als ik het goed heb werkt GoT ook met cookies voor de in/uitklap status. En dat werkt prima
Ja dat geloof ik graag, maar ik heb hier javascript voor dummies ook al een aantal keer mijn javascript cookie code gepost. Niemand ziet een fout. Hij werkt ook prima in FF en Opera.... Maar NIET in IE (expired zodra je de browser sluit)

*denkt* nu is expiration niet zo'n groot probleem eigenlijk.

Een javascript cookie kan ik natuurlijk ook met php uitlezen. cookie is cookie toch? Kan een cookie een array bevatten? en zoja. Hoe vul ik die array? Elke keer als ik op een plusje klik (inklappen of uitklappen maakt niet uit) moet ik het cookie bijwerken
pi_32132533
Ik denk dat het makkelijker is om bij elke keer in- of uitklappen de cookie aan te passen dan om in elke link de menu status door te geven en weer goed af te handelen.

Javascript heeft wel een for-each hoor
1
2
3
4
var fruit = {a:'appel', b:'banaan',c:'citroen'};
for (i in fruit) {
   alert(i + ': ' + fruit[i]);
}
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas woensdag 9 november 2005 @ 23:03:47 #256
1972 Swetsenegger
Egocentrische Narcist
pi_32132752
quote:
Op woensdag 9 november 2005 22:59 schreef SuperRembo het volgende:
Ik denk dat het makkelijker is om bij elke keer in- of uitklappen de cookie aan te passen dan om in elke link de menu status door te geven en weer goed af te handelen.
De link komt uit database, dus is maar 1 regeltje code waar ik de links parse aanpassen
Maar we gaan toch maar voor het cookie

1
2
3
4
5
6
7
8
9
10
function exchange(id){
if (menu[id]==0){
menu[id]=1;
}else{
menu[id]=0;
}

// uit dan wel inklappen script

document,cookie="menu="+menu+";expires="+vervaldatum+"; path=/";

Dit zou moeten werken toch. Een array in een cookie?
-edit- hmz, nee dus cookie wordt wel gezet maar de content is leeg
quote:
Javascript heeft wel een for-each hoor
[ code verwijderd ]
waarom kom ik in google dan alleemaal zelf geschreven foreach functies tegen voor javascript?

[ Bericht 6% gewijzigd door Swetsenegger op 09-11-2005 23:12:43 ]
pi_32133105
Een array in een cookie? Gewoon join en split gebruiken.

Ik heb geen idee waarom je moeilijk zou moeten doen om een for-each voor elkaar te krijgen. Het enige dat je ff moet onthouden is dat je de index krijgt, niet het item zelf.
Het gaat trouwens ook fout als je bijvoorbeeld een push functie op de prototype van de array hebt gezet (voor IE5 compatibility). Dan loopt ie namelijk ook over die functie.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas woensdag 9 november 2005 @ 23:15:21 #258
1972 Swetsenegger
Egocentrische Narcist
pi_32133217
quote:
Op woensdag 9 november 2005 23:12 schreef SuperRembo het volgende:
Een array in een cookie? Gewoon join en split gebruiken.
Hmz, die bestaan ook in javascript? Maar een array in een cookie moet toch kunnen? anders moet ik de array joinen, in een cookie zetten, splitsen als er wat wijzigt.
quote:
Ik heb geen idee waarom je moeilijk zou moeten doen om een for-each voor elkaar te krijgen. Het enige dat je ff moet onthouden is dat je de index krijgt, niet het item zelf.
Het gaat trouwens ook fout als je bijvoorbeeld een push functie op de prototype van de array hebt gezet (voor IE5 compatibility). Dan loopt ie namelijk ook over die functie.
[/quote]
Hoe bedoel je? Ik moet wel weten welke er open staan. Dus ik moet een array zetten. Vervolgens moet ik op de nieuwe pagina voor elk item in mijn array de exchange functie aanroepen. Dan moet ik toch door die array loopen?
pi_32139037
Het Array object heeft een join method, het String object heeft een split method.
1
2
3
4
5
var a = [2, 3, 5, 7, 11];
var s = a.join(',');
alert(s);
var b = s.split(',');
alert(b.length);


IE5 kent geen Array.push() en Array.pop(). Als je die toch wil gebruiken dan kan je die methods toevoegen met Array.prototype.push = function(...){...}. Dat werkt prima. Het lastige is alleen dat als je dan met een for-each door een array loopt, dat je dan ook die push en pop functie als array element tegen komt.
Maar als je Array.prototype niet gebruikt dan is er niets aan de hand
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_32153428
Waarom werkt dit niet..

Het is de bedoeling dat een geupload file uitgelezen wordt en de data in die file in een database toegevoegd wordt.

De code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$table_name
="OBcontacts_temp";

$textfile = $_FILES['file']['tmp_name'];

chmod($textfile,0755);


$field_terminater="";
$line_terminator="\r\n";

$query = "LOAD DATA INFILE '$textfile' INTO TABLE $table_name (Data) ";

if (isset(
$field_terminater)) {
$query .= "FIELDS TERMINATED BY '$field_terminater'";
}
if (
strlen($line_terminator)&gt;0) {
$query .= "LINES TERMINATED BY '". stripslashes($line_terminator)."'";
}

$sql_query = $query;

$result= mysql_query($sql_query);
?>


ik vermoed dat de fout zit bij het $textfile = $_Files gebeuren.. iemand die me kan vertellen hoe t wel moet?
De database connectie is goed iig.
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_32153651
Kan ik als ik een pagina include, in de geinclude pagina zien welke pagina dat deed?

Dus bijv.:

Test.php:
1
2
3
4
<?php
php
include("test2.php");
?>


test2.php zou dan bijv. als output moeten geven 'test.php'. Het liefst nog met achtervoegsels (?ID=12) erbij ook. Maar das geen must

Kan dat?
pi_32160271
quote:
Op donderdag 10 november 2005 17:43 schreef LeeHarveyOswald het volgende:
Kan ik als ik een pagina include, in de geinclude pagina zien welke pagina dat deed?

Dus bijv.:

Test.php:
[ code verwijderd ]

test2.php zou dan bijv. als output moeten geven 'test.php'. Het liefst nog met achtervoegsels (?ID=12) erbij ook. Maar das geen must

Kan dat?
Ja dat kan volgens mij. Volgens mij zit dat ergens in het $_SERVER array.

-edit-

Ik denk trouwens dat $_SERVER['REQUEST_URI'] het juiste antwoord bevat.

[ Bericht 6% gewijzigd door ikke_ook op 10-11-2005 22:18:54 ]
  vrijdag 11 november 2005 @ 01:35:40 #263
51748 H4ze
wait...what?
pi_32168050
Ik ben bezig met een site en ik loop momenteel op iets vast. Ik heb ff een simpel voorbeeldje van m'n probleem gemaakt.

Het bestand "set.php":
1
2
3
4
5
6
7
8
9
10
<?php session_start(); ?>

html onzin, en op een gegeven moment iets van:
<?php 
$_SESSION['check1']='check 1 jo'; 
$_SESSION['check2']='check 2 jo'; 
?>
<br />
<br />
<?php include('http://haze.stoner.nl/test/print.php'); ?>


Hieronder het bestand "print.php" wat ie moet includen:
1
2
3
4
5
6
7
<?php session_start(); ?>

Dit is het bestand dat geinclude moet worden, en hiernaast moet ook de session geinclude worden

<?php 
echo $_SESSION['check1']; 
?>


Dat includen werkt wel, maar waarom include ie de sessie niet? Als ik eerst naar de pagina "set.php" browse, en vervolgens zelf naar de pagina "print.php" ga, dan zie ik de sessie wel geprint staan. Betekent dit dat de include-statement niet met Sessies om kan gaan? Of moet ik nog iets toevoegen (of doe ik iets enorm fout )

Hier staan de bestanden trouwens:
set.php
print.php

Bvd

[ Bericht 5% gewijzigd door H4ze op 11-11-2005 02:36:31 ]
*BURP*
pi_32171510
Je moet niet includen met "http://"

Doe gewoon include "print.php";

Waar hebben ze je dat geleerd dat je via de url moet includen?
  vrijdag 11 november 2005 @ 14:05:36 #265
51748 H4ze
wait...what?
pi_32178239


Ik geloof dat een klasgenoot 't ooit zo aan mij heeft verteld. Maar thnx iig, het werkt nu.
*BURP*
pi_32178262
Vanavond ga ik het proberen danku!
quote:
Op donderdag 10 november 2005 21:25 schreef ikke_ook het volgende:

[..]

Ja dat kan volgens mij. Volgens mij zit dat ergens in het $_SERVER array.

-edit-

Ik denk trouwens dat $_SERVER['REQUEST_URI'] het juiste antwoord bevat.
pi_32180861
quote:
Op vrijdag 11 november 2005 14:05 schreef H4ze het volgende:


Ik geloof dat een klasgenoot 't ooit zo aan mij heeft verteld. Maar thnx iig, het werkt nu.
Ah, vertel hem/haar even dat hij zulk "advies" voor zich moet houden en eerst een phpboek moet pakken.
pi_32194813
Een include werkt altijd lokaal, dus inderdaad niet via een URI. Een PHP script is in feite een scriptje welke lokaal wordt geïnterpreteerd en dus werken alle bestandsaanroepen (zoals includes, maar ook de functie move_uploaded_file() etc) ook lokaal.
pi_32194927
quote:
Op woensdag 9 november 2005 22:49 schreef Swetsenegger het volgende:
Gewoon in de link

pagina.php?menu=0-3-5
Ik persoonlijk ben op dit soort oplossingen principieel tegen. Je moet enkel het laatste punt meegeven en dan het pad recursief opbouwen. Dus je geeft:

pagina.php?menu=5

En het pad wordt dan met behulp van een recursieve functie dynamisch opgebouwd.
pi_32195303
quote:
Op zaterdag 12 november 2005 00:11 schreef FuifDuif het volgende:
Een include werkt altijd lokaal, dus inderdaad niet via een URI. Een PHP script is in feite een scriptje welke lokaal wordt geïnterpreteerd en dus werken alle bestandsaanroepen (zoals includes, maar ook de functie move_uploaded_file() etc) ook lokaal.
Als allow_url_fopen() true oplevert dan is het ook mogelijk om bestanden via een URI te includen. Files die niet vanuit het file system geinlcude worden, die kunnen worden geinterpreteerd door de server die de bestanden aanlevert. En als die uitkomst geen geldige php code is dan krijg je problemen.

Move_uploaded_file() is een ander geval. Die functie controleert eerst of het bestand dat je wilt verplaatsen wel van de upload afkomstig is, en zal alleen al daarom niet werken met URI's. Overigens kun je alleen bestanden verplaatsen die bij die specifieke aanroep van de pagina zijn geupload. Als je ze niet verplaatst dan worden ze weer verwijderd.
pi_32195397
Dat van die allow_url_fopen() wist ik niet. Wel handig om op die manier een soort scriptserver te realiseren om algemene routines aan te bieden aan verschillende applicaties die op verschillende fysiek gescheiden locaties draaien.
pi_32195505
quote:
Op zaterdag 12 november 2005 00:11 schreef FuifDuif het volgende:
Een include werkt altijd lokaal, dus inderdaad niet via een URI.
Dat is niet waar. Check de manual. Het kan wel (mits allow_url_fopen aan staat), maar het is niet aan te raden.


[edit]Trage reactie [/edit]
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_32195569
quote:
Op zaterdag 12 november 2005 00:43 schreef SuperRembo het volgende:

[..]

Dat is niet waar. Check de manual. Het kan wel (mits allow_url_fopen aan staat), maar het is niet aan te raden.

[edit]Trage reactie [/edit]
Ja, klopt, ik ben inmiddels op de hoogte . Het lijkt mij inderdaad niet aan te raden, tenzij het algemene routines zijn die speciaal op die manier worden aangeboden en ook specifiek met dat doel. Bijvoorbeeld een soort objectserver of iets dergelijks. Maar voor standaard lokaal maatwerk lijkt het mij de voorkeur genieten om gebruik te maken van lokale referenties.
pi_32195683
Weten dat het kan is ook voldoende. Da's een extra reden om te zorgen dat wat je in een include stopt ook veilig is.
Dus niet:
1
2
3
<?php
include($_GET['page']);
?>


Want zo weet je nooit wat voor code je binnenhaalt.
pi_32195830
quote:
Op zaterdag 12 november 2005 00:52 schreef Light het volgende:
Weten dat het kan is ook voldoende. Da's een extra reden om te zorgen dat wat je in een include stopt ook veilig is.
Dus niet:
[ code verwijderd ]

Want zo weet je nooit wat voor code je binnenhaalt.
Dat lijkt mij logisch. Ik zou ook niet weten waarom je het op die manier zou schrijven. Ik wil zelf altijd maximale controle op de GET en POST data die ik binnen krijg en probeer de client-side vrijheid wat dat betreft zoveel mogelijk te beperken tot het hoogst noodzakelijke. Dat betekent ook dat die data altijd door een strenge controle gaan voordat ze bijvoorbeeld worden opgenomen in een database transactie. Het is een kleine moeite, maar tegenwoordig oh zo belangrijk.
pi_32196154
Correct, user input kun je niet vertrouwen. Overigens zijn client-side beperkingen altijd te omzeilen, dus daarop kun je nooit vertrouwen.
pi_32199200
Zo ken ik een website met miljoenen bezoekers waarbij je via sql-injection willekeurige query's uit kunt voeren
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_32200709
ja dat had je reeds medegedeeld echter heb ik um nog steeds niet gehacked
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_32200731
zouden ze geld neer leggen? dan delen we de winst
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_32206390
Ik ben nu al meerdere keren met mijn zoekfunctie aan de gang gegaan maar het lukt me maar niet om hem zo te laten werken als ik wil. Echter, het lijkt me dat de oplossing redelijk makkelijk moet zijn. Hopelijk kunnen jullie me helpen.

Ik heb een database met een table genaamd 'lyriczz' waarin oa de fields 'artist' 'feat' en 'title' staan.

Als mensen nu een search doen moet de functie het volgende doen:

--> Zoek elke record waar elk woord in ten minste 1 van die drie fields voorkomen

Ik had het dus zo gedaan:
<?
$sql = 'SELECT song_id, artist, feat, title FROM `lyriczz` WHERE ';
$search_words = explode(' ', $searchstring, 5);
$first = true;
foreach ($search_words AS $tw) {
if ($first == false)
$sql .= 'AND ';
$first = false;
$sql .= "(`artist` LIKE '%$tw%') ";
$sql .= 'OR';
$sql .= "(`feat` LIKE '%$tw%') ";
$sql .= 'OR';
$sql .= "(`title` LIKE '%$tw%') ";
} ?>

Maar dat zoekt elke record waar 1 van de woorden in 1 van de fields voorkomen. Daar heb je dus niets aan, want hoe meer woorden je invult, hoe meer resultaten er uitkomen.

Dan dus mijn vraag: hoe zou ik dit moeten doen?
pi_32206989
Ik snap niet wat je bedoelt, maar de code die je hierboven neerzet is niet helemaal goed denk ik.
Werkt dit beter? :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
   $sql = 'SELECT song_id, artist, feat, title FROM `lyriczz` WHERE ';
   $search_words = explode(' ', $searchstring, 5);
   $first = true;
   foreach ($search_words AS $tw) {
      if ($first == false){
         $sql .= 'AND ';
         $first = false;
      }
      $sql .= "(`artist` LIKE '%$tw%') ";
      $sql .= 'OR';
      $sql .= "(`feat` LIKE '%$tw%') ";
      $sql .= 'OR';
      $sql .= "(`title` LIKE '%$tw%') ";
   } 
?>

Zoja, laat je code inspringen, dat is veeeel overzichtelijker, en print je query gewoon even op het scherm als hij niet teruggeeft wat je wil, want misschien zit er wel iets fout in je query, en dat kun je dan makkelijker zien.

En als je je code tussen codetags plaatst is het ook wat overzichtelijker voor ons om te lezen Dus zo: [code ]Hier je code[/ code] (En dan zonder spaties)
pi_32208261
Ok, mijn vraag is als volgt. Deze code werkt wel correct als in: hij brengt wel wat je eigenlijk vraagt aan de database. Maar wat ik wil is het volgend:

Zoek elke record waar elk woord in ten minste 1 van die drie fields voorkomen. Terwijl ie nu alle records op zoekt waar een van de gezochte woorden in een of andere field voorkomt. Hij moet dus preciezer worden. Het is een beetje moeilijk uit te leggen. Ik moet denk ik namelijk helemaal op nieuw beginnen en dit scriptje weggooien.

Als je bijvoorbeeld zoekt op "michael jackson thriller" moet ie het volgende doen:
1
2
3
4
5
if (michael is found in field 'artist' OR field 'title' OR field 'feat'
AND jackson is found in field 'artist' OR field 'title' OR field 'feat'
AND thriller is found in field 'artist' OR field 'title' OR field 'feat') {
echo info
}


Dit is natuurlijk helemaal geen code, maar hopelijk maakt het een beetje duidelijk wat ik wil Ik hoop dat je het zo een beetje begrijpt.. zou je er iets op weten?
pi_32209007
Zo dan?
Nu geeft hij alle rijen terug waar in 1 van de kolommen een van de search_words staat.
Dat is niet helemaal wat je hierboven hebt gezegd, maar ik denk wel dat je dit bedoelt. in je eerste post.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
   $sql = 'SELECT song_id, artist, feat, title FROM `lyriczz` WHERE ';
   $search_words = explode(' ', $searchstring, 5);
   $first = true;
   foreach ($search_words AS $tw) {
      if (!$first){
         $sql .= 'OR ';
         $first = false;
      }
      $sql .= "(`artist` LIKE '%$tw%') ";
      $sql .= 'OR';
      $sql .= "(`feat` LIKE '%$tw%') ";
      $sql .= 'OR';
      $sql .= "(`title` LIKE '%$tw%') ";
   }

Als ik je 2e post interpreteer krijg je de rij terug waarvan alle 3 de kolommen iets bevatten dat in de searchstring staat.

Ik zou trouwens een zoekpagina maken waarbij men aan kan geven of ze op artist, feat, of op title kunnen zoeken, want als iemand nou een searchstring in typt die uit heel veel woorden bestaat dan zal je een query krijgen die een hoop tijd in beslag gaat nemen (als je database een beetje groot is)
pi_32209276
Ehm ok bedankt. Maar het is nog steeds niet wat ik bedoel :-(

Wat ik zoek is iets waarbij alle drie de woorden voorkomen. In welk field of hoevaak maakt echter niet uit. Dus als maar 1 of 2 van de woorden worden gevonden dan moet ie het niet als match vinden, slechts als alle drie de woorden worden gevonden. Zo kan de bezoeker gewoon een woord van de artiest en ook een woord van de titel gebruiken om te zoeken.

Zou je weten hoe dit moet? (Sorry, het klinkt misschien een beetje als gezeur, maar zo bedoel ik het niet, ik weet alleen zelf niet zo goed meer wat ik hiermee moet doen)
pi_32209509
ok, dus toch zoals ik dacht dat je niet bedoelde
In dat geval is je eerst geval bijna goed, behalve dat je wat haakjes moet gebruiken, daar wordt het niet alleen duidelijker van voor jezelf, maar dan krijg je ook de goede resultaten
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   $sql = 'SELECT song_id, artist, feat, title FROM `lyriczz` WHERE ';
   $search_words = explode(' ', $searchstring, 5);
   $first = true;
   foreach ($search_words AS $tw) {
      if (!$first){
         $sql .= 'AND ';
         $first = false;
      }
      $sql .= "((`artist` LIKE '%$tw%') ";
      $sql .= 'OR';
      $sql .= "(`feat` LIKE '%$tw%') ";
      $sql .= 'OR';
      $sql .= "(`title` LIKE '%$tw%')) ";
   }


Denk ik...Ik durf niet meer zeker te zeggen dat het nou wel goed is
pi_32209579
Alleen bovenstaande zal dus 0 resultaten geven als 1 van de zoekwoorden niet in de database voorkomt. Dus stel dat iemand een lange titel invoert, en bij 1 van de woorden van de titel een typefout maakt, dan geeft je query 0 resultaten maargoed, je kunt niet alles hebben...
pi_32220673
Dit werkt nu zo'n beetje als in dat ie wel op 1 woord kan zoeken maar dat je een error krijgt als je op meer dan 1 woord zoekt. Als ik bijvoorbeeld op 'michael jackson' zoek krijg ik de volgende error:

Invalid query: You have an error in your SQL syntax near '((`artist` LIKE '%jackson%') OR(`feat` LIKE '%jackson%') OR(`title` LIKE '%jacks' at line 1

Zit te zoeken maar begrijp niet wat de fout is..
pi_32221284
En als je vlak voor de query die sql-string gaat printen, wat krijg je dan?
  zondag 13 november 2005 @ 06:21:10 #289
60702 kramer65
vs. Kramer65
pi_32224885
Beetje laat, maar dan krijg ik de volgende uitkomst:

SELECT song_id, artist, feat, title FROM `lyriczz` WHERE ((`artist` LIKE '%michael%') OR(`feat` LIKE '%michael%') OR(`title` LIKE '%michael%')) ((`artist` LIKE '%jackson%') OR(`feat` LIKE '%jackson%') OR(`title` LIKE '%jackson%')) ORDER BY `artist` ASC LIMIT 0, 1000

Invalid query: You have an error in your SQL syntax near '((`artist` LIKE '%jackson%') OR(`feat` LIKE '%jackson%') OR(`title` LIKE '%jacks' at line 1

Nog ideeen?
pi_32225116
Iemand suggesties waarom IE5.5 session cookies niet opslaat?

googlen en geklooi met de timestamp hebben tot nu toe geen effect gehad op het gedrag
pi_32225235
quote:
Op zondag 13 november 2005 06:21 schreef kramer65 het volgende:
Beetje laat, maar dan krijg ik de volgende uitkomst:

SELECT song_id, artist, feat, title FROM `lyriczz` WHERE ((`artist` LIKE '%michael%') OR(`feat` LIKE '%michael%') OR(`title` LIKE '%michael%')) ((`artist` LIKE '%jackson%') OR(`feat` LIKE '%jackson%') OR(`title` LIKE '%jackson%')) ORDER BY `artist` ASC LIMIT 0, 1000

Invalid query: You have an error in your SQL syntax near '((`artist` LIKE '%jackson%') OR(`feat` LIKE '%jackson%') OR(`title` LIKE '%jacks' at line 1

Nog ideeen?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
   $sql = 'SELECT song_id, artist, feat, title FROM `lyriczz` WHERE ';
   $search_words = explode(' ', $searchstring, 5);
   $first = true;
   foreach ($search_words AS $tw) {
      if (!$first){
         $sql .= 'AND ';
      }
      $first = false;
      $sql .= "((`artist` LIKE '%$tw%') ";
      $sql .= 'OR';
      $sql .= "(`feat` LIKE '%$tw%') ";
      $sql .= 'OR';
      $sql .= "(`title` LIKE '%$tw%')) ";
   }

Zo zou het moeten werken (voor de zoveelste keer )
pi_32228746
quote:
Op zondag 13 november 2005 08:39 schreef Ro�a� het volgende:
Iemand suggesties waarom IE5.5 session cookies niet opslaat?

googlen en geklooi met de timestamp hebben tot nu toe geen effect gehad op het gedrag
Laat de headers eens zien die de webserver naar de browser stuurt en vice versa, na het setten van de cookie?
pi_32229564
1
2
3
4
5
6
7
8
9
10
Date: Sun, 13 Nov 2005 12:31:10 GMT
Server: xxxxxx
X-Powered-By: xxxxxx
Set-Cookie: PHPSESSID=17c3828ca1885212dc6c3e89ff843437; domain=http://www.xxxxxx.nl/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 1996
Connection: close
Content-Type: text/html
pi_32230266
Stom vraagje; hoe achterhaal je die cookie gegevens/
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_32230553
quote:
Op zondag 13 november 2005 14:00 schreef Chandler het volgende:
Stom vraagje; hoe achterhaal je die cookie gegevens/
Gegevens staan opgeslagen in $_COOKIE["cookienaam"]
pi_32230617
quote:
Op zondag 13 november 2005 13:31 schreef Ro�a� het volgende:

[ code verwijderd ]
webdeveloper toolbar, show response headers.
  zondag 13 november 2005 @ 14:29:24 #297
60702 kramer65
vs. Kramer65
pi_32231081
@ ikke_ook

Super bedankt!! Hij doet het als een toeter!

Je kan je niet voorstellen hoe lang ik hieraan heb gezeten
pi_32231410
quote:
Op zondag 13 november 2005 13:31 schreef Ro�a� het volgende:

[ code verwijderd ]
Ik krijg toch de indruk dat die session-id cookie niet wordt omdat er geen expire-tijd opzit. De sessie zou dan eindigen op het moment dat je de browser sluit.
  zondag 13 november 2005 @ 22:32:21 #299
61660 Lariekoek
Zo, jij bent echt grappig.
pi_32244826
Iemand enig idee waarom ik bij de volgende code geen tekst terug krijg?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
php
$tekstvak
= "arr[]";
echo
"<form action='$PHP_SELF' METHOD='POST'>";
for (
$a=0; $a&lt; 3; $a++)
{
  echo
"<input type=text name='tekstvak' size=20><br>";
}
echo
"<input type=submit name='submit' value='Doe'>";
echo
"</form>";

for (
$a=0; $a&lt; 3; $a++)
{
echo
"$arr[$a]";
}
?>
la·rie·koek (de ~ (m.)) 1 onzin
pi_32245307
Dat "$a<"

Klopt dat wel, wat is dat voor vage constructie ?

Moet dat niet gewoon zijn:

for ($a = 0; $a < 4; $a++)

?
  FOK!-Schrikkelbaas zondag 13 november 2005 @ 22:47:20 #301
1972 Swetsenegger
Egocentrische Narcist
pi_32245352
quote:
Op zondag 13 november 2005 22:46 schreef FuifDuif het volgende:
Dat "$a<"

Klopt dat wel, wat is dat voor vage constructie ?

Moet dat niet gewoon zijn:

for ($a = 0; $a < 4; $a++)

?
bug in de php tag
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')