Toon posts:

[PHP] Undefined variable

Pagina: 1
Acties:

Verwijderd

Topicstarter
Notice: Undefined variable: PHP_SELF in D:\www\xxxxxx\php\includes\text.inc.php on line 18

met een hele rij

Notice: Use of undefined constant menu1link2 - assumed 'menu1link2' in D:\www\xxxxxxxx\php\index2.php on line 174


ik krijg elke keer deze error. Op een win2k bak met iis..
maar op een linux bak draait hij wel goed.

Ben geen held met php dus maybe dat iemand me ff kan vertellen wat ik kan door geven aan mij hosting bedrijf om wat in de instellingen te veranderen van iis.. of dat ik zelf iets moet veranderen in de scripts juist van wege iis.

De gast die dit meestal doet is nu op vakantie en onbereikbaar..... plz help

nogmaals de site doet het prima met linux en php maar dus niet met iis en php...

Verwijderd

Op zondag 14 juli 2002 17:43 schreef Xiphy het volgende:
Notice: Undefined variable: PHP_SELF in D:\www\xxxxxx\php\includes\text.inc.php on line 18
Wat staat er in deze regel? Code ajb!

Verwijderd

Topicstarter
Notice: Undefined variable: show in D:\www\xxxx\php\index2.php on line 175

Notice: Use of undefined constant menu1link3 - assumed 'menu1link3' in D:\www\xxxx\php\index2.php on line 175

Notice: Undefined variable: show in D:\www\xxxx\php\index2.php on line 176

Notice: Use of undefined constant menu1link4 - assumed 'menu1link4' in D:\www\xxxx\php\index2.php on line 176



en zo gaat het wel ff een tijdje door hehe

Verwijderd

Ik bedoelde eigenlijk meer wat er op die regel in je php-script staat.. |:(
Dus op regel 18 in D:\www\xxxxxx\php\includes\text.inc.php

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

[topic=512413/1/50]

Programmer - an organism that turns coffee into software.


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Variabelen moet je declareren.
Array's moet je met $array['blaat'] ipv $array[blaat] aanspreken etc etc etc.

Staat allemaal wel ergens in de manual van php ;)

Verwijderd

Op zondag 14 juli 2002 18:30 schreef ACM het volgende:
Variabelen moet je declareren.
Array's moet je met $array['blaat'] ipv $array[blaat] aanspreken etc etc etc.

Staat allemaal wel ergens in de manual van php ;)
inderdaad, ik ben zelfs overgestapt op het plaatsen van ''s :)

Verwijderd

Topicstarter
elseif($show == menu3link1){ echo"<br><br><u>$menu3link1</u><br><br>$menu3text1"; }
elseif($show == menu3link2){ echo"<br><br><u>$menu3link2</u><br><br>$menu3text2"; }
elseif($show == menu3link3){ echo"<br><br><u>$menu3link3</u><br><br>$menu3text3"; }
elseif($show == menu3link4){ echo"<br><br><u>$menu3link4</u><br><br>$menu3text4"; }
elseif($show == menu3link5){ echo"<br><br><u>$menu3link5</u><br><br>$menu3text5"; }
elseif($show == menu3link6){ echo"<br><br><u>$menu3link6</u><br><br>$menu3text6"; }

Verwijderd

Topicstarter
in dat stukje hier boven moet de fout zitten
maar een array kan ik totaal niet vinden...

als ik dit doe:
elseif($show == "menu1link2"){ echo"<br><br><u>$menu1link2</u><br><br>$menu1text2"; }

inplaats van:
elseif($show == menu1link2){ echo"<br><br><u>$menu1link2</u><br><br>$menu1text2"; }

dan ben ik deze foutmelding kwijt
Notice: Use of undefined constant menu2link4 - assumed 'menu2link4' in D:\www\xxxx\php\index2.php on line 182

maar dan houd ik nog wel deze foutmelding:
Notice: Undefined variable: show in D:\www\xxx\php\index2.php on line 173

Verwijderd

