Automastisk mail & Genkendelse af data

Tags:    mysqli php

Hej.
Jeg har lige to ting.

1) Jeg prøver at finde ud af en funktion til, når et medlem bliver godkendt, modtager en email med oprettelse. Indtil videre har jeg dette her:

Fold kodeboks ind/udPHP kode 


Jeg ved at jeg skal hermed også ind og hente mailen, samt noget:
$subject = "Oprettelse på xxxx."; //
$msg=
$header =

osv.
Men er usikker hvor det skal stå og hvordan det skal stå.

Derudover ville jeg være rigtig glad, hvis en vil hjælpe mig med at få godkend og avis ind på "samme" side - lige nu ligger de i to forskellige: godkend.php og afvis.php
Jeg har prøvet, men kan ikke få det til at virke. :(

2) Har spurgt i en anden tråd, men den bliver ikke længere svaret og har endnu ikke fundet fejlen.

Mit problem er at jeg modtager denne fejlkode: "Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement"

Hele mit script er:
Fold kodeboks ind/udPHP kode 


Jeg ved godt der burde stå:
if ($data = $con -> prepare("SELECT `username` FROM `members` WHERE `username` = '?'"))

I stedet for:
if ($data = $con -> prepare("SELECT `username` FROM `members` WHERE `username` = '".$username."'"))

Men hvis jeg sætter ? på, tjekker den det ikke. Dette undre mig også.

Jeg håber I kan hjælpe mig og give en forklaring på mine fejl. Er ny i mysqli, men vil rigtig gerne lære det :)



4 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Hej Sassy.

Du kører lige nu både OO og procedural MySQLi. Vil råde dig til at holde dig til en - det er langt mere simpelt.

Mht. dit første spørgsmål med mailen, kan du gøre brug af PHPs "mail" funktion: mail($to, $subject, $message, $headers).
Du kan fange din bruger ud fra det id, som ligeledes bliver passet med din URL idet du godkender en person.

Jeg har brygget noget kode sammen, det er ikke testet, men burde virke.
Edit: Har i øvrigt også taget højde for dit ønske om, at holde det i en fil. Heraf kommer dept.

Fold kodeboks ind/udPHP kode 


Mht. dit andet spørgsmål: Du skal ikke smide single-quotes rundt om dit parameter idet du bruger prepare. Blot id = ?. Det er klart, at den melder fejl, når du prøver at binde et parameter til din query, som du ikke har bedt om i selve querien. Tag udgangspunkt i koden ovenfor, det burde hjælpe dig lidt på vej. Linje 38 samt 47.

Jeg er ligeledes ny i MySQLi - har gjort brug af PDO det meste af tiden. Læs op på dine fejl-koder, slå funktionerne op, hvis du er i tvivl. Tving dig selv til at lære det. :-)



Indlæg senest redigeret d. 29.12.2013 22:54 af Bruger #16122
Jeg er slet ikke inde i det der OO og procedural MySQLi, det må jeg indrømme. jeg prøver bare at lave ud fra de råd jeg får - men ja, jeg indvikler hvis tingene lidt...

ang. fejlkoden jeg modtager:
Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement

Den får jeg desværre stadig og den skriver det er på linje 40:
$data -> bind_param('s', $username);

Jeg har ledt og ledt og søgt ang. bind_param, men jeg kan ikke forstå fejlen?

Jeg tjekker lige din kode lidt senere, og afprøver den :) Men vil gerne lige være sikker på at jeg forstår det 100%.



Indlæg senest redigeret d. 01.01.2014 20:56 af Bruger #17534
Hej Sassy,

Godt nytår!

Hvis du læser fejlkoden, giver den en indikation af, hvad der er galt: "Number of variables doesn't match number of parameters in prepared statement".

Det betyder, at det antal af variabler, som du "assigner" dit prepared statement, ikke stemmer overens, med de paramtre i dit prepared statement.


Vi tager udgangspunkt i følgende query.
Fold kodeboks ind/udSQL kode 


I dette tilfælde, er der to paramtre i dit prepared statement. "id" samt "age". Vi kan bruge bind_param til, at binde de to parametre i querien til variabler i PHP:
bind_param('ii', $id, $age);

Første paramter i quiren skal være af typen "integer" samt have værdien "id". Andet parameter skal også være af typen "integer", men have værdien "age".

Hvis du nu havde 10 paramtre i din query, skal bind_param ligeledes have ti variabler.

Er det til at forstå?




Problem løst :)


Hej.

Ja, jeg er med på det, men problemet er bare at jeg ikke kan få det til at virke, samt fjerne fejlen :s Det er det der undre mig.



Indlæg senest redigeret d. 07.01.2014 17:15 af Bruger #17534
t