invalid argument foreach()

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior PHP (Laravel) Developer

Functie omschrijving Wij zijn op zoek naar een PHP Laravel Developer! Sta je aan het begin van je carrière en ben je op zoek naar een leuke baan? Lees dan verder! Voor een softwarebedrijf in omgeving van Schiphol zijn wij op zoek naar een ervaren PHP (Laravel) Developer. Je gaat je bezighouden met het ontwikkelen van innovatieve bedrijfsapplicaties. Samen met het team, bestaande uit designers en developers, maak je mooie oplossingen voor bedrijven in diverse branches. Je zorgt dat de opgeleverde websites perfect werken en de klant meer dan tevreden is. Je kunt rekenen op een afwisselende baan met leuke

Bekijk vacature »

Medior Front-end Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte websites die in eigen beheer zijn. In onze vestiging in Nederweert zit onze development afdeling en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé Medior Front-end Developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het uitwerken van designs tot functionele layouts Je

Bekijk vacature »

Embedded Software Developer

Functie omschrijving Voor een mooi softwarebedrijf in omgeving Moordrecht zijn wij op zoek naar een Embedded Software developer. Ben jij enthousiast en een echte team player? Lees dan snel of dit iets voor jou is! Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Laat dan snel wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot

Bekijk vacature »

Python Developer

Dit ga je doen Als Python Developer ben je verantwoordelijk voor: Het ontwikkelen van Stuurprogramma's in Python zodat er verbindingen kunnen worden gelegd tussen besturingssystemen en (AV) hardware; Het testen en debuggen van Stuurprorgamma's; Het communiceren met noodzakelijke partijen in gevallen waar extra technische details nodig zijn om een Stuurprogramma te ontwikkelen of problemen op te lossen; Het maken van de nodige technische documentatie (in het Engels); Het participeren in een Scrum/Agile omgeving. Hier ga je werken Deze internationale organisatie is wereldwijd een succesvol producent en leverancier van professionele AV hard- en software. Klanten gebruiken de producten o.a. voor het

Bekijk vacature »

Junior .NET developer

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

Fullstack developer

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie werken? Voor een mooi softwarebedrijf in omgeving Alblasserdam zijn wij op zoek naar versterking op de afdeling Software Development! Als Fullstack react.js developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met de back

Bekijk vacature »

Fullstack JavaScript Developer Webapplicaties

Bedrijfsomschrijving Voor deze organisatie ben ik op zoek naar een getalenteerde Fullstack JavaScript Developer. Ze is een snelgroeiend software development agency dat zich richt op het ontwikkelen van moderne webapplicaties en complexe systemen voor haar klanten. Ze is gevestigd onder de rook van Utrecht en heeft als doel om tot de top van de Nederlandse agencies te behoren. Deze organisatie maakt softwareoplossingen voor verschillende soorten bedrijven. Innovatie staat hoog in het vaandel en je zult dus met nieuwe technieken aan de slag gaan. Ze hebben klanten in vele branches zitten, zoals retail, finance, gezondheid en onderwijs. De diverse klanten zorgen

Bekijk vacature »

Integratie Developer / Architect

Dit ga je doen Als Integratie Developer / Architect binnen deze organisatie krijg je echt de kans om impact te maken. De organisatie is groeiende maar houdt een corporate cultuur buiten de deur. Heb je een goede business case: zorg voor goede argumentatie en ga ervoor! Geen stroperig beslissingsproces dat jouw ideeën in de weg staat! Enkele van jouw taken: Je ontwerpt en ontwikkelt nieuwe integraties met behulp van interne tools (Boomi) of externe partners; Je vertaalt functionele specificaties naar technische oplossingen; Je denkt mee over strategische ontwikkelingen op het gebied van applicatie integratie; Je voert regie op leveranciers en

Bekijk vacature »

