abonnement Unibet Coolblue Bitvavo
pi_55676419
quote:
Op maandag 17 december 2007 16:06 schreef Mordreth het volgende:

[..]

Deze is simpel aan te passen :
[ code verwijderd ]
Ik kom er nog steeds niet compleet uit....

Wat ik zoek is een functie die mij de timestamp van de eerste dag van weeknummer X in jaar Y geeft. Ik heb er net weer mee zitten te stoeien, maar ik krijg geen algoritme uit mijn pols geschud die dit voor elkaar krijgt op een manier dat het ook met de jaarwisseling goed gaat.
pi_55676534
Ik heb het volgende probleem:

Ik ben bezig een Google Sitemap XML bestand te genereren. Lokaal (Windows XP, IIS) werkt dit allemaal, en als ik het bestand in m'n browser open krijg ik netjes een XML tree te zien. Nu upload ik het naar mijn server (Linux, Apache) en daar krijg ik een blanco bestand.

Ik ben er achter gekomen dat dit veroorzaakt wordt door de eerste regel van het XML bestand, namelijk:
1<?xml version='1.0' encoding='UTF-8'?>


Als ik deze regel weghaal krijg ik wel output te zien, maar is het (natuurlijk) geen XML meer...
Ik heb werkelijk waar géén idee waarom dit is of wat ik er aan zou moeten doen
pi_55677000
quote:
Op maandag 31 december 2007 11:34 schreef Xcalibur het volgende:
Ik heb het volgende probleem:

Ik ben bezig een Google Sitemap XML bestand te genereren. Lokaal (Windows XP, IIS) werkt dit allemaal, en als ik het bestand in m'n browser open krijg ik netjes een XML tree te zien. Nu upload ik het naar mijn server (Linux, Apache) en daar krijg ik een blanco bestand.

Ik ben er achter gekomen dat dit veroorzaakt wordt door de eerste regel van het XML bestand, namelijk:
[ code verwijderd ]

Als ik deze regel weghaal krijg ik wel output te zien, maar is het (natuurlijk) geen XML meer...
Ik heb werkelijk waar géén idee waarom dit is of wat ik er aan zou moeten doen
En Apache parsed de "<?" niet als PHP?
pi_55677004
Ja, ik heb er een
1header('Content-type: text/xml; charset=UTF-8');


in staan.... lijkt me goed toch?
pi_55677032
quote:
Op maandag 31 december 2007 11:49 schreef Geqxon het volgende:
En Apache parsed de "<?" niet als PHP?
Scherp.... dat zou het wel eens kunnen zijn.
Lokaal staat short open tags uit, online staat het aan.... eens kijken of ik die kan aanpassen

Edit: uit de PHP documentatie bij short_open_tag
quote:
Tells whether the short form (<? ?> ) of PHP's open tag should be allowed. If you want to use PHP in combination with XML, you can disable this option in order to use <?xml ?> inline. Otherwise, you can print it with PHP, for example: <?php echo '<?xml version="1.0"'; ?> . Also if disabled, you must use the long form of the PHP open tag (<?php ?> ).


[ Bericht 34% gewijzigd door Xcalibur op 31-12-2007 11:55:32 ]
pi_55677169
quote:
Op maandag 31 december 2007 11:50 schreef Xcalibur het volgende:

[..]

Scherp.... dat zou het wel eens kunnen zijn.
Lokaal staat short open tags uit, online staat het aan.... eens kijken of ik die kan aanpassen :)
Mocht je het niet aan kunnen passen:

1
2
3
<?php
echo "<?xml ............ ":
?>


Het kost je wat overhead, maar is dat voor een Google sitemap belangrijk?
pi_55678294
quote:
Op maandag 31 december 2007 11:30 schreef Geqxon het volgende:

[..]

Ik kom er nog steeds niet compleet uit....

