Ik heb account.php waar mijn html code in staat en als ik op de knop maak account druk
wordt het script maak_account.php aangeroepen. Kan ik variabele doorgeven of teruggeven vanwaar het script
werd aangeroepen?
Ik vind eigenlijk dat je al heel aardig bezig bent. Namelijk:
- Je begint met PHP in plaats van met HTML
- Je initialiseert netjes je variabelen
- Je test op correcte wijze of Je pagina is opgevraagd in de POST methode
Een compliment is dus op zijn plaats. Wat Ariën zegt daar ben ik het wel mee eens en ook zou ik de adviezen van Thomas uit je vorige topic ter harte nemen. Je kunt je HTML zo onder je code plaatsen
Voor de opzet voor je formulier (en code) zou ik deze volgorde aanhouden:
<?php
// includes en/of functies hier
// initialisatie van variabelen
// controleer of formulier verstuurd is
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// validatie
// Indien validatie geslaagd is
if(count($errors) == 0) {
// verwerk het formulier hier (gegevens opslaan of mail verzenden etc)
// redirect de gebruiker altijd o.a. om dubbele verwerking te voorkomen
header('Location: where-ever.php');
exit;
}
}
?>
<<< HTML HIER >>>
Voor een compleet voorbeeld zie mijn reactie [color="#ff0000"]hier[/color]
Ik had ergens gelezen dat het properder en overzichtelijker programmeren is als je html, css, JavaScript en php in aparte files plaatst. Maar dus jullie raden mij aan php en html in zelfde file te plaatsen? Is daar een reden voor?
Allereerst is er op die manier een goede logica. Je heb een mooi overzicht over wat er wanneer gebeurd. Ten tweede zijn er vaak ook momenten om ook na het versturen van het formulier je formulier te gebruiken. Denk bijvoorbeeld aan validatie waarbij je een veld bijv. rood wilt kleuren als deze niet goed is ingevuld.
Als je niet voor elke scheet van de design boys & girls (ander kleurtje, HTML een beetje schuiven, enz) je code door wilt is het inderdaad handiger om alles te scheiden. Javascript en CSS kunnen natuurlijk sowieso in hun eigen files, dat hoeft niet allemaal door je code heen te staan. Voor de rest wordt dan meestal de de MVC aanpak gekozen (met de V van view = grofweg de HTML). De meeste frameworks werken zo.
Bij de recht-toe-recht-aan methode die je nu hanteert is wat - Ariën - zegt vrij gebruikelijk. Als je je eens in een framework verdiept zul je zien dat ze daar in de ene file alle logica hebben zitten, en informatie klaarzetten die op het scherm moet komen (maar dan nog zonder opmaak info, puur de data), en in een andere file (die view) de opmaak zelf. Dan heb je echter ook te maken met het 'keurslijf' van het framework om te zorgen dat alles ook op die manier gaat werken, ne ben je dus wel een paar avondjes 'studeren' verder.
Ok bedankt voor de info. Het is altijd wat zoeken in het begin met een nieuwe taal en nieuwe omgeving. Ik plaats voortaan mijn php code bovenen mijn html.
Ook vanwege het feit dat sommige mensen headers in PHP gebruiken halverwege hun HTML, zorgt logischerwijs voor problemen *. Daarom is het gewoon gebruikelijk om eerst de logica uit te voeren, en dan vaak op basis van een voorwaarde (als er ge-POST is, als een bepaalde waarde geset is etc..). Daarna kan je pas de output tonen.
[sub]* = Headers worden altijd uitgevoerd vóórdat de output begint. Dat is nu eenmaal de afspraak binnen het ontworpen HTTP-protocol. [/sub]
Hierboven werd ook al aangegeven dat je input zo min mogelijk moet bewerken, maar ik geloof dat je een wachtwoord (bijna) nooit zou moeten bewerken. Daar horen juist ook vreemde tekens in. Zorg voor een goede controle en sla een wachtwoord gecodeerd op.