Medior/Senior Front-end Developers gezocht (Utrech

Functie Het team bestaat uit 10+ gespecialiseerde (veel senior) front-end ontwikkelaars en ontwerpers die werken aan projecten voor klanten van verschillende groottes (kan twee jaar bezig zijn met 1 klant). Je helpt klanten met ingewikkelde front-end vraagstukken, hierbij kun je denken aan: UX/UI design, CI/CD, architectuur en integratie met back-end systemen. De werkzaamheden verricht je op locatie bij de klant, dit is vaak in de Randstad. De organisatiestructuur is plat en er heerst een informele sfeer, zo kun je met vragen dus terecht bij de directie. Er wordt veel nadruk gelegd op het bevorderen van persoonlijke ontwikkeling door middel van

Bekijk vacature »

Senior Organisatieontwikkelaar

Als Organisatieontwikkelaar zorg je ervoor dat we in het magazijn van Coolblue altijd vooruit voetballen op het gebied Medewerker en Organisatie Ontwikkeling. Zo draag je bij aan een toekomstbestendig magazijn waar we klanten én medewerkers elke dag blijven verwonderen. Wat doe je als Senior Organisatieontwikkelaar bij Coolblue? Als Organisatieontwikkelaar werk je voor het magazijn van Coolblue. Je krijgt er energie van om continue te bouwen aan een toekomstbestendige organisatie. Dat doe je samen met 17 collega's in het HR-team, ieder met een eigen specialisme. Je werkt graag zelfstandig en je weet snel je weg te vinden als verandermanager. Ook ben

Bekijk vacature »

Applicatiebeheerder/ Ontwikkelaar

Dit ga je doen - Verantwoordelijkheid dragen voor het complexe applicatielandschap; - Schakelen met eindgebruikers en leveranciers; - Verdeling in werkzaamheden tussen dagelijks beheer ontwikkelen; - Het analyseren van de behoeften van gebruikers en het vertalen hiervan naar functionele specificaties voor de applicaties; - Actief bijdragen aan het leveren van passende oplossingen voor het applicatielandschap. Hier ga je werken Deze organisatie, gevestigd in de regio van Amsterdam is een van de meest toonaangevende mediaorganisaties in Nederland. Door de organisatiecultuur krijg jij veel ruimte om initiatief te nemen en zelfstandig aan het werk te gaan. Samen met het IT team zorg

Bekijk vacature »

C# .Net Developer

Dit ga je doen Het bouwen van Api's; Nieuwe oplossingen bouwen met C# .Net; De huidige software uitbouwen met C# .Net; Meewerken in projecten; Meedenken aan de toekomstplannen en verbeteringen; Onderdeel van het Scrum Team. Hier ga je werken Onze klant is een dienstverlenende organisatie voor diverse soorten organisaties in Nederland. Ze zijn van oorsprong een familiebedrijf en er is een open cultuur. Ze zijn vooruitstrevend op IT gebied en hebben een eigen inhouse development team van circa 11 man. Je komt hier te werken in het subteam .Net Core. Hier werken ze volgens scrum met de nieuwste technieken en

Bekijk vacature »

Applicatieontwikkelaar ABAP

Bedrijfsomschrijving Functieomschrijving De kandidaat zal worden ingezet binnen een van de DevOps teams binnen SCI (Service Centrum Inburgering) voor het ontwerpen en bouwen in SAP ABAP van de binnen SCI gebruikte informatiesystemen. Voornaamste voorkomende werkzaamheden zijn het aanpassen van en bouwen van nieuwe programmatuur in ABAP (Objects), waarbij ook gebruikt wordt gemaakt van DDD (Domain Driven Design) en het opstellen/aanpassen van Functionele/Technische ontwerpen. Daarnaast moeten ook formulieren met SAP Smartforms worden aangepast. Verder speelt de overgang naar SAP4Hana en SAP CPI. Vanwege het veelvuldig gebruik van SAP PO is kennis hiervan een pré. Achtergrond opdracht Momenteel werken meerdere DevOps teams

Bekijk vacature »

.NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Full Stack .NET Developer C# ASP.NET

Samengevat: Deze werkgever is gespecialiseerd in het op afstand bewaken en besturen van machines en processen. Ben jij een ervaren Full Stack .NET Developer? Heb je ervaring met C# en ASP.NET? Vaste baan: .Net Developer C# ASP.NET HBO €3.300 - €4.500 Deze werkgever is een snel groeiende onderneming gespecialiseerd in het op afstand bewaken en besturen van machines en processen, IoT (Internet of Things). Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. Wil jij bij de top specialisten horen? Ben jij op zoek naar een

Bekijk vacature »
Jules Kreutzer

Jules Kreutzer

25/12/2012 23:45:18
Quote Anchor link
Wanneer ik me probeer in te loggen, word ik doorgestuurd naar de pagina login.php
Ik krijg dan deze foutmelding te zien:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Warning: Invalid argument supplied for foreach() in blahblahblah


De error zit op lijn 28

Het bestand login.php ziet er als volgt uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
require 'login-libs.php';
require 'connect.php';

login_check_is_email_provided();

// check that the password is provided
if(!isset($_REQUEST['password']) || $_REQUEST['password']==''){
    login_redirect($url,'nopassword');
}


// check that the email/password combination matches a row in the user table
$password=md5($_REQUEST['email'].'|'.$_REQUEST['password']);
$r= 'select * from user_accounts where
    email="'
.addslashes($_REQUEST['email']).'" and
    password="'
.$password.'"'
;
$result=mysql_query($r);

if($result==true){
    login_redirect($url,'loginfailed');
}


// success! set the session variable, then redirect
$_SESSION['userdata']=$result;
$groups=json_decode($result['groups']);
$_SESSION['userdata']['groups']=array();
foreach($groups as $g)$_SESSION['userdata']['groups'][$g]=true;
if($result['extras']=='')$result['extras']='[]';
$_SESSION['userdata']['extras']=json_decode($result['extras']);

login_redirect($url);
?>


heeft iemand een idee hoe ik dit moet verhelpen?

bvd Jules
Gewijzigd op 25/12/2012 23:46:13 door Jules Kreutzer
 
PHP hulp

PHP hulp

22/12/2024 13:23:01
 
Wouter J

Wouter J

26/12/2012 00:24:55
Quote Anchor link
Hmm, even een lesje debuggen:

1) De error vertalen

