[PHP] if($submit) Werkt niet meer in nieuwe Php

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Icey
  • Registratie: November 2001
  • Laatst online: 17-09 16:46
Allereerst bied ik hierbij openlijk mijn excusses aan omtrend deze hele domme, en ubersimpele n00bvraag. Ik heb al zoveel posts op got gezien, en in de handleiding gelezen en geprobeert en overal is de reactie van 'ooh, dat is makkelijk, verander dit dit en dit en het is klaar'. Maargoed, ik begin bij het begin.

Ik ben een zogenoemde 17 jarige prutser, vind het leuk om nieuwe dingen te leren, vandaar dat er al snel een php/mysql/apache/mailserver prutsbak hier boven 24/7 aanstond (met al 3 weken uptime ;)). Dit alles heb ik zelf voor mekaar gekregen, zonder verdere vragen te hoeven stellen, enkel door te lezen. Ik vond het dus ook geweldig om te zien dat ik een werkend php gastenboek had geinstalleerd en werkend (vooral het mysql gedeelte is een hoop (leuk) werk).

Maargoed, ivm met de grote hoeveelheid manauls heb ik een maand geleden gekozen voor een oude php versie (3.x) dit ook omdat het kleine aantal php kennis dat ik heb eigenlijk niet meer werkt op de nieuwe php4. Om maar een voorbeeld te nemen:

code:
1
2
3
<? 
echo 'Welkom ' . $user . ' op mijn coole pagina!'; 
?>


Werkt nu niet meer, maargoed, dit valt nog redelijk op te lossen volgens de FaQ, dit zou moeten worden:

code:
1
2
3
<? 
echo 'Welkom ' . $_GET [ 'user' ] . ' op mijn coole pagina!'; 
?>


Het probleem is dat dit _niet_ meer werkt sinds de 'upgrade', ik krijg namelijk de error: Warning: Undefined variable: _GET in c:\apache\www\test.php on line 2
Welkom op mijn coole pagina!


Nou schijnt het dus dat dit kan liggen aan de 'register_globals = off' in php.ini ? maar als ik dit op on zet veranderd er weinig :/

Maargoed, dit zal er dus wel mee te maken hebben dat mijn eerst werkende gastenboek opeens niet meer functioneerd...

Ik had eerst een leuk gastenboekje, maar na de upgrade werkt dit niet meer, overal op internet lees ik dat het heel erg makkelijk op te lossen, maar wat ik ook probeer... * of de errors worden groter in getallen * of het lijkt te werken, maar er komt niks meer in mijn databeest terecht :/

Voorbeeld: http://www.i-cey.net/gastenboek.php werkte eerst prima (er zijn zelfs een aantal berichten gepost. Maar nu staat er een berichtje als je een post toe wilt voegen:

Warning: Undefined variable: submit in blabla\toevoegen.php on line 13

De betreffende regel bestaat uit:
code:
1
2
3
4
5
6
if($submit){ 
mysql_connect("$db_host","$db_user","$db_psw");  
mysql_select_db("$db_name");  
$bericht = htmlspecialchars($bericht);  
$bericht = nl2br($bericht);
en nog een stukje wat ik post indien nodig


Ik weet dat if($submit) niet meer 'werkt', dit zou ik moeten veranderen door if(isset($submit)). Maar als ik dat doe dan is wel mijn foutmelding in http://www.i-cey.net/toevoegen.php weg, maar als ik daar wat intik en vervolgens opsubmit druk dan lijkt het goed te gaan, maar er kom NIKS in mijn databeest terecht :'(

IK ben een beetje ten einde raad, en ik heb al aardig wat lopen proberen, maar een echt wonder op dit gebied ben ik niet, en alhoewel het erg makkelijk zou moeten zijn volgens de faq/ manual werkt het gewoon niet...

Overigens kwam ik iets tegen in mijn php.ini, safe_mode = Off heeft dit er wellicht mee te maken?

Nog een keer excusses voor mijn domme vraag, en wellicht iets wat lange post, maar dit is mijn eerste topic in P&W, en ik probeer (ondanks erg domme vraag) toch een goede openings post te maken zodat alles duidelijk is :>

Indien meer info / scrips nodig zijn dan hoor ik dat graag.

Acties:
  • 0 Henk 'm!

  • stfn345
  • Registratie: Januari 2000
  • Laatst online: 14:23
Ik neem aan dat je apache een keer hebt geprobeerd te starten?

Acties:
  • 0 Henk 'm!

  • Icey
  • Registratie: November 2001
  • Laatst online: 17-09 16:46
RaZoRhEaD schreef op 22 december 2003 @ 23:31:
Ik neem aan dat je apache een keer hebt geprobeerd te starten?
Apache -k restart is inderdaad en keer of 10 geprobeerd, ook de hele computer is al opnieuw opgestart (dus de uptime van 3 weken klopt niet helemaal ;))

Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 16-09 19:01

