abonnement Unibet Coolblue Bitvavo
pi_34149579
Nog maar een vraagje, mijn vorige vraag hier heeft mij wat handige inzichten opgeleverd (ik ben trouwens toen voor de $config['bla'] en dan in functies global $config gegaan).

Ik heb binnen mijn applicaties 2 soorten pagina's, pagina's die toonbaar zijn voor iedereen die ingelogd is en pagina's die zichtbaar zijn voor mensen die ingelogd zijn EN een bepaalde rol hebben toegewezen.

Wat ik zou kunnen doen per pagina is:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (!isset($_SESSION['login']) && $_SESSION['login'] != 1)
{
  echo
'niet toegestaan dit te zien';
}
else
{
  if(
$_SESSION['role'] != "bla")
  {
    echo
'Niet toegestaan';
  }
  else
  {
     echo
'laat alles gewoon maar zien';
  }
}
?>


Maar is dit een handige manier? Kan dit niet slimmer, zodat ik niet overal van die accoladers moet plaatsen.

Ik heb zitten denken aan iets met die of break, maar ik meen dat dan gelijk alles wordt afgebroken, en de hoofdpagina index.php include alle andere pagina's. De rest zou dan ook niet worden gedisplayed, naar ik meen.

Iemand suggesties?
pi_34149662
Ja en nee.

Als het een include file is, kan je 'return' gebruiken om uit de include file terug naar de parent file te springen:

1
2
3
4
5
6
7
<?php
if (!isset($_SESSION['login']) && $_SESSION['login'] != 1)
{
  echo 'niet toegestaan dit te zien';
  return;
}
?>

Vervolgens zou je nog die tweede if, in de eeste kunnen opnemen:
1
2
3
4
5
6
7
if(   !isset($_SESSION['login']) || $_SESSION['login'] != 1
    ||!isset($_SESSION['role']) || $_SESSION['role'] != "bla")
  {
    echo 'Niet toegestaan';
   return;
  }
?>

Hier zou je vervolgens een functie van kunnen breien zodat het uiteindelijk iets wordt als:

1
2
3
4
5
<?php
if(!userLoggedInAs("bla")) {
  return;
}
?>

