login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Cannot use a scalar value as an array

Offline Grayen - 21/08/2006 20:19
Avatar van GrayenPHP ver gevorderde Hoe komt het dat hij met deze melding komt: Warning: Cannot use a scalar value as an array, dat zou moeten zijn dat de ['key'] van een array $array['key'] fout is, en de error komt bij $_SESSION['login']['id']
ik dacht dat klopt, het raarre is ook die error komt soms meestal niet maar af en toe komt hij, weet iemand wat ik moet wijzigen aan mijn array om dit correct te maken?

11 antwoorden

Gesponsorde links
Offline Maarten - 21/08/2006 20:20
Avatar van Maarten Erelid Jap. Blauw. Met appels.

Liefst een stukje code en een vraag met een leesteken of 20 en een werkwoord of 30.
Offline Stijn - 21/08/2006 20:23
Avatar van Stijn PHP expert Het zal wel een notice error zijn... post toch maar je code
Offline Grayen - 21/08/2006 20:34
Avatar van Grayen PHP ver gevorderde ok, maar ik weet wel waaraan het ligt maar als ik dat weg haal ga ik het op de simpele manier doen, ik zoek liever een oplossing want ik weet zeker dat dit mogelijk is.

De Errors
  1. Warning: Cannot use a scalar value as an array in /usr/export/www/vhosts/funnetwork/hosting/grayen/systeem/index/index.php on line 24
  2. Warning: Cannot use a scalar value as an array in /usr/export/www/vhosts/funnetwork/hosting/grayen/systeem/index/index.php on line 25


De php
  1. $_SESSION['login']['id'] = $aGebruiker['id'];
  2. $_SESSION['login']['gebruikersnaam'] = $aGebruiker['gebruikersnaam'];
Offline Maarten - 21/08/2006 20:34
Avatar van Maarten Erelid Jap. En waar blijft het stuk code waar we effectief iets mee kunnen aanvangen?
Offline Rik - 21/08/2006 20:51
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Zet eens voor dat stukkie php var_dump($aGebruiker);, wat zegt dat?
Offline Grayen - 21/08/2006 20:52 (laatste wijziging 21/08/2006 21:00)
Avatar van Grayen PHP ver gevorderde
  1. <?php
  2. if(isset($_SESSION['login']['id'])){
  3. $iGebruikers_id = $_SESSION['login']['id'];
  4. }
  5. elseif(isset($_COOKIE['login'])){
  6. $sCookie = explode(';', $_COOKIE['login']);
  7. $aGebruiker = mysql_fetch_assoc(mysql_query("SELECT wachtwoord, gebruikersnaam, id FROM leden WHERE id = ".$sCookie[0].""));
  8. if($sCookie[1] == md5($aGebruiker['wachtwoord'])){
  9. $iGebruikers_id = $sCookie[0];
  10. $_SESSION['login']['id'] = $aGebruiker['id'];
  11. $_SESSION['login']['gebruikersnaam'] = $aGebruiker['gebruikersnaam'];
  12. }
  13. else {
  14. $iGebruikers_id = '';
  15. }
  16. }
  17. else {
  18. $iGebruikers_id = '';
  19. }
  20. ?>


dit komt er: array(3) { ["wachtwoord"]=> string(32) "d92adc747d1a7604ec0d42ceae693b30" ["gebruikersnaam"]=> string(6) "Grayen" ["id"]=> string(1) "1" }

en dat is correct

Ik zou graag van iemand willen weten wat die error precies inhoud, weet iemand dit?
Offline Stijn - 21/08/2006 21:41
Avatar van Stijn PHP expert http://nl.wikipedia.org/wiki/Scalar
http://be.php.net/manual/nl/function.is-scalar.php

de error wil puur zeggen dat hij geen scalare waarde kan gebruiken als een array. wat wil zeggen dat je ergens een scalare als array wilt gebruiken.

Jach een error met line 24-25 en jij geeft een script van 20 regels lang. geef het volledige script op http://www.plaatscode.be

owja: toon me toch maar eens de inhoud van de cookie.

mvg stijn
Offline Gerard - 22/08/2006 01:55
Avatar van Gerard Ouwe rakker
  1. $aGebruiker = mysql_fetch_assoc(mysql_query("SELECT wachtwoord, gebruikersnaam, id FROM leden WHERE id = ".$sCookie[0].""));
  2. if($sCookie[1] == md5($aGebruiker['wachtwoord'])){


Ga jij eens heel rap de wachtwoorden in je database encrypten!
Offline Rik - 22/08/2006 09:43
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Met zoiets krijg je die scalar error:
  1. <?php
  2. $var = 0;
  3. $var[] = '';
  4. ?>

Dus als je van een 'scalar' (in dit geval een integer) een array wil maken gaat het mis.

Weet je zeker dat je eerder in je script niet al $_SESSION['login'] hebt 'geset'? Anders zou het daaran kunnen liggen.
Offline Grayen - 22/08/2006 09:54 (laatste wijziging 22/08/2006 10:05)
Avatar van Grayen PHP ver gevorderde @Proximus heb ik al gedaan hoor , als je even had gekeken een paar reacties terug zag je toch echt dit staan dit komt er: ["wachtwoord"]=> string(32) "d92adc747d1a7604ec0d42ceae693b30"
Alleen heel vaag als ik hem niet nog een encrypt deed hij het niet, kvind het vaag maar ja het werkt nu.

@boukefalos
bedankt voor de uitleg 

@stijn
Hoeft niet hoor kom er zelf wel uit, zodra ik wist wat de fout inhield, maar door jouw links en boukefalos uitleg, kom ik er wel uit. Heel erg bedankt voor de hulp  

Ik hoop dat ik het nu heb opgelost, ik heb namelijk voordat ik de sessies $_SESSION['login']['id'] & ['gebruikersnaam'] ging setten heb ik er $_SESSION['login'] = array(); voor gezet.
Offline Rik - 22/08/2006 12:50
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Citaat:
$_SESSION['login'] = array();

Als $_SESSION['login'] nog niet bestaat en dan maak je $_SESSION['login']['id'] & $_SESSION['login']['gebruikersnaam'] aan, dan maakt php van $_SESSION['login'] vanzelf een array.

Als je dat stukje code weghaalt zou dat geen verschil moeten maken. De error zou dan ook niet weggaan omdat een array geen scalar is.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.281s