FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - Deel 83
Trollface.vrijdag 6 augustus 2010 @ 11:40

cd niet bijgeleverd

Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt :)

Vorige delen:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,75, 76, 77, 78, 79, 80, 81, 82, 83

Zie ook:
PHP Dataverwerking
Officiële PHP website
PHP Documentatie
MySQL Reference Manual
Yet Another PHP Faq
PHP Cheat Sheet
PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc

Tutorials:
W3Schools PHP
W3Schools SQL

Deze OP en instructies voor nieuw topic: http://wiki.fok.nl/index.php/OP/PHP
Trollface.vrijdag 6 augustus 2010 @ 11:44
Laatste post vorig topic:
quote:
Op vrijdag 6 augustus 2010 11:40 schreef Trollface. het volgende:
Wat komt eruit rollen?
Likkende_Lassievrijdag 6 augustus 2010 @ 11:50
Helemaal niets :?
urselvrijdag 6 augustus 2010 @ 11:54
:W
Trollface.vrijdag 6 augustus 2010 @ 11:58
Ik zie het al, DOMDocument::load() laadt vanaf een bestandsnaam; je moet DOMDocument::loadXML($result) doen.
JortKvrijdag 6 augustus 2010 @ 12:11
quote:
Op vrijdag 6 augustus 2010 11:54 schreef ursel het volgende:
:W
:W
Likkende_Lassievrijdag 6 augustus 2010 @ 12:18
quote:
Op vrijdag 6 augustus 2010 11:58 schreef Trollface. het volgende:
Ik zie het al, DOMDocument::load() laadt vanaf een bestandsnaam; je moet DOMDocument::loadXML($result) doen.
Nada!

1
2
3
4
5
6
7
8
<?php
$result 
soapCall('GetFacturen', array('sessieID' => $_SESSION['loginSession_ID'], 'Contractnummer' => $_SESSION['contractnummer']));


      
$objDOM = new DOMDocument();
      
$objDOM->loadXML($result); //make sure path is correct
      
print_r($objDOM->getElementsByTagName("Facturen"));
?>
:'(
Trollface.vrijdag 6 augustus 2010 @ 12:23
Heb je error_reporting aan staan? Krijg je errors? Wat geeft print_r? bool(false)? array()?
Likkende_Lassievrijdag 6 augustus 2010 @ 12:26
Error reporting is uit :o, ff aangezet, stom:


Warning: DOMDocument::loadXML() expects parameter 1 to be string, object given in /var/www/html/NCIS.xxxxxxxxxxxxxxxxxxx.nl/inc/functions/getFacturen.php on line 31


En print_r geeft: DOMNodeList Object ( )

[ Bericht 17% gewijzigd door Likkende_Lassie op 06-08-2010 12:41:02 ]
Trollface.vrijdag 6 augustus 2010 @ 12:28
En DOMDocument::loadXML($result->GetFacturenResult->any); ?
Likkende_Lassievrijdag 6 augustus 2010 @ 12:29
Had ik net ook gedaan, ik krijg dan:

Notice: DOMDocument::loadXML() [function.DOMDocument-loadXML]: xmlns: URI ncis is not absolute in Entity, line: 1 in /var/www/html/NCIS.xxxxxxxxxxxxxxxxxxx.nl/inc/functions/getFacturen.php on line 31

Warning: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Extra content at the end of the document in Entity, line: 1 in /var/www/html/NCIS.xxxxxxxxxxxxxxxxxxx.nl/inc/functions/getFacturen.php on line 31

print_r: DOMNodeList Object ( )

:o

[ Bericht 5% gewijzigd door Likkende_Lassie op 06-08-2010 12:40:49 ]
Trollface.vrijdag 6 augustus 2010 @ 12:30
Leuk, je krijgt invalid XML binnen via een SOAP-service.
Likkende_Lassievrijdag 6 augustus 2010 @ 12:36
Kan je misschien zien waar?:

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
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <GetFacturenResponse xmlns="http://ncis.nl/CSSWebservices">
         <GetFacturenResult>
            <xs:schema id="NewDataSet" targetNamespace="ncis" attributeFormDefault="qualified" elementFormDefault="qualified" xmlns:mstns="ncis" xmlns="ncis" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
               <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="ncis_x003A_Facturen" msdata:UseCurrentLocale="true">
                  <xs:complexType>
                     <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element name="Facturen">
                           <xs:complexType>
                              <xs:sequence>
                                 <xs:element name="Result" type="xs:string" minOccurs="0"/>
                                 <xs:element name="Remark" type="xs:string" minOccurs="0"/>
                                 <xs:element name="ContractID" type="xs:int" minOccurs="0"/>
                                 <xs:element name="ContractRegelID" type="xs:int" minOccurs="0"/>
                                 <xs:element name="ReferentieID" type="xs:int" minOccurs="0"/>
                                 <xs:element name="FactuurID" type="xs:int" minOccurs="0"/>
                                 <xs:element name="Soort" type="xs:string" minOccurs="0"/>
                                 <xs:element name="Type" type="xs:string" minOccurs="0"/>
                                 <xs:element name="Verrekenbaar" type="xs:boolean" minOccurs="0"/>
                                 <xs:element name="Termijn" type="xs:int" minOccurs="0"/>
                                 <xs:element name="Jaar" type="xs:int" minOccurs="0"/>
                                 <xs:element name="Betaalwijze" type="xs:string" minOccurs="0"/>
                                 <xs:element name="Rekeningnummer" type="xs:string" minOccurs="0"/>
                                 <xs:element name="Media" type="xs:string" minOccurs="0"/>
                                 <xs:element name="BedragExcl" type="xs:decimal" minOccurs="0"/>
                                 <xs:element name="BedragIncl" type="xs:decimal" minOccurs="0"/>
                                 <xs:element name="FactuurBedragIncl" type="xs:decimal" minOccurs="0"/>
                                 <xs:element name="VervalDatum" type="xs:dateTime" minOccurs="0"/>
                                 <xs:element name="FactuurOpenstaandBedragIncl" type="xs:decimal" minOccurs="0"/>
                              </xs:sequence>
                           </xs:complexType>
                        </xs:element>
                     </xs:choice>
                  </xs:complexType>
               </xs:element>
            </xs:schema>
            <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
               <DocumentElement xmlns="ncis">
                  <Facturen diffgr:id="Facturen1" msdata:rowOrder="0">
                     <ContractID>xxxxx</ContractID>
                     <FactuurID>631510</FactuurID>
                     <Soort>Factuur</Soort>
                     <Type>Voorschot</Type>
                     <Verrekenbaar>true</Verrekenbaar>
                     <Termijn>8</Termijn>
                     <Jaar>2010</Jaar>
                     <Betaalwijze>IC</Betaalwijze>
                     <Rekeningnummer>XXXXXXX</Rekeningnummer>
                     <Media>Voorschotfactuur_xxxxx_2010_8_20100803.pdf</Media>
                     <BedragExcl>1857200</BedragExcl>
                     <BedragIncl>2210000</BedragIncl>
                     <FactuurBedragIncl>2210000</FactuurBedragIncl>
                     <VervalDatum>2010-08-17T00:00:00+02:00</VervalDatum>
                  </Facturen>
                  <Facturen diffgr:id="Facturen2" msdata:rowOrder="1">
                     <ContractID>xxxxx</ContractID>
                     <FactuurID>627891</FactuurID>
                     <Soort>Factuur</Soort>
                     <Type>Voorschot</Type>
                     <Verrekenbaar>true</Verrekenbaar>
                     <Termijn>7</Termijn>
                     <Jaar>2010</Jaar>
                     <Betaalwijze>IC</Betaalwijze>
                     <Rekeningnummer>XXXXXXX</Rekeningnummer>
                     <Media>Voorschotfactuur_xxxxx_2010_7_20100703.pdf</Media>
                     <BedragExcl>1857200</BedragExcl>
                     <BedragIncl>2210000</BedragIncl>
                     <FactuurBedragIncl>2210000</FactuurBedragIncl>
                     <VervalDatum>2010-07-19T00:00:00+02:00</VervalDatum>
                  </Facturen>
                  <Facturen diffgr:id="Facturen3" msdata:rowOrder="2">
                     <ContractID>xxxxx</ContractID>
                     <FactuurID>620726</FactuurID>
                     <Soort>Factuur</Soort>
                     <Type>Voorschot</Type>
                     <Verrekenbaar>true</Verrekenbaar>
                     <Termijn>6</Termijn>
                     <Jaar>2010</Jaar>
                     <Betaalwijze>IC</Betaalwijze>
                     <Rekeningnummer>XXXXXXX</Rekeningnummer>
                     <Media>Voorschotfactuur_xxxxx_2010_6_20100604.pdf</Media>
                     <BedragExcl>1764800</BedragExcl>
                     <BedragIncl>2100000</BedragIncl>
                     <FactuurBedragIncl>2100000</FactuurBedragIncl>
                     <VervalDatum>2010-06-18T00:00:00+02:00</VervalDatum>
                  </Facturen>
                  <Facturen diffgr:id="Facturen4" msdata:rowOrder="3">
                     <ContractID>xxxxx</ContractID>
                     <FactuurID>617091</FactuurID>
                     <Soort>Factuur</Soort>
                     <Type>Voorschot</Type>
                     <Verrekenbaar>true</Verrekenbaar>
                     <Termijn>5</Termijn>
                     <Jaar>2010</Jaar>
                     <Betaalwijze>IC</Betaalwijze>
                     <Rekeningnummer>XXXXXXX</Rekeningnummer>
                     <Media>Voorschotfactuur_xxxxx_2010_5_20100510.pdf</Media>
                     <BedragExcl>1764800</BedragExcl>
                     <BedragIncl>2100000</BedragIncl>
                     <FactuurBedragIncl>2100000</FactuurBedragIncl>
                     <VervalDatum>2010-05-24T00:00:00+02:00</VervalDatum>
                  </Facturen>
                  <Facturen diffgr:id="Facturen5" msdata:rowOrder="4">
                     <ContractID>xxxxx</ContractID>
                     <FactuurID>613446</FactuurID>
                     <Soort>Factuur</Soort>
                     <Type>Voorschot</Type>
                     <Verrekenbaar>true</Verrekenbaar>
                     <Termijn>4</Termijn>
                     <Jaar>2010</Jaar>
                     <Betaalwijze>IC</Betaalwijze>
                     <Rekeningnummer>XXXXXXX</Rekeningnummer>
                     <Media>Voorschotfactuur_xxxxx_2010_4_20100414.pdf</Media>
                     <BedragExcl>1764800</BedragExcl>
                     <BedragIncl>2100000</BedragIncl>
                     <FactuurBedragIncl>2100000</FactuurBedragIncl>
                     <VervalDatum>2010-04-28T00:00:00+02:00</VervalDatum>
                  </Facturen>
                  <Facturen diffgr:id="Facturen6" msdata:rowOrder="5">
                     <ContractID>xxxxx</ContractID>
                     <FactuurID>610657</FactuurID>
                     <Soort>Factuur</Soort>
                     <Type>Voorschot</Type>
                     <Verrekenbaar>true</Verrekenbaar>
                     <Termijn>3</Termijn>
                     <Jaar>2010</Jaar>
                     <Betaalwijze>IC</Betaalwijze>
                     <Rekeningnummer>XXXXXXX</Rekeningnummer>
                     <Media>Voorschotfactuur_xxxxx_2010_3_20100319.pdf</Media>
                     <BedragExcl>1764800</BedragExcl>
                     <BedragIncl>2100000</BedragIncl>
                     <FactuurBedragIncl>2100000</FactuurBedragIncl>
                     <VervalDatum>2010-04-02T00:00:00+02:00</VervalDatum>
                  </Facturen>
                  <Facturen diffgr:id="Facturen7" msdata:rowOrder="6">
                     <ContractID>xxxxx</ContractID>
                     <FactuurID>608073</FactuurID>
                     <Soort>Factuur</Soort>
                     <Type>Voorschot</Type>
                     <Verrekenbaar>true</Verrekenbaar>
                     <Termijn>2</Termijn>
                     <Jaar>2010</Jaar>
                     <Betaalwijze>IC</Betaalwijze>
                     <Rekeningnummer>XXXXXXX</Rekeningnummer>
                     <Media>Voorschotfactuur_xxxxx_2010_2.pdf</Media>
                     <BedragExcl>1764700</BedragExcl>
                     <BedragIncl>2100000</BedragIncl>
                     <FactuurBedragIncl>2100000</FactuurBedragIncl>
                     <VervalDatum>2010-03-04T00:00:00+01:00</VervalDatum>
                  </Facturen>
                  <Facturen diffgr:id="Facturen8" msdata:rowOrder="7">
                     <ContractID>xxxxx</ContractID>
                     <FactuurID>603370</FactuurID>
                     <Soort>Factuur</Soort>
                     <Type>Voorschot</Type>
                     <Verrekenbaar>true</Verrekenbaar>
                     <Termijn>1</Termijn>
                     <Jaar>2010</Jaar>
                     <Betaalwijze>IC</Betaalwijze>
                     <Rekeningnummer>XXXXXXX</Rekeningnummer>
                     <Media>Voorschotfactuur_xxxxx_2010_1.pdf</Media>
                     <BedragExcl>1789700</BedragExcl>
                     <BedragIncl>2129700</BedragIncl>
                     <FactuurBedragIncl>2129700</FactuurBedragIncl>
                     <VervalDatum>2010-02-08T00:00:00+01:00</VervalDatum>
                  </Facturen>
               </DocumentElement>
            </diffgr:diffgram>
         </GetFacturenResult>
      </GetFacturenResponse>
   </soap:Body>
</soap:Envelope>



Dan kan ik 't namelijk doorgeven!
Trollface.vrijdag 6 augustus 2010 @ 12:41
Mijn fout, hij is niet helemaal fout, dat was gewoon een warning. Effe kijken.
Likkende_Lassievrijdag 6 augustus 2010 @ 12:44
thanksss ;) !
Trollface.vrijdag 6 augustus 2010 @ 12:50
Ben bijna klaar, heb wat code voor je zometeen.
peperclipvrijdag 6 augustus 2010 @ 12:55
helaas volg..mag er in september weer aan geloven :'(
Trollface.vrijdag 6 augustus 2010 @ 13:09
Provided that $result de resultaat-XML bevat:
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
<?php
$objDocument 
DOMDocument::loadXML($result);
$objItems $objDocument->getElementsByTagName('Facturen');
$arrData = array();

for(
$i 0$i $objItems->length$i++) {
    
$objItem $objItems->item($i);
    
    
$itemArray = array();
    
    
$itemArray['contract_id'] = intval($objItem->getElementsByTagName('ContractID')->item(0)->nodeValue);
    
$itemArray['factuur_id'] = intval($objItem->getElementsByTagName('FactuurID')->item(0)->nodeValue);
    
$itemArray['soort'] = $objItem->getElementsByTagName('Soort')->item(0)->nodeValue;
    
$itemArray['type'] = $objItem->getElementsByTagName('Type')->item(0)->nodeValue;
    
$itemArray['verrekenbaar'] =  ($objItem->getElementsByTagName('Verrekenbaar')->item(0)->nodeValue == 'true') ? TRUE FALSE;
    
$itemArray['termijn'] = intval($objItem->getElementsByTagName('Termijn')->item(0)->nodeValue);
    
$itemArray['jaar'] = intval($objItem->getElementsByTagName('Jaar')->item(0)->nodeValue);
    
$itemArray['betaalwijze'] = $objItem->getElementsByTagName('Betaalwijze')->item(0)->nodeValue;
    
$itemArray['rekeningnummer'] = $objItem->getElementsByTagName('Rekeningnummer')->item(0)->nodeValue;
    
$itemArray['media'] = $objItem->getElementsByTagName('Media')->item(0)->nodeValue;
    
$itemArray['bedrag_exclusief'] = intval($objItem->getElementsByTagName('BedragExcl')->item(0)->nodeValue);
    
$itemArray['bedrag_inclusief'] = intval($objItem->getElementsByTagName('BedragIncl')->item(0)->nodeValue);
    
$itemArray['factuurbedrag_inclusief'] = intval($objItem->getElementsByTagName('FactuurBedragIncl')->item(0)->nodeValue);
    
$itemArray['vervaldatum'] = $objItem->getElementsByTagName('VervalDatum')->item(0)->nodeValue;
    
$arrData[] = $itemArray;
}
var_dump($arrData);
?>
Likkende_Lassievrijdag 6 augustus 2010 @ 13:19
Super! Bedankt voor de moeite! ;)

Echter, nog wel deze error: Fatal error: Call to a member function getElementsByTagName() on a non-object in /var/www/html/NCIS.xxxxxxxxxxxx.nl/inc/functions/getFacturen.php on line 31
Trollface.vrijdag 6 augustus 2010 @ 13:21
En je weet zeker dat $result pure XML bevat? Hij probeert namelijk de XML in te laden die je eerder gepost hebt. Vervang anders loadXML($result) eens door loadXML($result->GetFacturenResult->any). :)
Likkende_Lassievrijdag 6 augustus 2010 @ 13:27
Het is precies dezelfde XML als ik zojuist had gepost :)
Ik had $result al eens vervangen voor $result->GetFacturenResult->any, maar ook dat werkt niet.

Ik heb nu het volgende gedaan:

1
2
3
4
5
6
7
8
9
<?php
$objDOM 
= new DOMDocument();
      
$objItems $objDOM->loadXML($result->GetFacturenResult->any); 
      
$objItems $objDOM->getElementsByTagName('Facturen');
      
$arrData = array();


etc...
?>
En dan krijg ik toch weer:

Warning: DOMDocument::loadXML() expects parameter 1 to be string, object given in /var/www/html/NCIS.xxxxxxx.nl/inc/functions/getFacturen.php on line 31
array(0) { }
Likkende_Lassievrijdag 6 augustus 2010 @ 13:29
Overigens kreeg ik met jou code dit:

Notice: DOMDocument::loadXML() [function.DOMDocument-loadXML]: xmlns: URI ncis is not absolute in Entity, line: 1 in /var/www/html/NCIS.xxxxxx.nl/inc/functions/getFacturen.php on line 30

Warning: DOMDocument::loadXML() [function.DOMDocument-loadXML]: Extra content at the end of the document in Entity, line: 1 in /var/www/html/NCIS.xxxxxxxxxxxxxxxx.nl/inc/functions/getFacturen.php on line 30

Fatal error: Call to a member function getElementsByTagName() on a non-object in /var/www/html/NCIS.xxxxxxxxxxxxx.nl/inc/functions/getFacturen.php on line 31
Trollface.vrijdag 6 augustus 2010 @ 13:37
Vreemd, de code werkt hier prima. Doe eens een var_dump op $result->GetFacturenResult->any?
Likkende_Lassievrijdag 6 augustus 2010 @ 13:40
bij deze :


string(6126) "5105631510FactuurVoorschottrue82010IC570216982Voorschotfactuur_5105_2010_8_20100803.pdf1857200221000022100002010-08-17T00:00:00+02:005105627891FactuurVoorschottrue72010IC570216982Voorschotfactuur_5105_2010_7_20100703.pdf1857200221000022100002010-07-19T00:00:00+02:005105620726FactuurVoorschottrue62010IC570216982Voorschotfactuur_5105_2010_6_20100604.pdf1764800210000021000002010-06-18T00:00:00+02:005105617091FactuurVoorschottrue52010IC570216982Voorschotfactuur_5105_2010_5_20100510.pdf1764800210000021000002010-05-24T00:00:00+02:005105613446FactuurVoorschottrue42010IC570216982Voorschotfactuur_5105_2010_4_20100414.pdf1764800210000021000002010-04-28T00:00:00+02:005105610657FactuurVoorschottrue32010IC570216982Voorschotfactuur_5105_2010_3_20100319.pdf1764800210000021000002010-04-02T00:00:00+02:005105608073FactuurVoorschottrue22010IC570216982Voorschotfactuur_5105_2010_2.pdf1764700210000021000002010-03-04T00:00:00+01:005105603370FactuurVoorschottrue12010IC570216982Voorschotfactuur_5105_2010_1.pdf1789700212970021297002010-02-08T00:00:00+01:00"
Trollface.vrijdag 6 augustus 2010 @ 13:41
Ahzo. En een var_dump op $result?
Likkende_Lassievrijdag 6 augustus 2010 @ 13:42
Komt i!:

object(stdClass)#2 (1) {
["GetFacturenResult"]=>
object(stdClass)#3 (1) {
["any"]=>
string(6126) "5105631510FactuurVoorschottrue82010IC570216982Voorschotfactuur_5105_2010_8_20100803.pdf1857200221000022100002010-08-17T00:00:00+02:005105627891FactuurVoorschottrue72010IC570216982Voorschotfactuur_5105_2010_7_20100703.pdf1857200221000022100002010-07-19T00:00:00+02:005105620726FactuurVoorschottrue62010IC570216982Voorschotfactuur_5105_2010_6_20100604.pdf1764800210000021000002010-06-18T00:00:00+02:005105617091FactuurVoorschottrue52010IC570216982Voorschotfactuur_5105_2010_5_20100510.pdf1764800210000021000002010-05-24T00:00:00+02:005105613446FactuurVoorschottrue42010IC570216982Voorschotfactuur_5105_2010_4_20100414.pdf1764800210000021000002010-04-28T00:00:00+02:005105610657FactuurVoorschottrue32010IC570216982Voorschotfactuur_5105_2010_3_20100319.pdf1764800210000021000002010-04-02T00:00:00+02:005105608073FactuurVoorschottrue22010IC570216982Voorschotfactuur_5105_2010_2.pdf1764700210000021000002010-03-04T00:00:00+01:005105603370FactuurVoorschottrue12010IC570216982Voorschotfactuur_5105_2010_1.pdf1789700212970021297002010-02-08T00:00:00+01:00"
}
}
Trollface.vrijdag 6 augustus 2010 @ 13:45
Maar waar is de volledige XML dan ergens? Want dat is alleen het factuur-gedeelte.
Likkende_Lassievrijdag 6 augustus 2010 @ 13:49
Ik heb werkelijk geen idee :? De xml die ik je elke keer liet zien had ik uit het programma soapUI.

Ik doe de soap call als volgt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
function soapCall($what$params){
   
$soapClient = new SoapClient("xxxxxxxx/login.asmx?WSDL");
   
$error 0;
   try {
      
$info $soapClient->__call($what, array($params));

   } catch (
SoapFault $fault) {
      
$error 1;
      return 
"
"
.$fault->faultcode."-".$fault->faultstring.".
"
;
   }

   if (
$info) {
      return 
$info;
   }
}


//hier roep ik de functie op:

      
$result soapCall('GetFacturen', array('sessieID' => $_SESSION['loginSession_ID'], 'Contractnummer' => $_SESSION['contractnummer']));
     

      
$objDocument DOMDocument::loadXML($result->GetFacturenResult->any);
      
$objItems $objDocument->getElementsByTagName('Facturen');
      
$arrData = array();
?>
Trollface.vrijdag 6 augustus 2010 @ 13:50
Kun je bij de var_dump van die any-zooi in de HTML-bron kijken en dat hier copypasten?
Likkende_Lassievrijdag 6 augustus 2010 @ 13:52
1string(6126) "<xs:schema xmlns:mstns="ncis" xmlns="ncis" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet" targetNamespace="ncis" attributeFormDefault="qualified" elementFormDefault="qualified"><xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="ncis_x003A_Facturen" msdata:UseCurrentLocale="true"><xs:complexType><xs:choice minOccurs="0" maxOccurs="unbounded"><xs:element name="Facturen"><xs:complexType><xs:sequence><xs:element name="Result" type="xs:string" minOccurs="0"/><xs:element name="Remark" type="xs:string" minOccurs="0"/><xs:element name="ContractID" type="xs:int" minOccurs="0"/><xs:element name="ContractRegelID" type="xs:int" minOccurs="0"/><xs:element name="ReferentieID" type="xs:int" minOccurs="0"/><xs:element name="FactuurID" type="xs:int" minOccurs="0"/><xs:element name="Soort" type="xs:string" minOccurs="0"/><xs:element name="Type" type="xs:string" minOccurs="0"/><xs:element name="Verrekenbaar" type="xs:boolean" minOccurs="0"/><xs:element name="Termijn" type="xs:int" minOccurs="0"/><xs:element name="Jaar" type="xs:int" minOccurs="0"/><xs:element name="Betaalwijze" type="xs:string" minOccurs="0"/><xs:element name="Rekeningnummer" type="xs:string" minOccurs="0"/><xs:element name="Media" type="xs:string" minOccurs="0"/><xs:element name="BedragExcl" type="xs:decimal" minOccurs="0"/><xs:element name="BedragIncl" type="xs:decimal" minOccurs="0"/><xs:element name="FactuurBedragIncl" type="xs:decimal" minOccurs="0"/><xs:element name="VervalDatum" type="xs:dateTime" minOccurs="0"/><xs:element name="FactuurOpenstaandBedragIncl" type="xs:decimal" minOccurs="0"/></xs:sequence></xs:complexType></xs:element></xs:choice></xs:complexType></xs:element></xs:schema><diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"><DocumentElement xmlns="ncis"><Facturen diffgr:id="Facturen1" msdata:rowOrder="0"><ContractID>5105</ContractID><FactuurID>631510</FactuurID><Soort>Factuur</Soort><Type>Voorschot</Type><Verrekenbaar>true</Verrekenbaar><Termijn>8</Termijn><Jaar>2010</Jaar><Betaalwijze>IC</Betaalwijze><Rekeningnummer>570216982</Rekeningnummer><Media>Voorschotfactuur_5105_2010_8_20100803.pdf</Media><BedragExcl>1857200</BedragExcl><BedragIncl>2210000</BedragIncl><FactuurBedragIncl>2210000</FactuurBedragIncl><VervalDatum>2010-08-17T00:00:00+02:00</VervalDatum></Facturen><Facturen diffgr:id="Facturen2" msdata:rowOrder="1"><ContractID>5105</ContractID><FactuurID>627891</FactuurID><Soort>Factuur</Soort><Type>Voorschot</Type><Verrekenbaar>true</Verrekenbaar><Termijn>7</Termijn><Jaar>2010</Jaar><Betaalwijze>IC</Betaalwijze><Rekeningnummer>570216982</Rekeningnummer><Media>Voorschotfactuur_5105_2010_7_20100703.pdf</Media><BedragExcl>1857200</BedragExcl><BedragIncl>2210000</BedragIncl><FactuurBedragIncl>2210000</FactuurBedragIncl><VervalDatum>2010-07-19T00:00:00+02:00</VervalDatum></Facturen><Facturen diffgr:id="Facturen3" msdata:rowOrder="2"><ContractID>5105</ContractID><FactuurID>620726</FactuurID><Soort>Factuur</Soort><Type>Voorschot</Type><Verrekenbaar>true</Verrekenbaar><Termijn>6</Termijn><Jaar>2010</Jaar><Betaalwijze>IC</Betaalwijze><Rekeningnummer>570216982</Rekeningnummer><Media>Voorschotfactuur_5105_2010_6_20100604.pdf</Media><BedragExcl>1764800</BedragExcl><BedragIncl>2100000</BedragIncl><FactuurBedragIncl>2100000</FactuurBedragIncl><VervalDatum>2010-06-18T00:00:00+02:00</VervalDatum></Facturen><Facturen diffgr:id="Facturen4" msdata:rowOrder="3"><ContractID>5105</ContractID><FactuurID>617091</FactuurID><Soort>Factuur</Soort><Type>Voorschot</Type><Verrekenbaar>true</Verrekenbaar><Termijn>5</Termijn><Jaar>2010</Jaar><Betaalwijze>IC</Betaalwijze><Rekeningnummer>570216982</Rekeningnummer><Media>Voorschotfactuur_5105_2010_5_20100510.pdf</Media><BedragExcl>1764800</BedragExcl><BedragIncl>2100000</BedragIncl><FactuurBedragIncl>2100000</FactuurBedragIncl><VervalDatum>2010-05-24T00:00:00+02:00</VervalDatum></Facturen><Facturen diffgr:id="Facturen5" msdata:rowOrder="4"><ContractID>5105</ContractID><FactuurID>613446</FactuurID><Soort>Factuur</Soort><Type>Voorschot</Type><Verrekenbaar>true</Verrekenbaar><Termijn>4</Termijn><Jaar>2010</Jaar><Betaalwijze>IC</Betaalwijze><Rekeningnummer>570216982</Rekeningnummer><Media>Voorschotfactuur_5105_2010_4_20100414.pdf</Media><BedragExcl>1764800</BedragExcl><BedragIncl>2100000</BedragIncl><FactuurBedragIncl>2100000</FactuurBedragIncl><VervalDatum>2010-04-28T00:00:00+02:00</VervalDatum></Facturen><Facturen diffgr:id="Facturen6" msdata:rowOrder="5"><ContractID>5105</ContractID><FactuurID>610657</FactuurID><Soort>Factuur</Soort><Type>Voorschot</Type><Verrekenbaar>true</Verrekenbaar><Termijn>3</Termijn><Jaar>2010</Jaar><Betaalwijze>IC</Betaalwijze><Rekeningnummer>570216982</Rekeningnummer><Media>Voorschotfactuur_5105_2010_3_20100319.pdf</Media><BedragExcl>1764800</BedragExcl><BedragIncl>2100000</BedragIncl><FactuurBedragIncl>2100000</FactuurBedragIncl><VervalDatum>2010-04-02T00:00:00+02:00</VervalDatum></Facturen><Facturen diffgr:id="Facturen7" msdata:rowOrder="6"><ContractID>5105</ContractID><FactuurID>608073</FactuurID><Soort>Factuur</Soort><Type>Voorschot</Type><Verrekenbaar>true</Verrekenbaar><Termijn>2</Termijn><Jaar>2010</Jaar><Betaalwijze>IC</Betaalwijze><Rekeningnummer>570216982</Rekeningnummer><Media>Voorschotfactuur_5105_2010_2.pdf</Media><BedragExcl>1764700</BedragExcl><BedragIncl>2100000</BedragIncl><FactuurBedragIncl>2100000</FactuurBedragIncl><VervalDatum>2010-03-04T00:00:00+01:00</VervalDatum></Facturen><Facturen diffgr:id="Facturen8" msdata:rowOrder="7"><ContractID>5105</ContractID><FactuurID>603370</FactuurID><Soort>Factuur</Soort><Type>Voorschot</Type><Verrekenbaar>true</Verrekenbaar><Termijn>1</Termijn><Jaar>2010</Jaar><Betaalwijze>IC</Betaalwijze><Rekeningnummer>570216982</Rekeningnummer><Media>Voorschotfactuur_5105_2010_1.pdf</Media><BedragExcl>1789700</BedragExcl><BedragIncl>2129700</BedragIncl><FactuurBedragIncl>2129700</FactuurBedragIncl><VervalDatum>2010-02-08T00:00:00+01:00</VervalDatum></Facturen></DocumentElement></diffgr:diffgram>"
Trollface.vrijdag 6 augustus 2010 @ 13:58
Hmm, als ik
1
2
3
4
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <GetFacturenResponse xmlns="http://ncis.nl/CSSWebservices">
         <GetFacturenResult>
vóór die string en
1
2
3
4
        </GetFacturenResult>
      </GetFacturenResponse>
   </soap:Body>
</soap:Envelope>
erachter plak, dan doet de functie het prima... misschien kun je dat als tussenoplossing proberen...
Likkende_Lassievrijdag 6 augustus 2010 @ 14:01
Het werkt! Maarrrrr wel een beetje een 'vieze' oplossing zo? Gek!
Trollface.vrijdag 6 augustus 2010 @ 14:02
quote:
Op vrijdag 6 augustus 2010 14:01 schreef Likkende_Lassie het volgende:
Het werkt! Maarrrrr wel een beetje een 'vieze' oplossing zo? Gek!
Ik snap het ook niet helemaal :P maar kun je wel uit de voeten met die array? :)
Likkende_Lassievrijdag 6 augustus 2010 @ 14:04
ja! Die is perfect! ;) Onwijs bedankt voor je tijd!
Likkende_Lassievrijdag 6 augustus 2010 @ 14:18
Heb even een nog viezere functie gemaakt :P

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function soapCallTransfer($name$result){
   return 
'<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <'
.$name.'Response xmlns="http://ncis.nl/CSSWebservices">
      <'
.$name.'Result>'
   
.$result.
   
' </'.$name.'Result>
      </'
.$name.'Response>
   </soap:Body>
</soap:Envelope>'
;
}
?>
Trollface.vrijdag 6 augustus 2010 @ 14:29
Moet kunnen, moet kunnen.
Likkende_Lassievrijdag 6 augustus 2010 @ 15:17
Edit, 't werkt!
Trollface.vrijdag 6 augustus 2010 @ 15:22
Is gewoon goed hoor? Behalve die notice van line 3 dan.
Likkende_Lassievrijdag 6 augustus 2010 @ 15:22
Ja idd, zie edit! mijn fout! :P
Chandlerzaterdag 7 augustus 2010 @ 14:21
tvp :)
SpeedyGJwoensdag 11 augustus 2010 @ 21:11
Ik weet niet of ik aan het juiste adres ben ;)

Ik heb een website waar ik promotie banners heb staan, de achtergrond zijn standaard wit (komt van een programma af), nu wil ik een plaatje als achtergrond hebben.
De banner zelf is van PHP gemaakt (nee niet door mij geschreven want ik ben hier een leek in :D ) , hoe moet ik dit gaan aanpakken?

Dit is de code voor de achtergrond kleur.

1
2
3
4
// Set colors we want to use...
// first background is a white background
#$background_color   = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$background_color   = imagecolorallocate($im, 247,247,247);
mstxwoensdag 11 augustus 2010 @ 21:45
quote:
Op woensdag 11 augustus 2010 21:11 schreef SpeedyGJ het volgende:
Ik weet niet of ik aan het juiste adres ben ;)

Ik heb een website waar ik promotie banners heb staan, de achtergrond zijn standaard wit (komt van een programma af), nu wil ik een plaatje als achtergrond hebben.
De banner zelf is van PHP gemaakt (nee niet door mij geschreven want ik ben hier een leek in :D ) , hoe moet ik dit gaan aanpakken?

Dit is de code voor de achtergrond kleur.
[ code verwijderd ]
http://php.net/manual/en/function.imagecopy.php
1
2
3
4
5
<?php
$background_color   
imagecolorallocate($im247,247,247);
$achtergrondplaatje imagecreatefromjpeg('achtergrondplaatje .jpg');
imagecopy($im$achtergrondplaatje 0000$breedte_van_de_banner$hoogte_van_de_banner);
?>
SpeedyGJwoensdag 11 augustus 2010 @ 22:13
-Oppgelost- :)

[ Bericht 90% gewijzigd door SpeedyGJ op 12-08-2010 03:55:00 ]
cablegunmasterzaterdag 14 augustus 2010 @ 18:33
ok ik heb een simpel probleempje.
ik heb verschillende includes.
nu wou ik hier een functie van maken.
Alleen de ene keer is hij een map naar onder dus met twee puntjes en de andere keer met een enkele punt.
Dit is dus een probleem voor mij.

dus kan ik niet op meerdere plekken Statische_pagina::Header_tonen();
gebruiken.


toen dacht ik :
include $base_url."/pages/leftarm.php";
maar dan krijg ik fallow url open fout en krijg ik functie problemen met andere functies :p.
ik probeer het nu zodanig te maken dat alles in klasses en functies komen :). Zodat er een soort van CMS onstaat. MVC model? :P


en mijn andere probleem was ik wou een functie maken die een titel meegaf aan de pagina alleen dan krijg ik dit idee in mijn hoofd.

1
2
3
4
5
6
7
8
<?php
function pagina_doorsturen($titel$url)
{
$titel hoe los ik dit op ? :o dat hij die meekrijgt.
Header($url);
exit;
}
?>
:P zover kom ik nu
#ANONIEMwoensdag 18 augustus 2010 @ 14:44
Ik ben voor mijn werk in phpmyadmin bezig en wil wat data veranderen.

in een kolom telefoonnummer vind ik meer dan 100 records waarbij het telnummer 0612345678 is, oftewel een foutief nummer. Nu wil ik graag van al die records in 1 sql script 0612345678 veranderen in $

dit zodat ik straks in een export niet alles handmatig nog moet opzoeken

hoe doe je dit het makkelijkst?
Lightwoensdag 18 augustus 2010 @ 14:46
Is het veld waar het telefoonnummer in staat een tekstveld of een numeriek veld?
#ANONIEMwoensdag 18 augustus 2010 @ 14:48
telefoonnummer varchar(100) latin1_swedish_ci
nummers staan volledig aan elkaar ( zonder spatie of - )
Lightwoensdag 18 augustus 2010 @ 15:07
Ok, dan heeft het zin om er een $ in te zetten :)

MySQL:
1UPDATE tabel SET telefoonnummer = '$' WHERE telefoonnummer = '0612345678';
#ANONIEMwoensdag 18 augustus 2010 @ 15:16
Super, dat gaat straks een hoop schelen
sjappiejwoensdag 18 augustus 2010 @ 16:52
quote:
Op woensdag 18 augustus 2010 14:48 schreef Estolan het volgende:
telefoonnummer varchar(100) latin1_swedish_ci
nummers staan volledig aan elkaar ( zonder spatie of - )
Lol!!! varchar(100) voor een telefoonnummer? ik weet niet wat jij verwacht van de nabije toekomst maar 100 is wel heel erg overdreven veel... 20 is meer dan zat!
GlowMousewoensdag 18 augustus 2010 @ 17:21
Hij kan nu wel 0900-SCOOT opslaan
captaintokyowoensdag 18 augustus 2010 @ 17:37
quote:
Op woensdag 18 augustus 2010 17:21 schreef GlowMouse het volgende:
Hij kan nu wel 0900-SCOOT opslaan
Met varchar(20) ook ;)
#ANONIEMwoensdag 18 augustus 2010 @ 18:47
Ja werk hier ook maar net, database bestond al sinds 2007. Dus ach, het werkt, daar ging het ze meer om :)
ReWoutwoensdag 18 augustus 2010 @ 23:53
Ik heb een klein vraagje over de IPv6 validator van Crisp,
http://crisp.tweakblogs.n(...)on-more-caveats.html
In de testcase is aangegeven dat het 2de element een IPv6 adres is.

Uit http://therealcrisp.xs4all.nl/blog/article-content/ipv6/ipv6.phps
$unitTests = array(
'2001:0db8:0000:0000:0000:0000:1428:57ab' => true,
'2001:0DB8:0000:0000:0000:0000:1428:57AB' => true,

Nu heb ik me niet geheel ingelezen in wat het precieze formaat moet zijn van IPv6... maar bij zijn regex (zie blog) zie ik op het einde /i staan wat betekend betekend dat de regex hoofdlettergevoelig is, http://www.regular-expressions.info/modifiers.html,... Mijn vraag is waarom valideert de regex hem dan toch... terwijl DB toch echt hoofdletters zijn :P?

if (strpos($IP, '::') === false)
{
return preg_match('/\A(?:[a-f0-9]{1,4}:){7}[a-f0-9]{1,4}\z/i', $IP);
}

[ Bericht 0% gewijzigd door ReWout op 19-08-2010 00:06:13 ]
GlowMousewoensdag 18 augustus 2010 @ 23:56
Crips?

/i zorgt voor hoofdletterongevoelig.
ReWoutdonderdag 19 augustus 2010 @ 00:07
Nevermind _O- klopt ja denk dat ik eventjes in de war ben misschien even maar stoppen met programmeren :P
#ANONIEMdonderdag 19 augustus 2010 @ 09:22
Kan je ook het volgende aanpassen??

Tabel voornaam / tussenvoegsel / achternaam
maar soms staat er: van / van der bij de achternaam ipv in tabel tussenvoegsel

Nu zag ik wel dat je dan dat kan aanpassen dat het bij tussenvoegsel staat, maar kan je dan ook een regel maken, zodat hij dat wat je verplaatst, ook verwijderd uit de tabel achternaam?

Vb.
Voornaam: Monique
Tussenvoegsel:
Achternaam: van der Broek

Moet worden:
Voornaam: Monique
Tussenvoegsel:van der
Achternaam: Broek

tussenvoegsel varchar(15) latin1_swedish_ci
voornaam varchar(100) latin1_swedish_ci
achternaam varchar(100) latin1_swedish_ci

[ Bericht 14% gewijzigd door #ANONIEM op 19-08-2010 09:24:04 ]
GlowMousedonderdag 19 augustus 2010 @ 12:31
Ken je mensen met een voornaam van 100 tekens?

Dit zal met replace kunnen, maar waterdicht is het niet. Een script schrijven is beter.
UPDATE tbl SET tussenvoegsel = 'van der' WHERE achternaam LIKE 'van der %'
UPDATE tbl SET achternaam=replace(achternaam, 'van der ', '')
#ANONIEMdonderdag 19 augustus 2010 @ 12:39
ok, ja die aantallen klopt idd geen bal van, dat eheft dus iemand 3jaar geleden zo in ekaar gezet, ik werk er net 2 weken :)
Xcaliburdonderdag 19 augustus 2010 @ 13:27
Over die lengte van die database velden he....

Wat is nou het grote nadeel van een varchar(100) veld bijvoorbeeld, als er nooit iets van 100 posities in komt?
Een te kort veld is een probleem, maar te lang maakt toch niks uit? :?
#ANONIEMdonderdag 19 augustus 2010 @ 14:28
lijkt me niet nee
Zhe-AnGeLdonderdag 19 augustus 2010 @ 14:29
Ik heb een oud script...wel een leuke
maar het is php 4
hoe kan ik dit het simpelste omzetten naar php 5 is daar een programma voor?

Had een programmaatje gevonden maar die werkt niet op mijn pc
Windows 7
Lightdonderdag 19 augustus 2010 @ 15:20
quote:
Op donderdag 19 augustus 2010 14:29 schreef Zhe-AnGeL het volgende:
Ik heb een oud script...wel een leuke
maar het is php 4
hoe kan ik dit het simpelste omzetten naar php 5 is daar een programma voor?

Had een programmaatje gevonden maar die werkt niet op mijn pc
Windows 7
Als het script goed opgezet is, werkt het waarschijnlijk meteen of met wat kleine aanpassingen in php5. Ik zou geen omzetprogramma weten.
wobbelzaterdag 21 augustus 2010 @ 11:35
Ik heb het volgende script die automatisch links maakt

1
2
3
4
5
6
7
8
9
10
<?php
$bericht 
eregi_replace("(^|[\n\r\t])((http(s?)://)(www\.)?([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r\t]*)*)""<a href=\"\\2\"target=\"_blank\">\\2</a>",$bericht);
$bericht eregi_replace("(^|[\n\r\t])((http(s?)://)(www\.)?([a-z0-9_-]+([a-z0-9_-]+)+)(/[^/ \n\r\t]*)*)""<a href=\"\\2\"target=\"_blank\">\\2</a>",$bericht);
$bericht eregi_replace("(^|[\n\r\t])([a-z_-][a-z0-9\._-]*@[a-z0-9_-]+(\.[a-z0-9_-]+)+)","<a href=\"mailto:\\2\">\\2</a>",$bericht);
$bericht eregi_replace("(^|[\n\r\t])(www\.([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","<a href=\"http://\\2\" target=\"_blank\">\\2</a>",$bericht);
$bericht eregi_replace("(^|[\n\r\t])(www\.([a-z0-9_-]+([a-z0-9_-]+)+)(/[^/ \n\r]*)*)","<a href=\"http://\\2\" target=\"_blank\">\\2</a>",$bericht);
$bericht eregi_replace("(^|[\n\r\t])(ftp://([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","<a href=\"\\2\" target=\"_blank\">\\2</a>",$bericht);
$bericht eregi_replace("(^|[\n\r\t])(ftp://([a-z0-9_-]+([a-z0-9_-]+)+)(/[^/ \n\r]*)*)","<a href=\"\\2\" target=\"_blank\">\\2</a>",$bericht);
$bericht eregi_replace("(^|[\n\r\t])(ftp\.([a-z0-9_-]+(\.[a-z0-9_-]+)+)(/[^/ \n\r]*)*)","<a href=\"\\2\" target=\"_blank\">\\2</a>",$bericht);
?>
Als ik nu een bericht heb met http://www.google.nl erin die hij automatisch omzet naar een klikbare link. Als ik nu na google.nl direct een ENTER doe krijg ik de volgende link die niet werkt:

1<a href="http://3.beneluxgaminglan.nl/forum_topic?id=5<br"target="_blank">http://3.beneluxgaminglan.nl/forum_topic?id=5<br</a> />
Dat krijg ik niet gefixt :{
MrNileszondag 22 augustus 2010 @ 08:37
ik krijg nogal veel spam op een websiteformulier
nu zag ik een methode om een controle te doen op een hidden veld
als dit veld ingevuld = dus spam
maar hoe verwerk ik dit in mijn pagina?

ik heb al iets van dit gevonden

if (ereg('[^A-Za-z0-9]', $check)) {
exit;}

en dit ook niet
$check= "^([0-9a-zA-Z])";
if( ereg ($check, $!controle)) {
echo"bad characters";
exit; }


maar dat werkt niet...hoe wel?


om velden te controleren of ze ingevuld zijn gebruik ik dit:
1
2
3
if (!$organisatie) {
echo "u heeft geen organisatie ingevuld!";
exit; }
is gewoon copy paste van internet...geen idee dus eigenlijk wat ik doe :-)

als ik dus
1
2
3
if ($controle) {
echo bad character!";
exit; }
doe...zonder het ! dan werkt het
helemaal geen ereg
kan iemand mij wel verklaren waarom dit zo werkt...en wat het ! wil zeggen

[ Bericht 33% gewijzigd door MrNiles op 22-08-2010 09:05:20 ]
wobbelzondag 22 augustus 2010 @ 09:16
Nu controleer je alleen of $organisatie bestaat...
Als je een formulier POST controleer je of het veld bestaat met:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if ( isset ( $_POST['organisatie'] ) AND $_POST['organisatie'] != "" ) {
}

// wel ingevuld

}
else
{

//niet ingevuld

}
?>
MrNileszondag 22 augustus 2010 @ 09:19
quote:
Op zondag 22 augustus 2010 09:16 schreef wobbel het volgende:
Nu controleer je alleen of $organisatie bestaat...
Als je een formulier POST controleer je of het veld bestaat met:
[ code verwijderd ]