Wat ik zoek is een functie die mij de timestamp van de eerste dag van weeknummer X in jaar Y geeft. Ik heb er net weer mee zitten te stoeien, maar ik krijg geen algoritme uit mijn pols geschud die dit voor elkaar krijgt op een manier dat het ook met de jaarwisseling goed gaat.
En dat lukt mij inmiddels. Het blijft echter gestoei met de weeknummers. Het is op het moment Week 1 van 2007, en dat is waar het ook gelijk goed fout gaat in het script. Ik ga maar weer even worstelen.
pi_55678299
ja, ik zag dat dat kon inderdaad.... maar dat is natuurlijk wel een ranzige oplossing
pi_55679806
Even snel een klein HTTaccess vraagje.

([a-zA-Z0-9] valideert echter ook "(niets) en ik wil hier een minimum aan vast knopen van bv 4 karakters! en geen maximum? anyone?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_55680020
Zo uit mijn hoofd:

1(a-zA-Z0-9]{4,})
quote:
Using extended regular expressions, you can specify arbitrary pattern occurrence counts using a more verbose syntax than the question-mark, plus-sign, and asterisk quantifiers. The curly-braces ("{" and "}") can surround a precise count of how many occurrences you are looking for.

The most general form of the curly-brace quantification uses two range arguments (the first must be no larger than the second, and both must be non-negative integers). The occurrence count is specified this way to fall between the minimum and maximum indicated (inclusive). As shorthand, either argument may be left empty: if so the minimum/maximum is specified as zero/infinity, respectively. If only one argument is used (with no comma in there), exactly that number of occurrences are matched.

http://gnosis.cx/publish/programming/regular_expressions.html
pi_55682507
iemand een idee of ik de $_SERVER['SERVER_ADMIN'] kan benaderen met php in CLI?
of is dat echt helemaal onmogelijk en zal ik het moeten hardcoden?
pi_55682587
quote:
Op maandag 31 december 2007 13:22 schreef Geqxon het volgende:
Zo uit mijn hoofd:
[ code verwijderd ]
Tnx, ik had zelf al geprobeerd maar blijkbaar ging het door de * fout
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_55682689
quote:
Op maandag 31 december 2007 12:30 schreef Geqxon het volgende:

[..]

En dat lukt mij inmiddels. Het blijft echter gestoei met de weeknummers. Het is op het moment Week 1 van 2007, en dat is waar het ook gelijk goed fout gaat in het script. Ik ga maar weer even worstelen.
Het is week 1 van 2008. En met wat code om de eerste dag van die week te bepalen kom ik op 31 december 2007.

Edit - de code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function firstDayOfWeek($week, $year) {
    
$jan1st = mktime(0,0,0,1,1,$year);
    if(
date('W', $jan1st) == 1) {
        
//Correctie toepassen, alleen voor als 1 januari in week 1 zit
        // En 1 januari kan soms ook bij week 53 of 52 worden gerekend.
        
$week--;
    }
    
$weekday = date('N', $jan1st) - 1; //Dag 1 is maandag
    
return strtotime('+'.$week.' weeks -'.$weekday.' days', $jan1st);
}

echo
date('Y-m-d', firstDayOfWeek(1,2008)); //Levert 2007-12-31
?>


[ Bericht 76% gewijzigd door Light op 31-12-2007 14:57:17 ]
pi_55683103
quote:
Op maandag 31 december 2007 14:48 schreef Light het volgende:

[..]

Het is week 1 van 2008. En met wat code om de eerste dag van die week te bepalen kom ik op 31 december 2007.

Edit - de code:
[ code verwijderd ]
Dat klopt, en als "date('W-Y')" keurig 01-2008 zou tonen dan zou mijn pagina perfect werken, want ook het algoritme dat ik gebruik geeft dan 31 december weer. Helaas, hij geeft nu 01-2007 weer.

Het is jammer dat de date & time functies van PHP wat rommelig zijn, want "strftime("%W-%Y")" geeft 53-2007 weer, aangezien die weer geen ISO weeknummer geeft.
pi_55683661
quote:
Op maandag 31 december 2007 15:04 schreef Geqxon het volgende:

[..]

Dat klopt, en als "date('W-Y')" keurig 01-2008 zou tonen dan zou mijn pagina perfect werken, want ook het algoritme dat ik gebruik geeft dan 31 december weer. Helaas, hij geeft nu 01-2007 weer.

