login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Nieuwe php versie.

Offline Respectation - 08/06/2005 17:09 (laatste wijziging 08/06/2005 17:11)
Avatar van RespectationNieuw lid Hey, sinds ik de nieuwe php versie heb krijg ik veel errors.

Bv:
Notice: Use of undefined constant power - assumed 'power' in g:\www\habitantsduty.net\inc\header.inc.php on line 18
  1. <?php
  2. $query = "select * from game where power='1'";
  3. $query = $db->query($query);
  4. $gamedb = $db->fetch_array($query);
  5. if (count($gamedb[power])) {

?>
Weet er iemand wat er verandert moet worden?

[edit] Bij dit krijg ik ook een error:
  1. <?php
  2. $user = $_SESSION['user'];
  3. $pass = $_SESSION['pass'];
  4. ?>


Notice: Undefined index: user in g:\www\habitantsduty.net\inc\header.inc.php on line 27

Notice: Undefined index: pass in g:\www\habitantsduty.net\inc\header.inc.php on line 28

Thx,
Geert

12 antwoorden

Gesponsorde links
Offline Legolas - 08/06/2005 17:14
Avatar van Legolas Onbekend Kijk eens na of de variabelen wel bestaan, bij de 2e...
Anders ligt het toch echt aan je eigen pc!
Offline Stijn - 08/06/2005 17:37
Avatar van Stijn PHP expert misschien zo?

oude:
  1. <?php
  2. if (count($gamedb[power])) {
  3. ?>


nieuw:
  1. <?php
  2. if (count($gamedb['power'])) {
  3. ?>


Anders weet ik het niet? Het kan ook liggen aan session_start();, staat hij bovaan je pagina?

stijn 
Offline zwobbel - 08/06/2005 20:30
Avatar van zwobbel PHP gevorderde Bent u zeker dat de Sessions een waarde bevatten?
Offline Thijs - 08/06/2005 21:18
Avatar van Thijs Crew hosting Allereerst: welke php versie gebruikte je en naar welke versie heb je ge-update?
Offline smoos - 08/06/2005 21:25 (laatste wijziging 08/06/2005 21:25)
Avatar van smoos PHP gevorderde doe eens
gebruik eens het woordje isset dat zal vast helpe ;) dus:
  1. <?PHP
  2. if(isset($gamedb['power'])) {
  3. ?>

en dan verder
Offline Dani - 09/06/2005 03:46 (laatste wijziging 09/06/2005 03:48)
Avatar van Dani PHP gevorderde Verbaasd dat niemand dit opmerkt omdat dit een typische vraag is sinds php4.

De nieuwere versies van PHP installeren zichzelf zodanig dat alle errors, waarschuwingen en opmerkingen gemeld worden.
Wat jij hier hebt zijn enkel opmerkingen (notice).

Je kan deze op 2 manieren wegwerken :
- eerst testen of de variabele bestaat dmv isset voordat je deze gebruikt
- Notices uitschakelen in de instellingen van php (error_reporting)

De ideale manier is een combinatie van de 2.
Namelijk gebruik je best 'notice reporting' tijdens het maken en testen van de code (dus op je eigen PC), maar online schakel je de 'notice reporting' terug uit.
De bedoeling hiervan is om netjes te leren omgaan met variabelen en andere, maar toch vermeiden dat 'notice reporting' mogelijk is als je site eens online is.
Offline Frunnik - 09/06/2005 10:40 (laatste wijziging 09/06/2005 10:41)
Avatar van Frunnik Lid Je moet gewoon netjes met je variabelen omgaan.

  1. <?php
  2.  
  3. $userid = isset($_SESSION['userid']) : $_SESSION['userid'] ? 'leeg';
  4.  
  5. ?>


Kan ook .......

  1. <?php
  2.  
  3. if(!isset($_SESSION['userid'])){
  4. $userid = 'leeg';
  5. }
  6. else{
  7. $userid = $_SESSION['userid'];
  8. }
  9.  
  10. ?>

Offline DaOxx - 09/06/2005 11:42
Avatar van DaOxx PHP beginner Ik denk dat je error_reporting veelste hoog staat, zo krijg je alle errors. Hierbij moet je dan alle variabelen vooraf definieren anders krijg je een melding. Dit is echter helemaal niet noodzakelijk en maakt niks uit met de omgang van je php code. Dus ik zou als ik jou was je error_reporting veranderen.
Offline Frunnik - 09/06/2005 12:19 (laatste wijziging 09/06/2005 12:19)
Avatar van Frunnik Lid Dat is niet helemaal waar. Je moet soms declaren, om wat voor variable het gaat.

  1. <?php
  2.  
  3. $var = array(); // Kan je array in vol pompen
  4. $var = 0; // Kan je vrolijk mee tellen, of optellen
  5.  
  6. // Maar als je script hebt waar je kijkt als bepaalde var is gezet, met
  7. // false or true, wat je ook met isset() kan doen
  8. // http://nl3.php.net/isset
  9.  
  10. // Dan is het belangrijk dat je boven aan je script hem op declared
  11. // Als een var gaandeweg het script verandert en van belang is voor de rest van het script.
  12. $var = NULL;
  13.  
  14. ?>


Het is dus het netst om de error reporting voluit te zetten.
Offline Dani - 10/06/2005 04:17
Avatar van Dani PHP gevorderde Vindt de echos leuk op dit forum 

Vooral als mensen niet lezen wat de vorige gepost hebben 

Offline prorsoft - 10/06/2005 16:15
Avatar van prorsoft PHP gevorderde tmoet liggen aan session_start();.
Offline Fenrir - 10/06/2005 17:52 (laatste wijziging 10/06/2005 17:58)
Avatar van Fenrir PHP expert En dat 2e: is $_SESSION['user'] geset?

Geef de HELE code eens.

@DaOxx: zet error_reporting ALTIJD op E_ALL of E_STRICT (voor php5)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.247s