die snap ik niet helemaal

maar ik heb boven in mijn "verzend.php" wel dit opgenomen

$controle= htmlspecialchars($_POST['controle']);

komt dat op het zelfde neer????
Lightzondag 22 augustus 2010 @ 09:20
quote:
Op zondag 22 augustus 2010 09:16 schreef wobbel het volgende:
Nu controleer je alleen of $organisatie bestaat...
Als je een formulier POST controleer je of het veld bestaat met:
[ code verwijderd ]


Wat je daar doet kan korter:
1
2
3
<?php
if ( !empty ( $_POST['organisatie'] ) ) {
?>


[ Bericht 16% gewijzigd door Light op 22-08-2010 09:40:40 ]
GlowMousezondag 22 augustus 2010 @ 11:50
quote:
Op zaterdag 21 augustus 2010 11:35 schreef wobbel het volgende:
Ik heb het volgende script die automatisch links maakt
[ code verwijderd ]

Als ik nu een bericht heb met http://www.google.nl erin die hij automatisch omzet naar een klikbare link. Als ik nu na google.nl direct een ENTER doe krijg ik de volgende link die niet werkt:
[ code verwijderd ]

Dat krijg ik niet gefixt :{
Zorg dat aan het eind van je pattern, waar [^/ \n\r\t] staat, ook de < uitgesloten wordt. Of voer de nl2br pas uit bij de weergave.
MrNilesmaandag 23 augustus 2010 @ 14:06
van google heb ik nu reCaptcha op mijn website gezet maar ik krijg steeds de melding:
Could not open socket
wat is dat?
GlowMousemaandag 23 augustus 2010 @ 14:08
een leuke beveiliging van je hoster.
MrNilesmaandag 23 augustus 2010 @ 14:12
quote:
Op maandag 23 augustus 2010 14:08 schreef GlowMouse het volgende:
een leuke beveiliging van je hoster.
dus ik kan dat captcha van google niet gebruiken?
GlowMousemaandag 23 augustus 2010 @ 14:16
nope, niet met deze hoster. Misschien dat je met curl nog wat kunt coden.
MrNilesmaandag 23 augustus 2010 @ 14:19
quote:
Op maandag 23 augustus 2010 14:16 schreef GlowMouse het volgende:
nope, niet met deze hoster. Misschien dat je met curl nog wat kunt coden.
hmm..balen want ik krijg echt veel spam
andere manieren om spam te minderen?
is het trouwens nodig om het mailadres voor de bot te verbergen?
GlowMousemaandag 23 augustus 2010 @ 14:30
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
<?php
/**
 * Submits an HTTP POST to a reCAPTCHA server
 * @param string $host
 * @param string $path
 * @param array $data
 * @param int port
 * @return array response
 */
function _recaptcha_http_post($host$path$data$port 80) {

        
$req _recaptcha_qsencode ($data);

        
$http_request  "POST $path HTTP/1.0\r\n";
        
$http_request .= "Host: $host\r\n";
        
$http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
        
$http_request .= "Content-Length: " strlen($req) . "\r\n";
        
$http_request .= "User-Agent: reCAPTCHA/PHP\r\n";
        
$http_request .= "\r\n";
        
$http_request .= $req;

        
$response '';
        if( 
false == ( $fs = @fsockopen($host$port$errno$errstr10) ) ) {
                die (
'Could not open socket');
        }

        
fwrite($fs$http_request);

        while ( !
feof($fs) )
                
$response .= fgets($fs1160); // One TCP-IP packet
        
fclose($fs);
        
$response explode("\r\n\r\n"$response2);

        return 
$response;
}
?>
vervangen door
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
<?php
/**
 * Submits an HTTP POST to a reCAPTCHA server
 * @param string $host
 * @param string $path
 * @param array $data
 * @param int port
 * @return array response
 */
function _recaptcha_http_post($host$path$data$port 80) {

    
$req _recaptcha_qsencode ($data);
    
$url 'http://' $host $path;

    
$ch curl_init();
    
    
curl_setopt($chCURLOPT_URL$url);
    
curl_setopt($chCURLOPT_POSTtrue);
    
curl_setopt($chCURLOPT_POSTFIELDS$req);
    
curl_setopt($chCURLOPT_USERAGENT'reCAPTCHA/PHP');
    
$response curl_exec($ch);
    
curl_close($ch);

    
$response explode("\r\n\r\n"$response2);
    return 
$response;
}
?>
MrNilesmaandag 23 augustus 2010 @ 14:41
ff proberen zometeen
MrNilesmaandag 23 augustus 2010 @ 14:52
werkt niet...moet ik nog ergens mijn eigen website adres ofzoietsdergelijks invullen?

1
2
3
4
Notice: Undefined offset: 1 in /.../.../recaptchalib.php on line 173

Notice: Undefined offset: 1 in /.../.../recaptchalib.php on line 181
The reCAPTCHA wasn't entered correctly. Go back and try it again.(reCAPTCHA said: )
MrNilesmaandag 23 augustus 2010 @ 14:53
dit vind ie niet leuk

1
2
3
4
5
6
7
8
9
10
11
        $answers = explode ("\n", $response [1]); ([regel 173])
        $recaptcha_response = new ReCaptchaResponse();

        if (trim ($answers [0]) == 'true') {
                $recaptcha_response->is_valid = true;
        }
        else {
                $recaptcha_response->is_valid = false;
                $recaptcha_response->error = $answers [1]; ([regel 181])
        }
        return $recaptcha_response;
klopt dat [1]??

[ Bericht 100% gewijzigd door MrNiles op 23-08-2010 15:25:55 ]
Tuvai.netmaandag 23 augustus 2010 @ 20:13
TeeVeePeeHaaPee.

Ben maar weer overgeschakeld naar CodeLobster als PHP IDE. VS.PHP voor Visual Studio 2010 crashte maar telkens. :r
cablegunmastermaandag 23 augustus 2010 @ 23:24
quote:
Op maandag 23 augustus 2010 14:53 schreef MrNiles het volgende:
dit vind ie niet leuk
[ code verwijderd ]

klopt dat [1]??
hele script? perhaps?
probleem is de waarde bestaat niet. er is geen waarde op die regel en 181 en 173 dus krijg je die fout.
bug in het script :) herschrijven! hup :P
Tuvai.netdinsdag 24 augustus 2010 @ 22:54
Puur uit nieuwsgierigheid: Wie maakt er hier eigenlijk allemaal daadwerkelijk documentatie van zijn/haar code en/of database? :D ERDs? Klassendiagrammen? Wat gebruiken jullie voor versiebeheer? :)
#ANONIEMwoensdag 25 augustus 2010 @ 14:46
Hoe haal je makkelijk dubbele invoeren uit een database.

We hebben nu 12.000gegevens, maar ik wil via email ( of voornaam+achternaam) / ip adres de dubbele data eruit gaan vissen.

Valt hier een script voor te schrijven?
email varchar(100) latin1_swedish_ci
Darkomenwoensdag 25 augustus 2010 @ 15:09
Ja, entries doorlopen, kijken of er meer dan 2 rows met dezelfde waarde voorkomen.
#ANONIEMwoensdag 25 augustus 2010 @ 15:12
Ja dat snap ik, dat is handmatig, maar beetje omslachtig als het gaat om 12000 records
ralfiewoensdag 25 augustus 2010 @ 16:50
select id from langetabel group by email having count(*) > 1

uit mn hoofd (?) zou alle dubbele rijen terug moeten geven
Xcaliburwoensdag 25 augustus 2010 @ 17:40
quote:
Op woensdag 25 augustus 2010 15:12 schreef Estolan het volgende:
Ja dat snap ik, dat is handmatig, maar beetje omslachtig als het gaat om 12000 records
Daar kan je natuurlijk ook een script voor schrijven :)
sorteren op email, en de huidige waarde met de vorige vergelijken.... ook niet zo ingewikkeld :)
cablegunmasterwoensdag 25 augustus 2010 @ 19:21
quote:
Op dinsdag 24 augustus 2010 22:54 schreef Tuvai.net het volgende:
Puur uit nieuwsgierigheid: Wie maakt er hier eigenlijk allemaal daadwerkelijk documentatie van zijn/haar code en/of database? :D ERDs? Klassendiagrammen? Wat gebruiken jullie voor versiebeheer? :)
Documentatie altijd :).
Bij functie en klasses. soms een klein voorbeeld omdat het je toch op weg helpt als je het nodig hebt.
Na dat je zoveel functies hebt wil je toch even weten waarvoor het is. wat erin gaat en uitkomt.
Meer niet :).

ERD zit in mijn hoofd. wat er gebeurd en daarna alleen ik gebruik geen ERD :o .
Database staat meestal al in de sql en anders snel phpmyadmin openen :D .
Versiebeheer? Ligt eraan geef er zelf altijd versies aan als ik genoeg aanpassingen heb gemaakt een versietje hoger :P . of een halve. Versies moet je voor jezelf doen. altijd een ander dan de aanpassingen die je hebt gemaakt ;).

Dat moet je zelf bijhouden samen met een bug report als het over iets gaat anders dan je eigen code.
"Versie 1.2
known Bugs: Knopje submit van gastenboek doet het niet.
Fixes: Reactie formulier bijgemaakt + gastenboek.
"
Template off course je eigen maken. Zomaar een idee. ;) .
cablegunmasterwoensdag 25 augustus 2010 @ 19:26
quote:
[img=12,12]http://i.fokzi[quote][img=12,12]http://i.fokzine.net/templates/new/i/p/1.gif[/img] Op woensdag 25 augustus 2010 16:50 schreef ralfie het volgende:
select id from langetabel group by email having count(*) > 1

uit mn hoofd (?) zou alle dubbele rijen terug moeten geven
ne.net/templates/new/i/p/1.gif[/img] Op woensdag 25 augustus 2010 14:46 schreef Estolan het volgende:
Hoe haal je makkelijk dubbele invoeren uit een database.

We hebben nu 12.000gegevens, maar ik wil via email ( of voornaam+achternaam) / ip adres de dubbele data eruit gaan vissen.

Valt hier een script voor te schrijven?
email varchar(100) latin1_swedish_ci
[/quote]

Dat eruit halen met de normale SQL en dan in een andere tabel inserten ;).
Problem solved? :D
en dan nog een keer draaien waar er geen dubbele van zijn en die inserten.
Op die manier is de dubbele factor eruit gehaald :).


quote:
Op woensdag 25 augustus 2010 14:46 schreef Estolan het volgende:
Hoe haal je makkelijk dubbele invoeren uit een database.

We hebben nu 12.000gegevens, maar ik wil via email ( of voornaam+achternaam) / ip adres de dubbele data eruit gaan vissen.

Valt hier een script voor te schrijven?
email varchar(100) latin1_swedish_ci
je wil alleen de dubbele eruit?

Select *
from grotetabel
having count(email) > 1
and having count(ip) > 1
en dat nog vergelijken weet niet zo uit mijn hoofd of and en having ook nog kan :P

[ Bericht 26% gewijzigd door cablegunmaster op 25-08-2010 19:32:10 ]
Ofyles2woensdag 25 augustus 2010 @ 22:49
quote:
Op dinsdag 24 augustus 2010 22:54 schreef Tuvai.net het volgende:
Puur uit nieuwsgierigheid: Wie maakt er hier eigenlijk allemaal daadwerkelijk documentatie van zijn/haar code en/of database? :D ERDs? Klassendiagrammen? Wat gebruiken jullie voor versiebeheer? :)
Ik heb dat tot nu toe niet gedaan.
Darkomendonderdag 26 augustus 2010 @ 11:47
quote:
Op woensdag 25 augustus 2010 17:40 schreef Xcalibur het volgende:

[..]

Daar kan je natuurlijk ook een script voor schrijven :)
sorteren op email, en de huidige waarde met de vorige vergelijken.... ook niet zo ingewikkeld :)
Dat bedoel ik ook, scriptje is zo geschreven en 120kl regels is ook niks
MrNilesdonderdag 26 augustus 2010 @ 21:48
Ik krijg de volgende foutmelding
Notice: Undefined index: name in /home/vhosts/piasonline.nl/subdomains/gastenboek/httpdocs/addbook.php on line 4

Notice: Undefined index: email in /home/vhosts/piasonline.nl/subdomains/gastenboek/httpdocs/addbook.php on line 5

Notice: Undefined index: bericht in /home/vhosts/piasonline.nl/subdomains/gastenboek/httpdocs/addbook.php on line 6
u heeft geen naam ingevuld!

Wat gaat er fout?

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
<? ob_start();
error_reporting(E_ALL);
ini_set('display_errors', 1);
$name = htmlspecialchars($_POST['name']);
$email = htmlspecialchars($_POST['email']);
$bericht = htmlspecialchars($_POST['bericht']);
if (!$name) {
echo "u heeft geen naam ingevuld!";
exit; }
if (!$email) {
echo "u heeft geen emailadres ingevuld!";
exit; }
 if ($bericht!= '')
 {
  $bericht = str_replace ("\n","<br>",$bericht);
  $bericht = strip_tags ($bericht, '<br>');
  $newRow = '<div class="guestbookheader">'.'Op ' .date('d-m-Y ') . '<br> '.'om ' .date('H:i:s ') .
 '<br> '. ' schreef' . '<br> '.  strip_tags ($name) . '<br> '.'het volgende bericht:'
 . '</div>' . '<div class="guestbook">' . ($bericht) . '</div>' . '<br> ';
  $oldRows = join ('', file ('guestbook.txt') );
  $fileName = fopen ('guestbook.txt', 'w');
  fputs ($fileName, $newRow . chr(13) . chr(10) . $oldRows);
  fclose ($fileName);
$ip = getenv("REMOTE_ADDR");
$message = "" . $name . " van IPadres $ip stuurde het volgende bericht:
____________________________________
 "."Naam: "."\t"."\t".$name."\n"."Bericht: "."\t".$bericht."
------------------------------------";
$mailadres = "nielsrijkers@gmail.com";
$message = str_replace ("<br>","\n", $message);
mail("$mailadres", "Bericht van gastenboek",
$message, "From: " . $email . "");
 }
include ("readbook.php");
ob_flush(); ?>
Tuvai.netdonderdag 26 augustus 2010 @ 23:16
quote:
Op donderdag 26 augustus 2010 21:48 schreef MrNiles het volgende:
Ik krijg de volgende foutmelding
Notice: Undefined index: name in /home/vhosts/piasonline.nl/subdomains/gastenboek/httpdocs/addbook.php on line 4

Notice: Undefined index: email in /home/vhosts/piasonline.nl/subdomains/gastenboek/httpdocs/addbook.php on line 5

Notice: Undefined index: bericht in /home/vhosts/piasonline.nl/subdomains/gastenboek/httpdocs/addbook.php on line 6
u heeft geen naam ingevuld!

Wat gaat er fout?
[ code verwijderd ]


De foutmeldingen zelf verklappen het min of meer al; de waardes 'naam', 'email' en 'bericht' die d.m.v. een POST binnen moeten komen, zijn er niet.
MrNilesdonderdag 26 augustus 2010 @ 23:24
quote:
Op donderdag 26 augustus 2010 23:16 schreef Tuvai.net het volgende:

[..]

De foutmeldingen zelf verklappen het min of meer al; de waardes 'naam', 'email' en 'bericht' die d.m.v. een POST binnen moeten komen, zijn er niet.
maar ik krijg deze melding met het openen van de pagina
natuurlijk kan ik deze dag nog niet ingevuld hebben...want ik open pas de pagina
Tuvai.netdonderdag 26 augustus 2010 @ 23:34
quote:
Op donderdag 26 augustus 2010 23:24 schreef MrNiles het volgende:

[..]

maar ik krijg deze melding met het openen van de pagina
natuurlijk kan ik deze dag nog niet ingevuld hebben...want ik open pas de pagina
Dat is omdat je script eigenlijk pas uitgevoerd moet worden als er daadwerkelijk een POST plaats vindt, nu wordt het script altijd uitgevoerd. :)

Oplossing is om dus gewoon je code, die alleen uitgevoerd dient te worden bij een bepaalde handeling, in een statement te zetten. Bijvoorbeeld:

1
2
3
4
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) 
{
    // Code hier
}
Of wat ik zelf altijd doe: Een verborgen veld in HTML ( <input type="hidden" name="Action" value="PostPlaatsen" /> ), en dan in PHP controleren of dit veld in de $_POST array zit:

1
2
3
4
5
6
7
if ( isset($_POST['Action']) )
{
    if( $_POST['Action'] == 'PostPlaatsen' )
    {
        // Code hier
    }
}
Op deze manier kun je bijvoorbeeld ook meerdere verschillende handelingen d.m.v. een POST request benaderen, denk aan bijvoorbeeld een 'plaats' en 'preview' functie voor het plaatsen van een bericht.
#ANONIEMvrijdag 27 augustus 2010 @ 08:46
quote:
Op donderdag 26 augustus 2010 11:47 schreef Darkomen het volgende:

[..]

Dat bedoel ik ook, scriptje is zo geschreven en 120kl regels is ook niks
Scriptje van andere user gebruikt, en dat werkt prima

en 12k gegevens is toch een hoop om handmatig te doen. Elk ID heeft nog is 36 ingevulde velden
dan praat je dus over 432.000 velden, daar krijg je dan koppijn van :)
Crutchvrijdag 27 augustus 2010 @ 21:33
Is er een functie of een mogelijkheid om, laten we zeggen, zo'n twintig variabelen(strings) te controleren op één specifieke waarde?
Trollface.vrijdag 27 augustus 2010 @ 21:35
quote:
Op vrijdag 27 augustus 2010 21:33 schreef Crutch het volgende:
Is er een functie of een mogelijkheid om, laten we zeggen, zo'n twintig variabelen(strings) te controleren op één specifieke waarde?
Array en in_array? :P
Crutchvrijdag 27 augustus 2010 @ 21:39
quote:
Op vrijdag 27 augustus 2010 21:35 schreef Trollface. het volgende:

[..]

Array en in_array? :P
Hallo Trollface :*

Hoe krijg ik alle gebruikte variabelen dan in een array zonder alles handmatig in te kloppen?
Trollface.vrijdag 27 augustus 2010 @ 21:41
Ligt eraan, hoe zijn ze genoemd?

Hoi :*
Crutchvrijdag 27 augustus 2010 @ 21:45
quote:
Op vrijdag 27 augustus 2010 21:41 schreef Trollface. het volgende:
Ligt eraan, hoe zijn ze genoemd?

Hoi :*
Verschillend.
Ze komen allemaal uit een formulier en hebben namen als: $naam, $telefoonnummer, $etcetera..
Scorpievrijdag 27 augustus 2010 @ 21:46
<?php echo $tvp; ?>
Trollface.vrijdag 27 augustus 2010 @ 21:47
quote:
Op vrijdag 27 augustus 2010 21:45 schreef Crutch het volgende:

[..]

Verschillend.
Ze komen allemaal uit een formulier en hebben namen als: $naam, $telefoonnummer, $etcetera..
in_array, $_POST? :')
Scorpievrijdag 27 augustus 2010 @ 21:47
quote:
Op vrijdag 27 augustus 2010 21:45 schreef Crutch het volgende:

[..]

Verschillend.
Ze komen allemaal uit een formulier en hebben namen als: $naam, $telefoonnummer, $etcetera..
Laat ze allemaal uit een array komen op het moment dat ze gepost worden?
Crutchvrijdag 27 augustus 2010 @ 21:50
quote:
Op vrijdag 27 augustus 2010 21:47 schreef Trollface. het volgende:

[..]

in_array, $_POST? :')
Dude :')
Ik heb ze al gedefinieerd natuurlijk, bijvoorbeeld: if (isset($_POST['naam'])) { $naam = $_POST['naam']; }
Crutchvrijdag 27 augustus 2010 @ 21:51
quote:
Op vrijdag 27 augustus 2010 21:47 schreef Scorpie het volgende:

