abonnement Unibet Coolblue Bitvavo
  Moderator / Redactie Sport / Devops maandag 6 januari 2014 @ 17:47:36 #31
176766 zoem
zoemt
pi_135153187
Ik volg het niet helemaal. De functie rawurldecode() geeft een string terug. Wat wil je er mee kunnen doen? Want ik snap niet wat MySQL en/of html hiermee te maken heeft :?

[ Bericht 0% gewijzigd door zoem op 06-01-2014 18:03:13 ]
pi_135153642
quote:
0s.gif Op maandag 6 januari 2014 17:47 schreef zoem het volgende:
Ik volg het niet helemaal. De functie rawurlencode() geeft een string terug. Wat wil je er mee kunnen doen? Want ik snap niet wat MySQL en/of html hiermee te maken heeft :?
Ik doe:
$string = rawurldecode($string);
echo $string;

Werkt krijg de string gedecode terug..

mysql_query("UPDATE table SET veld='$string'");

In mysql staat de string nog steeds geencode..

Ik geef in phpbb dit mee aan het template bestand:
$template->assign_vars(array(
'STRING' => $string,
));

in template bestand zet ik em er zo in {STRING}
Het resultaat is een geencode string.. dus rawurldecode heeft weer niks gedaan. terwijl dat met echo wel het geval is.
Ja ik begrijp er ook niks van anders had ik het hier niet gevraagd..

EDIT: ah.. als je em echoed word ie uberhaupt gedecode.. dus waarschijnlijk doet rawurldecode uberhaupt niks.. kzal wel een andere functie nodig hebben ofzo..

[ Bericht 3% gewijzigd door Skunk-m op 06-01-2014 18:05:58 ]
pi_135153936
PHP Echo doet niets decoden hoor. Wellicht doet je browser dat als je de output in een internetbrowser bekijkt.

Verder snap ik het ook niet, lijkt me dat je ergens een typfout of volorde fout maakt ofzo. Debuggen dus.
  Moderator / Redactie Sport / Devops maandag 6 januari 2014 @ 18:08:54 #34
176766 zoem
zoemt
pi_135153945
quote:
0s.gif Op maandag 6 januari 2014 17:59 schreef Skunk-m het volgende:
Ja ik begrijp er ook niks van anders had ik het hier niet gevraagd..
Geeft niet, alleen je verhaal was ietwat wazig ;)
quote:
EDIT: ah.. als je em echoed word ie uberhaupt gedecode.. dus waarschijnlijk doet rawurldecode uberhaupt niks.. kzal wel een andere functie nodig hebben ofzo..
Ah kijk, dan heb je iig een aanknopingspunt. Je kunt beter var_dump() gebruiken ipv echo, omdat dan de weergave (beter) overeenkomt met de inhoud van je variabele en kijk bij voorkeur naar de bron van je pagina ipv de pagina zelf.
pi_135154081
quote:
Ah kijk, dan heb je iig een aanknopingspunt. Je kunt beter var_dump() gebruiken ipv echo, omdat dan de weergave (beter) overeenkomt met de inhoud van je variabele en kijk bij voorkeur naar de bron van je pagina ipv de pagina zelf.
Ja ik had em al tussen script tags gezet en daarna in de bron gekeken..
schijnbaar was ie gehtmlentitied nu heb k html_entity_decode() gebruikt en dat werkt.

iig bedankt
pi_135154486
quote:
0s.gif Op maandag 6 januari 2014 18:12 schreef Skunk-m het volgende:

[..]

Ja ik had em al tussen script tags gezet en daarna in de bron gekeken..
schijnbaar was ie gehtmlentitied nu heb k html_entity_decode() gebruikt en dat werkt.

iig bedankt
HTML <script> tags bedoel je? Dat is een manier om javascript code te embedden, heb je ook niets aan. <pre> tags kunnen soms nuttig zijn, maar om je rauwe output te zien moet je altijd gewoon de paginabron bekijken inderdaad.

iig bug gevonden dus ^O^

