Hallo allemaal,

Ik zit toch met een uitdaging: Ik krijg de opdracht <HEADER> niet werkend.

Na hetb invullen van een formulier wil ik weer terug naar de herkomst. Dat lukt mij niet.

Wat doe ik fout of wat zijn de opties om dit toch voor elkaar te krijgen?



<?php

/**
 * @author 			George van Baasbank
 * @package			Genealogie Ermelo
 * @subpackage		leden_muteer_accounts
 * @copyright		Ermelo Software
 * @since			11-01-2013
 * bestandsnaam		leden_muteer_accounts.php
 * beschrijving		Muteren van accounts van ingeschreven leden
 * functiemodule	n.v.t.
 * taalmodule 		n.v.t.
 * include-files	mysql_connect.inc.php - Bevat connectiegegevens met database
 *                  connectie.inc - Bevat de connectie met de databases
 *                  systeem.inc - Bevat de gegevensuitwisseling met de databases
 *                  header.inc - Bevat de componenten voor de paginaheader
 *                  footer.inc - Bevat de componenten voor de paginafooter
 *                  menu.inc - Bevat de algemene menustructuur website
 * Opmerking        HTML5 en CSS3
 * e-mail			[email protected]
 * project			Genealogiewebsite OV-Ermeloo
 * Testdatum        
 * Tester           
 * Testapplicatie   
 * 
 *
 */
 
 /**
 * Wijzigingslog
 * 
 * Datum        Aanpassing
 * 12-01-2013   Ontwikkeling
 * 
 */


session_start();

error_reporting(0);

// Declaratie variabelen
$lAdministrator = $_SESSION['administrator'];
$lWebmaster = $_SESSION['webmaster'];
$lEindredactie = $_SESSION['eindredacteur'];
$lRedacteur = $_SESSION['redacteur'];
$lBeheerder = $_SESSION['beheerder'];
$lLid = $_SESSION['lid'];
$lToegang = $_SESSION['toegang'];
$cLogin = $_SESSION['inlognaam'];

if($lWebmaster != "Ja" AND $lToegang != "Ja") {
    header("Location: u_bent_niet_ingelogd.php");
}

include "include/systeem.inc";
include "functies/functiebieb.inc";

if($_GET['id']) {
    
    $cX = $_GET['id'];
    $_SESSION['lidid'] = $cX;
    include "include/connectie.inc";
    include "queries/sql_lidgegevens.php";
    $cResultLidgegevens = mysql_query($sql);
}

if($_SERVER['REQUEST_METHOD'] === 'POST') {
    
    $edit_voornaam = $_POST['voornaam'];
    $edit_tussenvoeg = $_POST['tussenvoeg'];
    $edit_achternaam = $_POST['achternaam'];
    $edit_emailadres = $_POST['email'];
    $edit_toegang = $_POST['toegang'];
    $edit_administrator = $_POST['administrator'];
    $edit_webmaster = $_POST['webmaster'];
    $edit_eindredacteur = $_POST['eindredacteur'];
    $edit_redacteur = $_POST['redacteur'];
    $edit_nieuwsbrief = $_POST['nieuwsbrief'];
    
    if($edit_toegang == TRUE) {
        $edit_toegang = "Ja";
    } else {
        $edit_toegang = "Nee";
    }
    if($edit_administrator == TRUE) {
        $edit_administrator = "Ja";
    } else {
        $edit_administrator = "Nee";
    }
    if($edit_webmaster == TRUE) {
        $edit_webmaster = "Ja";
    } else {
        $edit_webmaster = "Nee";
    }
    if($edit_eindredacteur == TRUE) {
        $edit_eindredacteur = "Ja";
    } else {
        $edit_eindredacteur = "Nee";
    }
    if($edit_redacteur == TRUE) {
        $edit_redacteur = "Ja";
    } else {
        $edit_redacteur = "Nee";
    }
    if($edit_nieuwsbrief == TRUE) {
        $edit_nieuwsbrief = "Ja";
    } else {
        $edit_nieuwsbrief = "Nee";
    }
    
    $cX = $_SESSION['lidid'];
    include "include/connectie.inc";
    $sql = "UPDATE 
                ove_leden 
            SET
                voornaam = '$edit_voornaam',
                tussenvoeg = '$edit_tussenvoeg',
                achternaam = '$edit_achternaam',
                email = '$edit_emailadres',
                nieuwsbrief = '$edit_nieuwsbrief',
                administrator = '$edit_administrator',
                webmaster = '$edit_webmaster',
                eindredacteur = '$edit_eindredacteur',
                redacteur = '$edit_redacteur',
                toegang = '$edit_toegang'
            WHERE id = '$cX';";
    $cResultWijzigen = mysql_query($sql);
    mysql_close($verbinding);
    
    header("Location: leden_toon_accounts.php");    // Deze header werkt niet !!
    exit;

}

?>
Zet eerst maar eens de error_reporting aan op E_ALL

- Lijn 72 t/m 79 is overbodig, die POST-variabelen kan je al in je query gebruiken
- Er is SQL-injection mogelijk
- Variabelen horen buiten quotes.
Met als resultaat:


Warning: Cannot modify header information - headers already sent by (output started at /var/www/qb302252/data/www/nieuwesite.genealogie-ermelo.nl/include/connectie.inc:34) in /var/www/qb302252/data/www/nieuwesite.genealogie-ermelo.nl/leden_muteer_accounts.php on line 131


In connectie.inc:34 op lijn 34 heb je HTML staan, en dat dat mag niet voor een header().
Aar,

Er stond niet echt HTML in connectie.inc maar twee regels na de afsluiter van php.
Ik heb deze verwijderd en het probleem is over.
Blijkbaar kan er dus "onzichtbare HTML" in mijn document voorkomen.
(Ondertussen heb je het al gevonden; ik post het toch... )
connectie.inc lijkt me niet bedoeld om HTML te tonen, maar voor settings of zo, variabelen waarden geven, connectie met mySQL maken, ...

Wat daarbij van vitaal belang is, is dat je in die bestanden NIETS van output genereert. 1 spatie is al te veel.

Dus ...
begin connectie.inc met <?php
Er mag geen enkel karakter (spatie, nieuwe lijn, ...) komen vóór de <
Er mag ook geen enkel karakter komen na de laatste ?>
Wederom, niet eens een spatie, noch een nieuwe lijn.

Het gemakkelijste: laat ?> gewoon weg, op het einde van .inc bestanden.
George van Baasbank op 17/01/2013 13:42:09


.... connectie.inc ....



Dat bestandje is door iedereen gewoon te lezen.
Ik hoop niet dat daar je inloggegevens in staan.
Bedankt voor de tip... Ik heb de bestandsnaam aangepast
George van Baasbank op 17/01/2013 14:32:23

Bedankt voor de tip... Ik heb de bestandsnaam aangepast

Beter de bestandsextensie aanpassen naar .php of zorgen dat het bestand buiten de root staat.

Reageren