[..]

Laat ze allemaal uit een array komen op het moment dat ze gepost worden?
Hoe bedoel je?
Scorpievrijdag 27 augustus 2010 @ 21:56
quote:
Op vrijdag 27 augustus 2010 21:51 schreef Crutch het volgende:

[..]

Hoe bedoel je?
Als je $_POST variablen id`s geeft a la ['field']['naam'] en ['field']['adres'], dan hoef je alleen maar $_POST['field'] uit te lezen, dat is dan namelijk een array. Die id`s heb je dus in je form staan.
Crutchvrijdag 27 augustus 2010 @ 22:20
quote:
Op vrijdag 27 augustus 2010 21:56 schreef Scorpie het volgende:

[..]

Als je $_POST variablen id`s geeft a la ['field']['naam'] en ['field']['adres'], dan hoef je alleen maar $_POST['field'] uit te lezen, dat is dan namelijk een array. Die id`s heb je dus in je form staan.
Okay. Alle velden hebben ook nog een ander 'id'.
Ik snap alleen niet precies wat je bedoelt met "a la ['field']['naam']"
ReWoutvrijdag 27 augustus 2010 @ 22:30
Vraagje mensen

In een programmeertaal heb ik een validatie class nodig. Nu wou ik deze denk ik gedeeltelijk baseren op de Zend Validatie class. Nu heb ik twee vragen

a. Mag dit?
b. Waaraan moet ik voldoen als dit mag? Moet ik bijvoorbeeld de BSD licentie overnemen?
joepie91vrijdag 27 augustus 2010 @ 23:10
quote:
Op vrijdag 27 augustus 2010 21:46 schreef Scorpie het volgende:
<?php echo $tvp; ?>
<?php echo("Daar hebben we een knop voor genaamd ".$volg_topic); ?>
Scorpievrijdag 27 augustus 2010 @ 23:17
quote:
Op vrijdag 27 augustus 2010 22:20 schreef Crutch het volgende:

[..]

Okay. Alle velden hebben ook nog een ander 'id'.
Ik snap alleen niet precies wat je bedoelt met "a la ['field']['naam']"
Probeer maar eens uit; maak 2 text velden aan in een form:

<input type="text" id="['field']['naam']"/>
<input type="text" id="['field']['adres']"/>

En doe na het posten van je form maar eens echo $_POST['field'];
Crutchvrijdag 27 augustus 2010 @ 23:31
quote:
Op vrijdag 27 augustus 2010 23:17 schreef Scorpie het volgende:

[..]

Probeer maar eens uit; maak 2 text velden aan in een form:

<input type="text" id="['field']['naam']"/>
<input type="text" id="['field']['adres']"/>

En doe na het posten van je form maar eens echo $_POST['field'];
Okay, heb het zo gedaan:

Formulier:
1
2
3
4
5
<form action="test.php" method="post">
<input type="text" id="['field']['naam']"/> 
<input type="text" id="['field']['adres']"/> 
<input type="submit" />
</form>
test.php :

1
2
3
<?php
echo $_POST['field'];
?>
Dan krijg ik:

Notice: Undefined index: field in C:\wamp\www\test\test.php on line 2
Scorpiezaterdag 28 augustus 2010 @ 00:12
quote:
Op vrijdag 27 augustus 2010 23:31 schreef Crutch het volgende:

[..]

Okay, heb het zo gedaan:

Formulier:
[ code verwijderd ]

test.php :
[ code verwijderd ]

Dan krijg ik:

Notice: Undefined index: field in C:\wamp\www\test\test.php on line 2
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if(!empty($_POST)){
    print_r($_POST);
  print_r($_POST['field']) ;
}
?>

<form action="test.php" method="POST">
    <input type="text" id="naam" name="field['naam']"/> 
    <input type="text" id="adres" name="field['adres']"/> 
    <input type="submit" />
</form>
Trollface.zaterdag 28 augustus 2010 @ 00:30
quote:
Op vrijdag 27 augustus 2010 22:30 schreef ReWout het volgende:
Vraagje mensen

In een programmeertaal heb ik een validatie class nodig. Nu wou ik deze denk ik gedeeltelijk baseren op de Zend Validatie class. Nu heb ik twee vragen

a. Mag dit?
b. Waaraan moet ik voldoen als dit mag? Moet ik bijvoorbeeld de BSD licentie overnemen?
Als ie onder de BSD-licentie is, mag dat.
quote:
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
This product includes software developed by the <organization>.
4. Neither the name of the <organization> nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
ReWoutzaterdag 28 augustus 2010 @ 00:50
quote:
Op zaterdag 28 augustus 2010 00:30 schreef Trollface. het volgende:

[..]

Als ie onder de BSD-licentie is, mag dat.
[..]


Oke, is wel de nieuwe BSD licentie, dus de onderste twee punten zijn ongeldig. Maar als ik de orignele licentie er gewoon bijzet is alles ok.
Likkende_Lassiezaterdag 28 augustus 2010 @ 10:35
quote:
Op vrijdag 27 augustus 2010 23:31 schreef Crutch het volgende:

[..]

Okay, heb het zo gedaan:

Formulier:
[ code verwijderd ]

test.php :
[ code verwijderd ]

Dan krijg ik:

Notice: Undefined index: field in C:\wamp\www\test\test.php on line 2
Omdat de name moet worden ingevuld, ipv id. Even "id" wijzigen naar "name"
Crutchzaterdag 28 augustus 2010 @ 11:55
quote:
Op zaterdag 28 augustus 2010 00:12 schreef Scorpie het volgende:

[..]
[ code verwijderd ]


Dan echoot het script 'Array'.

Iig bedankt voor de hulp iedereen! :D
Swetseneggerzaterdag 28 augustus 2010 @ 11:57
quote:
Op zaterdag 28 augustus 2010 11:55 schreef Crutch het volgende:

[..]

Dan echoot het script 'Array'.

Iig bedankt voor de hulp iedereen! :D
Je kan geen array echo'en he :)
Crutchzaterdag 28 augustus 2010 @ 11:58
quote:
Op zaterdag 28 augustus 2010 11:57 schreef Swetsenegger het volgende:

[..]

Je kan geen array echo'en he :)
I know, maar dan is het dus een array.
:P
Trollface.zaterdag 28 augustus 2010 @ 12:12
quote:
Op zaterdag 28 augustus 2010 00:50 schreef ReWout het volgende:

[..]

Oke, is wel de nieuwe BSD licentie, dus de onderste twee punten zijn ongeldig. Maar als ik de orignele licentie er gewoon bijzet is alles ok.
Dat hoeft nog niet eens. Alleen het copyright notice. :)
MrNileszaterdag 28 augustus 2010 @ 18:55
ik heb op internet een werkend gastenboek, zonder foutmeldingen enzo (nu wel ondertussen)
maar die wil ik lokaal draaien dmv wamp (oid)
als ik dan de pagina bekijk krijg ik ineens vage meldingen
wamp laat phpscript zien ipv ze uit te voeren.
Dus in plaats van een het ingevoerde bericht staat er nu '.($bericht).'
en nog meer van die shit...
what's the problem??


[ Bericht 11% gewijzigd door MrNiles op 28-08-2010 19:15:27 ]
Tuvai.netzaterdag 28 augustus 2010 @ 19:14
quote:
Op zaterdag 28 augustus 2010 18:55 schreef MrNiles het volgende:
ik heb op internet een werkend gastenboek, zonder foutmeldingen enzo (nu wel ondertussen)
maar die wil ik lokaal draaien dmv wamp (oid)
als ik dan de pagina bekijk krijg ik ineens vage meldingen
wamp laat phpscript zien ipv ze uit te voeren.
Dus in plaats van een het ingevoerde bericht staat er nu '.($bericht).'
en nog meer van die shit...
what's the problem??
Gebruik je shorttags ( dus <? ... ?> )? Zo ja, even aanpassen naar <?php ... ?>. :)
MrNileszaterdag 28 augustus 2010 @ 19:18
quote:
Op zaterdag 28 augustus 2010 19:14 schreef Tuvai.net het volgende:

[..]

Gebruik je shorttags ( dus <? ... ?> )? Zo ja, even aanpassen naar <?php ... ?>. :)
thanx!

hoe simpel kan php soms zijn...
krijg nu nog wel andere meldingen maar het werkt iig


misschien voor de terug lezers
ik was bezig geweest met reCaptha op een gastenboek te zetten ivm heel veel spam
dat lukte dus niet maar na wat google werk heb ik een hele simpele oplossing gevonden om mijn gastenboek spam vrij te kregen.
ik heb de invulvelden email en message een compleet andere naam gegeven (banaan en sneeuwwitje bv)
en 2 hidden velden de namen email en message gegeven.
als deze velden worden ingevuld dan komt de spam niet door en omdat ze hidden zijn kan een bot ze wel invullen en een gebruiken niet
supersimpel en heel effectief
Crutchzaterdag 28 augustus 2010 @ 19:24
quote:
Op zaterdag 28 augustus 2010 19:18 schreef MrNiles het volgende:

[..]

thanx!

hoe simpel kan php soms zijn...
krijg nu nog wel andere meldingen maar het werkt iig


misschien voor de terug lezers
ik was bezig geweest met reCaptha op een gastenboek te zetten ivm heel veel spam
dat lukte dus niet maar na wat google werk heb ik een hele simpele oplossing gevonden om mijn gastenboek spam vrij te kregen.
ik heb de invulvelden email en message een compleet andere naam gegeven (banaan en sneeuwwitje bv)
en 2 hidden velden de namen email en message gegeven.
als deze velden worden ingevuld dan komt de spam niet door en omdat ze hidden zijn kan een bot ze wel invullen en een gebruiken niet
supersimpel en heel effectief
Bedankt voor de tip!
Tuvai.netzaterdag 28 augustus 2010 @ 19:44
Dat is dus niet echt een oplossing, dat is gewoon een kwestie van tijd totdat de volgende bot je veldjes (en je nieuwe benamingen daarvan) oppikt, en misbruikt. :)

Als het op gastenboeken aankomt, werk ik zelf het liefst met een validatieproces. Dus oftewel een validatielinkje per e-mail versturen waarop geklikt dient te worden, of een mini admin panel of zo waar de webmaster elk bericht goed dient te keuren alvorens dit daadwerkelijk op de website verschijnt.
poepeneesjemaandag 30 augustus 2010 @ 16:01
Momenteel ben ik bezig met een simpel CMS, waar ik o.a. gebruik maak van smarty.

Dit is de structuur waarover het gaat: index.php-(roept aan)->login.tpl en index.tpl-(login verzenden m.b.v. ajax, roept aan)->login.php en include naar DB-connect file.

Op het moment dat de include naar de connect file wordt aangeroepen gaat het fout.

De volgende meldingen krijg ik:

Warning: include(../database/mysql-database-connect.php) [function.include]: failed to open stream: No such file or directory in /home/vhosting/k/[...]/htdocs/cms/modules/general/action/login.php on line 2

Warning: include() [function.include]: Failed opening '../database/mysql-database-connect.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in <b>/home/vhosting/k/[...]/htdocs/cms/modules/general/action/login.php on line 2


Wanneer ik i.p.v. de relatief url, de volledig link invoer, krijg ik de volgende fout meldingen:

Warning: include() [function.include]: URL file-access is disabled in the server configuration in /home/vhosting/k/[...]/htdocs/cms/modules/general/action/login.php on line 2

Warning: include(http://cms.[...].nl/database/mysql-database-connect.php) [function.include]: failed to open stream: no suitable wrapper could be found in /home/vhosting/k/[...]/htdocs/cms/modules/general/action/login.php on line 2


Als ik op andere plekken files include dan doen deze het gewoon.

Iemand enig idee wat ik fout doe en hoe ik het kan oplossen?
Chandlermaandag 30 augustus 2010 @ 16:27
gebruik bij includen van bestanden altijd je basis path, deze worden bij veel scripts in de config aangemaakt

iets van

1define("BASE_PATH", "/public_html/");
dus een include van /public_html/test/pagina/php/test.php

1
2
3
<?php
include(BASE_PATH "/classes/class.test.php");
?>
komt op het zelfde neer als je deze in /public_html/index.php gebruikt.
Jumparoundmaandag 30 augustus 2010 @ 16:39
hoi,

ik heb een onwijze noobvraag.. sorry daarvoor

Ik gebruik code die ik aanroep via:

1
2
3
{
   echo "<table border=1 width=800px><tr><td width=20%> {$row['email']}</td><td width=20%> {$row['voornaam']} </td><td width=20%>{$row['achternaam']} </td width=20%><td>Filename: <a href=download.php?id={$row['id']}> {$row['name']}</a></td></tr></table>";
}
roept aan:
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
if(isset($_GET['id']))
{
// if id is set then get the file with the id from database
include 'library/config.php';
include 'library/opendb.php';

$id = $_GET['id'];
$query = "SELECT name, type, size, content " . " FROM upload WHERE id = '$id'";
$result = mysql_query($query) or die('Error, query failed');
list($name, $type, $size, $content) = mysql_fetch_array($result);

header("Content-length: $size");
header("Content-type: $type");
header("Content-Disposition: attachment; filename=$name");
ob_clean();
flush();
print $content;

include 'library/closedb.php';
exit;
}

?>
Wat is mijn vraag:

Hoe voorkom ik dat het bestand wat ik wil openen alsnog geopend wordt in de browser? Ik moet het downloaden vanuit de mysql database...
Tuvai.netmaandag 30 augustus 2010 @ 19:49
quote:
Op maandag 30 augustus 2010 16:39 schreef Jumparound het volgende:
hoi,

ik heb een onwijze noobvraag.. sorry daarvoor

Ik gebruik code die ik aanroep via:
[ code verwijderd ]

roept aan:
[ code verwijderd ]

Wat is mijn vraag:

Hoe voorkom ik dat het bestand wat ik wil openen alsnog geopend wordt in de browser? Ik moet het downloaden vanuit de mysql database...
Je vergeet header("Content-Transfer-Encoding: binary");.
Jumparoundmaandag 30 augustus 2010 @ 23:29
dat lijkt ook niet te werken... :(
Tuvai.netdinsdag 31 augustus 2010 @ 00:08
Woeps, header("Content-Description: File Transfer"); hoort er ook bij. ;)

En vang meteen die querystring ID af, die's nu gevoelig voor SQL injection. :)
Doc.Browndinsdag 31 augustus 2010 @ 09:19
Hmm, volgens mij mis ik de obvious solution maar het wil maar niet lukken;

Situatie: één tabel met woningen en één tabel met gebruikersinformatie. Alleen welke gebruiker bij welke woning hoort is afhankelijk van 2 waardes in de woningentabel; de gebruiker kan ofwel gekoppeld worden met het user_id ofwel door een feed_id die ook aanwezig is in de gebruikerstabel.

Nu doe ik dus 2 left joins voor situatie 1 en situatie 2. Maar dat is natuurlijk niet ideaal omdat je dan altijd 1 tabel joint die vol met null staat en dus in situatie 1 de waardes in PHP nutteloos maakt.

Nu wilde ik eigenlijk een soort IF statement gebruiken om de benodigde tabel te joinen afhankelijk van de waarde van feed_id. Ik kwam de CASE statement tegen maar dan heb ik iets als:

1
2
3
4
5
6
7
8
9
10
SELECT
*,
CASE feed_id
WHEN 0 THEN 
u2.*
ELSE
u1.*
END CASE
FROM
objects
Geeft me een syntax error en dat * is natuurlijk nog niet goed. Maar misschien kan dit ook met een slimme manier van joinen gedaan worden? Het gaat het me er dus om dat ik gewoon één user-tabel terug krijg die afhankelijk is van de feed_id.

Any thoughts?
wobbeldinsdag 31 augustus 2010 @ 09:34
- laat maar -
Tuvai.netdinsdag 31 augustus 2010 @ 09:36
quote:
Op dinsdag 31 augustus 2010 09:19 schreef Doc.Brown het volgende:
Hmm, volgens mij mis ik de obvious solution maar het wil maar niet lukken;

Situatie: één tabel met woningen en één tabel met gebruikersinformatie. Alleen welke gebruiker bij welke woning hoort is afhankelijk van 2 waardes in de woningentabel; de gebruiker kan ofwel gekoppeld worden met het user_id ofwel door een feed_id die ook aanwezig is in de gebruikerstabel.

Nu doe ik dus 2 left joins voor situatie 1 en situatie 2. Maar dat is natuurlijk niet ideaal omdat je dan altijd 1 tabel joint die vol met null staat en dus in situatie 1 de waardes in PHP nutteloos maakt.

Nu wilde ik eigenlijk een soort IF statement gebruiken om de benodigde tabel te joinen afhankelijk van de waarde van feed_id. Ik kwam de CASE statement tegen maar dan heb ik iets als:
[ code verwijderd ]

Geeft me een syntax error en dat * is natuurlijk nog niet goed. Maar misschien kan dit ook met een slimme manier van joinen gedaan worden? Het gaat het me er dus om dat ik gewoon één user-tabel terug krijg die afhankelijk is van de feed_id.

Any thoughts?
Je idee is goed, alleen het gebruik van CASE niet. :) CASE gebruik je op 'kolomniveau' (bijvoorbeeld een kolom in de SELECT, WHERE, ORDER BY of GROUP BY clausule). Je kunt niet met CASE afhankelijk van een waarde in één verschillende kolommen selecteren, dan zou je dus een resultset krijgen waarvan de rijen qua structuur verschillen en dat kan natuurlijk niet.

Je moet het dus 'per kolom' gaan doen, als volgt:
1
2
3
4
5
6
7
8
9
SELECT
    object.veld1,
    object.veld2,
    (CASE object.feed_id WHEN 0 THEN user.id ELSE feed.id END) AS UiteindelijkUserID,
    (CASE object.feed_id WHEN 0 THEN user.username ELSE feed.username END) AS UiteindelijkUsername
FROM
    object
    LEFT OUTER JOIN feed ON feed.id = object.feed_id
    LEFT OUTER JOIN user ON user.id = object.user_id


[ Bericht 0% gewijzigd door Tuvai.net op 31-08-2010 10:31:19 ]
Doc.Browndinsdag 31 augustus 2010 @ 09:41
Aah thanks!

Het is sowieso goed om alleen de kolommen te specifieren die ik nodig heb, het gaat hier in principe alleen om zoekresultaten en dan toon je toch maar een beperkte hoeveelheid informatie. Dankjewel! ^O^
Jumparounddinsdag 31 augustus 2010 @ 10:44
quote:
Op dinsdag 31 augustus 2010 00:08 schreef Tuvai.net het volgende:
Woeps, header("Content-Description: File Transfer"); hoort er ook bij. ;)

En vang meteen die querystring ID af, die's nu gevoelig voor SQL injection. :)
ik ben dom geloof ik... maar zoek nog even verder, krijg het echt niet voor elkaar! :')
probeer nu een ander script, maar die loopt vast :')
Tuvai.netdinsdag 31 augustus 2010 @ 13:44
quote:
Op dinsdag 31 augustus 2010 10:44 schreef Jumparound het volgende:

[..]

ik ben dom geloof ik... maar zoek nog even verder, krijg het echt niet voor elkaar! :')
probeer nu een ander script, maar die loopt vast :')
Is jouw $content wel binair?
Jumparounddinsdag 31 augustus 2010 @ 13:54
quote:
Op dinsdag 31 augustus 2010 13:44 schreef Tuvai.net het volgende:

[..]

Is jouw $content wel binair?
yup

content mediumblob BINARY
Schepseltjedinsdag 31 augustus 2010 @ 15:41
hoe kan ik de eerste waarde uit een associative array halen op een nette manier?

ik doe het nu met foreach en dan gelijk een break, maar das lelijk
mstxdinsdag 31 augustus 2010 @ 15:43
quote:
Op dinsdag 31 augustus 2010 15:41 schreef Schepseltje het volgende:
hoe kan ik de eerste waarde uit een associative array halen op een nette manier?

ik doe het nu met foreach en dan gelijk een break, maar das lelijk
http://nl2.php.net/manual/en/function.current.php
Eventueel met http://nl2.php.net/manual/en/function.reset.php
Schepseltjedinsdag 31 augustus 2010 @ 15:49
quote:
met reset lijkt het te lukken, thanks
Jumparounddinsdag 31 augustus 2010 @ 17:15
de truc was om de headerinformatie naar boven te verplaatsen :')

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
<?php
if(isset($_GET['id'])) 
{
// if id is set then get the file with the id from database
header("Content-Description: File Transfer");
header("Content-length: $size");
header("Content-type: $type");
header("Content-Disposition: attachment; filename=$name");
header("Content-Transfer-Encoding: Binary");
include 'library/config.php';
include 'library/opendb.php'; 
$id    = $_GET['id'];
$query = "SELECT name, type, size, content " .
         "FROM upload WHERE id = '$id'";


$result = mysql_query($query) or die('Error, query failed');
list($name, $type, $size, $content) = mysql_fetch_array($result);


echo $content;

include 'library/closedb.php'; 
exit;
}

?>
Bedankt tuvai!

PS, hoe krijg je je php code met kleurtjes?
Jumparounddinsdag 31 augustus 2010 @ 17:30
tevroeg gejuigd, hij gaat nu de download.php opslaan :')
Trollface.dinsdag 31 augustus 2010 @ 17:51
quote:
Op dinsdag 31 augustus 2010 17:15 schreef Jumparound het volgende:
PS, hoe krijg je je php code met kleurtjes?
[code=php] :)
Trollface.dinsdag 31 augustus 2010 @ 17:51
quote:
Op dinsdag 31 augustus 2010 17:30 schreef Jumparound het volgende:
tevroeg gejuigd, hij gaat nu de download.php opslaan :')
Maakt niets uit, als het goed is bevalt ie wel de data die je nodig hebt. :)
Jumparounddinsdag 31 augustus 2010 @ 21:05
dat wel, nu de naam nog :)
boem-dikkiewoensdag 1 september 2010 @ 00:40
Ik zit een beetje vast. Zal vast wel weer een beginnersfoutje zijn maar ik hoop dat jullie mij kunnen helpen.