Ik moet het toch even vragen: Die mysql_ functie was alleen voor het voorbeeld toch hoop ik?
pi_135154921
quote:
HTML <script> tags bedoel je? Dat is een manier om javascript code te embedden, heb je ook niets aan. <pre> tags kunnen soms nuttig zijn, maar om je rauwe output te zien moet je altijd gewoon de paginabron bekijken inderdaad.

iig bug gevonden dus ^O^

Ik moet het toch even vragen: Die mysql_ functie was alleen voor het voorbeeld toch hoop ik?
oja in de bron kijken had misschien ook gekunt, maar ik keek bij element bekijken gebeuren in chrome zeg maar en daar was het ook gewoon gedecode, maar ik moest bij phpbb in een javascript code hebben en daar stond ie wel verkeerd, dus had ik bij mn testbestandje ook maar even script tags eromheen gezet.. maar het is iig opgelost ja.
pi_135261224
Bheheh.
quote:
delete

delete — See unlink() or unset()

Description

This is a dummy manual entry to satisfy those people who are looking for unlink() or unset() in the wrong place.
http://www.php.net/manual/en/function.delete.php
  FOK!mycroftheld donderdag 9 januari 2014 @ 01:31:08 #39
128465 verified  bondage
Ingewikkeld
  Moderator / Redactie Sport / Devops donderdag 9 januari 2014 @ 01:36:32 #40
176766 zoem
zoemt
pi_135261421
Waarom noemt php het dan ook unlink ipv delete :')
pi_135262052
quote:
0s.gif Op donderdag 9 januari 2014 01:36 schreef zoem het volgende:
Waarom noemt php het dan ook unlink ipv delete :')
Volgens mij staat dat aardig beschreven, omdat de unlink functie ook in C gebruikt wordt... oh en delete oftewel del is een 'dos' commando :+

Maar dit zal noobs helpen (hoop ik)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_135262076
quote:
0s.gif Op donderdag 9 januari 2014 01:36 schreef zoem het volgende:
Waarom noemt php het dan ook unlink ipv delete :')
Omdat delete() ook voor directory's is (dan roept die eigenlijk rmdir() op) unlink is enkel voor files.

http://stackoverflow.com/a/15124886
  donderdag 9 januari 2014 @ 10:00:34 #43
187069 slacker_nl
Sicko pur sang
pi_135264675
quote:
0s.gif Op donderdag 9 januari 2014 01:36 schreef zoem het volgende:
Waarom noemt php het dan ook unlink ipv delete :')
Omdat je de inode pointer breekt en dus de link verbreekt. Je verwijderd de file niet, maar de link naar de file.

http://perldoc.perl.org/functions/unlink.html
http://linux.die.net/man/2/unlink
In theory there is no difference between theory and practice. In practice there is.
  Moderator / Redactie Sport / Devops donderdag 9 januari 2014 @ 12:49:30 #44
176766 zoem
zoemt
pi_135269507
Mijn opmerking was eigenlijk meer een sneer naar php. Ik vond het wel ironisch dat de manual poogt grappig te zijn door te impliceren dat de php-functieset logisch in elkaar zit. Ze jatten functies en conventies van verschillende talen bij elkaar - waaronder inderdaad van C.
quote:
6s.gif Op donderdag 9 januari 2014 03:07 schreef Chandler het volgende:

[..]

Volgens mij staat dat aardig beschreven, omdat de unlink functie ook in C gebruikt wordt... oh en delete oftewel del is een 'dos' commando :+

Maar dit zal noobs helpen (hoop ik)
Unlink() is een Posix-functie en is een variant op de C-functie remove(). Over het algemeen zijn C runtime functies zoals remove() meer portable dan Posix-functies. Beide functies bestaan overigens in de C runtime headers in Windows. Dat del een dos-commando is en unlink een Linux commandlinefunctie heeft er verder weinig mee te maken, omdat dat system utilities zijn en geen C/Posix-functies.
quote:
1s.gif Op donderdag 9 januari 2014 03:18 schreef d4v1d het volgende:

[..]

Omdat delete() ook voor directory's is (dan roept die eigenlijk rmdir() op) unlink is enkel voor files.

http://stackoverflow.com/a/15124886
Het klopt inderdaad dat unlink() (en ook remove()) alleen bestanden kunnen 'verwijderen'. System utilities als del (delete zit niet in ms-dos) hebben weinig te maken met de C/Posix-functies.
quote:
0s.gif Op donderdag 9 januari 2014 10:00 schreef slacker_nl het volgende:

[..]

Omdat je de inode pointer breekt en dus de link verbreekt. Je verwijderd de file niet, maar de link naar de file.

http://perldoc.perl.org/functions/unlink.html
http://linux.die.net/man/2/unlink
Klopt, maar in ruime zin mag het bestand na unlink niet meer (op normale wijze) vindbaar zijn. Voor een taal als php maakt het niet veel uit of het beestje nu unlink, delete, erase of remove heet, omdat het enige doel het 'verwijderen' van het bestand is. Hoe dat low-level gebeurt is voor een taal als php niet interessant, zolang het maar portable is en een consistent gedrag vertoont tussen de verschillende besturingssystemen. Zoals ik hierboven al zei kunnen ze dan beter focussen op een consiste naming convention ipv bij verschillende talen wat functienamen bij elkaar te grabbelen.
  donderdag 9 januari 2014 @ 13:15:18 #45
187069 slacker_nl
Sicko pur sang
pi_135270435
quote:
0s.gif Op donderdag 9 januari 2014 12:49 schreef zoem het volgende:
Klopt, maar in ruime zin mag het bestand na unlink niet meer (op normale wijze) vindbaar zijn. Voor een taal als php maakt het niet veel uit of het beestje nu unlink, delete, erase of remove heet, omdat het enige doel het 'verwijderen' van het bestand is. Hoe dat low-level gebeurt is voor een taal als php niet interessant, zolang het maar portable is en een consistent gedrag vertoont tussen de verschillende besturingssystemen. Zoals ik hierboven al zei kunnen ze dan beter focussen op een consiste naming convention ipv bij verschillende talen wat functienamen bij elkaar te grabbelen.
PHP is gebasseerd op Perl, en in perl heet het unlink en Perl is weer in C geschreven, waar het ook unlink is. Dus de naming convention is correct.
Ik ben het 100% met je eens dat ze in PHP een betere conventie moeten gaan hanteren, idem voor needle-haystack conventies, maar om dan unlink als voorbeeld te nemen is ridicuul.
In theory there is no difference between theory and practice. In practice there is.
pi_135270563
Ze zouden voor PHP6 of 7 gewoon een goeie naming convention moeten ontwerpen, en al die duizenden aliases de deur uit doen.
pi_135270593
quote:
14s.gif Op donderdag 9 januari 2014 13:18 schreef KomtTijd... het volgende:
Ze zouden voor PHP6 of 7 gewoon een goeie naming convention moeten ontwerpen, en al die duizenden aliases de deur uit doen.
eensch.
  donderdag 9 januari 2014 @ 13:29:40 #48
