abonnement Unibet Coolblue Bitvavo
pi_167195455
quote:
1s.gif Op donderdag 8 december 2016 18:55 schreef Nattekat het volgende:

[..]

}:|

[..]

Spelfouten zijn niet zo erg. Het is onderdeel van een systeem dat gegevens uit een lijst met verpakte orders haalt en vervolgens op de site van de vervoerder alle velden invult. Die site filtert de eventuele stijlfouten er wel uit, en dan moet het ook nog door en persoon daadwerkelijk verzonden worden.

Voor wat het moet doen, werkt het perfect.
Bezig met een gelijksoortig iets, van de api die ik hierboven postte direct door naar de CIF Api van PostNL.Ik zie dat ze sinds kort een nieuw veld hebben "StreetHouseNrExt" dus ik speel hem gewoon direct door nu. Af en toe een boete vanwege een incorrect adres is goedkoper dan alles controleren.

:P Maar ik blijf het raar vinden want dit is ook niet het eerste bedrijf dat dit flikt.

quote:
0s.gif Op donderdag 8 december 2016 18:25 schreef Light het volgende:

[..]

Ik heb geen idee wat ze doen, en of ze überhaupt om verschillende velden vragen. Maar je zou natuurlijk bij de aanbieder van de API kunnen informeren of ze huisnummer apart hebben en kunnen aanleveren. Het kan als extra veld, dus dat zou verder geen impact mogen hebben.
Al gedaan maar was "technisch niet mogelijk" (wat ik altijd een onzin antwoord vind), maarja dan houdt het op.
pi_167195505
quote:
1s.gif Op donderdag 8 december 2016 18:55 schreef Nattekat het volgende:

[..]

}:|

[..]

Spelfouten zijn niet zo erg. Het is onderdeel van een systeem dat gegevens uit een lijst met verpakte orders haalt en vervolgens op de site van de vervoerder alle velden invult. Die site filtert de eventuele stijlfouten er wel uit, en dan moet het ook nog door en persoon daadwerkelijk verzonden worden.

Voor wat het moet doen, werkt het perfect.
Als het doet wat het moet doen is het prima natuurlijk. ;)
Vaak zie je bij adressen echter dat het belangrijk is om ook te controleren of het een bestaand adres is en / of wat de bijbehorende locatie / postcode is. Dan is een regex doorgaans niet het juiste middel.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
  Moderator / Redactie Sport donderdag 8 december 2016 @ 19:09:04 #93
359864 crew  Nattekat
De roze zeekat
pi_167195585
quote:
1s.gif Op donderdag 8 december 2016 19:06 schreef Monolith het volgende:

[..]

Als het doet wat het moet doen is het prima natuurlijk. ;)
Vaak zie je bij adressen echter dat het belangrijk is om ook te controleren of het een bestaand adres is en / of wat de bijbehorende locatie / postcode is. Dan is een regex doorgaans niet het juiste middel.
Die regex moet de staat, huisnummer en toevoeging onderscheiden. Dat lijkt me wel een belangrijke eerste stap voor je het in wat voor api dan ook gaat gooien.
100.000 katjes
Fuck the EBU!
pi_167195710
quote:
19s.gif Op donderdag 8 december 2016 19:04 schreef TwenteFC het volgende:


[..]

Al gedaan maar was "technisch niet mogelijk" (wat ik altijd een onzin antwoord vind), maarja dan houdt het op.
Dat is gewoon marketingjargon voor "we willen het niet of we kunnen het niet" ja :')
pi_167195764
quote:
1s.gif Op donderdag 8 december 2016 19:09 schreef Nattekat het volgende:

[..]

Die regex moet de staat, huisnummer en toevoeging onderscheiden. Dat lijkt me wel een belangrijke eerste stap voor je het in wat voor api dan ook gaat gooien.
Dat kan, maar als je de boel ik een Lucene index gooit en bijvoorbeeld kijkt naar de Levenshtein distance, dan kun je wel matchen en het daadwerkelijke adres achterhalen. Kun je ook nog allerhande andere tokenization hanteren voor meer opties.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_167198969
quote:
19s.gif Op donderdag 8 december 2016 19:04 schreef TwenteFC het volgende:

[..]

Bezig met een gelijksoortig iets, van de api die ik hierboven postte direct door naar de CIF Api van PostNL.Ik zie dat ze sinds kort een nieuw veld hebben "StreetHouseNrExt" dus ik speel hem gewoon direct door nu. Af en toe een boete vanwege een incorrect adres is goedkoper dan alles controleren.