Ik heb een tabel met nieuws-categorieën en een tabel met nieuws.

In de tabel nieuws staat een rij die 'categorie_id (INT)' heet. Met een JOIN kan ik op de nieuwspagina laten zien welke categorie uit 'nieuws-categorieën' bij welke categorie_id hoor in het nieuwsbericht..

Dat werkt allemaal prima!

Alleen nu heb ik een wijzigingsformulier voor nieuwsberichten waar ik dus ook JOIN gebruik. Zodat de user kan zien welke categorie er momenteel bij het nieuwsbericht hoor.. Alleen door die JOIN wil hij nu als hij een categorie wijzigt de naam van de categorie in de rij 'categorie_id' gooien volgens mij. Dat wil dus niet omdat categorie_id INT als eigenschap heeft...

Dit is echter alleen zo als hij de categorie die al bij het nieuwsbericht hoort laat voor wat het is. Als hij de categorie wijzigt doet hij het wel, als hij iets in het nieuwsbericht aanpast en de categorie zo laat geeft hij dus een 'undefined index' fout.

Ik hoop dat jullie het snappen. :') Geen idee hoe ik dit handig kan uitleggen.. :{
Tuvai.netwoensdag 1 september 2010 @ 08:59
quote:
Op woensdag 1 september 2010 00:40 schreef boem-dikkie het volgende:
Ik zit een beetje vast. Zal vast wel weer een beginnersfoutje zijn maar ik hoop dat jullie mij kunnen helpen.

Ik heb een tabel met nieuws-categorieën en een tabel met nieuws.

In de tabel nieuws staat een rij die 'categorie_id (INT)' heet. Met een JOIN kan ik op de nieuwspagina laten zien welke categorie uit 'nieuws-categorieën' bij welke categorie_id hoor in het nieuwsbericht..

Dat werkt allemaal prima!

Alleen nu heb ik een wijzigingsformulier voor nieuwsberichten waar ik dus ook JOIN gebruik. Zodat de user kan zien welke categorie er momenteel bij het nieuwsbericht hoor.. Alleen door die JOIN wil hij nu als hij een categorie wijzigt de naam van de categorie in de rij 'categorie_id' gooien volgens mij. Dat wil dus niet omdat categorie_id INT als eigenschap heeft...

Dit is echter alleen zo als hij de categorie die al bij het nieuwsbericht hoort laat voor wat het is. Als hij de categorie wijzigt doet hij het wel, als hij iets in het nieuwsbericht aanpast en de categorie zo laat geeft hij dus een 'undefined index' fout.

Ik hoop dat jullie het snappen. :') Geen idee hoe ik dit handig kan uitleggen.. :{
Ik ga er van uit dat het categorie-veld dat je in je wijzigingsformulier gebruikt, een dropdown ( <select> ) is. Je met deze dan niet alleen vullen met de naam van de categorieën, maar de IDs van deze categorieën als value gebruiken, dus als volgt:

1
2
3
4
5
<select name="DropdownCategorie">
    <option value="1">Categorie 1</option>
    <option value="2">Categorie 2</option>
    <option value="3">Categorie 3</option>
</select>
Sitethiefvrijdag 3 september 2010 @ 08:58
1
2
3
4
5
if (preg_match("/[1-9]{1}[0-9]{3}[ ]?[a-z]{2}/i",$inputValidatePostCode)){
                return true;
            }else{
                return false;
            }
Ik wil hier mee postcodes valideren, dat gaat soms goed, maar hij pakt ook 5445 gh7 als geldige postcode.....
Tuvai.netvrijdag 3 september 2010 @ 09:01
quote:
Op vrijdag 3 september 2010 08:58 schreef Sitethief het volgende:

[ code verwijderd ]

Ik wil hier mee postcodes valideren, dat gaat soms goed, maar hij pakt ook 5445 gh7 als geldige postcode.....
Je geeft geen begin en einde aan in je (mogelijke) expressie.

1/^[1-9]{1}[0-9]{3}[ ]?[a-z]{2}$/i
Lightvrijdag 3 september 2010 @ 09:05
quote:
Op vrijdag 3 september 2010 09:01 schreef Tuvai.net het volgende:

[..]

Je geeft geen begin en einde aan in je (mogelijke) expressie.
[ code verwijderd ]


Ik zie gewoon een slash als begin en als eind.
Xcaliburvrijdag 3 september 2010 @ 09:30
Tuvai bedoelt het begin en einde van de string, dus ^ en $ :)
Lightvrijdag 3 september 2010 @ 09:42
quote:
Op vrijdag 3 september 2010 09:30 schreef Xcalibur het volgende:
Tuvai bedoelt het begin en einde van de string, dus ^ en $ :)
En die had hij er zelf al bijgezet. Maar het was nog vroeg en ik had nog geen koffie gehad.
Tuvai.netvrijdag 3 september 2010 @ 09:46
c_/

Ik ben alweer aan m'n derde kop bezig. :@
Sitethiefvrijdag 3 september 2010 @ 13:47
1'#^[1-9][0-9]{3}\h*[A-Z]{2}$#i'
Dit werkt wel :).
boem-dikkiezaterdag 4 september 2010 @ 14:54
Ik zie in mijn database (mySQL) steeds staan dat er een 'overheat' is. Ik kan dan op optimaliseer klikken en dan is het weg.. iemand een idee hoe dit veroorzaakt wordt?
Tuvai.netzaterdag 4 september 2010 @ 15:00
quote:
Op zaterdag 4 september 2010 14:54 schreef boem-dikkie het volgende:
Ik zie in mijn database (mySQL) steeds staan dat er een 'overheat' is. Ik kan dan op optimaliseer klikken en dan is het weg.. iemand een idee hoe dit veroorzaakt wordt?
Overhead dus. ;)

Overhead zijn stukjes 'vervuilde' / loze ruimte die je tabel/database ooit gebruikt heeft als opslagruimte van een record dat verwijderd is, of voor het uitvoeren van grote queries. Veel databaseplatformen doen dit automatisch, MySQL doet dit niet om zo een stukje sneller te zijn. :)

Ik heb er zelf al jaren geen last meer van gehad, sinds ik InnoDB ald storage engine gebruik, en records niet meer daadwerkelijk delete (in plaats daarvan zet ik een indicatorveldje op 'true', of een datum).
boem-dikkiezaterdag 4 september 2010 @ 15:14
quote:
Op zaterdag 4 september 2010 15:00 schreef Tuvai.net het volgende:

[..]

Overhead dus. ;)

Overhead zijn stukjes 'vervuilde' / loze ruimte die je tabel/database ooit gebruikt heeft als opslagruimte van een record dat verwijderd is, of voor het uitvoeren van grote queries. Veel databaseplatformen doen dit automatisch, MySQL doet dit niet om zo een stukje sneller te zijn. :)

Ik heb er zelf al jaren geen last meer van gehad, sinds ik InnoDB ald storage engine gebruik, en records niet meer daadwerkelijk delete (in plaats daarvan zet ik een indicatorveldje op 'true', of een datum).
Ik delete ook niet daadwerkelijk.. maar gaat het in de toekomst nog problemen opleveren? Of maakt het niet veel uit?
GlowMousezaterdag 4 september 2010 @ 17:55
Dat je MyISAM gebruikt gaat je nog wel een keer problemen opleveren ja.
Tuvai.netzaterdag 4 september 2010 @ 18:07
quote:
Op zaterdag 4 september 2010 15:14 schreef boem-dikkie het volgende:
Ik delete ook niet daadwerkelijk.. maar gaat het in de toekomst nog problemen opleveren? Of maakt het niet veel uit?
MySQL met MyISAM als storage engine is, zoals Glowmouse al laat doorschemeren, nou niet bepaald het meest stabiele databaseplatform dat er is. Je zult heel vaak zien dat je overhead zult krijgen, en dat je tabellen bij extreme groei gewoon 'kapot' gaan waardoor je i.p.v. OPTIMIZE TABLE zelfs een REPAIR TABLE commando moet uitvoeren, om het .MYD bestandje (fysieke databestand van MySQL - MyISAM) te repareren.

Zie OPTIMIZE TABLE als het defragmenteren van je database. :)

Overigens wil ik niet zeggen dat MySQL - MyISAM per definitie slecht is hoor. Voor kleine website`jes waar je het over tienduizenden en misschien honderdduizenden records hebt, is het goed genoeg. Maar het is niet geschikt om met miljoenen records om te gaan voor grotere websites / applicaties.
GlowMousezaterdag 4 september 2010 @ 18:09
quote:
Op zaterdag 4 september 2010 18:07 schreef Tuvai.net het volgende:

[..]

dat je tabellen bij extreme groei gewoon 'kapot' gaan waardoor je i.p.v. OPTIMIZE TABLE zelfs een REPAIR TABLE commando moet uitvoeren, om het .MYD bestandje (fysieke databestand van MySQL - MyISAM) te repareren.
Tabellen gaan niet kapot door hun grootte maar door kapotte hardware of door stroomuitval. In het eerste geval zit je met geen enkele engine 100% veilig.
quote:
Op zaterdag 4 september 2010 18:07 schreef Tuvai.net het volgende:

[..]

Overigens wil ik niet zeggen dat MySQL - MyISAM per definitie slecht is hoor. Voor kleine website`jes waar je het over tienduizenden en misschien honderdduizenden records hebt, is het goed genoeg. Maar het is niet geschikt om met miljoenen records om te gaan voor grotere websites / applicaties.
Het is alleen goed genoeg als je het niet erg vindt als je data verloren gaat of als users inconsistente gegevens zien.
Tuvai.netzaterdag 4 september 2010 @ 18:18
quote:
Op zaterdag 4 september 2010 18:09 schreef GlowMouse het volgende:
Tabellen gaan niet kapot door hun grootte maar door kapotte hardware of door stroomuitval. In het eerste geval zit je met geen enkele engine 100% veilig.
Ik heb in het verleden een eigen forum gehad (PHP en MySQL - MyISAM) waarvan de Posts-tabel op een gegeven moment richting de miljoen records ging. Die tabel ging steeds vaker gewoon 'kapot', zonder dat er sprake was van een verkeerd ingerichte of kapotte server, of stroomuitval. Nu is het zeker zo dat er op elk platform wel eens iets goed mis kan gaan door een van de oorzaken die jij al noemt, maar ik ben dit tot nu toe alleen nog maar tegengekomen bij MySQL in de praktijk. En vaak ook.

quote:
Het is alleen goed genoeg als je het niet erg vindt als je data verloren gaat of als users inconsistente gegevens zien.
MySQL - MyISAM is goed voor kleine en snelle dingen. Voor een simpele website met een contactformuliertje en gastenboek hoef ik geen relationele database op de achtergrond.
GlowMousezaterdag 4 september 2010 @ 19:29
quote:
Op zaterdag 4 september 2010 18:18 schreef Tuvai.net het volgende:

[..]

Ik heb in het verleden een eigen forum gehad (PHP en MySQL - MyISAM) waarvan de Posts-tabel op een gegeven moment richting de miljoen records ging. Dit tabel ging steeds vaker gewoon 'kapot', zonder dat er sprake was van een verkeerd ingerichte of kapotte server, of stroomuitval. Nu is het zeker zo dat er op elk platform wel eens iets goed mis kan gaan door een van de oorzaken die jij al noemt, maar ik ben dit tot nu toe alleen nog maar tegengekomen bij MySQL in de praktijk. En vaak ook.
Als je het kunt reproduceren dan moet je een bugreport indienen, maar MyISAM gaat echt niet zomaar kapot. Het wordt best veel gebruikt voor datamining, en dan heb je het niet over kleine tabellen.
quote:
MySQL - MyISAM is goed voor kleine en snelle dingen. Voor een simpele website met een contactformuliertje en gastenboek hoef ik geen relationele database op de achtergrond.
Onzin, het is niet voor niks dat MySQL standaard overgaat op InnoDB.
Sitethiefmaandag 6 september 2010 @ 11:03
Wat is eigenlijk naast tweakers/webwereld en natuurlijk php.net een goede website om up to date te blijven wbt trends in programmering/webdesign?

En wie heeft er ervaring met Git(Hub), is het echt zo goed als men zegt, of hangt dat heel erg af van wat de wensen zijn?
Xcaliburmaandag 6 september 2010 @ 11:23
Kan iemand wat linkjes posten naar wat het probleem van MyISAM precies is?
Ik heb er zelf nog nooit problemen mee gehad, en ik vind de exacte rowcount altijd wel prettig....
poepeneesjemaandag 6 september 2010 @ 17:22
Iemand een idee hoe ik op een nette manier parameters kan meesturen naar een include

Dus ik roep aan:
1index.php?string=test&number=123
En geïnclude wordt:
1include.php?number=123
Als bovenstaande includen gaat niet, omdat de server dan opzoek gaat naar een pagina die include.php?number=123 heet en niet een pagina die include.php heet.

EDIT: Het doorgeven van variabelen is niet nodig.

[ Bericht 4% gewijzigd door poepeneesje op 06-09-2010 18:17:10 ]
Darkomenmaandag 6 september 2010 @ 19:47
als je een variabele boven je include in de eerste pagina defineerd dan word deze gewoon meegenomen in de include
poepeneesjemaandag 6 september 2010 @ 20:54
quote:
Op maandag 6 september 2010 19:47 schreef Darkomen het volgende:
als je een variabele boven je include in de eerste pagina defineerd dan word deze gewoon meegenomen in de include
Ik had inderdaad al opgemerkt ja.
poepeneesjemaandag 6 september 2010 @ 21:10
Nog een vraag :P.

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
<?php
class Database
{
    public 
$host         DB_HOST;
    public 
$database     DB_DBNAME;
    public 
$user         DB_USERNAME;
    public 
$password     DB_PASSWORD;
    
    public function 
connect()
    {
        
$connect mysql_connect($this->host$this->user$this->password)
        or die (
mysql_error());
            
        if(
$connect)
        {
            
mysql_select_db($this->database)
            or die (
mysql_error());
        }
    }
    
    public function 
disconnect()
    {
        
mysql_close($connect
        or die (
mysql_error());
    }
}
?>
Als de pagina als include opvraag zie ik in Firebug:
quote:
Fatal error: Using $this when not in object context in /home/vhosting/k/[..]/htdocs/cms/libs/database.class.php on line 18
Iemand die mij kan vertellen wat ik fout doe?
Tuvai.netmaandag 6 september 2010 @ 21:22
quote:
Op maandag 6 september 2010 21:10 schreef poepeneesje het volgende:
Nog een vraag :P.
[ code verwijderd ]

Als de pagina als include opvraag zie ik in Firebug:
[..]

Iemand die mij kan vertellen wat ik fout doe?
Foutmelding verklapt het min of meer al: $this is alleen beschikbaar wanneer je het over geïnstantieerde objecten hebt. Je dient dus eerst een instantie te maken van je database class/object d.m.v. $var = new Database();, alvorens je $var->connect() kunt uitvoeren.
Tuvai.netmaandag 6 september 2010 @ 21:31
quote:
Op maandag 6 september 2010 11:23 schreef Xcalibur het volgende:
Kan iemand wat linkjes posten naar wat het probleem van MyISAM precies is?
Ik heb er zelf nog nooit problemen mee gehad, en ik vind de exacte rowcount altijd wel prettig....
MySQL met MyISAM is inderdaad maar een slecht databaseplatform als je het gaat vergelijken met stabielere platformen als MySQL - InnoDB, Orable, SQL Server, enzovoorts. MyISAM ondersteunt onder andere geen transactions en relaties, en er is vrijwel geen data integriteit.

Natuurlijk is het veel beter om een relationeel databaseplatform te gebruiken, en je database logisch in te richten.
Toch is het een afweging die je kunt maken. Voor kleine websites met enkel een paar 'platte' gegevenstabellen (gastenboek, tagboard, reacties, etc.), is MyISAM een prima keuze. Voor grotere projecten/applicaties, gebruik je een relationeel databaseplatform.
Sitethiefmaandag 6 september 2010 @ 22:57
quote:
Op maandag 6 september 2010 21:22 schreef Tuvai.net het volgende:

[..]

Foutmelding verklapt het min of meer al: $this is alleen beschikbaar wanneer je het over geïnstantieerde objecten hebt. Je dient dus eerst een instantie te maken van je database class/object d.m.v. $var = new Database();, alvorens je $var->connect() kunt uitvoeren.
Of je set die waardes gewoon in je constructor? Dan kun je ze oproepen met this, en meegeven bij het instantiëren van de gehele class....

quote:
PHP 5 allows developers to declare constructor methods for classes. Classes which have a constructor method call this method on each newly-created object, so it is suitable for any initialization that the object may need before it is used.
1
2
3
4
5
6
function __construct($dbhost, $dbname, $dbuser, $dbpassword) {
       $this->dbhost = $dbhost;
       $this->dbname = $dbname;
       $this->dbuser = $dbuser;
       $this->dbpassword = $dbpassword;
}
cablegunmastermaandag 6 september 2010 @ 23:04
of je haalt gewoon alle This weg en het is ook opgelost :Y .
omdat het publieke variabele zijn kun je ze in alle functies aanroepen.

mits je de waardes in public neerzet :Y
poepeneesjemaandag 6 september 2010 @ 23:28
Tuvai.net, Sitethief en cablegunmaster: Bedankt voor jullie reactie *O*.

Ik heb het zelf als volgt opgelost:
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
<?php
class Database
{
    private static 
$host         DB_HOST;
    private static 
$database     DB_DBNAME;
    private static 
$user         DB_USERNAME;
    private static 
$password     DB_PASSWORD;
    private static 
$connect;
    
    public function 
connect()
    {
        
self::$connect mysql_connect(self::$hostself::$userself::$password)
        or die (
mysql_error());
            
        if(
self::$connect)
        {
            
mysql_select_db(self::$database)
            or die (
mysql_error());
        }
    }
    
    public function 
disconnect()
    {
        
mysql_close(self::$connect)
        or die (
mysql_error());
    }
}
?>
Is dit een goede manier of is jullie manier beter en wil je dan uitleggen waarom?
Tuvai.netmaandag 6 september 2010 @ 23:41
quote:
Op maandag 6 september 2010 23:28 schreef poepeneesje het volgende:
Tuvai.net, Sitethief en cablegunmaster: Bedankt voor jullie reactie *O*.

Ik heb het zelf als volgt opgelost:
[ code verwijderd ]

Is dit een goede manier of is jullie manier beter en wil je dan uitleggen waarom?
Je zou inderdaad, zoals Sitethief al aangeeft, kunnen overwegen om je verbinding te initialiseren in een 'constructor', een functie genaamd __construct() die automatisch altijd aangeroepen wordt bij het instantiëren van je Database object.

Verdiep je ook eens in 'protection levels' (public, private, protected), 'inheritance' en het verschil tussen 'static' en 'non static'. :) Als je daarmee overweg kunt, kun je op zich eens gaan stoeien met het bouwen van leuke modellen. :)

http://www.sitemasters.be(...)tected_en_Private%29
http://theserverpages.com/php/manual/en/language.oop5.static.php
cablegunmastermaandag 6 september 2010 @ 23:54
quote:
Op maandag 6 september 2010 23:41 schreef Tuvai.net het volgende:

[..]

Je zou inderdaad, zoals Sitethief al aangeeft, kunnen overwegen om je verbinding te initialiseren in een 'constructor', een functie genaamd __construct() die automatisch altijd aangeroepen wordt bij het instantiëren van je Database object.

Verdiep je ook eens in 'protection levels' (public, private, protected), 'inheritance' en het verschil tussen 'static' en 'non static'. :) Als je daarmee overweg kunt, kun je op zich eens gaan stoeien met het bouwen van leuke modellen. :)

http://www.sitemasters.be(...)tected_en_Private%29
http://theserverpages.com/php/manual/en/language.oop5.static.php
Meeste termen kende ik hier al van maar ik dank je voor de links :D .

en wat hij zegt is een __construct() eigenlijk toch het beste in jou geval.
je hoeft namelijk de waardes maar 1x in te stellen lijkt mij.

dus op zijn netst qua code is Sitethief het efficientst bezig.
poepeneesjedinsdag 7 september 2010 @ 00:08
quote:
Op maandag 6 september 2010 23:54 schreef cablegunmaster het volgende:

[..]

Meeste termen kende ik hier al van maar ik dank je voor de links :D .

en wat hij zegt is een __construct() eigenlijk toch het beste in jou geval.
je hoeft namelijk de waardes maar 1x in te stellen lijkt mij.

dus op zijn netst qua code is Sitethief het efficientst bezig.
In mijn geval stel in de waardes toch ook maar 1x in?

Verder hoef je op mijn manier geen nieuw object aan te maken. Die manier van Sitethief geeft precies hetzelfde resultaat als wat ik doe.

Verder dien ik op de manier van ST de boel op deze manier aan te roepen (zoals Tuvai.net aangaf):
1
2
3
4
5
6
<?php
$db 
= new Database();
$db->connect();
[...]
$db->disconnect();
?>
En ik kan voldoen met:
1
2
3
4
5
<?php
Database
::connect();
[...]
Database::disconnect();
?>
cablegunmasterdinsdag 7 september 2010 @ 00:26
Whatever works for you :P
Tuvai.netdinsdag 7 september 2010 @ 09:23
quote:
Op dinsdag 7 september 2010 00:08 schreef poepeneesje het volgende:

[..]

In mijn geval stel in de waardes toch ook maar 1x in?

Verder hoef je op mijn manier geen nieuw object aan te maken. Die manier van Sitethief geeft precies hetzelfde resultaat als wat ik doe.

Verder dien ik op de manier van ST de boel op deze manier aan te roepen (zoals Tuvai.net aangaf):
[ code verwijderd ]

En ik kan voldoen met:
[ code verwijderd ]


Als je je verbinding initialiseert in je constructor, is $var = new Database(); al voldoende om deze verbinding te initialiseren. Dan hoef je niet nog eens apart je connect() methode te gebruiken (die dan sowieso weg valt). ;)

