Tweakers,
Ik loop weer eens tegen iets aan. Ik heb voor een bedrijf een intranetsite gemaakt met behulp van PHP en mysql. Nu draaien ze op de uiteindelijke omgeving geen mysql maar mssql. Dus moet het een en ander omgezet worden, maar toen begonnen de problemen.
Ik heb mssql en PHP nu goed geconfigureerd, dit werkt. Ik heb een nieuwe database aangemaakt met bijhorende users, werkt ook. Ik krijg nu alleen problemen met het starten van de sessions en de inlogpagina.
Eerst de inlogpagina: als ik wil inloggen stuurt IIS mij door naar de volgende link http://localhost/<br%20/><b>Notice</b>:%20%20Undefined%20variable:%20%20PHP_SELF%20in%20<b>F:/Intranet/page/inlog.php</b>%20on%20line%20<b>15</b><br%20/>
Heel vaag, want PHP_SELF is toch een standaard functie? Dit werkte eerder (met Apache en MySql wel).
De (relevante code) van de inlogpagina (die ge-included wordt via de index.php) ziet er als volgt uit:
Dan het probleem met de sessions, in IIS krijg ik de volgende melding:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at F:\Intranet\index.php:8) in
Dit schijnt te maken te hebben met het feit dat er spaties of tekens voor het aanroepen van session_start staan, maar dit werkte eerder wel binnen de Apache/MySql omgeving? Ik had daar ook het weergeven van alle fouten aanstaan. Kan ik dit oplossen door session_start op te nemen boven aan de index.php (welke de andere pagina's included)?
Ik loop weer eens tegen iets aan. Ik heb voor een bedrijf een intranetsite gemaakt met behulp van PHP en mysql. Nu draaien ze op de uiteindelijke omgeving geen mysql maar mssql. Dus moet het een en ander omgezet worden, maar toen begonnen de problemen.
Ik heb mssql en PHP nu goed geconfigureerd, dit werkt. Ik heb een nieuwe database aangemaakt met bijhorende users, werkt ook. Ik krijg nu alleen problemen met het starten van de sessions en de inlogpagina.
Eerst de inlogpagina: als ik wil inloggen stuurt IIS mij door naar de volgende link http://localhost/<br%20/><b>Notice</b>:%20%20Undefined%20variable:%20%20PHP_SELF%20in%20<b>F:/Intranet/page/inlog.php</b>%20on%20line%20<b>15</b><br%20/>
Heel vaag, want PHP_SELF is toch een standaard functie? Dit werkte eerder (met Apache en MySql wel).
De (relevante code) van de inlogpagina (die ge-included wordt via de index.php) ziet er als volgt uit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| include ('include_db_gegevens.php'); mssql_connect($host, $user, $password) //connectie opzetten met database or die ("Kan geen verbinding maken met de database"); mssql_select_db($database) or die ("Het selecteren van de database is mislukt"); $query_select = "SELECT gebruiker_id, gebruiker_groep, inlognaam, voornaam, achternaam, wachtwoord FROM gebruikers WHERE inlognaam = '$inlognaam_form'"; //query $result = mssql_query($query_select); //voer de select query uit $password_array = mssql_fetch_array($result); //mssql_fetch_array maakt van de SQL uitvoer een array if ($_POST['submit']){ //kijk of het formulier verzonden is ..invoercontrole (knip) header("Location: index.php");//laad de pagina else { print ("<p class=\"fout\">Foutmelding: u heeft een verkeerd wachtwoord ingevoerd!</p>"); } } |
Dan het probleem met de sessions, in IIS krijg ik de volgende melding:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at F:\Intranet\index.php:8) in
Dit schijnt te maken te hebben met het feit dat er spaties of tekens voor het aanroepen van session_start staan, maar dit werkte eerder wel binnen de Apache/MySql omgeving? Ik had daar ook het weergeven van alle fouten aanstaan. Kan ik dit oplossen door session_start op te nemen boven aan de index.php (welke de andere pagina's included)?
[ Voor 5% gewijzigd door Verwijderd op 08-02-2005 02:42 ]