:P Maar ik blijf het raar vinden want dit is ook niet het eerste bedrijf dat dit flikt.

[..]

Al gedaan maar was "technisch niet mogelijk" (wat ik altijd een onzin antwoord vind), maarja dan houdt het op.
Aan de andere kant heb je te maken met een Amerikaanse(?) organisatie die waarschijnlijk de hele wereld als marktgebied wil. Waarom zou je dan een apart veld maken voor huisnummer? En, zoals ik al aangaf, ik heb geen idee hoe ze het adres aan de (Nederlandse) bezoekers vragen. Als ze gewoon invulveldjes hebben voor 2 adresregels, dan hebben ze de data niet gescheiden.
pi_167199187
quote:
0s.gif Op donderdag 8 december 2016 20:58 schreef Light het volgende:

[..]

Aan de andere kant heb je te maken met een Amerikaanse(?) organisatie die waarschijnlijk de hele wereld als marktgebied wil. Waarom zou je dan een apart veld maken voor huisnummer? En, zoals ik al aangaf, ik heb geen idee hoe ze het adres aan de (Nederlandse) bezoekers vragen. Als ze gewoon invulveldjes hebben voor 2 adresregels, dan hebben ze de data niet gescheiden.
:P
pi_167199311
Maar nu dit topic toch weer een beetje leeft, heeft iemand hier wel eens tegen SAP/EDI aangepraat vanuit PHP en dan voornamelijk dingen DESADV/ORDER/INVOICE messages?
pi_167199345
quote:
19s.gif Op donderdag 8 december 2016 21:04 schreef TwenteFC het volgende:

[..]

:P [ afbeelding ]
Dan lijkt het er idd op dat ze straat en huisnummer apart opslaan. En dan moeten ze het ook apart kunnen aanleveren.
pi_167199513
quote:
0s.gif Op donderdag 8 december 2016 21:09 schreef Light het volgende:

[..]

Dan lijkt het er idd op dat ze straat en huisnummer apart opslaan. En dan moeten ze het ook apart kunnen aanleveren.
Er is een aparte invoer. Zegt niet direct iets over de de opslag. ;)
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_167199603
quote:
1s.gif Op donderdag 8 december 2016 21:13 schreef Monolith het volgende:

[..]

Er is een aparte invoer. Zegt niet direct iets over de de opslag. ;)
True. Dan moet je eigenlijk bekijken hoe het eruit ziet als je de adresgegevens gaat bewerken.
pi_167199797
En als we het over adressen hebben, is https://www.mjt.me.uk/pos(...)eve-about-addresses/ wel interessant leesvoer.
pi_167667417
Ik heb de volgende string: " 84331 GB / 88282 GB avail"
Daaruit wil ik de 2 getallen uit halen. Met awk in bash is dat simpel (awk {'print $1 $4'}), maar PHP kent helaas geen awk. Wat is een (simpele) alternatief, behalve exploden op spaties (kan wel, maar lelijk).
  woensdag 28 december 2016 @ 11:11:00 #104
12221 Tijn
Powered by MS Paint
pi_167667678
quote:
0s.gif Op woensdag 28 december 2016 11:01 schreef xaban06 het volgende:
Ik heb de volgende string: " 84331 GB / 88282 GB avail"
Daaruit wil ik de 2 getallen uit halen. Met awk in bash is dat simpel (awk {'print $1 $4'}), maar PHP kent helaas geen awk. Wat is een (simpele) alternatief, behalve exploden op spaties (kan wel, maar lelijk).
Er is niks lelijk aan exploden op spatie en vervolgens het 1e en 4e element te pakken, hoor. Dat is in feite hetzelfde als wat je met awk doet.
  Moderator / Redactie Sport woensdag 28 december 2016 @ 11:21:52 #105
359864 crew  Nattekat
De roze zeekat
pi_167668024
Ik ben dan een fan van regex :Y
preg_match in php.
100.000 katjes
Fuck the EBU!
pi_167668467
Een regex lijkt me duurder qua resources dan een explode.
Drop drop drop drop drop drop drop!!!! DROP!!! drop drop drop drop !!
pi_167669685
Een explode op spaties is precies wat awk onder water doet.
pi_167670216
Oke oke, dank jullie wel allemaal :)
pi_167807837
Ik snap er geen kut van.. ik heb deze code:

1
2
3
4
5
6
7
8
9
<?php
if(isset($_GET['id'])){
    if(isset(
$_COOKIE['tijden'])){ setcookie("tijden"$_COOKIE['tijden']."s".$_GET['id']."-".time(), time()+(60*60*30)); }else{ setcookie("tijden"$_GET['id']."-".time(), time()+(60*60*30)); }

include(
'incl.php');

echo 
json_encode(array($d[0][0], $d[0][1], $d[0][4]));
}
?>

incl.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$mysqli 
= new mysqli("localhost","root","","r");
if (
$mysqli->connect_errno) echo "Error - Failed to connect to MySQL: " $mysqli->connect_error;
$r $mysqli->query("SELECT * FROM f ORDER BY s DESC");
$d = array();
while(
$row mysqli_fetch_array($r)) {
       
$d[$row[0]] = array($row[0], $row[1], $row[2], $row[3], $row[4]);    
}
mysqli_close ($mysqli);

if(isset(
$_COOKIE['tijden'])){
    
$a explode('s'$_COOKIE['tijden']);
    
$z "";
    foreach(
$a as $b){
        
$c explode('-'$b);
$x $d[$c[0]][4];
        if((
$c[1]+$x) > time()){
            unset(
$d[$c[0]]);
            
$z .= $b."s";
        } 
    }
    
$z substr($z0, -1);
    if(
$z != ""){ setcookie("tijden"$ztime()+(60*60*30)); }else{ setcookie("tijden"""1); };

}
$d array_values($d);
?>

Als er nog geen cookie bestaat en ik geef id=1 of wat dan ook mee dan werkt het dan staat er een cookie genaamd tijden met 1-32435354 oid als ik dan nog een keer laad met id=2 oid dan veranderd er niks, dan blijft de cookie hetzelfde, als ik incl.php niet include, dan doet ie het wel dan heb ik een cookie met 1-23434534s2-34545646 oid
de setcookie onderaan in incl.php werkt wel, dat weet ik omdat als de tijd verstreken is het eruit word gehaald.
Wat is het probleem hier?
pi_167808185
Het zou erg helpen als je je code leesbaarder schrijft (liefst volgens de psr-2 standaard). Schrijf de if statements netjes uit op nieuwe regels en gebruik beschrijvende namen. Je maakt er nu bijna een sport van om zo min mogelijk karakters en regels te gebruiken :P

Random tips:
- Doe een SELECT kolom1, kolom2 FROM ipv SELECT * FROM, zodat je die array(..) constructie niet hoeft te maken
- Gebruik mysqli_fetch_assoc, zodat je niet met vage numerieke indices moet werken
pi_167808213
Begin eens met het fatsoenlijk indenten van je code, dat maakt het stuk leesbaarder. Het kan ook helpen om je variabelen een naam te geven die aangeeft wat ze voorstellen in plaats van letters.

Het is mij nu een compleet raadsel wat er gebeurt en wat je wilt dat er gebeurt. Als je dingen netjes opschrijft wordt het ook een stuk makkelijker om erover na te denken en te vinden waar je fout zit.
  zondag 1 januari 2017 @ 15:42:20 #112
457856 H.Witkamp
Vijf gulde!!!
pi_167808706
Je gebruikt setcookie in het bestand incl.php. De setcookie die je voor include('incl.php') gebruikt wordt dan overschreven.

De cookie die je met setcookie zet wordt pas met de volgende request meegestuurd dus de inhoud van $_COOKIE['tijden'] veranderd niet gelijk na setcookie.

Wat je zou kunnen doen is
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if(isset($_GET['id'])){
    if(isset(
$_COOKIE['tijden'])){ 
        
$cookie $_COOKIE['tijden']."s".$_GET['id']."-".time();        
     }else{ 
        
$cookie $_GET['id']."-".time();
    }
}

include(
'incl.php');

echo 
json_encode(array($d[0][0], $d[0][1], $d[0][4]));
}
?>

en dan in incl.php $cookie gebruiken ipv $_COOKIE['tijden'].
pi_167809005
Sorry als mijn post wat negatief overkwam, ik heb je code een beetje herschreven als voorbeeld hoe je dingen leesbaarder kunt maken en makkelijker fouten op kan sporen. Leer jezelf dit aan en je gaat enorm veel tijd en frustratie besparen op langere termijn.

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

const COOKIE_NAME 'tijden';
const 
THIRTY_MINUTES 60 60 30;

if (isset(
$_GET['id'])) {
    
$newEntry $_GET['id'] . "-" time();
    
$prepend = isset($_COOKIE[COOKIE_NAME]) ? $_COOKIE[COOKIE_NAME] . 's' '';
    
$expiryTime time() + THIRTY_MINUTES;
    
setcookie(COOKIE_NAME$prepend $newEntry$expiryTime);

    include(
'incl.php');

    echo 
json_encode(array($data[0][0], $data[0][1], $data[0][4]));
}

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