De functie zelf zou je dan als volgt kunnen doen:
1
2
3
4
5
6
7
8
9
10
function userLoggedInAs($role, $displayWarning = true) {
  if(   isset($_SESSION['login']) && $_SESSION['login'] == 1
     &&!isset($_SESSION['role']) && $_SESSION['role'] == $role) {
   return true;

if($displayWarning) {
  echo 'U heeft geen toegang';
}
return false;
}
  FOK!-Schrikkelbaas dinsdag 17 januari 2006 @ 08:31:11 #207
1972 Swetsenegger
Egocentrische Narcist
pi_34149666
Je kan de eerste en tweede if toch gewoon samenvoegen?
en checken op isset EN een waarde is volgens mij een beetje onzin. Als Session['login'] niet geset is, zal hij ook geen 1 zijn.
pi_34149747
Yeps het samenvoegen had ik ook gezien, vroeg mij alleen af (wilde ik nog testen) of het sneller is om twee maal los te checken of in 1 keer beide.

Ik ga even kijken wat ik met bovenstaande dingen kan doen. Thnx for the help!
pi_34149892
quote:
Op dinsdag 17 januari 2006 08:31 schreef Swetsenegger het volgende:
Je kan de eerste en tweede if toch gewoon samenvoegen?
en checken op isset EN een waarde is volgens mij een beetje onzin. Als Session['login'] niet geset is, zal hij ook geen 1 zijn.
Het is niet strikt noodzakelijk om eerst te checken op isset, maar het is wel netter. Ik geloof dat PHP een notice geeft als je een vergelijking uitvoert met een variabele die niet geset is, en door isset te gebruiken kun je dat afvangen. Als je ooit in een andere taal wilt gaan programmeren dan is het handiger om je meteen die isset-checks aan te leren, de meeste talen zijn er niet zo makkelijk in.
  FOK!-Schrikkelbaas dinsdag 17 januari 2006 @ 09:19:47 #210
1972 Swetsenegger
Egocentrische Narcist
pi_34150361
quote:
Op dinsdag 17 januari 2006 08:50 schreef Light het volgende:

[..]

Het is niet strikt noodzakelijk om eerst te checken op isset, maar het is wel netter. Ik geloof dat PHP een notice geeft als je een vergelijking uitvoert met een variabele die niet geset is, en door isset te gebruiken kun je dat afvangen. Als je ooit in een andere taal wilt gaan programmeren dan is het handiger om je meteen die isset-checks aan te leren, de meeste talen zijn er niet zo makkelijk in.
Ik zeg niet dat hij niet moet controleren op isset, maar controleren op isset EN value is nutteloos. Met een or zoals in roonaan zijn voorbeeld is wat logischer.
pi_34150681
quote:
Op dinsdag 17 januari 2006 09:19 schreef Swetsenegger het volgende:

[..]

Ik zeg niet dat hij niet moet controleren op isset, maar controleren op isset EN value is nutteloos. Met een or zoals in roonaan zijn voorbeeld is wat logischer.
als je de notice wil voorkomen is isset niet nutteloos, alleen is het de vraag of je doel moet zijn om die notice te voorkomen .
  FOK!-Schrikkelbaas dinsdag 17 januari 2006 @ 09:38:02 #212
1972 Swetsenegger
Egocentrische Narcist
pi_34150728
quote:
Op dinsdag 17 januari 2006 09:34 schreef rickmans het volgende:

[..]

als je de notice wil voorkomen is isset niet nutteloos, alleen is het de vraag of je doel moet zijn om die notice te voorkomen .
Nee precies.
Dus je controlleert of de sessie bestaat en zoja, controleer je of hij de waarde heeft welke je verwacht
  woensdag 18 januari 2006 @ 12:08:55 #213
51748 H4ze
wait...what?
pi_34195095
Ik zit hier met een SQL boek voor me, en daar staat de scalaire functie 'CONVERT_DATE' in (converteert een datum zoals 1988-05-20 naar 20 mei 1988). Nu wil ik deze ff op m'n mysql DB uitproberen:

1
2
3
SELECT CONVERT_DATE(releasedatum) 
FROM catalogusnummer
WHERE releasedatum='2004-10-12' 


Dit werkt dus niet...In dat boek stond ook dat deze functie in enkele producten CTOD heet, maar ook wanneer ik dat gebruik krijg ik een foutmelding.
*BURP*
pi_34195296
is je database column wel het goede formaat? of zou dat niet uitmaken.
As a rule, I never touch anything more sophisticated and delicate than myself.
  woensdag 18 januari 2006 @ 12:18:22 #215
51748 H4ze
wait...what?
pi_34195430
Jep, die is gewoon in 't DATE formaat. Ik kan verder ook gewoon dingen als YEAR(releasedatum) enzo doen, dus dat zit gewoon goed
*BURP*
pi_34197391
quote:
Op woensdag 18 januari 2006 12:18 schreef H4ze het volgende:
Jep, die is gewoon in 't DATE formaat. Ik kan verder ook gewoon dingen als YEAR(releasedatum) enzo doen, dus dat zit gewoon goed
mm okee. dan weet ik t niet. wat ik wel weet, is dat jij dus n boek hebt liggen daar
[boeken] verschillende talen en graden

als jij dat nou s in mijn supergoedlopendetopic plaatst
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_34197565
Ik kan de convert_date functie niet vinden in de MySQL manual.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas woensdag 18 januari 2006 @ 13:45:40 #218
1972 Swetsenegger
Egocentrische Narcist
pi_34198547
Ik ken wel DATE_FORMAT

1
2
3
SELECT DATE_FORMAT(releasedatum,%d-%m-%Y) AS dutch_date 
FROM catalogusnummer
WHERE releasedatum='2004-10-12' 
pi_34199068
$nummer = 4;
$nummer = "4";

het werkt allebei. welke is netter?
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_34199657
$nummer = 4.. dan is het een integer
$nummer = "4", dan is het een string

Als je iets wilt teller kan je dus beter de eerste variant gebruiken
pi_34200739
quote:
Op woensdag 18 januari 2006 13:59 schreef Desdinova het volgende:
het werkt allebei. welke is netter?
Dit verhaal zul je in elke programmeertaal tegenkomen maar vooral ook in PHP aangezien PHP loose typing ondersteunt. Als jij met getallen wilt werken moet je integers gebruiken, wil je met strings werken dan zet je er aanhalingstekens omheen. MySQL een beetje hetzelfde verhaal, je kúnt timestamps wel opslaan in een VARCHAR(zoveel) maar het is over het algemeen (en technisch gezien) veel beter daar gewoon een UNSIGNED INT voor te gebruiken. Als je specifiek met data wilt werken kun je ook het DATE of DATETIME type voor gebruiken.

Moraal van het verhaal: twee manieren kunnen hetzelfde opleveren maar als je de meest logische keuze neemt heb je vaak ook de efficiëntste methode en later minder problemen in andere talen.
  FOK!-Schrikkelbaas woensdag 18 januari 2006 @ 15:27:18 #222
1972 Swetsenegger
Egocentrische Narcist
pi_34202780
Is het met php mogelijk om de resolutie van een image welke op het filesystseem staat te achterhalen?
Met andere woorden, ik plaats een rijtje foto's waarvan de naam in de database staat, maar de fysieke foto in het filesysteem op een website. En ik wil nu een height en width meegeven.

Aangezien die variabel is, dien ik die dus te achterhalen op het moment van plaatsing.
pi_34202837
quote:
Op woensdag 18 januari 2006 15:27 schreef Swetsenegger het volgende:
Is het met php mogelijk om de resolutie van een image welke op het filesystseem staat te achterhalen?
Met andere woorden, ik plaats een rijtje foto's waarvan de naam in de database staat, maar de fysieke foto in het filesysteem op een website. En ik wil nu een height en width meegeven.

Aangezien die variabel is, dien ik die dus te achterhalen op het moment van plaatsing.
Dat en nog veel meer is te achterhalen met deze functie alhoewel je dat soort informatie beter kunt cachen in de database (al die disk reads zijn niet geweldig voor de performance)
  FOK!-Schrikkelbaas woensdag 18 januari 2006 @ 15:34:55 #224
1972 Swetsenegger
Egocentrische Narcist
pi_34203085
quote:
Op woensdag 18 januari 2006 15:28 schreef JeRa het volgende:

[..]

Dat en nog veel meer is te achterhalen met deze functie alhoewel je dat soort informatie beter kunt cachen in de database (al die disk reads zijn niet geweldig voor de performance)
Ja, het probleem is dat het bestaande informatie is. 'even' deze info in de db erbij opslaan zal dus niet gaan.

Hmz....
pi_34203391
quote:
Op woensdag 18 januari 2006 15:34 schreef Swetsenegger het volgende:

[..]

Ja, het probleem is dat het bestaande informatie is. 'even' deze info in de db erbij opslaan zal dus niet gaan.

Hmz....
Twee velden in de database aanmaken en vervolgens:
1) Een scriptje laten draaien dat van alle bestanden de afmetingen in de database opslaat
2) Een interface schrijven die bij het opvragen van de informatie kijkt of het al in de database staat, zo niet, het dan inleest door middel van die functie en wegschrijft naar de database