Het voordeel van het werken met die methode, is dat je logisch database-object krijgt waar je tegen aan programmeert, in plaats van een verzameling statische methodes. Je hebt dan ook in je Database class de mogelijkheid om $this te gebruiken, waarmee je een extra 'scope' toevoegt aan je code. Je kunt op die manier bijvoorbeeld ook er voor kiezen om je verbinding te initialiseren in een aparte, private/protected methode/variabele in je Database class, waarbij je in elke andere methode controleert of deze variabele gevuld is (hetgeen dus betekent dat je verbinding geïnitialiseerd is ). Zo kun je weer andere technieken toepassen, zoals 'Lazy Loading'. :)
Lightdinsdag 7 september 2010 @ 10:21
quote:
Op dinsdag 7 september 2010 09:23 schreef Tuvai.net het volgende:

[..]

Als je je verbinding initialiseert in je constructor, is $var = new Database(); al voldoende om deze verbinding te initialiseren. Dan hoef je niet nog eens apart je connect() methode te gebruiken (die dan sowieso weg valt). ;)

Het voordeel van het werken met die methode, is dat je logisch database-object krijgt waar je tegen aan programmeert, in plaats van een verzameling statische methodes. Je hebt dan ook in je Database class de mogelijkheid om $this te gebruiken, waarmee je een extra 'scope' toevoegt aan je code. Je kunt op die manier bijvoorbeeld ook er voor kiezen om je verbinding te initialiseren in een aparte, private/protected methode/variabele in je Database class, waarbij je in elke andere methode controleert of deze variabele gevuld is (hetgeen dus betekent dat je verbinding geïnitialiseerd is ). Zo kun je weer andere technieken toepassen, zoals 'Lazy Loading'. :)
Als aanvulling is het best mogelijk dat er een situatie komt waarbij twee databaseverbindingen nodig zijn. Dat gaat je niet lukken als de class een static class is.
poepeneesjedinsdag 7 september 2010 @ 13:33
Bedankt voor de duidelijke uitleg! Uiteindelijk ziet mijn class er zo uit :).

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
<?php
class Database
{
    private 
$host;
    private 
$database;
    private 
$user;
    private 
$password;
    private 
$connect;
    
    public function 
__construct()
    {
        
$this->host         DB_HOST;
        
$this->database     DB_DBNAME;
        
$this->user         DB_USERNAME;
        
$this->password     DB_PASSWORD;
        
        
$this->connect();
    }
    
    private function 
connect()
    {
        if(!
$this->connect)
        {
            
$this->connect mysql_connect($this->host$this->user$this->password)
            or die (
mysql_error());
                
            if(
$this->connect)
            {
                
mysql_select_db($this->database)
                or die (
mysql_error());
            }
        }
    }
    
    public function 
disconnect()
    {
        if(
$this->connect)
        {
            
mysql_close($this->connect)
            or die (
mysql_error());
        }
    }
}
?>
Scorpiedinsdag 7 september 2010 @ 13:48
$this->connect als variable naam zou ik dan $this->connection van maken.
poepeneesjedinsdag 7 september 2010 @ 16:13
quote:
Op dinsdag 7 september 2010 13:48 schreef Scorpie het volgende:
$this->connect als variable naam zou ik dan $this->connection van maken.
Dat is een goede! Aangepast. Tevens ook het PDO-object gebruikt om de verbinding op te zetten met MySQL.
Tuvai.netdinsdag 7 september 2010 @ 19:39
quote:
Op dinsdag 7 september 2010 16:13 schreef poepeneesje het volgende:
Dat is een goede! Aangepast. Tevens ook het PDO-object gebruikt om de verbinding op te zetten met MySQL.
Goede zet. PDO is ideaal voor als je meerdere databaseplatformen wilt ondersteunen. Ook biedt PDO de mogelijkheid om transactions op te bouwen. Handig voor wanneer je dat niet op databaseniveau kunt doen.
boem-dikkiedinsdag 7 september 2010 @ 21:16
Bedankt voor alle database info heren! Database van mij is in gebruik voor hooguit een paar 100 misschien 1000 records. Dus miljoenen zijn en worden het sowieso niet. Hebben jullie nog tips voor goede tutorials over een stevig inlogsysteem? Gebruik nu gewoon sessions en dergelijke maar lees overal dingen over sessions injection e.d. Zelf al wat gegoogled maar kom vooral bij resultaten en sites uit 2004 enzo. Beetje oud. :P
Tuvai.netdinsdag 7 september 2010 @ 21:55
quote:
Op dinsdag 7 september 2010 21:16 schreef boem-dikkie het volgende:
Bedankt voor alle database info heren! Database van mij is in gebruik voor hooguit een paar 100 misschien 1000 records. Dus miljoenen zijn en worden het sowieso niet. Hebben jullie nog tips voor goede tutorials over een stevig inlogsysteem? Gebruik nu gewoon sessions en dergelijke maar lees overal dingen over sessions injection e.d. Zelf al wat gegoogled maar kom vooral bij resultaten en sites uit 2004 enzo. Beetje oud. :P
Wat beveiliging betreft, kan ik je OWASP aanraden: http://www.owasp.org/index.php/Main_Page
Op die Wikipedia-achtige website staan de meest voorkomende beveiligingslekken en manieren op scripts te exploiteren. Vaak worden er ook in diverse programmeertalen voorbeelden gegeven.

Psst, die 8-bit muziek in je sig. O+
PaRaRdonderdag 9 september 2010 @ 11:54
Hoi.

Ik probeer met mijn scriptje bepaalde Google resultaten te 'scrapen'. Ik wil dus van een bepaalde query in google alle url's eruit halen. Hij doet dit nu wel, maar ik krijg het niet voor elkaar om het van meer dan 1(de eerste) pagina zoekresultaten te doen... Ik doe dit met cURL.

De volgende url gebruik ik dus in cURL die werkt:
quote:
"http://www.google.com/search?q=" . urlencode($keyword) . ""
Nou wil ik meer dan 1 standaard pagina met 10 resultaten leeghalen... dus ik dacht ik voeg num=100(100 resultaten) toe aan de url:
quote:
"http://www.google.com/search?num=100&q=" . urlencode($keyword) . "",
Dit werkt WEL als ik het normaal laad in een browser, maar werkt NIET via cURL... Heeft iemand de gouden tip voor mij om meer dan 10 resultaten te laden met PHP/cURL van google?!

Alvast bedankt
cablegunmasterdonderdag 9 september 2010 @ 12:06
quote:
Op dinsdag 7 september 2010 21:16 schreef boem-dikkie het volgende:
Bedankt voor alle database info heren! Database van mij is in gebruik voor hooguit een paar 100 misschien 1000 records. Dus miljoenen zijn en worden het sowieso niet. Hebben jullie nog tips voor goede tutorials over een stevig inlogsysteem? Gebruik nu gewoon sessions en dergelijke maar lees overal dingen over sessions injection e.d. Zelf al wat gegoogled maar kom vooral bij resultaten en sites uit 2004 enzo. Beetje oud. :P
quote:
Dave
17-Nov-2009 10:05
If you deploy php code and cannot control whether register_globals is off, place this snippet in your code to prevent session injections:
1
2
3
<?php
if (isset($_REQUEST['_SESSION'])) die("Get lost Muppet!");
?>
mss dit iets voor je ;)

Daarnaast zie ik veel admins die aan raden toch een Database sessie te maken. dat houd in als ze zijn ingelogd dat de gegevens in een tabel komen. met een Tijd waarde + 60 minuten bvb.

Een sessie tabel. met dezelfde sessie tabel kun je meteen kijken hoeveel bezoekers je hebt ;) op je website.
of ze zijn ingelogd of niet. (gasten / bezoekers).

en als de site de 60 minuten overschrijd dan logt hij je uit. of je moet met dezelfde sessie op een pagina zijn geland en de sql opnieuw updaten ;) .
RenRen-donderdag 9 september 2010 @ 12:40
Hoi,

Ik wil een gallery maken in PHP. Ik ben er echter niet heel goed in. Ik heb een paar lessen PHP gehad op school, maar niets had echt te maken met het maken van een gallery.

Wat ik wil, is dat er in mijn site, links een lijst komt met de linkjes naar de pagina, en dat rechts dan het plaatje inlaadt. Ook wil ik dat er een vorige/volgende komt.

Het probleem is echter, dat de galleryscripts die ik op het internet vind, allemaal werken met thumbnails, en dat wil ik niet.
http://sye.dk/sfpg/
Zulke.

Weet iemand toevallig een link waar ze gebruik maken van het idee wat ik heb? Dan denk ik dat ik het van daaruit wel zelf op kan lossen.

Bedankt!
Scorpiedonderdag 9 september 2010 @ 12:44
Pak gewoon Coppergallery ofzo.
RenRen-donderdag 9 september 2010 @ 12:46
quote:
Op donderdag 9 september 2010 12:44 schreef Scorpie het volgende:
Pak gewoon Coppergallery ofzo.
Wel heel veel nutteloze features voor mijn site, is er niets simpelers?
Tuvai.netdonderdag 9 september 2010 @ 12:47
Wat Scorpie zegt. En dat 99% van de galleries met thumbnails werken heeft een reden hoor. Zou leuk worden voor zowel de bezoeker als het bandbreedteverbruik als er hele galerijen met tientallen foto's van origineel formaat in één keer geladen / ge`preload zouden worden.
Scorpiedonderdag 9 september 2010 @ 12:48
quote:
Op donderdag 9 september 2010 12:46 schreef RenRen- het volgende:

[..]

Wel heel veel nutteloze features voor mijn site, is er niets simpelers?
Je kan het er zelf uitslopen :)
Scorpiedonderdag 9 september 2010 @ 12:48
quote:
Op donderdag 9 september 2010 12:47 schreef Tuvai.net het volgende:
Wat Scorpie zegt. En dat 99% van de galleries met thumbnails werken heeft een reden hoor. Zou leuk worden voor zowel de bezoeker als het bandbreedteverbruik als er hele galerijen met tientallen foto's van origineel formaat in één keer geladen / ge`preload zouden worden.
Dat dus :)
RenRen-donderdag 9 september 2010 @ 12:49
quote:
Op donderdag 9 september 2010 12:47 schreef Tuvai.net het volgende:
Wat Scorpie zegt. En dat 99% van de galleries met thumbnails werken heeft een reden hoor. Zou leuk worden voor zowel de bezoeker als het bandbreedteverbruik als er hele galerijen met tientallen foto's van origineel formaat in één keer geladen / ge`preload zouden worden.
En dat ik niet met thumbnails wil werken heeft ook een reden. Het is geen gigantische site, en dit lijkt mij persoonlijk practischer. Ik hoef mezelf eigenlijk helemaal niet te verklaren, want dit is gewoon wat ik wil, ongeacht wat 99% van alle andere galleryhouders doen.
quote:
Op donderdag 9 september 2010 12:48 schreef Scorpie het volgende:

[..]

Je kan het er zelf uitslopen :)
Ik zal even kijken wat ik ermee kan :) dankje
urseldonderdag 9 september 2010 @ 13:02
Bij de meeste galleries kan je toch ook instellen hoe groot je thumbnails moeten zijn. :?
RenRen-donderdag 9 september 2010 @ 13:03
quote:
Op donderdag 9 september 2010 13:02 schreef ursel het volgende:
Bij de meeste galleries kan je toch ook instellen hoe groot je thumbnails moeten zijn. :?
Dat zal. Ik wil alleen geen thumbnails. Gewoon text.
KomtTijd...donderdag 9 september 2010 @ 13:08
quote:
Op donderdag 9 september 2010 12:40 schreef RenRen- het volgende:
Hoi,

Wat ik wil, is dat er in mijn site, links een lijst komt met de linkjes naar de pagina, en dat rechts dan het plaatje inlaadt. Ook wil ik dat er een vorige/volgende komt.

Dat kun je beter met javascript doen.

PHP is dan wellicht handig om automatisch een lijst van de betreffende bestanden uit een map te halen, maar niet noodzakelijk.
Scorpiedonderdag 9 september 2010 @ 13:10
quote:
Op donderdag 9 september 2010 13:08 schreef KomtTijd... het volgende:

[..]

Dat kun je beter met javascript doen.

PHP is dan wellicht handig om automatisch een lijst van de betreffende bestanden uit een map te halen, maar niet noodzakelijk.
Wel als je het een beetje dynamisch wilt houden.
RenRen-donderdag 9 september 2010 @ 13:10
quote:
Op donderdag 9 september 2010 13:08 schreef KomtTijd... het volgende:

[..]

Dat kun je beter met javascript doen.

PHP is dan wellicht handig om automatisch een lijst van de betreffende bestanden uit een map te halen, maar niet noodzakelijk.
Hm, het nadeel wat ons altijd wordt verteld is dat Javascript uit te schakelen is. Standaard. Maar ik zal er even naar kijken, dankje! O+
Lightdonderdag 9 september 2010 @ 13:17
quote:
Op donderdag 9 september 2010 13:10 schreef RenRen- het volgende:

[..]

Hm, het nadeel wat ons altijd wordt verteld is dat Javascript uit te schakelen is. Standaard. Maar ik zal er even naar kijken, dankje! O+
De meeste mensen die javascript uitschakelen, doen dat bewust. Die weten dat de helft van de sites (voorzichtige schatting) niet meer optimaal functioneert.
KomtTijd...donderdag 9 september 2010 @ 13:20
quote:
Op donderdag 9 september 2010 13:10 schreef RenRen- het volgende:

[..]

Hm, het nadeel wat ons altijd wordt verteld is dat Javascript uit te schakelen is. Standaard. Maar ik zal er even naar kijken, dankje! O+
Ja dat kan, maar niemand doet dat. Als je dat doet zou het halve internet ineens niet meer werken.

Als je gewoon een lijst met knoppen/linkjes maakt, met onclick="document.getElementById('grotefoto').src='/link/naar/afbeelding.jpg'", en een grote afbeelding (img-tag) met id="grotefoto", dan moet het eigenlijk al werken. Heel basic, maar de rest is voornamelijk HTML.
Tuvai.netdonderdag 9 september 2010 @ 13:24
Javascript zullen inderdaad maar weinig mensen (onbewust) uitschakelen. Overigens is het mooie van Javascript dat het het 'unobtrusive' kunt toepassen. Dat wilt zeggen dat je je Javascript puur gebruikt 'ter opleuking van', maar dat je pagina/website/applicatie wél nog functioneel is indien Javascript uitgeschakeld is. Denk aan bijvoorbeeld een alternatieve link die je foto in een nieuw venster opent wanneer Javascript uitgeschakeld is, in tegenstelling tot het dynamisch vervangen van een element op een pagina met Javascript.
RenRen-donderdag 9 september 2010 @ 13:31
quote:
Op donderdag 9 september 2010 13:20 schreef KomtTijd... het volgende:

[..]

Ja dat kan, maar niemand doet dat. Als je dat doet zou het halve internet ineens niet meer werken.

Als je gewoon een lijst met knoppen/linkjes maakt, met onclick="document.getElementById('grotefoto').src='/link/naar/afbeelding.jpg'", en een grote afbeelding (img-tag) met id="grotefoto", dan moet het eigenlijk al werken. Heel basic, maar de rest is voornamelijk HTML.
Oh. Mijn leraar is een dramaking, dat helpt.
Thanks, ik ga even kijken vanavond of ik er wat van kan maken zelf O+
quote:
Op donderdag 9 september 2010 13:24 schreef Tuvai.net het volgende:
Javascript zullen inderdaad maar weinig mensen (onbewust) uitschakelen. Overigens is het mooie van Javascript dat het het 'unobtrusive' kunt toepassen. Dat wilt zeggen dat je je Javascript puur gebruikt 'ter opleuking van', maar dat je pagina/website/applicatie wél nog functioneel is indien Javascript uitgeschakeld is. Denk aan bijvoorbeeld een alternatieve link die je foto in een nieuw venster opent wanneer Javascript uitgeschakeld is, in tegenstelling tot het dynamisch vervangen van een element op een pagina met Javascript.
Oke :o Dat is wel iets waar ik over na ga denken :)
Scorpiedonderdag 9 september 2010 @ 13:33
Ow het is huiswerk?
Sitethiefdonderdag 9 september 2010 @ 14:11
Ik ben tegenwoordig class verslaafd :o . Ik schrijf overal functions en classes voor, mijn php snippets zijn angstaanjagend kort tegenwoordig :P.
Scorpiedonderdag 9 september 2010 @ 14:33
quote:
Op donderdag 9 september 2010 14:11 schreef Sitethief het volgende:
Ik ben tegenwoordig class verslaafd :o . Ik schrijf overal functions en classes voor, mijn php snippets zijn angstaanjagend kort tegenwoordig :P.
Welkom in de wereld van OO :)
#ANONIEMdonderdag 9 september 2010 @ 15:36
Hoe zoek je in phpmyadmin naar een leeg veld?
Ik wil records opzoeken van klanten die bv geen geboortedatum ingevuld hebben
Maar hoe zoek je een leeg veld, met % % vind hij alleen alles wat niet correct ingevuld is, maar niet iets waar niks staat
Scorpiedonderdag 9 september 2010 @ 15:42
fieldname is NULL
Sitethiefdonderdag 9 september 2010 @ 15:43
http://dev.mysql.com/doc/(...)tml#operator_is-null
#ANONIEMdonderdag 9 september 2010 @ 15:51
Bij dit:

SELECT *
FROM `adresgegevensBoxen`
WHERE geboortedatum IS NULL


krijg ik 0records te zien, dus die regel werkt niet
Trollface.donderdag 9 september 2010 @ 15:53
WHERE veld = ''
#ANONIEMdonderdag 9 september 2010 @ 15:54
quote:
Op donderdag 9 september 2010 15:53 schreef Trollface. het volgende:
WHERE veld = ''
Dank u die werkt :)
Scorpiedonderdag 9 september 2010 @ 15:55
quote:
Op donderdag 9 september 2010 15:54 schreef Estolan het volgende:

[..]

Dank u die werkt :)
Je veld is dus niet leeg.
#ANONIEMdonderdag 9 september 2010 @ 15:57
quote:
Op donderdag 9 september 2010 15:55 schreef Scorpie het volgende:

[..]

Je veld is dus niet leeg.
bedoel daarmee dat er bijv een foutieve geboortedatum stond ( geboren in 2010 ) en daarna verwijderd is, daardoor is het veld niet meer ingevuld en noem ik leeg
Scorpiedonderdag 9 september 2010 @ 16:02
quote:
Op donderdag 9 september 2010 15:57 schreef Estolan het volgende:

[..]

bedoel daarmee dat er bijv een foutieve geboortedatum stond ( geboren in 2010 ) en daarna verwijderd is, daardoor is het veld niet meer ingevuld en noem ik leeg
En daarom kreeg je nu 2 verkeerde adviezen van mensen die een andere definitie hebben van 'leeg'.
Sitethiefdonderdag 9 september 2010 @ 16:05
quote:
Op donderdag 9 september 2010 16:02 schreef Scorpie het volgende:

[..]

En daarom kreeg je nu 2 verkeerde adviezen van mensen die een andere definitie hebben van 'leeg'.
Dat is ook de reden dat veel mensen op hun bek gaan bij
1if($blabla == false)
en
1if(empty($blabla))
In beide gevallen wordt de string '0' als leeg én als false gezien. Vooral bij array_search ging ik zelf nog wel eens op mijn bek omdat die nog wel eens 0 terug wil geven. Kwestie van de php.net documentatie goed lezen omdat het er daar heel groot bij staat.
#ANONIEMdonderdag 9 september 2010 @ 16:11
Ok is er dan nog een manier waarbij je het veld dus op NULL krijgt? of is dat een kwestie door NULL in te voeren?

je moet het zien dat wij die data exporteren, dus als iets niet is ingevuld moet het vakje leeg zijn
Scorpiedonderdag 9 september 2010 @ 16:15
quote:
Op donderdag 9 september 2010 16:11 schreef Estolan het volgende:
Ok is er dan nog een manier waarbij je het veld dus op NULL krijgt? of is dat een kwestie door NULL in te voeren?

je moet het zien dat wij die data exporteren, dus als iets niet is ingevuld moet het vakje leeg zijn
In phpmyadmin zet je dan default waarde op NULL.
#ANONIEMdonderdag 9 september 2010 @ 16:19
Okay tnx
Dalandodonderdag 9 september 2010 @ 20:09
Net een localhostje gezet op mijn laptop *O*
boem-dikkiedonderdag 9 september 2010 @ 20:17
quote:
Op donderdag 9 september 2010 12:06 schreef cablegunmaster het volgende:

[..]


[..]

mss dit iets voor je ;)

Daarnaast zie ik veel admins die aan raden toch een Database sessie te maken. dat houd in als ze zijn ingelogd dat de gegevens in een tabel komen. met een Tijd waarde + 60 minuten bvb.

Een sessie tabel. met dezelfde sessie tabel kun je meteen kijken hoeveel bezoekers je hebt ;) op je website.
of ze zijn ingelogd of niet. (gasten / bezoekers).

en als de site de 60 minuten overschrijd dan logt hij je uit. of je moet met dezelfde sessie op een pagina zijn geland en de sql opnieuw updaten ;) .
Ja, zoiets lijkt me mooi, maar de enige tutorials die een beetje begrijpelijk zijn voor mij zijn allemaal sites en tutorials uit 2004-2006...
RenRen-donderdag 9 september 2010 @ 20:41
quote:
Op donderdag 9 september 2010 13:33 schreef Scorpie het volgende:
Ow het is huiswerk?
Nope. Ik zit toevallig op een DMDopleiding, dit is een opdracht voor een kennis
Tuvai.netdonderdag 9 september 2010 @ 21:14
quote:
Op donderdag 9 september 2010 16:05 schreef Sitethief het volgende:

[..]



Dat is ook de reden dat veel mensen op hun bek gaan bij
[ code verwijderd ]

en
[ code verwijderd ]