PHP:
1
<?elseif($show == menu3link1){ ?>

moet dat niet
PHP:
1
<?elseif($show == $menu3link1){ ?>

zijn?

Verwijderd

Topicstarter
Op zondag 14 juli 2002 20:42 schreef kietel het volgende:
PHP:
1
<?elseif($show == menu3link1){ ?>

moet dat niet
PHP:
1
<?elseif($show == $menu3link1){ ?>

zijn?
dat heb ik nu aangepast en dan houd ik alleen dit over

Notice: Undefined variable: show in D:\www\xxxx\php\index2.php on line 173

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 16:12

pistole

Frutter

dan ben je er dus..

$show niet gedefiniëerd ?!

Ik frut, dus ik epibreer


  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Het probleem is dat op die linux server de error_reporting op een ander niveau staat ingesteld dan op die iis.

In dit geval is die iis dus beter :):):)

Jij (of die andere gast) heeft dus gewoon slecht gecode. Je linux server weet dat wel, maar die zegt nix, en iis wel. Je zou dus in de php.ini de error_reporting moeten aanpassen.

Of natuurlijk gewoon beter coden.

Of als 'het-moet-nu-werken-help-me-snel' oplossing even dit bovenaan je scriptje zetten:
PHP:
1
<?error_reporting  (E_ERROR | E_WARNING | E_PARSE);?>

Dan geeft hij geen notices. Je kan ook nog even www.php.net/error_reporting gaan lezen als je er meer van wilt weten.

edit:

De error_reporting op E_ALL zetten en beter coden is natuurlijk het aaallleerbeste, zoals al die lieve mensen hierboven je ook allemaal vertellen :)

  • Rashann
  • Registratie: Maart 2000
  • Laatst online: 24-08 07:20

Rashann

Zoek de hond...

Of, om het op te lossen zonder je error-meldingen lage rte zetten, van te voren met isset($show) even controleren of ie gedefinieerd is, en zo nee, dan een standaard waarde geven

Zo dus:
PHP:
1
<?if(!isset($show))  $show = 'waarde';?>

If nothing is written below, I was the last to reply...


Verwijderd

/me excuseerd zich vast voor de lap text

Hier is dus de vakantieganger die stilletjes in een hoekje van een kroegje in de bergen van Oostenrijk een ISDN-lijntje staat af te tappen.

Ik geef toe dat ik maar een "huis-tuin-en-keuken" php-er ben.
Ik heb tot nu toe altijd op een linuxbakkie lopen klooien, maarja een webserver op chello is ook niet alles.
Vandaar dat we over stappen op server elders in het land met een betere verbinding...
En daar staat dus een Wintendo-bak met IIS

De inhoud van de page (index2.php):
Links en recht op de page staan 6 menu's en in het midden een textveld.

de menu-koppen en bijbehorende text staan in:
PHP:
1
<?include("includes/active.inc.php");include("includes/menu.inc.php");include("includes/text.inc.php");?>

De text die bij de link hoort word aan geroepen met:
code:
1
<a href="index2.php?show=menu3link2"><? echo"$menu3link2"; ?></a>

de actie die daarop volgt:
PHP:
1
<?// rest van actieselseif($show == menu3link2){echo"<br><br><u>$menu3link2</u><br><br>$menu3text2";}// rest van acties?>

Uit de include bestanden haalt hij de HTML die geplaatst moet worden in het text veld.


Het resultaat:
Onder apache & RH 7.2 (standaard instellingen):
Met mijn weinige kennis blij verrast dat er geen foutmeldingen zijn
en dat het nog werkt ook.

Onder Win2K met IIS:

De volgende foutmeldingen
Notice: Use of undefined constant menu3link2 - assumed 'menu3link2' in D:\www\xxx\php\index2.php on line 190

Notice: Undefined variable: show in D:\www\xxx\php\index2.php on line 191

NB. dit geld voor alle links dus...

Met hulp van bovenstaande reacties (mijn dank is groot)
kom ik helaas niet verder.
Na de opties geprobeerd te hebben zijn de foutmeldingen weg
maar het script werkt ook niet meer (met foutmeldingen voorheen natuurlijk ook niet...)
In adresbalk staat wel de nieuwe url ( http://blaat/php/index2.php?show=menu3link2 )
Maar hij geeft weer de hele reeks foutmelding ipv de HTML uit de include bestanden.

Wat is er nu fout, aangezien er onder apache+RH geen enkele problemen zijn.
Het zal waarschijnlijk 1 simpele regel zijn die ik ff moet in plakken. |:(

Je mag me uitlachen en afzeiken... ik ken veel hebben :)

  • ^Mo^
  • Registratie: Januari 2001
  • Laatst online: 04-11-2025
heb je al $_GET["Show"] == "blaat" gebruikt?

"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs


  • Grum
  • Registratie: Juni 2001
  • Niet online
http://php.net/isset
http://php.net/switch

en m'n sig over error_reporting & named arrays

  • PrinsEdje80
  • Registratie: Oktober 2001
  • Laatst online: 01-01 15:26

PrinsEdje80

Holographic, not grated...

Ik ga heel flauw doen, maar moet je niet gewoon dit doen :?
PHP:
1
<?elseif($show == "menu3link1"){?>

Dus dat het een string is en niet een variabele :?

Used to be Down Under... Foto gallery


  • Grum
  • Registratie: Juni 2001
  • Niet online
Voor je flauw doet .. zou je niet ff de moeite kunnen nemen om de HELE thread te lezen ? .. tnx! .. zucht

  • PrinsEdje80
  • Registratie: Oktober 2001
  • Laatst online: 01-01 15:26

PrinsEdje80

Holographic, not grated...

Op woensdag 17 juli 2002 16:47 schreef Grum het volgende:
Voor je flauw doet .. zou je niet ff de moeite kunnen nemen om de HELE thread te lezen ? .. tnx! .. zucht
Heb ik gedaan hoor... Het kan wezen dat ik het misschien verkeerd gelezen heb...

Used to be Down Under... Foto gallery


  • _-= Erikje =-_
  • Registratie: Maart 2000
  • Laatst online: 01-09 12:46
welke PHP versie staat er op die IIS machine en welke op die Redhat machine ? (kijk even met phpinfo())
PHP:
1
<? phpinfo()?>

Verwijderd

Topicstarter
ok ik heb het nog maals bekeken.. en het komt hier op neer
even een simple stukje voor het gemak


<html>
<head>
<title>Untitled Document</title>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="uitvoermain.php">
<p>
<textarea name="bericht" cols="50" rows="4"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Ok">
</p>
</form>
</body>
</html>

dat hierboven is dus een invul form daarin word dus de ingevulde tekst aan BERICHT gekoppelt.

<?
$bestaandbestand = fopen("texten/main.txt", "w");
$ftext = fread($bestaandbestand, filesize("texten/main.txt"));
fclose($bestaandbestand);
$bijwerken = fopen("texten/main.txt", "w");
fwrite($bijwerken, "$bericht$ftext");
fclose($bijwerken);
?>

en hier boven wil hij het ingevulde tekst wegschrijven in een bestand.

maar hij krijg dus de error hier
Notice: Undefined variable: bericht in D:\www\xxx\uitvoermain.php on line 9

oftwel het uitvoerscript krijgt BERICHT niet binnen

op een linux bak gaat dit wel goed.. maar hier dus op iis niet...

ik hoop nu dat het wat duidelijker is... en dat er een oplossing kan komen.. :)

  • Grum
  • Registratie: Juni 2001
  • Niet online
Als je ook gewoon alle posts leest waarin mensen dingen zeggen .. zucht

dus NOGMAALS mijn post ..
Op woensdag 17 juli 2002 15:21 schreef Grum het volgende:
[url="http://php.net/isset"]http://php.net/isset[/url]
[url="http://php.net/switch"]http://php.net/switch[/url]

en m'n sig over error_reporting & named arrays
ZUCHT

Tuurlijk kunnen we hier alles fijn voorkauwen .. jij kan ook gewoon eventjes naar et bovenste linkje gaan en daar zien dat die functie relevant is voor je code.

Toch leuk om te zien dat zelf coden tegenwoordig niet automatisch zelf denken met zich mee brengt

Verwijderd

volgens mij denkt iedereen (naja bijna iedereen) hier te moeilijk en moetie echt eens naar zijn versie kijken en gewoon $_POST["bericht"] en $_GET["show"] gebruiken

dus:

if(isset($_GET["show"]) && $_GET["show"] == "menulink3")
{
doeiets
}

bijvoorbeeld
Pagina: 1