Tux

Welke versie van PHP4 heb je er dan op gezet? Want $_GET zit er volgens mij pas vanaf 4.2.0 in.

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • Icey
  • Registratie: November 2001
  • Laatst online: 17-09 16:46
Tux schreef op 22 december 2003 @ 23:37:
Welke versie van PHP4 heb je er dan op gezet? Want $_GET zit er volgens mij pas vanaf 4.2.0 in.
SERVER_SOFTWARE Apache/1.3.20 (Win32) PHP/4.0.6

Als blijkt dat ik serieus zo dom ben dat ik een oude versie heb gedownload ga ik mijzelf heel hard slaan...

Wellicht verklaard het een hele boek :/

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

hmmm lijkt me duidelijk:

http://www.php.net/downloads.php

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Ziet niemand in
$_GET [ 'user' ]
een spatie tussen de T en de [ dan? :Z :P

Wellicht werkt
PHP:
1
$_GET['user']
beter.

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

Verwijderd

bigtree schreef op 23 december 2003 @ 00:08:
Ziet niemand in
[...]
een spatie tussen de T en de [ dan? :Z :P

Wellicht werkt
PHP:
1
$_GET['user']
beter.
wat is dat voor zever?

Acties:
  • 0 Henk 'm!

  • Harm
  • Registratie: Mei 2002
  • Niet online
bigtree schreef op 23 december 2003 @ 00:08:
Ziet niemand in
[...]
een spatie tussen de T en de [ dan? :Z :P

Wellicht werkt
PHP:
1
$_GET['user']
beter.
Wellicht maakt dat niets uit... ;) Sowieso ben je al wat laat, omdat de TS er net achter was gekomen dat hij nog steeds een oude PHP-versie draaide en dus gewoon moet updaten :).

Acties:
  • 0 Henk 'm!

  • Icey
  • Registratie: November 2001
  • Laatst online: 17-09 16:46
Zelfs na de installatie van een nieuwe php versie (4.3.4) blijft hij aangeven dat ik PHP/4.0.6 draai :X

Alles handmatig veranderd, manual doorgespit en modules etc los geconfigd, php.ini gekopierd etc, 5x gerestart maar hij blijft stug PHP/4.0.6 aangeven.

Maargoed, nou draai ik ook een oude apache versie, dus morgen begin ik lekker fris met alles eraf, en vanaf het begin af aan beginnen.

Wellicht dat het morgen avond dus allemaal werkt, en wellicht ook niet, dan horen jullie het snel genoeg. Mag ik in ieder geval al mijn dank betuigen voor een duwtje de goede richting, ik had vorige week namelijk een nieuwe php versie geinstalleerd, blijkbaar pakt hij hem dus niet helemaal en ligt daar het probleem :(

Acties:
  • 0 Henk 'm!

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 16-09 19:01

Tux

Misschien dat je php op twee verschillende plaatsen geïnstalleerd staat ;)

Doe dus eens 'locate php' ofzo

[ Voor 19% gewijzigd door Tux op 23-12-2003 00:18 ]

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


Acties:
  • 0 Henk 'm!

  • bigtree
  • Registratie: Oktober 2000
  • Laatst online: 16-08 17:16
Harm schreef op 23 december 2003 @ 00:10:
[...]

Wellicht maakt dat niets uit... ;)
Tsssssss.

* bigtree slaat de plank even helemaal mis.

Dacht dat de superglobals vanaf 4.x al werkten, vandaar dat ik even over het hoofd zag dat de versie het probleem was. :|

Lekker woordenboek, als je niet eens weet dat vandalen met een 'n' is.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

if ($submit) is ook het ranzigste van het ranzigste wat je kan doen

1) IE geeft de value van de submit knop niet altijd mee als je bv met enter of javascript een form submit
2) Je kan niet eens meer met javascript je form submitten omdat je met name="submit" de submit() method overschrijft
3) het moet natuurlijk $_POST['submit'] zijn
4) je moet isset() gebruiken om te kijken of de index ueberhaupt wel bestaat
5) doe gewoon zo om te kijken of er iets via POST gesubmit is:

PHP:
1
if ($_SERVER['REQUEST_METHOD'] == 'POST') { }


/einde les 1 "forms met PHP" ;)

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Lentje
  • Registratie: Juni 2001
  • Laatst online: 12-09 17:04
Ligt het niet gewoon heel simpel?