In beide gevallen wordt de string '0' als leeg én als false gezien. Vooral bij array_search ging ik zelf nog wel eens op mijn bek omdat die nog wel eens 0 terug wil geven. Kwestie van de php.net documentatie goed lezen omdat het er daar heel groot bij staat.
Dat is naar mijn mening ook het grootste minpunt aan PHP. Het implementeren van Strong Typing in PHP zou hier al veel mee oplossen. Er zitten nu veel te veel functies in PHP die maar iets retourneren, wat van alles kan zijn. Je bent in PHP vaak veel te veel bezig met het controleren en afvangen van waarden, waarvan je eigenlijk gewoon uit zou moeten kunnen gaan dat het een int, een boolean, of een string is.
Lightdonderdag 9 september 2010 @ 22:18
quote:
Op donderdag 9 september 2010 21:14 schreef Tuvai.net het volgende:

[..]

Dat is naar mijn mening ook het grootste minpunt aan PHP. Het implementeren van Strong Typing in PHP zou hier al veel mee oplossen.
Met een klein beetje creativiteit kun je in PHP aantonen dat true gelijk is aan false.
poepeneesjezondag 12 september 2010 @ 00:30
Ik heb nu een query met daarin een subquery, wanneer ik deze probeer uit te laten voeren geeft hij een fout. Zonder de subquery geeft hij geen error. Iemand die toevallig ziet wat ik verkeerd doe.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
public function getTheoryWeekends($connection)
    {
        
$query =    "    SELECT        *
                        FROM        CT_theoryWeekends
                        WHERE        theoryWeekendID = (    SELECT        theoryWeekendID
                                                        FROM         CT_theoryWeekends
                                                        WHERE        endDate > NOW()
                                                         AND        status = \"enabled\")
                    "
;
        
        return 
$connection->query($query)->fetch(PDO::FETCH_ASSOC);
    }
?>
quote:
Fatal error: Call to a member function fetch() on a non-object in /home/vhosting/k/[...]/htdocs/cms/modules/theorieweekenden/module.class.php on line 21
Tuvai.netzondag 12 september 2010 @ 00:32
quote:
Op zondag 12 september 2010 00:30 schreef poepeneesje het volgende:
Ik heb nu een query met daarin een subquery, wanneer ik deze probeer uit te laten voeren geeft hij een fout. Zonder de subquery geeft hij geen error. Iemand die toevallig ziet wat ik verkeerd doe.
[ code verwijderd ]

[..]


Je subquery retourneert meerdere resultaten. Maak anders gebruik van de IN() functie van MySQL:
1SELECT * FROM tabel WHERE numeriekveld IN(123, 456, 789)
poepeneesjezondag 12 september 2010 @ 00:36
quote:
Op zondag 12 september 2010 00:32 schreef Tuvai.net het volgende:

[..]

Je subquery retourneert meerdere resultaten. Maak anders gebruik van de IN() functie van MySQL:
[ code verwijderd ]


Klote zooi :X, helemaal niet aan gedacht. Bedankt ;).
cablegunmasterzondag 12 september 2010 @ 02:21
quote:
ik kan je het principe uitleggen opdat ik het nog niet zelf heb gemaakt maar het gaat als volgt.

1 Een user logt in en alle gegevens die hij heeft worden in een table opgeslagen genaamd Table_Session.

hierin kun je heel simpel inzetten de user_id en de Time, en de Hashcode (zelfgemaakte code gebasseerd op tijd en een paar randomletters ) Randomgenerator niet al te moeilijk om te maken / vinden.

Sample van een row uit de Table_Session tabel.
User_id = 1;
Time = now() + 60 (<--voor in de query) (veld Date gebruiken als waarde)
Hashcode = 2342ahouihf324jnoi; (bvb)

2. Elke pagina die hij laad word de Sessie variabele tijd aangepast met de huidige tijd.
als de huidige tijd groter is dan die van in de tabel word hij uitgelogd. (row uit de Table_Session halen waar de tijd kleiner is dan de huidige tijd.

3. Daarnaast op de achtergrond draait er een query op elke pagina. Deze zoekt de vergelijkbare User_id met de Sessie tabel. als het niet overeen komt (Dmv de hashcode, en als de hashcode anders is of de hele row niet word gevonden in de tabel) word de gebruiker uitgelogd. Dit om injectie van $_SESSION variabele tegen te gaan.

4. Als de tijd verstreken is de 60 minuten dat hij ingelogd mag zijn is hij uitgelogd.
Tijd in de database met de Sessie vergelijken. Even kijken welke je moet vergelijken door deze site: de goeie variabelen te gebruiken. Ik weet niet hoe goed je bent met php.

Dit is een mogelijkheid die ik zou gebruiken om Sessie injectie tegen te gaan.

Als je de gegevens van die personen in een overzicht wilt hebben is het een kwestie van een leftjoin van de Sessie user_id op de user_id van de User table en alles erin te pakken en dan niet met een * maar Table.veldnaam ,table2.veldnaam.

met een simpele Count(*)op alle user_id in de table Sessie heb je alle mensen die zijn ingelogd als getal weergegeven op de website.

Dit zijn mijn inzichten dusver,
zal hem zelf ook eens moeten maken ^^
meteen maar op php vragen hoe ik tijden kan vergelijken .

Groeten,

Cablegunmaster.
Klopt het ongeveer mijn idee met een Sessie handler :)?
Tips? :D
poepeneesjezondag 12 september 2010 @ 10:31
quote:
Op zondag 12 september 2010 02:21 schreef cablegunmaster het volgende:

[..]

Klopt het ongeveer mijn idee met een Sessie handler :)?
Tips? :D
Interessant stuk, ik vraag mij af of dit niet een redelijk intensieve methode is voor de DB.
Treceszondag 12 september 2010 @ 17:17
Ik probeer de "hoofdkleur" uit foto's te halen, deze foto's staan in een map.
Uiteindelijk wil ik alle kleuren sorteren van wit naar zwart met de bestandsnaam erbij.

Ik kom alleen niet verder..
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
<?php 
function colorPalette($imageFile, $numColors, $granularity = 5) 

   $granularity = max(1, abs((int)$granularity)); 
   $colors = array(); 
   $size = @getimagesize($imageFile); 
   if($size === false) 
   { 
      user_error("Unable to get image size data"); 
      return false; 
   } 
   $img = @imagecreatefromjpeg($imageFile); 
   if(!$img) 
   { 
      user_error("Unable to open image file"); 
      return false; 
   } 
   for($x = 0; $x < $size[0]; $x += $granularity) 
   { 
      for($y = 0; $y < $size[1]; $y += $granularity) 
      { 
         $thisColor = imagecolorat($img, $x, $y); 
         $rgb = imagecolorsforindex($img, $thisColor); 
         $red = round(round(($rgb['red'] / 0x33)) * 0x33); 
         $green = round(round(($rgb['green'] / 0x33)) * 0x33); 
         $blue = round(round(($rgb['blue'] / 0x33)) * 0x33); 
         $thisRGB = sprintf('%02X%02X%02X', $red, $green, $blue); 
         if(array_key_exists($thisRGB, $colors)) 
         { 
            $colors[$thisRGB]++; 
         } 
         else 
         { 
            $colors[$thisRGB] = 1; 
         } 
      } 
   } 
   arsort($colors); 
   return array_slice(array_keys($colors), 0, $numColors); 


if ($handle = opendir('pics/')) {
    echo "Directory handle: $handle\n";
    echo "Files:\n";

    /* This is the correct way to loop over the directory. */
    while (false !== ($file = readdir($handle))) {
        echo "$file\n";
        echo getimagesize($file);
        echo colorPalette($handle.$file, 3);
        echo '<br />';
    }

    closedir($handle);
}
?>
Ik krijg de melding "Notice: Unable to get image size data in ...../color.php on line 9".

Iemand die het ziet?
wobbelzondag 12 september 2010 @ 17:24
quote:
Op zondag 12 september 2010 17:17 schreef Treces het volgende:
Ik probeer de "hoofdkleur" uit foto's te halen, deze foto's staan in een map.
Uiteindelijk wil ik alle kleuren sorteren van wit naar zwart met de bestandsnaam erbij.

Ik kom alleen niet verder..
[ code verwijderd ]

Ik krijg de melding "Notice: Unable to get image size data in ...../color.php on line 9".

Iemand die het ziet?
Ik krijg netjes output!

1Array ( [0] => CC0000 [1] => 990000 [2] => FF3300 [3] => FF6633 [4] => FF6600 ) 
GD2 goed geïnstalleerd? Goed gelinkt naar bestand?

Heb voor de gein ff getest, kijk maar hier http://progenion.nl/test

[EDIT]

Dit script ondersteund alleen JPEG bestanden ;)

"Interesting puzzle. Here's my interpretation (only works with JPEGs, could easily be enhanced to try PNG, then GIF if not a JPEG):"
http://www.phpbuilder.com/board/showthread.php?t=10355107
Treceszondag 12 september 2010 @ 17:30
JPG of JPEG zou toch niet zoveel uit moeten maken?

En hoe installeer ik GD2 goed?
Trollface.zondag 12 september 2010 @ 17:30
Je kunt in plaats van imagecreatefromjpg(...) beter imagecreatefromstring(file_get_contents(...)) doen, detecteert het type automatisch. :)
wobbelzondag 12 september 2010 @ 17:31
quote:
Op zondag 12 september 2010 17:30 schreef Treces het volgende:
JPG of JPEG zou toch niet zoveel uit moeten maken?

En hoe installeer ik GD2 goed?
JPEG en JPG is hetzelfde ;)

Je kan met <?php phpinfo(); ?> controleren welke versie van GD er is geinstalleerd.
Treceszondag 12 september 2010 @ 17:37
1
2
3
4
5
6
7
8
9
10
11
12
13
gd

GD Support    enabled
GD Version    bundled (2.0.34 compatible)
FreeType Support    enabled
FreeType Linkage    with freetype
FreeType Version    2.1.4
GIF Read Support    enabled
GIF Create Support    enabled
JPG Support    enabled
PNG Support    enabled
WBMP Support    enabled
XBM Support    enabled
wobbelzondag 12 september 2010 @ 17:39
quote:
Op zondag 12 september 2010 17:37 schreef Treces het volgende:

[ code verwijderd ]


En hoe roep je het script aan? De JPG met volledige pad? Probeer dat eens
Treceszondag 12 september 2010 @ 17:48
quote:
Op zondag 12 september 2010 17:30 schreef Trollface. het volgende:
Je kunt in plaats van imagecreatefromjpg(...) beter imagecreatefromstring(file_get_contents(...)) doen, detecteert het type automatisch. :)
De foto's die gesorteerd gaan worden zijn allemaal jpg-files.
Het gaat erom dat ik straks een map heb met 200 foto's, en dat ik die wil gaan sorteren van wit naar zwart. En om ze te sorteren wil ik eerst alle kleurcodes krijgen.

quote:
Op zondag 12 september 2010 17:39 schreef wobbel het volgende:

[..]

En hoe roep je het script aan? De JPG met volledige pad? Probeer dat eens
Done, zelfde melding.
slacker_nlzondag 12 september 2010 @ 18:02
quote:
Op zondag 12 september 2010 17:17 schreef Treces het volgende:
Ik probeer de "hoofdkleur" uit foto's te halen, deze foto's staan in een map.
Uiteindelijk wil ik alle kleuren sorteren van wit naar zwart met de bestandsnaam erbij.

Ik kom alleen niet verder..
[ code verwijderd ]

Ik krijg de melding "Notice: Unable to get image size data in ...../color.php on line 9".

Iemand die het ziet?
Ja:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$dir 
"/home/wesleys/Pictures";
#$dir = "./";

if ($handle opendir($dir)) {
    echo 
"Directory handle: $handle\n";
    echo 
"Files:\n";

    
/* This is the correct way to loop over the directory. */
    
while (false !== ($file readdir($handle))) {
        echo 
"$file\n";
        
$jpg="$dir/$file";
        if (
is_file($jpg) && is_readable($jpg) && preg_match('/\.je?pg$/i'$jpg)) {
            
print_r(colorPalette($jpg3));
            
print_r(getimagesize($jpg));
        }
    }
    
closedir($handle);
}
?>


[ Bericht 2% gewijzigd door slacker_nl op 12-09-2010 18:06:41 (dus) ]
Treceszondag 12 september 2010 @ 18:06
Ik heb nu via een omweg en wat andere snippets het op kunnen lossen.

Voor de mensen die nieuwsgierig zijn:
http://www.phpclasses.org(...)-used-in-images.html

Toch bedankt voor alle hulp!
poepeneesjemaandag 13 september 2010 @ 12:55
Ik heb een class DB, daarin heb ik een variabel public connection.

In de module.php doe ik:
1
2
3
4
5
6
7
8
9
10
<?php
$database    
= new Database();
$module        = new Module();

$overview    $module->getTheoryWeekends($database->connection);

$smarty->assign("overview"$overview);

$database->disconnect();
?>
In de module.class.php staat dus:
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
<?php
class Module
{    
    public function 
getTheoryWeekends($connection)
    {
        
$overview    = array();
        
$query         "    SELECT        *
                        FROM        CT_theoryWeekends
                        WHERE        theoryWeekendID IN (    SELECT        theoryWeekendID
                                                            FROM         CT_theoryWeekends
                                                            WHERE        endDate > NOW()
                                                             AND        status = \"enabled\")
                         AND        status = \"enabled\"
                        ORDER BY    theoryWeekendID DESC, startDate ASC
                      "
;
        
$select        $connection->query($query)->fetchAll(PDO::FETCH_OBJ);
        
        foreach(
$select as $key => $value)
        {
            if(!
array_key_exists($value->theoryWeekendID$overview))
            {
                
$overview[$value->theoryWeekendID] = array($select[$key]);
            }
            else
            {
                
$overview[$value->theoryWeekendID][] = $select[$key];
            }
        }
        
        return 
$overview;
    }
}
?>
Op mijn webserver doet hij het perfect, in xampp/localhost krijg ik de melding:
quote:
Fatal error: Call to a member function fetchAll() on a non-object in C:\Users[...]\theorieweekenden\module.class.php on line 23
Wat dus verwijst naar $select = [...] in module.class.php. Iemand een idee hoe ik dit kan oplossen en waarom dit probleem zich voor doet?
Xcaliburmaandag 13 september 2010 @ 12:57
Wat het probleem is weet ik niet, maar ik zou de database connection in de aanroep van de class meegeven, en niet in iedere functie :)
Lightmaandag 13 september 2010 @ 13:13
Is die weergave van module.class.php het volledige bestand? En klopt de regelnummering ook? (Is regel 23 waar in de foutmelding naar wordt verwezen ook regel 23 in de code hier?

En misschien heeft het met php-versies te maken. Welke versie draait er op je server? En welke in xampp?
poepeneesjemaandag 13 september 2010 @ 13:18
quote:
Op maandag 13 september 2010 13:13 schreef Light het volgende:
Is die weergave van module.class.php het volledige bestand? En klopt de regelnummering ook? (Is regel 23 waar in de foutmelding naar wordt verwezen ook regel 23 in de code hier?

En misschien heeft het met php-versies te maken. Welke versie draait er op je server? En welke in xampp?
Dit is inderdaad het volledige module.class.php bestand -> de foutmelding verwijst naar $select = $connection->query($query)->fetchAll(PDO::FETCH_OBJ);

De server draait: 5.2.4-2 en xampp: 5.3.1. Als het dus aan de versie ligt, dan zal ik er in de toekomst ook problemen mee krijgen...
Scorpiemaandag 13 september 2010 @ 13:33
Is je testdata wel hetzelfde? Ik vermoed van niet namelijk.
poepeneesjemaandag 13 september 2010 @ 13:51
quote:
Op maandag 13 september 2010 13:33 schreef Scorpie het volgende:
Is je testdata wel hetzelfde? Ik vermoed van niet namelijk.
Daar zeg je me nog eens wat :D. Echt te slecht bezig ik: gisteren en vandaag al twee van die simpele dingen over het hoofd gezien :X.

Jullie zijn geweldig :). Bedankt allemaal.
Sitethiefvrijdag 17 september 2010 @ 13:54
decoding
1
2
3
<?php
html_entity_decode
($input,ENT_QUOTES,'UTF-8')
?>
encoding
1
2
3
<?php
mysql_real_escape_string
(stripslashes(trim(htmlentities($input,ENT_QUOTES'UTF-8'))))
?>
Ik vraag me al een paar dagen af of dit de ideale manier is om dingen in de database te zetten en er weer uit te halen........
Joooo-pivrijdag 17 september 2010 @ 16:02
Ik ben nog steeds wat aan het klooien met mySQL en nu heb ik de volgende vraag:

[voorbeeld]
1 tabel met personen:
id
naam

2 tabel met data:
id
datum
persoon
aantal
[/voorbeeld]

De persoon in de 2e tabel moet natuurlijk gelinkt zijn aan tabel 1. W3schools.com heeft het over een Foreign key, maar in PHPmyAdmin zie ik dat nergens staan. Hoe moet ik te werk gaan?
Dalandovrijdag 17 september 2010 @ 21:18
quote:
Op vrijdag 17 september 2010 13:54 schreef Sitethief het volgende:
decoding
[ code verwijderd ]

encoding
[ code verwijderd ]

Ik vraag me al een paar dagen af of dit de ideale manier is om dingen in de database te zetten en er weer uit te halen........
Nee, gewoon zoals het hoort in de database doen (met codes enzo, laat alleen mysql_real_escape_string erop) en dan als je alles uit de database haalt, het functionen en utf8ten enzovoorts...
boem-dikkievrijdag 17 september 2010 @ 21:20
quote:
Op vrijdag 17 september 2010 16:02 schreef Joooo-pi het volgende:
Ik ben nog steeds wat aan het klooien met mySQL en nu heb ik de volgende vraag:

[voorbeeld]
1 tabel met personen:
id
naam

2 tabel met data:
id
datum
persoon
aantal
[/voorbeeld]

De persoon in de 2e tabel moet natuurlijk gelinkt zijn aan tabel 1. W3schools.com heeft het over een Foreign key, maar in PHPmyAdmin zie ik dat nergens staan. Hoe moet ik te werk gaan?
Waarom zet je die data niet gewoon in je personen tabel?
NonameNogamevrijdag 17 september 2010 @ 21:39
hallo hallo hallo :),

Ik zou graag php willen leren om scriptjes te kunnen schrijven en die dan kan verwerken in een site.

Het leren programmeren kan ik mezelf wel aanleren door tutorials e.d. Wat mij echter niet duidelijk is, is de gehele installatie van php icm Apache.

- Ik wil dus eerst Apache installeren en dan PHP. Maar als ik nu naar de apache site ga, krijg ik een shitload aan opties qua 'projects'. Nu is mijn vraag, welk apache-project moet ik downloaden voor mijn doeleinden? (doel: simpelweg leren van PHP-coderen en het testen van zelfgemaakte basic programmatjes. Ik wil nog niets online zetten).

- Als ik een apache project download, zoals bijv. Apache http, is mijn laptop dan direct te 'bezoeken' vanaf het internet? (ik ben nog een noob met servers en netwerken enzo).


Nogmaals, mijn doel voorlopig is om alleen PHP te leren voor OFFLINE-gebruik. Ik wil wel basic scriptjes kunnen maken en basic html-paginás waar ik die scriptjes in verwerk, en ik wil voorlopig (lees: eerste half jaar), alles graag offline-uittesten.

Wat moet ik installeren?
Swetseneggervrijdag 17 september 2010 @ 21:41
quote:
Op vrijdag 17 september 2010 21:18 schreef Dalando het volgende:

[..]

Nee, gewoon zoals het hoort in de database doen (met codes enzo, laat alleen mysql_real_escape_string erop) en dan als je alles uit de database haalt, het functionen en utf8ten enzovoorts...
Nou... als magic quotes aan staat wil je wel strip slashen....
boem-dikkievrijdag 17 september 2010 @ 21:42
quote:
Op vrijdag 17 september 2010 21:39 schreef NonameNogame het volgende:
hallo hallo hallo :),

Ik zou graag php willen leren om scriptjes te kunnen schrijven en die dan kan verwerken in een site.

Het leren programmeren kan ik mezelf wel aanleren door tutorials e.d. Wat mij echter niet duidelijk is, is de gehele installatie van php icm Apache.

- Ik wil dus eerst Apache installeren en dan PHP. Maar als ik nu naar de apache site ga, krijg ik een shitload aan opties qua 'projects'. Nu is mijn vraag, welk apache-project moet ik downloaden voor mijn doeleinden? (doel: simpelweg leren van PHP-coderen en het testen van zelfgemaakte basic programmatjes. Ik wil nog niets online zetten).

- Als ik een apache project download, zoals bijv. Apache http, is mijn laptop dan direct te 'bezoeken' vanaf het internet? (ik ben nog een noob met servers en netwerken enzo).


Nogmaals, mijn doel voorlopig is om alleen PHP te leren voor OFFLINE-gebruik. Ik wil wel basic scriptjes kunnen maken en basic html-paginás waar ik die scriptjes in verwerk, en ik wil voorlopig (lees: eerste half jaar), alles graag offline-uittesten.

Wat moet ik installeren?
Ik denk dat als je gewoon lekker offline wilt werken je het beste 'USBwebserver' kunt downloaden. Gratis software, en extreem makkelijk. http://www.usbwebserver.net/nl/

Dan hoef je ook geen zorgen te maken over het installeren van Apache e.d.
NonameNogamevrijdag 17 september 2010 @ 21:45
dank dank dank dank!! :).

Precies wat ik nodig had!
Swetseneggervrijdag 17 september 2010 @ 21:47
of appserv of een andere wamp installatie.
Lightvrijdag 17 september 2010 @ 21:49
quote:
Op vrijdag 17 september 2010 21:41 schreef Swetsenegger het volgende:

[..]

Nou... als magic quotes aan staat wil je wel strip slashen....
Maar dat hoort uit te staan bij een goede installatie. En in PHP6 kan het niet meer aan. :)
Swetseneggervrijdag 17 september 2010 @ 21:56
quote:
Op vrijdag 17 september 2010 21:49 schreef Light het volgende:

[..]

Maar dat hoort uit te staan bij een goede installatie. En in PHP6 kan het niet meer aan. :)
Er zal zat shared hosting zijn met magic quotes aan. Maar goed dan zo