$mysqli 
= new mysqli('localhost''root''''r');

if (
$mysqli->connect_errno) {
    echo 
"Error - Failed to connect to MySQL: " $mysqli->connect_error;
}

$result $mysqli->query('SELECT * FROM f ORDER BY s DESC');

$data = array();
while(
$row mysqli_fetch_array($result)) {
    
$data[$row[0]] = array($row[0], $row[1], $row[2], $row[3], $row[4]);
}
mysqli_close ($mysqli);

if(isset(
$_COOKIE[COOKIE_NAME])){
    
$entries explode('s'$_COOKIE[COOKIE_NAME]);
    
$newCookie '';
    foreach(
$entries as $entry){
        list(
$id$time) = explode('-'$entry);
        
$seconds $data[$id][4];
        if ((
$time $seconds) > time()) {
            unset(
$data[$id]);
            
$newCookie .= $entry 's';
        }
    }
    
// remove last s from newCookie
    
$newCookie substr($newCookie0, -1);

    if (
$newCookie != '') {
        
setcookie(COOKIE_NAME$newCookietime() + THIRTY_MINUTES);
    } else {
        
// unset cookie
        
setcookie(COOKIE_NAME''1);
    }
}
$data array_values($data);
Ik hoop dat je inziet dat het nu al een stuk duidelijker is wat er gebeurt. In php hoef je de afsluit tag niet te gebruiken, het is verstandig dit ook niet te doen, kan rare fouten opleveren als je er per ongeluk een spatie of enter achter hebt staan.

Waar het mis gaat is wat H. Witkamp al aangeeft. Als je setcookie doet dat veranderd dat niet je $_COOKIE array zolang je script nog loopt. Als het script bij de if op regel 17 aankomt is deze dus nog zo als die was aan het begin van je script.
pi_167809639
Iedereen bedankt voor de reacties.

quote:
0s.gif Op zondag 1 januari 2017 15:42 schreef H.Witkamp het volgende:
Je gebruikt setcookie in het bestand incl.php. De setcookie die je voor include('incl.php') gebruikt wordt dan overschreven.

De cookie die je met setcookie zet wordt pas met de volgende request meegestuurd dus de inhoud van $_COOKIE['tijden'] veranderd niet gelijk na setcookie.

Wat je zou kunnen doen is
[ code verwijderd ]

en dan in incl.php $cookie gebruiken ipv $_COOKIE['tijden'].
bedankt, dit was het, hiermee is het opgelost, klinkt logisch al verwachtte ik dat het script wel zou weten dat het veranderd zou moeten zijn omdat ie dat zelf gedaan heeft, misschien als ik $_COOKIE['tijden'] had gebruikt om de waarde aan te passen, had ie dat wel geweten ga ik vanuit, niet geprobeert, dan kan je alleen de verlooptijd niet instellen ga ik vanuit, maar dat gebeurde dan verderop wanneer de cookie weer geset werd, maarja $cookie werkt prima.

quote:
0s.gif Op zondag 1 januari 2017 15:57 schreef Alfje het volgende:
Sorry als mijn post wat negatief overkwam, ik heb je code een beetje herschreven als voorbeeld hoe je dingen leesbaarder kunt maken en makkelijker fouten op kan sporen. Leer jezelf dit aan en je gaat enorm veel tijd en frustratie besparen op langere termijn.

Overigens niet getest:
[ code verwijderd ]

[ code verwijderd ]

Ik hoop dat je inziet dat het nu al een stuk duidelijker is wat er gebeurt. In php hoef je de afsluit tag niet te gebruiken, het is verstandig dit ook niet te doen, kan rare fouten opleveren als je er per ongeluk een spatie of enter achter hebt staan.

Waar het mis gaat is wat H. Witkamp al aangeeft. Als je setcookie doet dat veranderd dat niet je $_COOKIE array zolang je script nog loopt. Als het script bij de if op regel 17 aankomt is deze dus nog zo als die was aan het begin van je script.
Ja ik weet het, mijn autistische hoofd blokkeert als ik een naam moet bedenken voor zo'n ding dus gebruik ik gewoon een random letter uit het alfabet, zodat ik door kan, meestal beginnende bij abcd en als ik niet meer weet wat de laatste letter was gebruik ik zxy etc. of ga ik 2 letters gebruiken, heb er persoonlijk niet al teveel last van maar kan me voorstellen dat als iemand anders kijkt ie denkt wat heb jij er nou weer neergekwakt, alleen als ik oude scipts van mezelf van jaren terug bekijk snap ik er niet direct veel van, maar of dat met fatsonelijke benamingen veel zou schelen betwijfel ik, want ik begrijp ze nog altijd sneller als het gemiddelde door iemand anders gemaakte script, omdat het toch nog ergens in mn geheugen zit, maar ik zal eraan proberen te werken.

Dat van de afsluittag wist ik niet, hoezo zou je fouten krijgen als je er een spatie of enter achter hebt staan? je kunt toch gewoon php afsluiten en dan html erachter poten en eventueel later weer php openen. ik weet niet wat voor een fouten daardoor moeten komen.
pi_167810747
quote:
Dat van de afsluittag wist ik niet, hoezo zou je fouten krijgen als je er een spatie of enter achter hebt staan? je kunt toch gewoon php afsluiten en dan html erachter poten en eventueel later weer php openen. ik weet niet wat voor een fouten daardoor moeten komen.
Als je headers mee wilt sturen met je response moet je die headers altijd sturen voordat je andere output genereert anders krijg je een foutmelding. Als je in bestanden die verder geen html ofzo bevatten een afsluittag zet en daarachter per ongeluk een spatie of enter dan ga je al output genereren. Als je dan heel ergens anders verderop een header wilt sturen krijg je een fout en die is verdomd lastig op te sporen.
pi_167812582
Psr2 stelt sowieso dat pure-php bestanden geen closingtags mogen bevatten. Het is ook ontzettend lelijk want ofwel je kunt je document niet afsluiten met een newline, ofwel je krijgt headers already sent problemen.
pi_167816495
Dat is allemaal nieuw voor mij ik dacht zelfs dat het verplicht was om af te sluiten, maarja bedankt voor de info.
pi_168990086
Zouden jullie mij kunnen helpen? Ik wil een functie programmeren die de eerste circa 150 woorden van een artikel op de home pagina zet (à la GeenStijl). Hoe pak ik dit aan?
  zaterdag 18 februari 2017 @ 22:23:17 #119
118011 BrainOverfloW
Fok! around the Clock!
pi_168991073
quote:
0s.gif Op zaterdag 18 februari 2017 21:40 schreef snorvanJohanDerksen het volgende:
Zouden jullie mij kunnen helpen? Ik wil een functie programmeren die de eerste circa 150 woorden van een artikel op de home pagina zet (à la GeenStijl). Hoe pak ik dit aan?
Dat zou je met de volgende paar regels kunnen doen.

1
2
3
4
5
6
7
8
9
10
11
function limitWords($text, $limit)
{    
    //Breek de tekst in array van woorden
    $words = explode(" ", $text);

    //Pak de woorden vanaf het begin van de tekst tot aan het limiet
    $words = array_slice($words, 0, $limit);

    //Plak de overgebleven woorden weer aan elkaar tot een tekst.
    return implode(" ", $words);
}
Whether or not you can become great at something, you can always become better.
And one day you'll wake up and find out how good you actually became, having transcended whatever limits you might have thought you couldn't pass.
Neil Degrasse Tyson
pi_168993399
Ik kan niet zo snel een java topic vinden, maar waarom is java zo belachelijk ingewikkeld vergeleken met php/mysql/html/javascript.

Ik wou java gaan leren om beetje te kloten met het maken van android apps, ben nou een of andere tutorial van tweakers aan het volgen, maar het ziet er ten eerste allemaal onnodig ingewikkeld uit en bij die tweakers zo nu en dan challenges (dat hoort erbij) die echt totaal niks te maken hebben met wat je al gedaan hebt, en het grootste probleem nu even, is dat de code die hij krijgt als ie een standaard layout ding kiest totaal anders is als wat ik krijg (ziet er bij hem in mijn ogen stuk simpeler uit, maar uiteraard nog steeds ingewikkeld wat inherent is aan java in mijn noob-ogen) maar daar schiet ik dus verder niet heel veel mee op.

Maar heeft iemand een fatsoenlijke java/android tutorial? ik heb in php ook nog nooit OOP gedaan.
Het liefst zoals vroeger op school dat je wat lesmateriaal krijgt en tussendoor wat opdrachtjes, maar die moeten dan wel te maken hebben met wat je tot dan toe hebt geleerd uiteraard.

[ Bericht 50% gewijzigd door Skunk-m op 19-02-2017 00:01:09 ]
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')