En dan natuurlijk bij nieuwe afbeeldingen de informatie vantevoren al opslaan dan kun je na een tijdje optie 2) uitfaseren (alhoewel me 1) het beste lijkt).
  FOK!-Schrikkelbaas woensdag 18 januari 2006 @ 16:06:18 #226
1972 Swetsenegger
Egocentrische Narcist
pi_34204578
quote:
Op woensdag 18 januari 2006 15:41 schreef JeRa het volgende:

[..]

Twee velden in de database aanmaken en vervolgens:
1) Een scriptje laten draaien dat van alle bestanden de afmetingen in de database opslaat
2) Een interface schrijven die bij het opvragen van de informatie kijkt of het al in de database staat, zo niet, het dan inleest door middel van die functie en wegschrijft naar de database

En dan natuurlijk bij nieuwe afbeeldingen de informatie vantevoren al opslaan dan kun je na een tijdje optie 2) uitfaseren (alhoewel me 1) het beste lijkt).
Ik heb even gekeken. Op dit moment heeft 99% van de images dezelfde resolutie. Dus die gooi ik in 1 keer in de database.
De afbeeldingen worden uiteraard via het cms geupload en geresized. Ik kan dus heel eenvoudig dat script aanpassen zodat voor elke nieuwe upload de hoogte en breedte in de database gezet wordt.