230788 n8n
Pragmatisch
pi_135270973
Ik heb een class::functie() die een return geeft van een array of null. Nu werkt het alleen niet als ik if (empty(class::functie()) doe. Waarom is dat? ;(
Specialization is for insects”.—Robert Heinlein
  Moderator / Redactie Sport / Devops donderdag 9 januari 2014 @ 13:42:06 #49
176766 zoem
zoemt
pi_135271419
quote:
0s.gif Op donderdag 9 januari 2014 13:15 schreef slacker_nl het volgende:

[..]

PHP is gebasseerd op Perl, en in perl heet het unlink en Perl is weer in C geschreven, waar het ook unlink is. Dus de naming convention is correct.
Dat is historisch zo gegroeid inderdaad, maar dat wil niet zeggen dat de naming convention in php als geheel klopt (waar het me om ging). Ik denk dat iedereen deze inmiddels wel kent: PHP: a fractal of bad design
quote:
Ik ben het 100% met je eens dat ze in PHP een betere conventie moeten gaan hanteren, idem voor needle-haystack conventies, maar om dan unlink als voorbeeld te nemen is ridicuul.
Dan heb je mijn eerste alinea niet gelezen ;) Het ging me niet om unlink, maar om de manualuitleg onder het kopje 'delete'. Wat ik in reactie op jou er even uit wilde lichten is dat de low-level implementatie van een deletiefunctie in een high-level taal als php geen rol mag spelen, zolang het maar doet wat het moet doen: een bestand verwijderen.
quote:
0s.gif Op donderdag 9 januari 2014 12:49 schreef zoem het volgende:
Mijn opmerking was eigenlijk meer een sneer naar php. Ik vond het wel ironisch dat de manual poogt grappig te zijn door te impliceren dat de php-functieset logisch in elkaar zit. Ze jatten functies en conventies van verschillende talen bij elkaar - waaronder inderdaad van C.
  donderdag 9 januari 2014 @ 13:55:55 #50
118585 Crutch
Filantroop || Taalzwengel
pi_135272008
Weet iemand nog goede Project Management Software die ik lokaal kan draaien (web based)?

Open source het liefst.

Ik heb natuurlijk het een en ander uitgezocht, maar net niet echt gevonden wat ik zoek.

Wat helemaal tof zou zijn is iets als activecollab
Maar daar moet je voor betalen.
Je moeder is een hamster
pi_135272297
quote:
1s.gif Op donderdag 9 januari 2014 13:29 schreef n8n het volgende:
Ik heb een class::functie() die een return geeft van een array of null. Nu werkt het alleen niet als ik if (empty(class::functie()) doe. Waarom is dat? ;(
Wat werkt er precies niet?
  Moderator / Redactie Sport / Devops donderdag 9 januari 2014 @ 14:07:19 #52
176766 zoem
zoemt
pi_135272451
quote:
1s.gif Op donderdag 9 januari 2014 13:29 schreef n8n het volgende:
Ik heb een class::functie() die een return geeft van een array of null. Nu werkt het alleen niet als ik if (empty(class::functie()) doe. Waarom is dat? ;(
Zowel null als een lege array zijn empty. Kun je wat meer info geven?
pi_135272500
Misschien overigens ook handiger om altijd een array te returnen i.p.v. ook de mogelijkheid tot null, zit je met een mixed type die waarschijnlijk niet nodig is in jouw situatie.
  donderdag 9 januari 2014 @ 14:30:35 #54
52200 ViPeRII
It's a good day to die
pi_135273343
quote van php.net

Prior to PHP 5.5, empty() only supports variables; anything else will result in a parse error. In other words, the following will not work: empty(trim($name)). Instead, use trim($name) == false.

oftewel, was je wil wordt niet ondersteund.
Dan zou ik dus Diabox zijn advies opvolgen, of false retouneren of als het echt nodig is is_null() te gebruiken ipv empty.
-- ViPeRII --
pi_135287002
Als je bij phpbb zelf een pagina hebt gemaakt waar je phpbb code hebt geinclude zodat je kan checken of de gebruiker is ingelogd etc.
kun je er voor zorgen dat die pagina niet meetelt in e wie is er online meuk.. want het gaat over een pagina die regelmatig met ajax word opgeroepen en als je dan de site open laat staan en niks doet blijf je online staan.
  vrijdag 10 januari 2014 @ 14:34:57 #56
230788 n8n
Pragmatisch
pi_135316491
quote:
0s.gif Op donderdag 9 januari 2014 14:03 schreef Diabox het volgende:

[..]

Wat werkt er precies niet?
quote:
0s.gif Op donderdag 9 januari 2014 14:30 schreef ViPeRII het volgende:
quote van php.net

Prior to PHP 5.5, empty() only supports variables; anything else will result in a parse error. In other words, the following will not work: empty(trim($name)). Instead, use trim($name) == false.
helaas

quote:
0s.gif Op donderdag 9 januari 2014 14:07 schreef zoem het volgende:

[..]

Zowel null als een lege array zijn empty. Kun je wat meer info geven?
Ik doe een email query dmv een functie, als deze niet gevonden wordt return ik een null. ik maak nu een variabele van de functie die ik later gebruik. Was achteraf sowieso handiger omdat ik anders bij meerdere if statements de functie (en dus query) moet laten lopen en dat leek me onnodige overhead geven.

was eerst

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// check email input
        
if (empty($email)) {
            
            
$error['email'] = 'empty';
            
        } elseif (
filter_var($emailFILTER_VALIDATE_EMAIL) == false) { 
            
            
$error['email'] = 'invalid'
        
        } elseif (isset(
user::check($email)) && (isset($register))) {
            
            
$error['email'] = 'taken';
            
        } elseif (empty(
user::check($email)) && (isset($login))) {
            
            
$error['email'] = 'absent';
            
        }
?>

is nu

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
// check email input
        
if (empty($email)) {
            
            
$error['email'] = 'empty';
            
        } elseif (
filter_var($emailFILTER_VALIDATE_EMAIL) == false) { 
            
            
$error['email'] = 'invalid'
        
        } else {
            
            
// check if email input exists
            
$user user::check($email);
            
            if (isset(
$user['email']) && (isset($register))) { // registration: email already exists in database
            
                
$error['email'] = 'taken';
            
            } elseif (empty(
$user['email']) && (isset($login))) { // login: email address not in database
            
            
$error['email'] = 'absent';
            
            }
            
        }
?>

de else op regel 11 is zodat de query alleen gedaan wordt als de andere statements niet van toepassing zijn

dit is de functie

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
<?php
class user {

    static function 
check($email) {
        
        global 
$connect;
        
        
$query $connect->prepare("select id, email, userkey, password from user where email = :email");
        
$query->bindParam(':email'$emailPDO::PARAM_STR);
        
$query->execute();
        
$user $query->fetch();
        
        if (empty(
$user)) {
            
            return 
null;
            
        } else {
            
            return 
$user;
            
        }
        
    }

}
?>

begrijp dat als ik hier meteen (zonder if) de $user variable return dat het ook werkt met empty($user).

[ Bericht 1% gewijzigd door n8n op 10-01-2014 14:42:48 ]
Specialization is for insects”.—Robert Heinlein
pi_135323246
waarom NULL? waarom niet gewoon false? if (($value == class::function()) != false) { // do dit } oid..

hoop dat ik het goed geschreven heb, want met deze syntax zit ik nog wel eens fout... :@

-edit-

dit gaat ook nergens over, waarom niet gewoon functies gebruiken die specifiek geschreven zijn om te kijken of er een resultaat is?

1
2
3
4
  $query = $connect->prepare("select id, email, userkey, password from user where email = :email");
        $query->bindParam(':email', $email, PDO::PARAM_STR);
        $query->execute();
        $user = $query->fetch();

http://nl1.php.net/manual/en/pdostatement.rowcount.php
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_135323419
in dit geval idd false of array() returnen. Denk dat ik voor array() zou gaan.
  vrijdag 10 januari 2014 @ 17:36:26 #59
256935 xzaz
McBacon to the rescue!
pi_135323615
Je 'check' methode heeft een verantwoordelijkheid die die niet moeten hebben.

bool user::validEmailAdress(email)

user user::getUserbyEmailAdress(email)

of

1
2
3
4
5
6
7
8
user::getUserByEmailAdress(email)

implementatie:
  checkEmailAdress(email)
  true:
   getUserbyEmailAdress(email)
  false:
   null
pi_135337191
Inderdaad wat bovenstaande heren zeggen. Ik verwacht sowieso bij een 'check' functie of het bestaat, en zodoende 'n boolean. Bij 'n get verwacht je data terug.

Daarnaast gewoon 'n lege array returnen bij geen resultaat, en 'n exception throwen wanneer iets fout gaat. Zo heb je geen mixed type nodig, en als er daadwerkelijk wat fout gaat krijg je gewoon 'n exception i.p.v. iets nietszeggends als false (al ga ik ook vaak voor 'n return false bij kleine dingetjes, maar bij wat grotere projecten, en zeker bij meerdere dingen die fout kunnen gaan, throw ik exceptions).
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')