Het is jammer dat de date & time functies van PHP wat rommelig zijn, want "strftime("%W-%Y")" geeft 53-2007 weer, aangezien die weer geen ISO weeknummer geeft.
Met date("W o") krijg je wel het ISO weeknummer en het ISO jaar. Nadeel is dat je PHP 5.1.0 of nieuwer nodig hebt.
pi_55683836
quote:
Op maandag 31 december 2007 10:32 schreef Tarabass het volgende:
Fix-List:

Variable (volgens mij) nu global gemaakt.
Escape bij declaratie weggehaald en in de query pas meegegeven
If-statements verkort naar 1 if-statement
ID-integer uit de query gesloopt, ook geen idee waarom ik hem er bij had gezet (en dan ook nog als string).
exit; comment weggehaald.

Waarom moet ik de variable $ip escapen in de query? Dit is een integer, en geen string.
$date is een datetime. Waarom vraag je dat?

A List Apart wordt doorgenomen, dank voor de link.

Code na aanpassingen:
[ code verwijderd ]
Een IP is wel een string, bestaat uit getallen met puntjes.

Kijk voor de grap ook eens naar: http://nl3.php.net/manual/en/function.ip2long.php
pi_55683949
Eigenlijk is een IP-adres een array van characters.
pi_55687910
quote:
Op maandag 31 december 2007 15:29 schreef colourAgga het volgende:

[..]

Een IP is wel een string, bestaat uit getallen met puntjes.

Kijk voor de grap ook eens naar: http://nl3.php.net/manual/en/function.ip2long.php
Kijk voor de grap eens goed naar zijn code
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_55688265
quote:
Op maandag 31 december 2007 15:29 schreef colourAgga het volgende:

[..]

Een IP is wel een string, bestaat uit getallen met puntjes.

Kijk voor de grap ook eens naar: http://nl3.php.net/manual/en/function.ip2long.php
Dat gebruik ik ook in m'n code. Ik haal hem ook op met long2ip

En hoe ziet de veiligheid van de code er nu uit? Zijn er nog dingen die ik toe moet voegen, en waar zou het mis op kunnen gaan? Testen kan hier..

wees een beetje zuinig op m'n database ajb
pi_55689079
quote:
Op maandag 31 december 2007 14:43 schreef mschol het volgende:
iemand een idee of ik de $_SERVER['SERVER_ADMIN'] kan benaderen met php in CLI?
of is dat echt helemaal onmogelijk en zal ik het moeten hardcoden?
Die server_admin variabele bevat de waarde uit de apache config ServerAdmin. CLI gebruikt niet de SAPI en die variabele hoort gewoon leeg te zijn in CLI.
En ServerAdmin is nou niet iets waar je blindelings op moet vertrouwen.
Bij phpinfo() (of php -i) zie je welke variabelen je tot je beschikking hebt, misschien heb je daar wat aan?
pi_55689476
quote:
Op maandag 31 december 2007 10:32 schreef Tarabass het volgende:
Code na aanpassingen:
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
<?php
   
function CheckPostData() {
        
$ip   $_SERVER['REMOTE_ADDR'];
        
$ip   ip2long($ip);
      
$data $_POST['data'];
      
$date date('y-m-j H:i:s');
        Global 
$mysql_tbn;

        if((
$data != "Hier je bericht....." && $data != "") && (is_string($data))) {
            
InsertQuery($ip$data$date);
        }
   }
    function 
InsertQuery($ip$data$date) {
        Global 
$mysql_tbn;

      
$sql_insert "INSERT INTO " $mysql_tbn " SET ";
      
$sql_insert .= "ip = " $ip;
      
$sql_insert .= ", data = '" mysql_real_escape_string($data) . "'";
      
$sql_insert .= ", date = '" $date "'";

        
$result mysql_query($sql_insert);
        
header("Location: " $_SERVER['PHP_SELF']);
        exit;
    }