>> Invalid argument supplied for foreach
Vrij vertaalt: "Er is een verkeerd argument gegeven aan de foreach"
We weten dus dat het een verkeerd argument betreft, we moeten dus kijk wat er straks tussen () staat.

2) De regel opzoeken
Oké, we weten nu de error opzoek naar de regel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
foreach($groups as $g)$_SESSION['userdata']['groups'][$g]=true;
?>

Oef, eerst even normalizeren:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
foreach ($groups as $g) {
    $_SESSION['userdata']['groups'][$g] = true;
}

?>


Oké, iets in ($groups as $g) is verkeerd. Het moet dus $groups zijn die verkeerd is.

3) Informatie verzamelen
Laten even informatie gaan verzamelen, hoe wordt $groups bijvoorbeeld aangemaakt?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$groups
= json_decode($result['groups']);
?>


Hmm, dat geeft niet veel informatie.

4) Je verwachtingen controleren
Je verwacht dat $groups een array is, anders stop je hem niet in je array. Laten we die gedachten eens controleren door de assert functie te gebruiken, hiermee kun je aangeven dat je iets verwacht zoniet dan krijg je een USER_WARNING op je scherm:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
// ...
$groups = ...;

assert('is_array($groups)');
?>


Ik verwacht dat je hier een warning voor gaat krijgen, de $groups bevat dus geen array, hmm....

5) De documentatie doorlezen
Laten we dan eens gaan kijken in de documentatie over die functie: json_decode
Het eerste wat mij al opvalt is de 'mixed' in het functie-voorbeeld in het 'description' blok. Hij hoeft dus niet per se een array terug te geven.

Vervolgens kijken we in het 'Return values' blok, aangezien dat het geen is dat we willen weten:
Quote:
Returns the value encoded in json in appropriate PHP type. (...) NULL is returned if the json cannot be decoded or if the encoded data is deeper than the recursion limit.


Hmm, hij kan dus ook NULL returnen. Laten we dan eens gaan kijken of hij NULL terug heeft gegeven:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
// ...
$groups = ...;

assert('is_null($groups)');
?>

Hoogstwaarschijnlijk krijg je hier geen error over, de waarde is dus NULL. Dan kun je dit debug proces weer herhalen om erachter te komen wat er fout is (is het een ongeldige jSON string? Is het recursie limit te hoog?)
 
Jules Kreutzer

Jules Kreutzer

26/12/2012 01:06:58
Quote Anchor link
Bedankt voor je reactie, de waarde is inderdaad NULL, maar ik begrijp niet goed wat er fout is aan het script.

Misschien is er ook een andere oplossing die makkelijker is, dan wil ik die ook best wel gebruiken hoor.

Jules
 
Wouter J

Wouter J

26/12/2012 01:10:02
Quote Anchor link
Ik zou niet weten wat er fout is, ga nog eens alle stappen af en probeer zo het probleem te achterhalen.
 
Erwin H

Erwin H

26/12/2012 01:13:39
Quote Anchor link
In elk geval zit er 1 echte fout op Regel 20. $result is de uitkomst van een select query. Dat is ofwel een resource, ofwel false als de query is mislukt, het kan in elk geval nooit true zijn.

Verder lijkt het erop dat je een json string uit je database gaat krijgen hier. Dat riekt ook naar een erg slecht ontworpen database.