1
2
3
4
5
<?php
if(get_magic_quotes_gpc()){
   
//strip_slashes
}
?>
Lightvrijdag 17 september 2010 @ 22:19
quote:
Op vrijdag 17 september 2010 21:56 schreef Swetsenegger het volgende:

[..]

Er zal zat shared hosting zijn met magic quotes aan. Maar goed dan zo
[ code verwijderd ]


True :) Zolang je er maar rekening mee houdt dat $_GET en $_POST (en de andere superglobals) ook arrays als elementen kunnen hebben en dat array_walk_recursive pas sinds PHP5 bestaat.
Swetseneggervrijdag 17 september 2010 @ 22:25
quote:
Op vrijdag 17 september 2010 22:19 schreef Light het volgende:

[..]

True :) Zolang je er maar rekening mee houdt dat $_GET en $_POST (en de andere superglobals) ook arrays als elementen kunnen hebben en dat array_walk_recursive pas sinds PHP5 bestaat.
Daar had roonaan een leuke functie voor geschreven:

1
2
3
4
5
6
7
<?php
function stripslashes_deep($value)
{
   
$value is_array($value) ? array_map('stripslashes_deep'$value) : stripslashes($value);
   return 
$value;
}
?>
Joooo-pivrijdag 17 september 2010 @ 22:30
quote:
Op vrijdag 17 september 2010 21:20 schreef boem-dikkie het volgende:

[..]



Waarom zet je die data niet gewoon in je personen tabel?
Dit is beetje simpel voorbeeld, maar er is dan nog een tabel met een rijtje constanten. In de data tabel combineren dan persoon en die andere constante met gegevens op een bepaalde datum...
Darkomenzaterdag 18 september 2010 @ 00:40
Edit, ik reageer op een hele oude post :(
Crutchzaterdag 18 september 2010 @ 01:55
AAAAARGH!!!! :(

Ik lees de volgende foutmelding in een log file:

1Use of undefined constant \x91memory_limit\x92 - assumed '\x91memory_limit\x92' in .................
En dat komt door deze regel in een PHP-bestand:

1
2
3
<?php
ini_set
('memory_limit''12M');
?>
Die klopt toch gewoon?
Of loopt mijn hosting provider nu te kutten?

[ Bericht 7% gewijzigd door Crutch op 18-09-2010 02:13:34 ]
Crutchzaterdag 18 september 2010 @ 02:12
quote:
Op zaterdag 18 september 2010 01:55 schreef Crutch het volgende:
AAAAARGH!!!! :(

Ik lees de volgende foutmelding in een log file:
[ code verwijderd ]

En dat komt door deze regel in een PHP-bestand:
[ code verwijderd ]

Die klopt toch gewoon?
Of loopt mijn hosting provider nu te kutten?
Okay, opgelost door een php.ini met memory_limit = 12M in de desbetreffende map te flikkeren.
Crutchzaterdag 18 september 2010 @ 02:14
quote:
Op zaterdag 18 september 2010 02:12 schreef Crutch het volgende:

[..]

Okay, opgelost door een php.ini met memory_limit = 12M in de desbetreffende map te flikkeren.
En de aanhalingstekens waren fout. :')
Als ik daar nou eens eerst naar gekeken had....
boem-dikkiezaterdag 18 september 2010 @ 11:13
quote:
Op vrijdag 17 september 2010 22:30 schreef Joooo-pi het volgende:

[..]

Dit is beetje simpel voorbeeld, maar er is dan nog een tabel met een rijtje constanten. In de data tabel combineren dan persoon en die andere constante met gegevens op een bepaalde datum...
Nou. Ik hoop dat ik je dit duidelijk kan uitleggen.

Je hebt als voorbeeld twee tabellen.

Nieuws en categorie.

In de tabel categorie staan
'categorie_id' <- Primaire sleutel
'naam'

In de tabel nieuws staan
'nieuws_id' <- Primaire sleutel
'naam'
'bericht'
'categorie_id' <- Verwijzende sleutel.

Je kunt vervolgens met een JOIN (beetje lastig uitleggen, moet je even Google gebruiken) zorgen dat hij de verwijzende sleutel koppelt aan de andere tabel en in het nieuwsbericht dus de categorie laat zien waarvan de categorie_id overeenkomt.
GlowMousezaterdag 18 september 2010 @ 11:19
Dan heb je nog geen foreign key. Alleen InnoDB ondersteunt foreign keys, en je kunt ze niet aanmaken door in phpmyadmin te klikken maar je moet zelf de query ervoor typen.

http://dev.mysql.com/doc/(...)key-constraints.html
boem-dikkiezaterdag 18 september 2010 @ 11:20
quote:
Op zaterdag 18 september 2010 11:19 schreef GlowMouse het volgende:
Dan heb je nog geen foreign key. Alleen InnoDB ondersteunt foreign keys, en je kunt ze niet aanmaken door in phpmyadmin te klikken maar je moet zelf de query ervoor typen.

http://dev.mysql.com/doc/(...)key-constraints.html
Wat is het verschil in werking tussen zo'n verwijzende sleutel als ik hem uitleg en een foreign key :@ ?
GlowMousezaterdag 18 september 2010 @ 11:21
quote:
Op zaterdag 18 september 2010 11:20 schreef boem-dikkie het volgende:

[..]

Wat is het verschil in werking tussen zo'n verwijzende sleutel als ik hem uitleg en een foreign key :@ ?
Dat er een check plaatsvindt of categorie_id echt bestaat wanneer je een rij invoegt/aanpast.
Joooo-pizaterdag 18 september 2010 @ 12:02
quote:
Op zaterdag 18 september 2010 11:21 schreef GlowMouse het volgende:

[..]


Dat er een check plaatsvindt of categorie_id echt bestaat wanneer je een rij invoegt/aanpast.
Hmm, misschien denk ik te moeilijk en neem ik het begrip "relationele database" te serieus...

Ik zal van het voorbeeld even de echte situatie schetsen. Hopelijk kunnen jullie me adviseren hoe ik het op moet bouwen.

Op mijn werk hebben we 8 productielijnen, zo'n 14 lijnchefs.

Per dag wordt bijgehouden hoeveel uitval er gemaakt is op de lijn en welke chef daar bij was.

Nu wil ik dit een beetje netjes in een database opslaan (tevens learning on the job :D ) door wat simpele php pagina's te schrijven om de gegevens in te voeren. Ik ben al wel zover dat een probeersel in grote lijnen werkt.

Als ik nu voor het echie iets wil gaan maken wil ik het natuurlijk goed doen he :) En zo zag ik dus een tabel "Chef" en en de tabel "data" de rij "chef", zonder dat die gelinkt zijn...

Ik kan in het php script natuurlijk zo schrijven dat de rij "chef" altijd gevuld wordt met gegevens uit de tabel "chef", maar dan zijn ze op zich niet echt gekoppeld, toch??

edit:
Ohja, in het probeersel had ik 3 tabellen:
Tabel 1: Lijnen:
id
lijnnummer

Tabel 2: Chefs
id
Voornaam
Achternaam

Tabel 3: Data
id
datum
chef
lijn
hoeveelheid
Tuvai.netzaterdag 18 september 2010 @ 12:23
Het idee van relationele databases is dat je de logica en relaties van objecten/entiteiten op databaseniveau neerlegt. Je kunt zeker in je PHP code (op applicatieniveau) allemaal checks gaan uitvoeren, maar dat is veel te omslachtig. Als je foreign keys legt dan vertel je je database eigenlijk dat TabelX - VeldX verwijst naar TabelY - VeldX. Sowieso is het veel beter voor de integriteit van je gegevens, als je met een relationeel databasemodel werkt. Je kunt in een niet-relationele database bijvoorbeeld een record invoeren, met een veld dat verwijst naar een record dat niet eens bestaat, hetgeen weer resulteert in het schrijven van allerlei overbodige code m.b.t. het controleren en dergelijke. :)
Tuvai.netzaterdag 18 september 2010 @ 12:25
quote:
Op zaterdag 18 september 2010 11:19 schreef GlowMouse het volgende:
Dan heb je nog geen foreign key. Alleen InnoDB ondersteunt foreign keys, en je kunt ze niet aanmaken door in phpmyadmin te klikken maar je moet zelf de query ervoor typen.

http://dev.mysql.com/doc/(...)key-constraints.html
Kan wel gewoon in PHPMyAdmin hoor. Als je een InnoDB tabel hebt verschijnt er op de tabel-structuur pagina een linkje 'Relatieoverzicht'. :) Wellicht dat oudere versies van PMA dat nog niet ondersteunden.
Joooo-pizaterdag 18 september 2010 @ 12:40
quote:
Op zaterdag 18 september 2010 12:23 schreef Tuvai.net het volgende:
Het idee van relationele databases is dat je de logica en relaties van objecten/entiteiten op databaseniveau neerlegt. Je kunt zeker in je PHP code (op applicatieniveau) allemaal checks gaan uitvoeren, maar dat is veel te omslachtig. Als je foreign keys legt dan vertel je je database eigenlijk dat TabelX - VeldX verwijst naar TabelY - VeldX. Sowieso is het veel beter voor de integriteit van je gegevens, als je met een relationeel databasemodel werkt. Je kunt in een niet-relationele database bijvoorbeeld een record invoeren, met een veld dat verwijst naar een record dat niet eens bestaat, hetgeen weer resulteert in het schrijven van allerlei overbodige code m.b.t. het controleren en dergelijke. :)
Oke, e.e.a. moet dus wel gelinkt worden in de database. Hoe kan ik dit het beste opbouwen?

(ps. ik werk dus met een LAMP servertje)
Tuvai.netzaterdag 18 september 2010 @ 12:53
quote:
Op zaterdag 18 september 2010 12:40 schreef Joooo-pi het volgende:

[..]

Oke, e.e.a. moet dus wel gelinkt worden in de database. Hoe kan ik dit het beste opbouwen?

(ps. ik werk dus met een LAMP servertje)
Je kunt hier gewoon PHPMyAdmin voor gebruiken. :)

Je dient er allereerst voor de zorgen dat je tabellen de Storage Engine InnoDB gebruiken, en niet de (nu nog) standaard MyISAM. Ook zorg je dat de velden die naar elkaar moeten verwijzen, identiek zijn (dus beiden bijvoorbeeld 'unsigned' ints). Leg ook Indexes op de velden die je straks gaat gebruiken voor je Foreign Keys.

Zodra een tabel InnoDB als Storage Engine gebruikt, zal er op de Structuur-pagina van een tabel (onder de velden) een linkje 'Relation View' verschijnen. Daarmee kom je op een pagina waar je per veld een Foreign Key kunt leggen naar de betreffende tabel en het veld. Kwestie van de tabel + veld in de dropdown selecteren, opslaan en klaar is Kees. :)

Een ander voordeel is, zoals die Relation View pagina al impliceert, dat je recursief handelingen uit kunt voeren als een record verwijderd of geupdate wordt. Dat is handig voor situaties waar je een heleboel tabellen hebt die relationeel met elkaar verbonden zijn, en dat je een tabel op het 'hoogste' hiërarchische niveau verwijderd dat ook de onderliggende record verwijderd worden. Ik heb het toevallig van de week nog gehad bij een enquête applicatie met de volgende hiërarchie voor de enquêtes:

Enquête -> Rubriek -> Categorie -> Vraag

Kortom, voor het verwijderen van een hele enquête en de daaronder liggende rubrieken, categorieën en vragen, hoef ik alleen maar de enquête te verwijderen. De database doet dan de rest. :)
Joooo-pizaterdag 18 september 2010 @ 13:00
Oke ^O^

Maandag op m'n werk proberen (als ik tijd heb :') )
boem-dikkiezondag 19 september 2010 @ 11:16
Weet iemand trouwens hoe ik gemakkelijk mijn URL kan veranderen in iets anders?

Ik heb nu al wel met een .htaccess bestandje dat hij alle extensies weghaalt dus dat je gewoon website.com/pagina/ krijgt..

Alleen ik heb dus nu op profiel pagina's website.com/lidprofiel.php?id=59.

Zou het liefst gewoon website.com/naamvandepersoon/ of website.com/lidprofiel/59/ willen hebben.
KomtTijd...zondag 19 september 2010 @ 11:18
quote:
Op zondag 19 september 2010 11:16 schreef boem-dikkie het volgende:
Weet iemand trouwens hoe ik gemakkelijk mijn URL kan veranderen in iets anders?

Ik heb nu al wel met een .htaccess bestandje dat hij alle extensies weghaalt dus dat je gewoon website.com/pagina/ krijgt..

Alleen ik heb dus nu op profiel pagina's website.com/lidprofiel.php?id=59.

Zou het liefst gewoon website.com/naamvandepersoon/ of website.com/lidprofiel/59/ willen hebben.
Zoals je zelf al zegt dat doe je in .htaccess, heeft niets met PHP te maken.

Voor de rest zijn datsoort regeltjes bij bosjes te vinden. 'k zal even wat voor je copypasten...

1
2
3
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
Dit is redelijk foolproof, hij checkt eerst of het geen bestaande bestand of map is, en voert dan de rewrite uit.
Wil je de rewrites wat ingewikkelder maken, verdiep je dan in regular expressions.
Chandlermaandag 20 september 2010 @ 09:25
Weet iemand ook een manier om uit te vinden of een mysql tabel is geupdated? zodat dat er een veld is met een timestamp/datum/oid.

Eventueel te achterhalen op welke datum/tijd deze tabel voor't laatst is geupdated? dit ivm caching er van?
Sitethiefmaandag 20 september 2010 @ 09:49
quote:
Op maandag 20 september 2010 09:25 schreef Chandler het volgende:
Weet iemand ook een manier om uit te vinden of een mysql tabel is geupdated? zodat dat er een veld is met een timestamp/datum/oid.

Eventueel te achterhalen op welke datum/tijd deze tabel voor't laatst is geupdated? dit ivm caching er van?
mySQL heeft volgens mij een ingebouwde timestamp functie die bijgewerkt wordt zodra er data in dat record verandert.
Chandlermaandag 20 september 2010 @ 10:26
klopt, maar wil eingelijk weten wanneer het tabel op zich is aangepast wanneer er een update/insert/delete actie heeft plaats gevonden.

Dit zal toch wel opgeslagen worden? ergens?

Opzich zou ik http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html
1Update_time
kunnen gebruiken maar helaas draai ik windows
1on Windows the timestamp is not updated by updates so the value is inaccurate.
:{
Scorpiemaandag 20 september 2010 @ 10:44
Maak gewoon een dateCreated en dateUpdated veld aan met 2 timestamps, dateUpdated laat je in phpmyadmin 'on update CURRENT_TIMESTAMP' meegeven, dateCreated vul je zelf bij het aanmaken van het record.
Chandlerwoensdag 22 september 2010 @ 15:33
Ik had gehoopt dat dit gemakkelijker te achterhalen was zonder speciaal extra veld maar helaas.

Andere vraag.

Stel ik heb een array

$array = array(1 => "test", 2 => "test1", 3 => "test2");

nu verwijder ik $array[2] en heb dus dan nog 1 & 3 over, hoe kan ik simpel zorgen dat 3 geen 3 blijft maar 2 wordt?
GlowMousewoensdag 22 september 2010 @ 15:36
Waarom zou je dat willen? Ik denk dat je array_values moet gebruiken.
#ANONIEMwoensdag 22 september 2010 @ 16:44
Een klant van ons wil een top 10 selectie ontvangen het hoogste aantal records per postcode gebied ( bv postcode 1000-1099 ).

Is het mogelijk om hier een script voor te maken?

( vb hoe het in Dbase staat ):
SELECT * FROM `adresgegevensBoxen` WHERE `nieuwPostcode_cijfers` LIKE '1055'
GlowMousewoensdag 22 september 2010 @ 16:47
Je eerste zin is geen zin.
#ANONIEMwoensdag 22 september 2010 @ 20:56
Nu wel :)

Een klant van ons wil een top10 selectie ontvangen van het hoogste aantal records per postcode gebied ( bv postcode 1000-1099 ).

Is het mogelijk om hier een script voor te maken?

( vb hoe het in Dbase staat ):
SELECT * FROM `adresgegevensBoxen` WHERE `nieuwPostcode_cijfers` LIKE '1055'

[ Bericht 0% gewijzigd door #ANONIEM op 22-09-2010 20:56:26 ]
GlowMousewoensdag 22 september 2010 @ 20:58
in een gebied zijn de eerste 2 cijfers hetzelfde?
#ANONIEMwoensdag 22 september 2010 @ 21:54
Amsterdam is bv postcode 1000 tot 1099

maar we hebben dus allemaal diverse postcodes in ons systeem staan, en de klant wilt dus de top10 meest ingevoerde postcodes hebben

of los ( dus 1055 ) of in een gebied, dus tussen 2 postcodes
GlowMousewoensdag 22 september 2010 @ 21:57
hoe staat een en ander in je db?
#ANONIEMwoensdag 22 september 2010 @ 22:02
SELECT * FROM `adresgegevensBoxen` WHERE `nieuwPostcode_cijfers` LIKE '1055'


postcode cijfers en letters zijn apart
GlowMousewoensdag 22 september 2010 @ 22:04
Dat had je al gepost. Maar je dataschema wil ik. En hoe die groepen in je db staan.
#ANONIEMwoensdag 22 september 2010 @ 22:15
nieuwPostcode_cijfers varchar(4) latin1_swedish_ci
staat in de 12e kolom

verder staat het dus in die adresgegevens map, en dan een hele datalijst ( id, NAW enz )
Lightwoensdag 22 september 2010 @ 22:17
quote:
Op woensdag 22 september 2010 20:56 schreef Estolan het volgende:
Nu wel :)

Een klant van ons wil een top10 selectie ontvangen van het hoogste aantal records per postcode gebied ( bv postcode 1000-1099 ).
Wat bedoel je precies met "het hoogste aantal records per postcodegebied"?
GlowMousewoensdag 22 september 2010 @ 22:24
waarom varchar ipv smallint?
ouyevoliwoensdag 22 september 2010 @ 22:29
quote:
Op woensdag 22 september 2010 15:33 schreef Chandler het volgende:
Ik had gehoopt dat dit gemakkelijker te achterhalen was zonder speciaal extra veld maar helaas.

Andere vraag.

Stel ik heb een array

$array = array(1 => "test", 2 => "test1", 3 => "test2");

nu verwijder ik $array[2] en heb dus dan nog 1 & 3 over, hoe kan ik simpel zorgen dat 3 geen 3 blijft maar 2 wordt?
Het zal wellicht makkelijker kunnen, maar dit is het eerste waar ik op kwam...
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
<?php

class dataLoop
{
    private 
$array = array();
     
    
/*
     * @output array $newArray
     * @param array $array
     * @param string $key
     * @short In $array wordt de key $key (+ value) verwijderd en 
     *             de overige arrays worden naar voren geschoven.
     */
    
public function deleteKey($array$key)
    {
        foreach(
$array as $aKey => $aValue)
        {
            if(
$key != $aKey && $aKey $key)
            {
                
$newArray[$aKey] = $aValue;
            }
            elseif(
$key != $aKey && $aKey $key)
            {
                
$newArray[$aKey-1] = $aValue;
            }
        }
        return 
$newArray;
    }
}

$array = array(=> "test"=> "test1"=> "test2");
print_r($array);
echo(
"<br />");
$dataloop = new dataLoop;
print_r($dataloop->deleteKey($array1));

?>
De output:
1
2
3
4
<?php
Array ( [1] => test [2] => test1 [3] => test2 
Array ( [
1] => test1 [2] => test2 )
?>
GlowMousewoensdag 22 september 2010 @ 22:31
quote:
Op woensdag 22 september 2010 22:29 schreef ouyevoli het volgende:

[..]

Het zal wellicht makkelijker kunnen, maar dit is het eerste waar ik op kwam...
[ code verwijderd ]

De output:
[ code verwijderd ]


Leuk, maar unset gevolgd door array_values is korter :P
#ANONIEMwoensdag 22 september 2010 @ 22:33
quote:
Op woensdag 22 september 2010 22:24 schreef GlowMouse het volgende:
waarom varchar ipv smallint?
geen idee, ik heb de database niet in elkaar gezet

@light

Bij elke aanmelding word er een id record aangemaakt. De klant wilt dus weten in welk postcode gebied de meeste aanvragen zijn

[ Bericht 16% gewijzigd door #ANONIEM op 22-09-2010 22:35:10 ]
#ANONIEMwoensdag 22 september 2010 @ 22:35
quote:
Op woensdag 22 september 2010 22:29 schreef ouyevoli het volgende:

[..]

Het zal wellicht makkelijker kunnen, maar dit is het eerste waar ik op kwam...
[ code verwijderd ]

De output:
[ code verwijderd ]


Volgens mij is dit niet helemaal wat ik zoek :)
Trollface.woensdag 22 september 2010 @ 22:42
Zoals GM dus zegt:
1
2
3
4
5
<?php
$arrData 
= array('foo''bar''baz');
unset(
$arrData[1]);
$arrData array_values($arrData);
?>
Lightwoensdag 22 september 2010 @ 22:48
quote:
Op woensdag 22 september 2010 22:31 schreef GlowMouse het volgende:

[..]


Leuk, maar unset gevolgd door array_values is korter :P
Na array_values() begint je array met index 0 :)
GlowMousewoensdag 22 september 2010 @ 22:49
oh hij wil 1, dan merge je hem eerst met een array en gooi je 0 weer weg.
Chandlerdonderdag 23 september 2010 @ 08:31
Grappig, ik dacht dat daar wel een functie voor was in php :P

Maar tnx ppl, ik had zelf ook al een kleine functie voor geschreven... :
GlowMousedonderdag 23 september 2010 @ 09:52
quote:
Op donderdag 23 september 2010 08:31 schreef Chandler het volgende:
Grappig, ik dacht dat daar wel een functie voor was in php :P

Maar tnx ppl, ik had zelf ook al een kleine functie voor geschreven... :
quote:
Op woensdag 22 september 2010 15:36 schreef GlowMouse het volgende:
Waarom zou je dat willen?
GlowMousedonderdag 23 september 2010 @ 09:53
[PHP/(My)SQL] voor dummies - Deel 84