Sinds de nieuwe php versie van je is de error handler een stuk uitgebreid. Jou error wil zeggen dat je variable nog niet is gedefineerd. Dit kan je oplossen door zoiets te doen:
PHP:
1
2
3
4
5
<?
if(!isset($_GET['user'])){
    $_GET['user'] = 'aap';
}
?>

Dacht ik...

Wat je ook kan doen is je error handler iets aanpassen waardoor hij waarschuwingen niet meer weergeeft. Dit is naar mijn mening wel een smerige oplossing. Maar het werkt wel. Op deze pagina kan je meer vinden over error reporting.

[ Voor 6% gewijzigd door Lentje op 23-12-2003 01:32 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ik zou eerst eens zorgen dat ik de meest recente goede versie van PHP heb geinstalleerd en dat alles naar behoren werkt.

Vervolgens kun je eens na gaan denken over wat er mis gaat :)
Ik weet niet met welke methode je je form verstuurd?

PHP:
1
2
3
4
5
6
7
8
9
// POST
echo "<pre>Post:<br>";
print_r($_POST);
echo "</pre>";

// GET
echo "<pre>Get:<br>";
print_r($_GET);
echo "</pre>";

Acties:
  • 0 Henk 'm!

  • FlowinG
  • Registratie: Maart 2003
  • Laatst online: 09:30
Ik had dus last met $_POST, $_SESSION, $_GET enz... toen ik een website moest bouwen die gehost werd bij de klant. Hun draaiden ook 4.06. Dit heb ik simpel opgelost door de oude syntax te gebruiken:
code:
1
2
3
$_GET --> $HTTP_GET_VARS
$_POST --> $HTTP_POST_VARS
enz...

Over dat installeren van de nieuwste php, weet je zeker dat je alles in de goede mapjes hebt gezet?

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Is het dan niet verstandiger dat "hun" eens een keertje gingen updaten?

Acties:
  • 0 Henk 'm!

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 29-05 22:54
Heb je echt alles gedaan? dus de php4_ts.dll in de system32 dir. php.ini in de windows dir, configuratie regeltjes in je httpd.conf ect.. meer hoef je eigenlijk niet eens te doen. ff je session.save_dir (oid) ff op een bestaande dir zetten is ook wel fijn om een topic te besparen. register_globals zou ik overigens uit zetten.

Noushka's Magnificent Dream | Unity


Acties:
  • 0 Henk 'm!

  • Skaah
  • Registratie: Juni 2001
  • Laatst online: 16-09 18:38
probeer eens met phpinfo(); de locatie van /php te achterhalen en te checken dat 't goed is?

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
FlowinG schreef op 23 december 2003 @ 14:08:
Ik had dus last met $_POST, $_SESSION, $_GET enz... toen ik een website moest bouwen die gehost werd bij de klant. Hun draaiden ook 4.06. Dit heb ik simpel opgelost door de oude syntax te gebruiken:
code:
1
2
3
$_GET --> $HTTP_GET_VARS
$_POST --> $HTTP_POST_VARS
enz...

Over dat installeren van de nieuwste php, weet je zeker dat je alles in de goede mapjes hebt gezet?
Dan kun je toch veel beter/makkelijker doen
PHP:
1
2
3
4
5
if (Version_Compare (phpVersion (), "4.1.0") == -1)
{
       $_POST = $HTTP_POST_VARS;
       $_GET = $HTTP_GET_VARS;
}

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
crisp schreef op 23 december 2003 @ 00:32:
5) doe gewoon zo om te kijken of er iets via POST gesubmit is:

PHP:
1
if ($_SERVER['REQUEST_METHOD'] == 'POST') { }
Dat werkt ook niet altijd even handig. Denk aan een site waarbij je op iedere pagina moet kunnen inloggen. Als je dan later ergens anders nog een formuliertje besluit te maken werkt het geheel gelijk niet meer.
Ik neem altijd een hidden input veld in m'n formulier op die ik de naam mode geef en als value een omschrijving van wat er gebeurt (login bijvoorbeeld). Wel zo duidelijk en komt ook nooit in de knoei met andere formulieren

Acties:
  • 0 Henk 'm!

  • Icey
  • Registratie: November 2001
  • Laatst online: 17-09 16:46
Het probleem is opgelost en het lag inderdaad aan de verouderde versie. Na het leeghalen van alles, en schoon overnieuw beginnen met apache/php/mysql werkt alles prima.

Ik had een nieuwe php versie geinstalleerd, blijkbaar ging dat niet helemaal goed, terwijl ik dacht dat het wel gelukt was. IK had dus maar mijn handleiding er opnieuw bijgepakt, en maar weer eens opnieuw begonnen. Een uurtje of wat later draaide allemaal weer prima :D
Pagina: 1