Volgens mij kan je beter het advies dat Ger in een ander topic al gaf ter harte nemen....
Gewijzigd op 26/12/2012 01:15:16 door Erwin H
 
Jules Kreutzer

Jules Kreutzer

26/12/2012 01:14:33
Quote Anchor link
Ik heb de warning kunnen wegwerken (inclusief een paar andere) door middel van volgende code aan te passen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php $r= 'select * from user_accounts where
    email="'
.addslashes($_REQUEST['email']).'" and
    password="'
.$password.'"'
;
?>


naar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$r
= 'select * from user_accounts where
    email="'
.addslashes($_REQUEST['email']).'" and
    password="'
.$password.'" and groups = ["_superadministrators"] OR ["_administrators"]'
;
?>


Wanneer ik nu op login klik, krijg ik echter wel nog de link redirect te zien. wanneer ik daar op klik, zou ik normaal op index.php moeten uitkomen, maar hij laat toch nog steeds het loginscherm zien. Dus de sessies zijn niet gezet...

bij login.php wordt verwezen naar login-libs.php (waar ook de redirect link wordt gemaakt). Dit bestand ziet er zo uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
require 'basics.php';

$url='/';
$err=0;

function
login_redirect($url,$msg='success'){
    if($msg)$url.='?login_msg='.$msg;
    header('Location: '.$url);
    echo '<a href="'.htmlspecialchars($url).'">redirect</a>';
    exit;
}


// set up the redirect
if(isset($_REQUEST['redirect'])){
    $url=preg_replace('/[\?\&].*/','',$_REQUEST['redirect']);
    if($url=='')$url='/';
}


// check that the email address is provided and valid
function login_check_is_email_provided(){
    if(
        !
isset($_REQUEST['email']) || $_REQUEST['email']==''
        || !filter_var($_REQUEST['email'], FILTER_VALIDATE_EMAIL)
    ){

        login_redirect($GLOBALS['url'],'noemail');
    }
}

?>
Gewijzigd op 26/12/2012 01:17:28 door Jules Kreutzer
 
Erwin H

Erwin H

26/12/2012 09:05:35
Quote Anchor link
Jules Kreutzer op 26/12/2012 01:14:33:
Ik heb de warning kunnen wegwerken (inclusief een paar andere) door middel van volgende code aan te passen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php $r= 'select * from user_accounts where
    email="'
.addslashes($_REQUEST['email']).'" and
    password="'
.$password.'"'
;
?>


naar:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$r
= 'select * from user_accounts where
    email="'
.addslashes($_REQUEST['email']).'" and
    password="'
.$password.'" and groups = ["_superadministrators"] OR ["_administrators"]'
;
?>

Als je exit() helemaal aan het begin van je script zet ben je ook van alle warnings af....

Dit lost geen enkel probleem op. Wat je nu hebt is een fout SQL statement, waardoor je query gewoon mislukt en je script dus zal afbreken. Ja, je bent dan die php warning kwijt, maar inloggen zal je nooit meer lukken.

Waar het om gaat, in het oorspronkelijke probleem, is dat er in de database blijkbaar een verkeerde waarde staat in de kolom groups en dat dien je gewoon te controleren voor je verder gaat. Dus voor je die foreach in gaat moet je controleren of $groups wel een array is (en dat doe je met de functie is_array). Is het geen array dan kan je gewoon die foreach niet uitvoeren.
 
Jules Kreutzer

Jules Kreutzer

26/12/2012 12:01:06
Quote Anchor link
Ik heb de code weer terug naar het orginele gezet en ben in mijn database de waarde van group gaan veranderen.

Bij de voorbeeldgebruiker, staat er bij groups: ["_superadministrators"]. dit heb ik veranderd bij mijn account naar _superadministrators. Dit heeft echter geen effect.

De index.php pagina vraagt naar de sessie waar de groups gelijk is aan superadministrators of administrators, is dat niet het geval, wordt het login formulier getoont.

Het bestand wat controleert of de group goed is, heet admin_libs.php en ziet er als volgt uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
require $_SERVER['DOCUMENT_ROOT'].'/incs/basics.php';
function
is_admin(){
    if(!isset($_SESSION['userdata']))return false;
    if(
        isset($_SESSION['userdata']['groups']['_administrators']) ||
        isset($_SESSION['userdata']['groups']['_superadministrators'])
    )
return true;
    if(!isset($_REQUEST['login_msg']))$_REQUEST['login_msg']='permissiondenied';
    return false;
}