En die 5 foto's met een afwijkende resolutie zet ik er handmatig in.

Probleem opgelost.
pi_34208262
if ($row = $rst->fetchRow()) { // Bestaat de waarde al?

Nou $row is nergens een waarde toegekend eerder in de code.
Nu snap ik niet helemaal wat nu wordt vergeleken, een object waarin de fetchRowwaarde in is gedrukt wordt vergeleken met een lege variabel?
pi_34208861
@Fatality:

Dit is een toewijzing:

$a = 1;

Eigenschap van deze toewijzing is dat hij hetgeen dat toegewezen wordt retourneert. Je kunt dus dit doen:

if (($a = 1) == 1) {
echo '1 is toegewezen aan $a!';
}

En als je zoiets doet:

if ($row = $rst->fetchRow()) {
//blaat
}

Dan wordt er gewoon gekeken of er iets wordt toegewezen aan $row dat ongelijk aan nul evalueert
  woensdag 18 januari 2006 @ 19:12:50 #229
51748 H4ze
wait...what?
pi_34211560
quote:
Op woensdag 18 januari 2006 13:45 schreef Swetsenegger het volgende:
Ik ken wel DATE_FORMAT
[ code verwijderd ]
Ah, die werkt wel! Thnx
*BURP*
  FOK!-Schrikkelbaas woensdag 18 januari 2006 @ 19:36:30 #230
1972 Swetsenegger
Egocentrische Narcist
pi_34212603
quote:
Op woensdag 18 januari 2006 16:06 schreef Swetsenegger het volgende:

Ik kan dus heel eenvoudig dat script aanpassen zodat voor elke nieuwe upload de hoogte en breedte in de database gezet wordt.
Dat is dus niet helemaal waar.

De foto's worden geschaald in een resize 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
27
28
29
function resize_photo($new_name,$new_width,$new_height,$filename){

// Content type
header('Content-type: image/jpeg');

// nieuwe resolutie bepalen
list($width_orig, $height_orig) = getimagesize($filename);
if(empty($new_height)){
                        $new_height = round(($new_width / $width_orig) * $height_orig);

}elseif(empty($new_width)){
         $new_width = round(($new_height / $height_orig) * $width_orig);

}elseif ($new_width && ($width_orig < $height_orig)) {
         $new_width = ($new_height / $height_orig) * $width_orig;

}else{
                        $new_height = ($new_width / $width_orig) * $height_orig;
}

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);

// Output
imagejpeg($image_p, $new_name, 80);
Imagedestroy($image);
}

De nieuwe resolutie is dus een bij produkt van deze funtie.
Maar.... nu heb ik ze dus verderop in het script nodig. Hoe krijg ik die nu uit de functie?

$resolution=array($new_width,$new_height);
return $resolution;

Dit heb ik toegevoegd, maar wanneer ik in mijn script NA de functie call een print_r ($resolution); doe krijg ik in ieder geval niets terug.
pi_34213234
Even samengevat:

1
2
3
4
5
6
7
8
function blaat()
{
    return array(1, 2);
}

$resultaat = blaat();

print_r($resultaat);

Dat is je basisopzet om een array terug te krijgen van je functie; je weet zeker dat het zo in elkaar zit?
pi_34213255
Je doet toch wel iets als $resolution = resize_photo(...); hè? just checking
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_34214684
Goedenavond,

