Beste mensen.
Dit is lauter een SQL-vraag. Maar voor onderstaande query krijg ik geen resultaat waar het echt vreemd is. En ik kreeg ook geen foutmeldingen van de MySQL-server terug.
Kan iemand helpen?
echo"<p><h1>Gefeliciteerd! U bent klant.</h1></p>";
echo"<p>We sturen u een email met uw gegevens, waaronder uw klantnummer.";
echo"Alles is succesvol toegevoegd in onze database. U zal ongenblikkelijk terugkeren naar <a href='http://www.dikowork.com'>www.dikowork.com</a>. Bedankt voor uw registratie.";
$klantnrselect=mysqli_query($sqlconnect,'SELECT klantnr FROM klanten WHERE email = '.$mail);
$to=$mail;
$subject="Registratie op Dikowork.com";
$msg="Beste ".$vnaam." ".$tussenv." ".$anaam."\n
Hierbij sturen we u uw persoonlijke klantgegevens.\n
Uw klantennummer is ".$klantnrselect."Het emailadres dat u ons heeft opgegeven is ".$mail."\n
We danken u nogmaals voor uw registratie. En hopen dat u onse diensten nuttig vindt!\n
Om ons terug te mailen kan u sturen naar info@nl.vdslhosting.be .\n
Thomas, bedankt! Dat is heel wat duidelijker!
Ik heb alleen nog twee vragen:
1) Wat is het verschil en de voordelen tov de methode die ik gebruikte om te controleren of het form is verstuurd?
2) Kan je me even een voorbeeld geven van de insert_id()-functie. Ik vind via google niet de benodigde informatie om het structureel op te lossen, alleen Object Oriented PHP!
Alvast bedankt!
Het verschil met jouw methode is dat je op voorhand al allerlei variabelen introduceert die hun waarde uit het $_POST array halen, terwijl deze mogelijk leeg is omdat je niet eerst controleert of er uberhaupt een formulier is verstuurd. Dit resulteert al meteen in allerlei notices van niet-bestaande variabelen. Daarnaast kun je je afvragen wat de toegevoegde waarde is om al deze $_POST variabelen te kopiëren - het voegt effectief niets toe.
Er is niet echt een voordeel, maar meer een algemeen geaccepteerde manier om dingen te doen. De manier waarop jij afleid dat er een formulier is verstuurd is niet echt gangbaar. Dit doe jij op grond van het bestaan van een kopie van de waarde van een submitbutton :/.
Daarbij moet je misschien ook met het volgende rekening houden: in jouw script combineer je invoer en uitvoer - tijdens het opbouwen van een webpagina ben je tevens on-the-fly een formulier aan het verwerken. Voor een eenvoudig, standalone, contact- of registratieformulier kan dit misschien nog wel door de beugel maar als je wat grotere dynamische sites gaat maken zul je je acties (het weergeven van een formulier, het verwerken van een formulier, het tonen van een aparte bedankpagina et cetera) toch echt wat meer moeten compartimenteren anders wordt de code één grote incoherente brei.
Indien je je serieus (semi)professioneel wilt bekwamen in PHP zul je moeten leren om gebruik te maken van bepaalde tools. Zoals het officiële naslagwerk van PHP op PHP.net. In de webwereld kom je er ook bijna niet omheen dat de voertaal doorgaans in het Engels is.
Ook kan het handig zijn als je gebruik maakt van MySQLi je aan te leren de object georiënteerde variant te gebruiken. Voor uitleg over insert_id() verwijs ik je dan ook naar de bijbehorende documentatie. Daar vind je ook de procedurele variant die je misschien gewend was vanuit de originele MySQL-driver die enkel met mysql_-functies werkte.
Oké, bedankt! Wat is het voordeel van PHP OOP eigenlijk?
En wat die pagina's betreft etc, is het voldoende om met bv. functies te werken?
En als ik MySQLi OOP gebruik, moet ik de rest van mijn systeem ook OOP doen?
Sorry voor deze vragen, maar ik heb nog nooit met OOP gewerkt.
Oké, bedankt! Wat is het voordeel van PHP OOP eigenlijk?
Dit is zoiets als vragen "wat is het voordeel van een hamer". Voor sommmige klussen is een hamer geschikter dan een ander stuk gereedschap. Maar het blijft een stuk gereedschap. Het bestaan van een hamer maakt het bestaan van andere stukken gereedschap niet overbodig.
Citaat:
En wat die pagina's betreft etc, is het voldoende om met bv. functies te werken?
Whatever floats your boat. Stap 1 is iets werkends opleveren lijkt mij, daarna kun je kijken naar optimalisatie. Het interesseert eindgebruikers doorgaans geen biet hoe alles onder de motorkap er uitziet. Totdat je een keer met panne langs de weg staat .
Citaat:
En als ik MySQLi OOP gebruik, moet ik de rest van mijn systeem ook OOP doen?
Nee. PHP is een hybride taal. Je mag alles door elkaar gebruiken als je dat leuk vindt. Dit legt wel wat meer verantwoordelijkheid bij de programmeur om zelf een soort van overzicht te bewaren.
De OOP variant van MySQLi is wat mij betreft makkelijker in het gebruik, je hoeft dan niet telkens het connectie-object toe te voegen als parameter in de methode-aanroep, ook ontbreekt het voorvoegsel "mysqli_" omdat je al met objecten van MySQLi-klasses werkt.
In beginsel is het dus gewoon kortere code die hetzelfde doet. Daarnaast programmeer je dan (in ieder geval wat betreft database-operaties) (semi) object georiënteerd. Dit kan helpen bij begripsvorming omtrent OOP, ook kun je schillen om deze MySQLi-klasses heenprogrammeren die je het werkt nog makkelijker maakt (de database-functionaliteit is makkelijker uitbreidbaar in de OOP vorm).
En er is een algemene tendens in de PHP-wereld die in de richting van OOP beweegt. Om die reden alleen al valt er iets voor te zeggen om je te bekwamen in de OOP manier van werken, of in ieder geval een globaal beeld te hebben van de gebruikte OOP concepten.