?>
Wat opmerkingen:
* Global $mysql_tbn; heb je niet nodig in CheckPostData
* is_string geeft ook true als de invoer ($data) leeg is en dus overbodig.
* De opbouw van $sql_insert vind ik vervelend lezen, gebruik OF een prepared statement of iets als sprintf:
1
2
3
<?php
$sql_insert 
sprintf("INSERT INTO %s SET date='%s',ip=%d, data=' %s' ",$mysql_tbn,$date,$ip,mysql_real_escape_string($data));
?>

* Je doet niks met $result in InsertQuery en als de query.
* Waarom geen else clause bij if ($data blabla) ?
pi_55690335
quote:
Op maandag 31 december 2007 14:48 schreef Light het volgende:

[..]

Het is week 1 van 2008. En met wat code om de eerste dag van die week te bepalen kom ik op 31 december 2007.

Edit - de code:
[ code verwijderd ]
Dat kan mooier :P

1
2
3
4
5
6
function firstDayOfWeek($week, $year) 
{
   $jan4th = mktime(0, 0, 0, 1, 4, $year);
   $weekday = date('N', $jan4th) + 6; 
   return strtotime("+$week weeks -$weekday days", $jan4th);
}


(4 januari valt altijd in week 1)
Ik heb niet helemaal gecontroleerd of ie goed is, alleen dat ie dezelfde resultaten geeft als die van Light.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_55690743
En voor wat ik gebruik:

1
2
3
4
5
6
7
8
9
<?php
function StartOfWeek($year$week

    
$Jan1 mktime(1,1,1,1,1,$year); 
    
$MondayOffset = (11-date('w',$Jan1))%7-3
    
$desiredMonday strtotime(($week-1) . ' weeks '.$MondayOffset.' days'$Jan1); 
    return 
$desiredMonday

?>


http://www.phpbuilder.com/board/showpost.php?s=c26b8729c4b94eadb55d319c3c29bc4a&p=10274032&postcount=5

pi_55691606
quote:
Op maandag 31 december 2007 18:55 schreef smesjz het volgende:
* Global $mysql_tbn; heb je niet nodig in CheckPostData
True, rommelig van me maar die had ik laten staan na aanpassingen van de vorige keer (gaf hem toen mee naar de insertquery)
quote:
* is_string geeft ook true als de invoer ($data) leeg is en dus overbodig.
Dit begrijp ik niet

Zou je dat uit kunnen leggen? Het is toch een 'and' en de string moet dan toch voldoen aan alle drie?
quote:
* De opbouw van $sql_insert vind ik vervelend lezen, gebruik OF een prepared statement of iets als sprintf:
Eens. Is ook niet de manier die ik nu veel gebruik, inderdaad omdat het zo vervelend lezen is.

Nu doe ik meestal dit:
1
2
3
<?php
$sql_insert 
"INSERT INTO " $mysql_tbn " (ip, data, date) VALUES ('$ip', '" mysql_real_escape_string($data) . "', '$date')";
?>
quote:
* Waarom geen else clause bij if ($data blabla) ?
Is wel netter, maar had het even snel gebouwd, om de veilig te leren en te testen. Beetje zonde van de tijd dus.

Fix-List:

* Global $mysql_tbn; weggehaald in CheckPostData
* Query herschreven naar een nettere en leesbaarder manier
* Code opgeschoond

Code na aanpassingen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
    
function CheckPostData() {
        
$ip   $_SERVER['REMOTE_ADDR'];
        
$ip   ip2long($ip);
        
$data $_POST['data'];
        
$data trim($data);
        
$date date('y-m-j H:i:s');

        if((
$data != "Hier je bericht....." && $data != "") && (is_string($data))) {
            
InsertQuery($ip$data$date);
        }
    }
    function 
InsertQuery($ip$data$date) {
        Global 
$mysql_tbn;

        
$sql_insert "INSERT INTO " $mysql_tbn " (ip, data, date) VALUES ('$ip', '" mysql_real_escape_string($data) . "', '$date')";
        
$sql_insert mysql_query($sql_insert); 

        
header("Location: " $_SERVER['PHP_SELF']);
        exit;
    }
?>

@SuperRembo
Waarom moet ik de variable $ip escapen in de query? Dit is een integer, en geen string.
$date is een datetime. Waarom vraag je dat? Jaja, gezien. Dubbele spatie Hoe kan ik die spaties mooier opschonen?

@All
Hoe is de veiligheid van het script nu?

[ Bericht 3% gewijzigd door Tarabass op 31-12-2007 20:52:36 ]
pi_55692522
quote:
Op maandag 31 december 2007 20:24 schreef Tarabass het volgende:
@SuperRembo
Waarom moet ik de variable $ip escapen in de query? Dit is een integer, en geen string.
Je had quotjes om $ip staan, dus ik ging er vanuit dat het een string was. Als $ip een int is dan hoef je inderdaad niet te escapen. Waarom zet je het ip om naar een int? Als dat alleen is om 'm in de db te zetten, dan is het logischer om ip2long dicht bij de sql, dus in InsertQuery() te zetten.
quote:
$date is een datetime. Waarom vraag je dat?
Je insert dus eigenlijk een string in een datetime veld. Blijkbaar doet MySQL daar niet zo moeilijk over (MS SqlServer bijvoorbeeld zou 't niet pikken). Je zou ook de MySQL functie now() kunnen gebruiken als je de huidige tijd wil inserten.
quote:
Jaja, gezien. Dubbele spatie Hoe kan ik die spaties mooier opschonen?
Gewoon geen tekst in een veld zetten die je niet in je db wil hebben. Gewoon een label voor het veld zetten.


Je hebt nog geen controle op de hoeveelheid data die er in het veld staat. Die wordt nu bepaald door de webserver (post_max_size, default 8MB).
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_55693808
quote:
Op maandag 31 december 2007 18:37 schreef smesjz het volgende:

[..]

Die server_admin variabele bevat de waarde uit de apache config ServerAdmin. CLI gebruikt niet de SAPI en die variabele hoort gewoon leeg te zijn in CLI.
En ServerAdmin is nou niet iets waar je blindelings op moet vertrouwen.
Bij phpinfo() (of php -i) zie je welke variabelen je tot je beschikking hebt, misschien heb je daar wat aan?
ik had eigenlijk echt server_admin adress nodig maar ik heb het maar gehardcode, script genereert nu geen index warnings meer en daar ging het me om (script zelf werkte vlekkeloos alleen gaf hij dus elke keer index warnings, en was te lui om het uittezoeken..
nu maar eens uitgezocht en vervolgens dus maar hardcoded ingezet (kon ook prima, vind het zelf minder netjes maar ach)
pi_55699121
quote:
Op maandag 31 december 2007 20:24 schreef Tarabass het volgende:
Zou je dat uit kunnen leggen? Het is toch een 'and' en de string moet dan toch voldoen aan alle drie?
Je hebt:
1
2
3
4
5
<?php
 
if(($data != "Hier je bericht....." && $data != "") && (is_string($data))) {
            
InsertQuery($ip$data$date);
        }
?>


Mogelijke invoer:
- $_POST['data'] = null (data bestaat niet als key in de $_POST array) . Dan geeft $data != "" false.
- $data = "" (lege string) . Dan geeft $data != "" false en is_string($data) true.
- $data = "Hier je bericht.....". Dan geeft $data != "Hier je bericht....." false.
- $data = "blabla". Dan geeft ($data != "Hier je bericht....." && $data != "") al true.
- $data = "1234". Dan geeft ($data != "Hier je bericht....." && $data != "") al true.

is_string($data) biedt geen meerwaarde boven $data != "" zoals jij het nu gebruikt. Alles in de $_POST array is een string. Dus dit is altijd false:
if ($_POST['abc'] == 1234)

Ik zou eerst maar eens wat gaan lezen over veiligheid in scripts voordat je iedere keer anderen hierover gaat vragen, op deze manier leer je maar weinig.
En het beste werkt gewoon door het zelf te proberen door bewust foute waardes in te voeren: met quotes, punt-comma, te lange tekst etc etc.
En gebruik voldoende checks met empty() en isset().
pi_55699981
quote:
Op dinsdag 1 januari 2008 11:05 schreef smesjz het volgende:
[..]
Dus dit is altijd false:
if ($_POST['abc'] == 1234)
[...]
Nee,
"1234" == 1234 geeft true
"1234" === 1234 geeft false
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_55700542
quote:
Op dinsdag 1 januari 2008 12:39 schreef SuperRembo het volgende:

[..]

Nee,
"1234" == 1234 geeft true
"1234" === 1234 geeft false
Je hebt gelijk, my bad.
pi_55703022
Ik word helemaal gestoord van met data werken met PHP en MySQL. Kan iemand me even kort uitleggen hoe je dit nu het beste aanpakt? Ik moet het elke keer weer uitzoeken en telkens doe ik het weer anders, is niet echt handig met aanpassen.

Fields voor je database: TIMEDATE ?
Welke functies gebruiken in php? date()?
Queries in MySQL voor bv de laatste week, welke functies?

Ik kom er nu alweer niet uit -_-
"Reality is an illusion created by a lack of alcohol."
pi_55703066
quote:
Op dinsdag 1 januari 2008 15:49 schreef Dzy het volgende:
Ik word helemaal gestoord van met data werken met PHP en MySQL. Kan iemand me even kort uitleggen hoe je dit nu het beste aanpakt? Ik moet het elke keer weer uitzoeken en telkens doe ik het weer anders, is niet echt handig met aanpassen.

Fields voor je database: TIMEDATE ?
Welke functies gebruiken in php? date()?
Queries in MySQL voor bv de laatste week, welke functies?

Ik kom er nu alweer niet uit -_-
Ik zelf werk altijd met timestamps, al zweren andere mensen weer aan MySQL data / datums, omdat je dan in de query zelf berekeningen uit kan voeren. Persoonlijke voorkeur.

Met functies als date() kun je van een timestamp weer een fatsoenlijk leesbare datum maken.

Timestamp: Het aantal seconden tussen 01-01-1970 en de datum die je bedoeld. Dat is in MySQL en PHP een simpele integer.
pi_55703739
quote:
Op dinsdag 1 januari 2008 15:52 schreef Geqxon het volgende:

[..]

Ik zelf werk altijd met timestamps, al zweren andere mensen weer aan MySQL data / datums, omdat je dan in de query zelf berekeningen uit kan voeren. Persoonlijke voorkeur.

Met functies als date() kun je van een timestamp weer een fatsoenlijk leesbare datum maken.

Timestamp: Het aantal seconden tussen 01-01-1970 en de datum die je bedoeld. Dat is in MySQL en PHP een simpele integer.
Het ligt er een beetje aan waar je de datum voor nodig hebt. Voor data voor 01-01-1970 is een timestamp niet zo geschikt.
pi_55703817
quote:
Op dinsdag 1 januari 2008 16:31 schreef Light het volgende:

[..]

Het ligt er een beetje aan waar je de datum voor nodig hebt. Voor data voor 01-01-1970 is een timestamp niet zo geschikt.
Negatieve timestamp?
pi_55704422
Het is knap waardeloos dat php (nog steeds) geen fatsoenlijke ondersteuning voor datums heeft.
quote:
The valid range of a timestamp is typically from Fri, 13 Dec 1901 20:45:54 GMT to Tue, 19 Jan 2038 03:14:07 GMT. (These are the dates that correspond to the minimum and maximum values for a 32-bit signed integer). However, before PHP 5.1.0 this range was limited from 01-01-1970 to 19-01-2038 on some systems (e.g. Windows).
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_55704565
Ik durf het haast niet te zeggen, maar een tof Date object zou niet verkeerd zijn.
pi_55714346
quote:
Op dinsdag 1 januari 2008 17:14 schreef Geqxon het volgende:
Ik durf het haast niet te zeggen, maar een tof Date object zou niet verkeerd zijn.
PHP heeft sinds 5.1 een DateTime klasse. Nogal slecht gedocumenteerd en 't biedt niet écht veel functionaliteit maar 't werkt wel goed voor tijdzones en tijdsaanpassingen . Zoals bijvoorbeeld.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
// Tijd in UTC (als je geen windowssysteem gebruikt en je je klok goed hebt ingesteld)
$timestamp '@'time();

// De locale tijdzone ...
$localTimeZone = new DateTimeZone('Europe/Amsterdam');

// ... en een andere
$newyorkTimeZone = new DateTimeZone('EST');

// Maak een date object aan voor de huidige (UTC) tijd
$dateTime = new DateTime($timestamp);

// Schuif de datum door naar de volgende ijstijd
$dateTime->modify('+10000 years -2 weeks');

// Format de date met binnen verschillende tijdzones
echo 'UTC           : ' $dateTime->format(DATE_RFC2822) . "\n";
$dateTime->setTimezone($localTimeZone);
echo 
'Local time    : ' $dateTime->format(DATE_RFC2822) . "\n";
$dateTime->setTimezone($newyorkTimeZone);
echo 
'New York time : ' $dateTime->format(DATE_RFC2822);
?>

De format methode accepteert een dateformat string zoals bij de date functie, en kan dus ook dates formatten naar bijvoorbeeld ISO8601, wat dus weer handig is bij databases. Verder kan je de tijd en datum ook nog instellen met setTime(h, m, s) respectievelijk setDate(y, m, d). Anyway, er is genoeg over te lezen .
pi_55714521
Ik wil een simpele website maken waar bepaalde mensen rechten krijgen om zelf dingen toe te voegen in een blog. Soort van multi blog dus.
Ik ben redelijk handig met computers maar van site's maken weet ik nog maar weinig.

Heeft PHP bijvoorbeeld nou te maken met dit soort multi-upload dingetjes?
En wat voor software kan ik het beste gebruiken? Dreamweaver?
Buy it, use it, break it, fix it,
Trash it, change it, mail - upgrade it,
Charge it, point it, zoom it, press it,
Snap it, work it, quick - erase it,
pi_55717426
quote:
Op woensdag 2 januari 2008 00:50 schreef Agiath het volgende:
Ik wil een simpele website maken waar bepaalde mensen rechten krijgen om zelf dingen toe te voegen in een blog. Soort van multi blog dus.
Ik ben redelijk handig met computers maar van site's maken weet ik nog maar weinig.

Heeft PHP bijvoorbeeld nou te maken met dit soort multi-upload dingetjes?
En wat voor software kan ik het beste gebruiken? Dreamweaver?
Ik zou beginnen bij www.php.net, dan zie je dat Dreamweaver niet echt handig is
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_55718111
quote:
Op woensdag 2 januari 2008 10:11 schreef Chandler het volgende:

[..]

Ik zou beginnen bij www.php.net, dan zie je dat Dreamweaver niet echt handig is
hmm, DW is, imho, juist een van de beste programma's voor php.
(oke, ik doe alles in code view, ik kan me voorstellen dat de design view niet prettig werkt)
pi_55719037
quote:
Op woensdag 2 januari 2008 10:11 schreef Chandler het volgende:

[..]

Ik zou beginnen bij www.php.net, dan zie je dat Dreamweaver niet echt handig is
Waarom zou je dat zien op PHP.net?
pi_55723643
quote:
Op woensdag 2 januari 2008 11:45 schreef super-muffin het volgende:

[..]

Waarom zou je dat zien op PHP.net?
Omdat ik aanneem dat ze weten welke editors het beste met hun scripting taal omgaan?

Verder even offtopic vraagje; weet iemand hoe je kunt instellen naar welk veld je gaat als je op tab drukt? (zonder JS)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_55723757
quote:
Op woensdag 2 januari 2008 15:02 schreef Chandler het volgende:

[..]

Omdat ik aanneem dat ze weten welke editors het beste met hun scripting taal omgaan?
Hm, ben ik het niet met je eens. Het verschilt van persoon tot persoon, dus je kunt het beste zelf een paar programma's uitproberen.
quote:
Verder even offtopic vraagje; weet iemand hoe je kunt instellen naar welk veld je gaat als je op tab drukt? (zonder JS)
Dat is meer iets van HTML, maar met het attribuut tabindex.
  woensdag 2 januari 2008 @ 15:10:11 #94
62215 qu63
..de tijd drinkt..
pi_55723813
quote:
Op woensdag 2 januari 2008 15:02 schreef Chandler het volgende:

[..]

Omdat ik aanneem dat ze weten welke editors het beste met hun scripting taal omgaan?

Verder even offtopic vraagje; weet iemand hoe je kunt instellen naar welk veld je gaat als je op tab drukt? (zonder JS)
tabindex=
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_55730981
wie weet in hoeverre PHP 3 en PHP4 scripts draaien onder PHP5?
dit omdat ik em best wil upgraden maar dan moet ik wel zeker weten dat alles het blijft doen
pi_55731619
quote:
Op woensdag 2 januari 2008 21:10 schreef mschol het volgende:
wie weet in hoeverre PHP 3 en PHP4 scripts draaien onder PHP5?
dit omdat ik em best wil upgraden maar dan moet ik wel zeker weten dat alles het blijft doen
http://nl2.php.net/manual/en/migration4.php
http://nl2.php.net/manual/en/migration5.php
http://nl2.php.net/manual/en/migration51.php
http://nl2.php.net/manual/en/migration52.php

Stap voor stap.
pi_55737198
quote:
Op donderdag 27 december 2007 11:03 schreef SuperRembo het volgende:

[..]

Dan doe jij het goed en doet colourAgga het fout is_int() met een string als input (in dit geval uit $_GET) geeft altijd false!
Nee, bij is_numeric() worden 0x005, +123e2 ook als true gezien, dus ook niet de beste oplossing.Imo beste manier (zie hieronder), sowieso beter om als je een getal verwacht de data type naar int te zetten (stel als je ermee berekeningen gaat uitvoeren), maar omdat PHP vergevingsgezind is geeft dit geen fouten.

1
2
3
<?php
 is_int
(intval($_GET['..'])) 
?>


Do your work. Don't be stupid.
Naamtopic #1: Nacht bagger #7 - Waar DeKubus te aardig is
pi_55738829
quote:
Op donderdag 3 januari 2008 01:35 schreef DeKubus het volgende:

[..]

Nee, bij is_numeric() worden 0x005, +123e2 ook als true gezien, dus ook niet de beste oplossing.Imo beste manier (zie hieronder), sowieso beter om als je een getal verwacht de data type naar int te zetten (stel als je ermee berekeningen gaat uitvoeren), maar omdat PHP vergevingsgezind is geeft dit geen fouten.
[ code verwijderd ]

:)
intval() levert een integer op, dus is_int(intval()) zal altijd true zijn.
1
2
3
4
5
6
<?php
$blaat 
intval($_GET['blaat'];
if(
== $blaat) {
    
//ongeldig!
}
?>


Overigens zou een database ook +123e2 moeten accepteren als numeriek. Het kan lastiger worden als je 123.2 probeert te plaatsen in een integerveld.
pi_55744945
Zowiezo is een van de dingen die ik het meest hekel in PHP de vergevingsgezindheid en de makkelijkheid voor de typen Dat maakt gewoon beveiliging van scripts etc. zo een stuk lastiger.

Zoals eerder al gezegd gebruik ik altijd hungarian prefixes. Deze werken in combinatie met een klasse die variabelen checkt en ze direct goed cast. Dat gaat goed zolang je als gebruiker van die klasse er ook echt vanuit gaat dat dat erin zit. Ook al kun je met PHP ook gewoon net zo goed iets anders erin gooien, of het als iets anders benaderen.

Over de datums eigenlijk helemaal hetzelfde verhaal, wij slaan op met de timestamps van de server in de database in int velden. Vervolgens kunnen gebruikers daar correctie op loslaten en zelf kiezen hoe ze dit willen laten zien via een uitgebreide Date klasse die ik als ik weer op kantoor ben eens zal vragen of we die ook kunnen publiceren

Wat denken jullie trouwens, de klasses die je nodig hebt voordat je fatsoenlijk aan een project kan beginnen? Ik denk:
- Date
- Verify
- Authentification
- SQL
- Template

Dat zijn in ieder geval de 5 die ik het meeste gebruik jullie nog toevoegingen?
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')