Voor een IFK vak heb ik een persoonlijke opdracht gekregen over SQL. Nu ben ik hier niet echt een ster in dus schakel ik de hulplijn in
Ik moet informatie uit een database halen via SQL queries.
De bedoeling is om dit te doen via de volgende volgorde:
SELECT:
WHERE:
FROM:
SORT BY:
GROUP BY:
HAVING:
Hierachter moeten dus de functies komen (als ik het goed zeg). Sub-Query's zijn toegestaan.

Een van de vragen waar ik niet uit kom is:
Bepaal per factuur het factuurbedrag. Toon factuurnummer, factuurdatum eb factuurbedrag. Let op!: De verkoopprijs is exclusief een korting voor de afnemer.

Daarbij moet ik gebruik maken van de Tabellen
Factuur(factuurnummer, afnemernummer,factuurdatum en personeelsnummer)
Factuurregel(factuurnummer, artikelcode, verkoopaantal, verkoopprijs)
Korting (kortinggroepnummer, kortingspercentage)
Afnemer(afnemernummer,naam,adres,postcode,plaats,regio,kortinggroepnummer)

Ik weet dat het een ultieme n00b-vraag is, maar hoop toch dat iemand mij kan helpen...
pi_34215333
  • Stap 1: zoek alle artikelen bij de factuur
  • Stap 2: bepaal het totaalbedrag (zonder korting)
  • Stap 3: zoek het kortingspercentage bij de factuur
  • Stap 4: bepaal het factuurbedrag
  • Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_34215495
    quote:
    Op woensdag 18 januari 2006 20:41 schreef SuperRembo het volgende:
  • Stap 1: zoek alle artikelen bij de factuur
  • Stap 2: bepaal het totaalbedrag (zonder korting)
  • Stap 3: zoek het kortingspercentage bij de factuur
  • Stap 4: bepaal het factuurbedrag
  • Tot die beredenatie kwam ik ook nog Nu alleen nog uitvoeren, das een beetje het probleem zeg maar...
    pi_34215682
    Probeer eens wat. Stap 1 moet wel lukken lijkt me.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      FOK!-Schrikkelbaas woensdag 18 januari 2006 @ 21:01:38 #237
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34216332
    quote:
    Op woensdag 18 januari 2006 19:50 schreef JeRa het volgende:
    Even samengevat:
    [ code verwijderd ]

    Dat is je basisopzet om een array terug te krijgen van je functie; je weet zeker dat het zo in elkaar zit?
    quote:
    Op woensdag 18 januari 2006 19:51 schreef SuperRembo het volgende:
    Je doet toch wel iets als $resolution = resize_photo(...); hè? just checking
    Nee dus heren, tenslotte is $resolution een bijprodukt van resize();

    Momenteel roep ik 'm zo aan

    1
    2
    3
    $new_width=175;
    $new_height=75;
    resize_photo($new_name,$new_width,$new_height,$filename);


    Maar daar kan ik dus zonder problemen

    1$resolution=resize_photo($new_name,$new_width,$new_height,$filename);

    van maken?

    -edit- ja dus
    pi_34216930
    quote:
    Op woensdag 18 januari 2006 21:01 schreef Swetsenegger het volgende:
    Nee dus heren, tenslotte is $resolution een bijprodukt van resize();
    Nee hoor, $resolution is helemaal geen bijproduct van resize() de variabele zelf gaat out of scope nadat de functie klaar is en het resultaat wordt klaarblijkelijk gewoon weggegooid en raak je dus ook kwijt
      FOK!-Schrikkelbaas woensdag 18 januari 2006 @ 22:23:49 #239
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34220994
    quote:
    Op woensdag 18 januari 2006 21:12 schreef JeRa het volgende:

    [..]

    Nee hoor, $resolution is helemaal geen bijproduct van resize() de variabele zelf gaat out of scope nadat de functie klaar is en het resultaat wordt klaarblijkelijk gewoon weggegooid en raak je dus ook kwijt
    Je begrijpt niet wat ik bedoel.
    De functie resize is nooit bedoeld om de uiteindelijke resolutie terug te geven. Tot vandaag interesseerde die me niet.
    Dus die werd inderdaad alleen in de functie gebruikt om de image te resizen naar de juiste maat, en was nergens in de global scope nodig en dus weggegooid.

    Dus in die zin was de resolutie welke in resize() wordt gebruikt een bijprodukt van de functie
    pi_34225651
    quote:
    Op woensdag 18 januari 2006 17:53 schreef JeRa het volgende:
    @Fatality:

    Dit is een toewijzing:

    $a = 1;

    Eigenschap van deze toewijzing is dat hij hetgeen dat toegewezen wordt retourneert. Je kunt dus dit doen:

    if (($a = 1) == 1) {
    echo '1 is toegewezen aan $a!';
    }

    En als je zoiets doet:

    if ($row = $rst->fetchRow()) {
    //blaat
    }

    Dan wordt er gewoon gekeken of er iets wordt toegewezen aan $row dat ongelijk aan nul evalueert
    verdomd ik moet die operators eens allemaal uitmekaar halen.
      donderdag 19 januari 2006 @ 10:55:45 #241
    89068 Gh0stbust3r
    Ruud van Nistelrooy
    pi_34233570
    Hallo,

    ik moet voor school een website maken met php. Ik heb geen kennis van php, weet iemand een site of iets dergelijks waarmee ik wel een begin kan maken aan de website... Heb echt 0.0 verstand ervan
    Trainer van *Manchester United* ( @ www.hattrick.org )
      donderdag 19 januari 2006 @ 14:37:08 #242
    37634 wobbel
    Da WoBBeL King
    pi_34240931
    Ik zit met een vaag dillema.

    Ik heb een webshop die multishop is, dat wil zeggen dat op 1 domeinnaam 3 virtuele shops lopen d.m.v. een sessie. Tabel Shops heeft dus 3 records (1,2 en 3 met resp. LCD, MP3 en GSM shop)

    Nu heb ik ook een tabel met alle producten erin. Deze producten kan je koppelen aan 1 shop, 2 shops maar ook alle 3 de virtuele shops.
    Dit gebeurd met een speciale tabel genaamd ProductLinkShops. Hierin staat voor elk product een record om hem te koppelen aan een shop.

    Voorbeeld van ProductLinkShops.
    1 | 64 | 3
    2 | 64 | 2
    3 | 24 | 1
    4 | 122 | 1
    5 | 33 | 3

    1 t/m 5 is gewoon het id van dat record, 64, 24 122 en 33 zijn ProductId's en die 3, 2, 1, 1 en 3 zijn de betreffende shops waarin ze moeten voorkomen. Het systeem werkt prima

    Maar nu moet ik een search maken

    Je moet kunnen zoeken in de titel van het product. Maar hij mag alleen de producten weergeven als ze ook voor de huidige shop bedoeld zijn.
    Als ik in shop 3 zoek, mag ik dus alleen product 33 en product 64 in beeld krijgen (als de trefwoorden kloppen)

    Hoe de neuk flik ik dat?

    Ik heb nu dit, maar dit geeft ALTIJD 0 resultaten weer

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $rSearchQuery                                                
    = mysql_query ( "SELECT
                                                                    Producten.ProductNaam,
                                                                    Producten.KorteOmschrijving,
                                                                    Producten.LangeOmschrijving,
                                                                    ProductenLinkShop.pls_productId,
                                                                    ProductenLinkShop.pls_shopId
                                                                    FROM Producten
                                                                    INNER JOIN ProductenLinkShop
                                                                    ON ( ProductenLinkShop.pls_productId = Producten.IdProduct )
                                                                    WHERE ProductenLinkShop.pls_shopId = '"
    . $_SESSION['CCShop'] . "'
                                                                    AND Producten.ProductNaam = '%"
    . $sSearchTerm . "%'" ) or die ( mysql_error (  ) );
    ?>
      donderdag 19 januari 2006 @ 15:02:03 #243
    71796 dossie
    lekker makkelijk
    pi_34241891
    Ik wou even kijken hoe een random password maken in zijn werk gaat.

    Nu kwam ik de volgende voorbeeldcode tegen op php.net, een reactie bij de functie mt_rand.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    php
      $acceptedChars
    = 'azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789';
      
    $max = strlen($acceptedChars)-1;
      
    $password = null;
      for(
    $i=0; $i &lt; 8; $i++) {
       
    $password .= $acceptedChars{mt_rand(0, $max)};
      }
      echo
    $password;
    ?>


    Ik snap de accolades achter de variabele $acceptedChars niet! Ik heb de code getest, en hij werkt gewoon zoals het hoort. Maar ik dacht dat je die accolades alleen gebruikt voor een functie of een lus ofzo, en hier wordt het gewoon achter de variabale gezet.

    Kan iemand mij dit uitleggen?
    "Het geheugen van het hart zeeft slechte herinneringen weg en maakt de goede mooier. Dat stelt ons in staat om met het verleden te leven." - Gabriel Garcia Marquez
    pi_34242067
    @dossie:

    Met accolades achter een variabele die een string is, kun je een teken op een bepaalde positie opvragen.

    Voorbeeldje:
    1
    2
    3
    4
    5
    6
    7
    8
    <?php

    $string = 'abcdef';

    echo $string{2};
    echo $string[2];

    ?>

    Zoals je ziet werken de rechte brackets ook, alleen wordt het ten zeerste aangeraden de accolades te gebruiken
    pi_34242156
    quote:
    Op donderdag 19 januari 2006 14:37 schreef wobbel het volgende:
    Ik zit met een vaag dillema.

    Ik heb een webshop die multishop is, dat wil zeggen dat op 1 domeinnaam 3 virtuele shops lopen d.m.v. een sessie. Tabel Shops heeft dus 3 records (1,2 en 3 met resp. LCD, MP3 en GSM shop)

    -snip-
    Ik heb nog niet uitgebreid naar je probleem gekeken, maar ik weet je al wel te vertellen dat je een LIKE moet gebruiken als je wilt zoeken d.m.v. '%string%'
    pi_34242209
    quote:
    Op donderdag 19 januari 2006 10:55 schreef Gh0stbust3r het volgende:
    Hallo,

    ik moet voor school een website maken met php. Ik heb geen kennis van php, weet iemand een site of iets dergelijks waarmee ik wel een begin kan maken aan de website... Heb echt 0.0 verstand ervan
    Google is your friend als je al verstand hebt van andere talen is de beste plek om te beginnen wellicht de site van PHP zelf; check de documentatie.
      donderdag 19 januari 2006 @ 15:14:53 #247
    71796 dossie
    lekker makkelijk
    pi_34242347
    quote:
    Op donderdag 19 januari 2006 15:06 schreef JeRa het volgende:
    @dossie:

    Met accolades achter een variabele die een string is, kun je een teken op een bepaalde positie opvragen.

    Voorbeeldje:
    [ code verwijderd ]

    Zoals je ziet werken de rechte brackets ook, alleen wordt het ten zeerste aangeraden de accolades te gebruiken
    Ah, dat verklaart weer een boel

    Enig idee welk gedeelte van php.net ik had moeten doorwerken om dit te weten? Misschien staan daar nog meer basics die ik helemaal niet ken. iig bedankt
    "Het geheugen van het hart zeeft slechte herinneringen weg en maakt de goede mooier. Dat stelt ons in staat om met het verleden te leven." - Gabriel Garcia Marquez
      FOK!-Schrikkelbaas donderdag 19 januari 2006 @ 15:28:28 #248
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34242772
    quote:
    Op donderdag 19 januari 2006 14:37 schreef wobbel het volgende:
    Ik zit met een vaag dillema.

    Ik heb een webshop die multishop is, dat wil zeggen dat op 1 domeinnaam 3 virtuele shops lopen d.m.v. een sessie. Tabel Shops heeft dus 3 records (1,2 en 3 met resp. LCD, MP3 en GSM shop)

    Nu heb ik ook een tabel met alle producten erin. Deze producten kan je koppelen aan 1 shop, 2 shops maar ook alle 3 de virtuele shops.
    Dit gebeurd met een speciale tabel genaamd ProductLinkShops. Hierin staat voor elk product een record om hem te koppelen aan een shop.

    Voorbeeld van ProductLinkShops.
    1 | 64 | 3
    2 | 64 | 2
    3 | 24 | 1
    4 | 122 | 1
    5 | 33 | 3

    1 t/m 5 is gewoon het id van dat record, 64, 24 122 en 33 zijn ProductId's en die 3, 2, 1, 1 en 3 zijn de betreffende shops waarin ze moeten voorkomen. Het systeem werkt prima

    Maar nu moet ik een search maken

    Je moet kunnen zoeken in de titel van het product. Maar hij mag alleen de producten weergeven als ze ook voor de huidige shop bedoeld zijn.
    Als ik in shop 3 zoek, mag ik dus alleen product 33 en product 64 in beeld krijgen (als de trefwoorden kloppen)

    Hoe de neuk flik ik dat?

    Ik heb nu dit, maar dit geeft ALTIJD 0 resultaten weer
    [ code verwijderd ]
    LEFT ipv INNER join?
      FOK!-Schrikkelbaas donderdag 19 januari 2006 @ 15:30:27 #249
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34242838
    quote:
    Op donderdag 19 januari 2006 15:14 schreef dossie het volgende:

    [..]

    Ah, dat verklaart weer een boel

    Enig idee welk gedeelte van php.net ik had moeten doorwerken om dit te weten? Misschien staan daar nog meer basics die ik helemaal niet ken. iig bedankt
    http://www.php.net/manual/en/
    pi_34244221
    waarom werkt dit niet:

    1
    2
    3
    4
    5
    6
    7
    <?php
    $date
    = substr($row-&gt;Date,9,10);
    $date.= " - ";
    $date.= substr($row-&gt;Date,6,7);
    $date.= " - ";
    $date.= substr($row-&gt;Date,0,4);
    ?>


    ik wil dus gewoon de tekentjes in een andere volgorde weergeven, maar hij geeft veel meer tekentjes weer dan ik specificeer (en dat rijmt )
    As a rule, I never touch anything more sophisticated and delicate than myself.
    pi_34244461
    @Desdinova

    Al eens naar deze pagina gekeken?
    pi_34244850
    quote:
    Op donderdag 19 januari 2006 15:30 schreef Swetsenegger het volgende:

    [..]

    http://www.php.net/manual/en/
    Een beetje flauw om alleen een link naar de manual ToC te geven.

    String access and modification by character
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      donderdag 19 januari 2006 @ 16:28:15 #253
    71796 dossie
    lekker makkelijk
    pi_34244932
    quote:
    Op donderdag 19 januari 2006 16:25 schreef SuperRembo het volgende:

    [..]

    Een beetje flauw om alleen een link naar de manual ToC te geven.

    String access and modification by character

    Bedankt dat bedoelde ik. Maar ik snap schwarzeneggert ook wel, moet ik maar beter zoeken. Maar bedankt!
    "Het geheugen van het hart zeeft slechte herinneringen weg en maakt de goede mooier. Dat stelt ons in staat om met het verleden te leven." - Gabriel Garcia Marquez
    pi_34245473
    quote:
    Op donderdag 19 januari 2006 16:14 schreef JeRa het volgende:
    @Desdinova

    Al eens naar deze pagina gekeken?
    oooo fuck joh werkt dat zo.
    ik ging van teveel uit
    As a rule, I never touch anything more sophisticated and delicate than myself.
      FOK!-Schrikkelbaas donderdag 19 januari 2006 @ 16:44:53 #255
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34245527
    quote:
    Op donderdag 19 januari 2006 16:25 schreef SuperRembo het volgende:

    [..]

    Een beetje flauw om alleen een link naar de manual ToC te geven.

    String access and modification by character
    Ik kon hem niet zo snel vinden.
    Aangezien hij het over php.net had, heb ik hem maar wel even specifiek naar de manual verwezen. de rest is een kwestie van zoeken.
    abonnement Unibet Coolblue Bitvavo
    Forum Opties
    Forumhop:
    Hop naar:
    (afkorting, bv 'KLB')