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:
- <?php
- $id = $_GET[id];
- if($godkend['status'] == 0)
- {
- mysqli_query("UPDATE members SET aktiv = '1' WHERE id = '$_GET[id]'")or die(mysql_error());
- echo "Ansøgningen er godkendt.";
- }
- ?>
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:
- <?php
- $username = $_POST['username'];
- $password = $_POST['password'];
- $email = $_POST['email'];
- $name = $_POST['name'];
- $gender = $_POST['gender'];
- $date = $_POST['birth_year'] . "-" . $_POST['birth_month'] . "-" . $_POST['birth_day'];
- $ip = getenv('REMOTE_ADDR');
- if(isset($_POST['submit']))
- {
- if($username == ""){
- $error .="Angiv et brugernavn<br />";
- }
- if($password == ""){
- $error .="Angiv et password<br />";
- }
- if($email == ""){
- $error .="Angiv din email<br />";
- }
- if (substr_count($email,'@')==0) {
- $error .="Ugyldig e-mail adresse!<br />";
- }
- if($name == ""){
- $error .="Angiv dit fornavn<br />";
- }
- if($gender == ""){
- $error .="Angiv dit køn<br />";
- }
- {
- if ($data = $con -> prepare("SELECT `username` FROM `members` WHERE `username` = '".$username."'"))
- {
- $data -> bind_param('s', $username);
- $data -> execute();
- $data -> store_result();
- if($data -> num_rows > 0)
- $error .="Brugernavnet ".$username.", er optaget.<br />";
- }
- }
- if($error){
- echo $error;
- }
- else
- {
- $date = date('Y-m-d', strtotime($date));
- $query = "INSERT INTO members (username, password, email, name, gender, date, ip, signup) VALUES ('{$username}', '{$password}', '{$email}', '{$name}', '{$gender}', '{$date}', '{$ip}', now())" or die (mysqli_error($myConnection));
- $result = mysqli_query($con, $query);
- if ($result) {
- $message = "Brugeren er oprettet.";
- }
- else {
- $message = "Brugeren er ikke oprettet.";
- $message .= "<br />" . mysqli_error($con);
- }
- }
- }
- if (!empty($message)) {echo "<p>" . $message . "</p>";}
- ?>
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