if(!is_admin()){
    require SCRIPTBASE.'admin/login/login.php';
    exit;
}

?>


Ik heb nog niet geprobeert om de groups in de database te verandere naar ['_superadministrators'], omdat ik denk dat het geen verschil maakt...

Jules
Gewijzigd op 26/12/2012 12:01:46 door Jules Kreutzer
 
Wouter J

Wouter J

26/12/2012 12:24:48
Quote Anchor link
Gebruik liever geen $_REQUEST, beter is om expliciet te zeggen welk type parameter je wilt $_GET of $_POST of $_SESSION.

Tevens raad ik je aan je database te normalizeren. Zodra je een array-achtige waarde in een cell hebt staan weet je dat het verkeerd is. Hoe ik het zou doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
+-------------------+   +-----------------+   +-------------------+
|       users       |   |      roles      |   |    user_roles     |
+----+--------+-----+   +----+------------+   +---------+---------+
| id | name   | ... |   | id | name       |   | user_id | role_id |
+----+--------+-----+   +----+------------+   +---------+---------+
| 1  | Wouter | ... |   | 1  | admin      |   | 1       | 2       |
| 2  | Jan    | ... |   | 2  | superadmin |   | 2       | 3       |
| 3  | Piet   | ... |   | 3  | user       |   | 3       | 1       |
| .. | ...    | ... |   | 4  | ...        |   | ...     | ...     |
+----+--------+-----+   +----+------------+   +---------+---------+
 
Erwin H

Erwin H

26/12/2012 12:31:39
Quote Anchor link
Jules Kreutzer op 26/12/2012 12:01:06:
Bij de voorbeeldgebruiker, staat er bij groups: ["_superadministrators"]. dit heb ik veranderd bij mijn account naar _superadministrators. Dit heeft echter geen effect.

Ook dat lijkt me niet verstandig. Wat je dan aan het doen bent is een klein onderdeel van een groter geheel veranderen. Het grotere geheel zou echter als geheel moeten werken. Als dat het niet doet moet je niet lukraak iets veranderen, maar eerst begrijpen hoe het werkt.

Uit alles wat je verteld heb begrijp ik dat er een json encoded array in een database veld staat (in groups). Als je daar nu een normale waarde van maakt, dan zal je json_decode misgaan en daarmee ook je foreach loop, want je krijgt er namelijk geen array meer uit. Waar de fout dan wel ligt, geen idee.

Wat ik wel kan zeggen is dat ik dit script al veel eerder in de prullenbak zou hebben gegooit. Het staat bol van de fouten of in elk geval verkeerde dingen. Vooral het gebruik van json encoded gegevens in een database, waar je (zoals Wouter helemaal terecht opmerkt) een genormalizeerde structuur zou moeten toepassen is echt een grote no-no.
 
Jules Kreutzer

Jules Kreutzer

26/12/2012 13:53:40
Quote Anchor link
Ik heb momenteel een tabel user_account waar de kolom group de waarde bevat zoals ["_superadministrators"] en er is een tabel groups waar name de waarde _superadministrators of _administrators bevat, met respectivelijk id 1 en 2. Dit is toch wat je bedoelt wouter of niet?



Toevoeging op 26/12/2012 14:02:45:

Het is opgelost,

Wanneer ik het op mijn locale host teste kreeg ik de http-500 error, ik heb dat opgelost (geprobeerd in ieder geval) door $r om te zetten naar $result.

Maar wanneer ik op mijn webserver het orginele bestand upload, werkt het wel, en is het ook mogelijk om ingelogd te worden.

orginele login.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
require 'login-libs.php';

login_check_is_email_provided();

// check that the password is provided
if(!isset($_REQUEST['password']) || $_REQUEST['password']==''){
    login_redirect($url,'nopassword');
}


// check that the email/password combination matches a row in the user table
$password=md5($_REQUEST['email'].'|'.$_REQUEST['password']);
$r=dbRow('select * from user_accounts where
    email="'
.addslashes($_REQUEST['email']).'" and
    password="'
.$password.'" and active'
);
if($r==false){
    login_redirect($url,'loginfailed');
}


// success! set the session variable, then redirect
$_SESSION['userdata']=$r;
$groups=json_decode($r['groups']);
$_SESSION['userdata']['groups']=array();
foreach($groups as $g)$_SESSION['userdata']['groups'][$g]=true;
if($r['extras']=='')$r['extras']='[]';
$_SESSION['userdata']['extras']=json_decode($r['extras']);

login_redirect($url);
?>


Toch bedankt voor jullie hulp!!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.