Avatar billede mjall0w Nybegynder
03. april 2006 - 19:54 Der er 6 kommentarer og
1 løsning

Problemer at køre løkker igennem hvor variablen ingen værdi har!

Hej..
Når jeg skal køre en løkke igennem for at tjekke om en værdi fra querystringen er opfyldt viser den fejl. Vel og mærket den ingen værdi er blevet tilordret.
Jeg får følgende fejl:
Notice: Undefined index: mode in c:\programmer\apache group\apache\htdocs\gameshop\index.php on line 170

Notice: Undefined index: page in c:\programmer\apache group\apache\htdocs\gameshop\index.php on line 173

Scriptet:
if ($_GET['mode'] == "bestilt") {
      echo "<center><font face=verdana size=2><b>Tak for din bestilling.<br>
      Du har fået tilsendt en mail med information om penge overførsel og bestilling.</center>";
      } elseif ($_GET['page'] == ""){
      include("products.php");
          }

Det samme problem har jeg hvor jeg skal tjekke om en cookie har en værdi i forvejen der får jeg samme fejl:
Notice: Undefined index: cartId in c:\programmer\apache group\apache\htdocs\gameshop\cookie.php on line 4

Scriptet:

function GetCartId()
{
if(!$_COOKIE["cartId"] == "")
{
return $_COOKIE["cartId"];
}
else
{
session_start();
setcookie("cartId", session_id(), time()+(3600*2));
return session_id();
}
}

Skal give det en værdi før det virker, men så virker det ikke helt som planlagt :\

Håber i forstår mit problem og kan hjælpe mig!

Mvh Mads
Avatar billede showsource Seniormester
03. april 2006 - 19:57 #1
Du kan bruge isset() til først at tjekke om noget er sat.

if (isset($_GET['mode']) && $_GET['mode'] == "bestilt") {
Avatar billede mjall0w Nybegynder
03. april 2006 - 20:01 #2
Okay :)
Men burde den stadigvæk ikke ignorere det hvis den ikke har nogen værdi ?
Avatar billede showsource Seniormester
03. april 2006 - 20:09 #3
Kommer an på hvordan error_reporting er sat.
Fra min php.ini

;  - Show all errors, except for notices and coding standards warnings
;
;error_reporting = E_ALL & ~E_NOTICE

Bruger selv altid:

error_reporting = E_ALL

Hvordan errors vises, kan du også bestemme i de enkelte php scripts med ini_set() eller med en .htaccess hvis du har apache server.

<?php
ini_set('error_reporting' 0); // Vis ingen fejlmeddelser overhovedet

// scriptet...........................

?>
Avatar billede mjall0w Nybegynder
03. april 2006 - 20:41 #4
Hm havde bare slet ikke det problem før jeg installerede det nye php, apache osv.. Men når jeg f.eks skal hente noget fra en form ved hjælp af:
if(isset($_GET['$Submit'])) {
kan det ikke lade sig gøre pga. det :\
Avatar billede showsource Seniormester
03. april 2006 - 20:47 #5
Nu er jeg ikke lige helt med, men
if(isset($_GET['$Submit'])) {
skal jo nok være
if(isset($_GET['Submit'])) {
Avatar billede mjall0w Nybegynder
03. april 2006 - 21:07 #6
Jo det var så en lille brøler fra min side.
Men blev nød til at gøre sådan:
if(isset($_REQUEST['Submit']) && !$_REQUEST['Submit'] == "") {
før det virkede.
Men opretter du lige et svar så du kan få dine points :) ?
Avatar billede showsource Seniormester
03. april 2006 - 21:11 #7
mjahh ok, og som sagt, kan du selv styre fejlmeddelser.
Men under testbrug, synes jeg du skal få vist alle fejlmeddelser
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester