[ISS/PHP] na nieuwe installatie ineens addslashes fouten

Pagina: 1
Acties:

  • littledreamer
  • Registratie: Juni 2002
  • Laatst online: 15-08-2025
ik post dit topic hier, en niet in Programming & Webscripting omdat ik voor 99,9% zeker weet dat het aan de software/configuratie ligt

Sinds ik van de week mn webserver op een andere machine heb gezet, krijg ik bij scripts van de oude webserver fouten. hierin gebruik ik addslashes, die prima werkte altijd. Nu moet ik dus iets met mijn IIS of PHP configuratie wijzigen. Dit is zo'n fout, ze zijn allemaal hetzelfde

code:
1
2
Notice: Undefined variable: original in
D:\web\httpdocs\media\cd-origineel.php on line 8


en op line 8 staat dan zo'n addslash op deze manier
code:
1
$original = addslashes($original);
mbv. goolgle werd ik ook niks wijzer

wie kan mij helpen?
alvast bedankt!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:52
Je fout is dat de variable niet bestaat. Zorg er eens voor dat je dit checked met isset().

Even wat meer info: Je hebt error reporting altijd al verkeerd gehad, namelijk niet op E_ALL, daardoor zijn die notices je nooit opgevallen.

[ Voor 45% gewijzigd door djluc op 22-09-2003 16:14 ]


Verwijderd

Misschien is het makkelijk om ook een paar regels voor regel 8 te laten zien.
B.v. de regel waar $original de eerste keer gedefinieerd is.
Een notice maakt eigenlijk ook helemaal niets uit.
Zet ERROR_REPORTING(E_NONE) boven je script en je bent hem kwijt :)

En er staat een foutje in de titel [ISIS/PHP] :P

[ Voor 23% gewijzigd door Verwijderd op 22-09-2003 16:18 ]


  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 22:13

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Duidelijk voer voor P&W, maar daar wordt het al uitgelegd in de faq:

P&W FAQ - PHP

Lees maar eens door en je weet meteen wat er fout zit :)

  • littledreamer
  • Registratie: Juni 2002
  • Laatst online: 15-08-2025
dmv isset() word ik ook niks wijzer, misschien dat het inderdaad aan die reporting ligt, maar het gekke is dat hij dus word gedefinieerd bij die addslash :?

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:52
Zo gebruik je isset:
Dat kun je trouwens ook vinden op http://nl.php.net/isset
PHP:
1
2
3
4
5
<?php
if(isset($original)){
    //de var bestaat
}
?>


Het is dus de bedoeling dat je op de juiste manier programmeerd/script en dus niet die error_reporting lager gaat zetten!

[ Voor 84% gewijzigd door djluc op 22-09-2003 16:20 ]


  • littledreamer
  • Registratie: Juni 2002
  • Laatst online: 15-08-2025
Inderdaad foutje in de titel |:( nu zie ik het ook.

<?php
if(isset($original)){
//de var bestaat
}
?>

geeft geen waarde...

als een van de modjes ook van mening is dat dit topic hier niet hoort mag het wel gemoved worden, mijn excuses, ik dacht dat het hier hoorde

  • simon
  • Registratie: Maart 2002
  • Laatst online: 17:04
xingrs schreef op 22 september 2003 @ 16:21:
Inderdaad foutje in de titel |:( nu zie ik het ook.

<?php
if(isset($original)){
//de var bestaat
}
?>

geeft geen waarde...

als een van de modjes ook van mening is dat dit topic hier niet hoort mag het wel gemoved worden, mijn excuses, ik dacht dat het hier hoorde
Nee, maar als je op de plek van het comment (//de var bestaat) een echo oid zou uitvoeren (echo "de var bestaat!"; ) dan zou je beter wel wat zien :)

|>


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:52
Als het verder hetzelfde script is niet want dan bestaat deze nog niet. Je zou dan een else statement moeten gebruiken ;)

Is het overigens niet handig dat je eens leest wat er op de link staat die ik je geef en dat je eens even zou gaan proberen?

Ik zag net deze post van je:
xingrs schreef op 22 September 2003 @ 16:16:
maar het gekke is dat hij dus word gedefinieerd bij die addslash :?
Ja, je gaat addslashes toepassen op een variable die er nog niet is, die variable bestaat natuurlijk na die addslashes wel, die bevat alleen geen waarde.

Ik heb trouwens het volgende als query bij Google ingetikt: Notice: Undefined variable:, en daar bevat het eerste resultaat al meteen de oplossing!

[ Voor 95% gewijzigd door djluc op 22-09-2003 16:30 ]


  • littledreamer
  • Registratie: Juni 2002
  • Laatst online: 15-08-2025
djluc schreef op 22 September 2003 @ 16:26:
Als het verder hetzelfde script is niet want dan bestaat deze nog niet. Je zou dan een else statement moeten gebruiken ;)

Is het overigens niet handig dat je eens leest wat er op de link staat die ik je geef en dat je eens even zou gaan proberen?

Ik zag net deze post van je:

[...]

Ja, je gaat addslashes toepassen op een variable die er nog niet is, die variable bestaat natuurlijk na die addslashes wel, die bevat alleen geen waarde.
hij word wel gedefinieerd, dat is het dus niet. want hij mag het lokaal dan wel niet doen, op mn .nl adres werkt het namelijk ook zonder fouten: http://www.xingrs.nl/music

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:52
Plaats daar een een script met als inhoud phpinfo();, dan wil ik namelijk wel eens weten hoe error reporting daar staat. Als het een productieserver is staat dit waarschijnlijk alleen in de logs omdat de errors verborgen worden voor de buitenwereld in verband met hackgevaren.

  • littledreamer
  • Registratie: Juni 2002
  • Laatst online: 15-08-2025
*link verwijderd*

[ Voor 75% gewijzigd door littledreamer op 22-09-2003 17:28 ]


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:52
Vreemd dat er niet gewoon staat wat de waarde is die ingevoerd is maar alleen een nummer, wat waarschijnlijk hetzelfde zal betekenen overigens. Hij staat in ieders geval op mijn server op: 2047, wat toch echt E_ALL betekend. Je zou dus even moeten kijken naar de ini_Set functie om het ook op je webserver zo te kunnen controleren.

Verder staat: display_errors op On, dit is niet erg handig voor een productie_server! Ook staat register_globals op on, die moet ook uit voor de veiligheid.

waarom draai jij Apace trouwens onder een root account?

[ Voor 6% gewijzigd door djluc op 22-09-2003 17:11 ]


  • littledreamer
  • Registratie: Juni 2002
  • Laatst online: 15-08-2025
djluc schreef op 22 September 2003 @ 17:11:
Vreemd dat er niet gewoon staat wat de waarde is die ingevoerd is maar alleen een nummer, wat waarschijnlijk hetzelfde zal betekenen overigens. Hij staat in ieders geval op mijn server op: 2047, wat toch echt E_ALL betekend. Je zou dus even moeten kijken naar de ini_Set functie om het ook op je webserver zo te kunnen controleren.

Verder staat: display_errors op On, dit is niet erg handig voor een productie_server! Ook staat register_globals op on, die moet ook uit voor de veiligheid.

waarom draai jij Apace trouwens onder een root account?
dit is mijn .nl domein, dit host ik bij een provider en ik kan verder niet bij de apache config.

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:52
Dat kun je wel met de ini_set() functie. Daar heb ik je al eens eerder op gewezen. Ik zou trouwens weleens willen weten welke provider dit zo heeft staan.

  • littledreamer
  • Registratie: Juni 2002
  • Laatst online: 15-08-2025
djluc schreef op 22 September 2003 @ 18:30:
Dat kun je wel met de ini_set() functie. Daar heb ik je al eens eerder op gewezen. Ik zou trouwens weleens willen weten welke provider dit zo heeft staan.
Protagonist.nl is m'n provider
Pagina: 1