Avatar billede langkiller Nybegynder
01. august 2010 - 02:24 Der er 42 kommentarer og
1 løsning

bruger opret med aktiveringskode fejl ?

Hej folkens

Kan ikke få mit system til at virke mht brugeroprettelsen (med aktiveringskode...


Får følgende fejl..

Parse error: syntax error, unexpected '}' in /var/www/clich.net/public_html/insertprofile.php on line 189'

.. med denne kode

if($profiletype == "")
{
    echo "Please, choose your profiletype<br>";
    $errorCount++;
}
if($email == "")
{
    echo "Please, enter your email adress (your username)<br>";
    $errorCount++;
}
if($password == "")
{
    echo "Please, enter a password<br>";
    $errorCount++;
}
if($repeat == "" || $repeat != $password)
{
    echo "Your passwords don't match, please enter them carefully<br>";
    $errorCount++;
}
if($firstname == "")
{
    echo "Please, enter your first name<br>";
    $errorCount++;
}
if($lastname == "")
{
    echo "Please, enter your first name<br>";
    $errorCount++;
}
if($country == "")
{
    echo "Please, choose your country from the list<br>";
    $errorCount++;
}
if($cityname == "")
{
    echo "Enter your city's name<br>";
    $errorCount++;
}
if($postalcode == "")
{
    echo "Enter your postal code<br>";
    $errorCount++;
}
if($streetname == "")
{
    echo "Enter your street's name<br>";
    $errorCount++;
}
if($streetnumber == "")
{
    echo "Enter the number of your street where you live<br>";
    $errorCount++;
}

if($errorcount == 0)
{

if(mysql_num_rows($resultat) == 0)
{

mysql_connect("****","****","****");
mysql_select_db("****");

$password = MD5($password);
$insert = mysql_query("INSERT INTO users (profiletype,email,password,firstname,lastname,country,cityname,postalcode,streetname,streetnumber,activationkey,status) VALUES ('$profiletype','$email','$password','$firstname','$lastname','$country','$cityname','$postalcode','$streetname','$streetnumber','$activationKey', 'verify')");


    if (!mysql_query($insert))
      {

    die('Error: ' . mysql_error());

    }


echo "An email has been sent to $_POST[email] with an activation key. Please check your mail to complete registration.";

$to = $_POST[email];

$subject = " blabla.net Registration";

$message = "Welcome to blabla Net! \r\r You, or someone using your email address, has completed registration at blabla.net. You can complete registration by clicking the following link:\rhttp://www.blabla.net/brugeroprettelse/verify.php?$activationKey\r\r If this is an error, ignore this email and you will be removed from our mailing list.\r\r Regards,\ blabla.net";

$headers = 'From: noreply@blabla.net' . "\r\n" .

    'Reply-To: noreply@blabla.net' . "\r\n" .

    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);


}
else
{

$queryString = $_SERVER['QUERY_STRING'];
$query = "SELECT * FROM users";

$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result))
{

  if ($queryString == $row["activationkey"])
  {

      echo "Congratulations!" . $row["firstname"] . " " . $row["lastname"] . " is now the proud new owner of a blabla.net account.";
      $insert="UPDATE users SET activationkey = '', status='activated' WHERE (id = $row[id])";
     
    if (!mysql_query($insert))
    {
    die('Error: ' . mysql_error());
    }

  }

  }

}



}
else
{
echo "brugernavnet er optaget!";
}

}
else
{
echo "Go back";
}


Når jeg retter mig efter fejlmeddelsen brokker den sig bare over noget andet underligt.. f.eks. kan den ikke lide den sidste else del med "Go back"

Kunne godt få det til at virke uden den del med aktiveringskoden.
Avatar billede langkiller Nybegynder
01. august 2010 - 02:33 #1
Undskyld, skrev forkert..
Får bare udskrevet "Go back", samt oprettet brugeren..
Alt andet bliver ignoreret, får ingen mail og man tror også man kan oprette brugere med mail der allerede eksisterer i db'en.


Og dette skal stå ovenover det jeg skrev tidligere:

$activationKey =  mt_rand() . mt_rand() . mt_rand() . mt_rand() . mt_rand();

$profiletype = $_POST["profiletype"];
$email = $_POST["email"];
$password = $_POST["password"];
$repeat = $_POST["repeat"];

$firstname = $_POST["firstname"];
$lastname = $_POST["lastname"];
$country = $_POST["country"];
$cityname = $_POST["cityname"];
$postalcode = $_POST["postalcode"];
$streetname = $_POST["streetname"];
$streetnumber = $_POST["streetnumber"];

$errorCount = "0";



$tjek = "SELECT email FROM users WHERE email = '". $_POST['email']."'";
$resultat = mysql_query($tjek);
Avatar billede ggxdg Nybegynder
01. august 2010 - 10:05 #2
hvilken linje er linje 189?


while($row = mysql_fetch_array($result))
{

  if ($queryString == $row["activationkey"])
  {

      echo "Congratulations!" . $row["firstname"] . " " . $row["lastname"] . " is now the proud new owner of a blabla.net account.";
      $insert="UPDATE users SET activationkey = '', status='activated' WHERE (id = $row[id])";
   
    if (!mysql_query($insert))
    {
    die('Error: ' . mysql_error());
    }

  } //er denne tuborgklamme ikke forkert?

  }

}
Avatar billede ggxdg Nybegynder
01. august 2010 - 10:07 #3
Med forkert mener jeg om den ikke skal slettes?
Avatar billede langkiller Nybegynder
01. august 2010 - 10:45 #4
Hvis jeg sletter den får jeg følgende i stedet

Parse error: syntax error, unexpected T_ELSE in /var/www/clich.net/public_html/insertprofile.php on line 184
Avatar billede langkiller Nybegynder
01. august 2010 - 11:18 #5
Linje 189 er:

} <-- denne
else
{
echo "Go back";
}
Avatar billede ggxdg Nybegynder
01. august 2010 - 11:49 #6
$activationKey =  mt_rand() . mt_rand() . mt_rand() . mt_rand() . mt_rand();

$profiletype = $_POST["profiletype"];
$email = $_POST["email"];
$password = $_POST["password"];
$repeat = $_POST["repeat"];

$firstname = $_POST["firstname"];
$lastname = $_POST["lastname"];
$country = $_POST["country"];
$cityname = $_POST["cityname"];
$postalcode = $_POST["postalcode"];
$streetname = $_POST["streetname"];
$streetnumber = $_POST["streetnumber"];

$errorCount = "0";



$tjek = "SELECT email FROM users WHERE email = '". $_POST['email']."'";
$resultat = mysql_query($tjek);

if($profiletype == "")
{
    echo "Please, choose your profiletype<br>";
    $errorCount++;
}
if($email == "")
{
    echo "Please, enter your email adress (your username)<br>";
    $errorCount++;
}
if($password == "")
{
    echo "Please, enter a password<br>";
    $errorCount++;
}
if($repeat == "" || $repeat != $password)
{
    echo "Your passwords don't match, please enter them carefully<br>";
    $errorCount++;
}
if($firstname == "")
{
    echo "Please, enter your first name<br>";
    $errorCount++;
}
if($lastname == "")
{
    echo "Please, enter your first name<br>";
    $errorCount++;
}
if($country == "")
{
    echo "Please, choose your country from the list<br>";
    $errorCount++;
}
if($cityname == "")
{
    echo "Enter your city's name<br>";
    $errorCount++;
}
if($postalcode == "")
{
    echo "Enter your postal code<br>";
    $errorCount++;
}
if($streetname == "")
{
    echo "Enter your street's name<br>";
    $errorCount++;
}
if($streetnumber == "")
{
    echo "Enter the number of your street where you live<br>";
    $errorCount++;
}

if($errorcount == 0)
{

    if(mysql_num_rows($resultat) == 0)
    {

        mysql_connect("****","****","****");
        mysql_select_db("****");

        $password = MD5($password);
        $insert = mysql_query("INSERT INTO users (profiletype,email,password,firstname,lastname,country,cityname,postalcode,streetname,streetnumber,activationkey,status) VALUES ('$profiletype','$email','$password','$firstname','$lastname','$country','$cityname','$postalcode','$streetname','$streetnumber','$activationKey', 'verify')");


        if (!mysql_query($insert))
        {

            die('Error: ' . mysql_error());

        }


        echo "An email has been sent to $_POST[email] with an activation key. Please check your mail to complete registration.";

        $to = $_POST[email];

        $subject = " blabla.net Registration";

        $message = "Welcome to blabla Net! \r\r You, or someone using your email address, has completed registration at blabla.net. You can complete registration by clicking the following link:\rhttp://www.blabla.net/brugeroprettelse/verify.php?$activationKey\r\r If this is an error, ignore this email and you will be removed from our mailing list.\r\r Regards,\ blabla.net";

        $headers = 'From: noreply@blabla.net' . "\r\n" .

        'Reply-To: noreply@blabla.net' . "\r\n" .

        'X-Mailer: PHP/' . phpversion();

        mail($to, $subject, $message, $headers);


    }
    else
    {

    $queryString = $_SERVER['QUERY_STRING'];
    $query = "SELECT * FROM users";

    $result = mysql_query($query) or die(mysql_error());

    while($row = mysql_fetch_array($result))
    {

        if ($queryString == $row["activationkey"])
        {

            echo "Congratulations!" . $row["firstname"] . " " . $row["lastname"] . " is now the proud new owner of a blabla.net account.";
            $insert="UPDATE users SET activationkey = '', status='activated' WHERE (id = $row[id])";
   
            if (!mysql_query($insert))
            {
                die('Error: ' . mysql_error());
            }

        }

    }

}



} //<---
else
{
echo "brugernavnet er optaget!";
} //<---

}
else
{
echo "Go back";
}


Er det en kode du har fra et andet sted?
Er det hele koden? For hvis det er hele koden, ser det ud som om der er for mange afsluttende tuborgklammer.
Avatar billede ggxdg Nybegynder
01. august 2010 - 11:52 #7
Du kan heller ikke lave 2 "else", der må mangle noget mere kode højere oppe, jeg vil skyde på at det er 2 "if"'s der mangler længere oppe, ud fra de 2 else i bunden.
Avatar billede langkiller Nybegynder
01. august 2010 - 11:56 #8
Ja den del der skal sende aktiverungskoden har jeg fået et andet sted fra og virkede fint inden jeg satte det sammen med min egen oprettelses kode..

Hvis jeg fjerne } 'erne får jeg bare
unexpected T_ELSE (ved "brugernavnet er optaget")
Avatar billede langkiller Nybegynder
01. august 2010 - 11:59 #9
}if($errorcount == 0){
"hører sammen med":
}
else
{
echo "Go back";
}


og

if(mysql_num_rows($resultat) == 0)    {
"hører sammen med":
}
else{echo "brugernavnet er optaget!";}
Avatar billede ggxdg Nybegynder
01. august 2010 - 12:35 #10
du har 2 else til
if(mysql_num_rows($resultat) == 0)    {
så...


Den ene skulle sige tillykke med oprettelse, og den anden skulle sige brugernavnet er optaget...

her er et hurtigt forslag til en løsning... ved ikke om det funker... jeg ved ikke hvordan $_SERVER['QUERY_STRING'] reagerer uden værdi...

$activationKey =  mt_rand() . mt_rand() . mt_rand() . mt_rand() . mt_rand();

$profiletype = $_POST["profiletype"];
$email = $_POST["email"];
$password = $_POST["password"];
$repeat = $_POST["repeat"];

$firstname = $_POST["firstname"];
$lastname = $_POST["lastname"];
$country = $_POST["country"];
$cityname = $_POST["cityname"];
$postalcode = $_POST["postalcode"];
$streetname = $_POST["streetname"];
$streetnumber = $_POST["streetnumber"];

$errorCount = "0";



$tjek = "SELECT email FROM users WHERE email = '". $_POST['email']."'";
$resultat = mysql_query($tjek);

if($profiletype == "")
{
    echo "Please, choose your profiletype<br>";
    $errorCount++;
}
if($email == "")
{
    echo "Please, enter your email adress (your username)<br>";
    $errorCount++;
}
if($password == "")
{
    echo "Please, enter a password<br>";
    $errorCount++;
}
if($repeat == "" || $repeat != $password)
{
    echo "Your passwords don't match, please enter them carefully<br>";
    $errorCount++;
}
if($firstname == "")
{
    echo "Please, enter your first name<br>";
    $errorCount++;
}
if($lastname == "")
{
    echo "Please, enter your first name<br>";
    $errorCount++;
}
if($country == "")
{
    echo "Please, choose your country from the list<br>";
    $errorCount++;
}
if($cityname == "")
{
    echo "Enter your city's name<br>";
    $errorCount++;
}
if($postalcode == "")
{
    echo "Enter your postal code<br>";
    $errorCount++;
}
if($streetname == "")
{
    echo "Enter your street's name<br>";
    $errorCount++;
}
if($streetnumber == "")
{
    echo "Enter the number of your street where you live<br>";
    $errorCount++;
}

if($errorcount == 0)
{

    if(mysql_num_rows($resultat) == 0)
    {

        mysql_connect("****","****","****");
        mysql_select_db("****");

        $password = MD5($password);
        $insert = mysql_query("INSERT INTO users (profiletype,email,password,firstname,lastname,country,cityname,postalcode,streetname,streetnumber,activationkey,status) VALUES ('$profiletype','$email','$password','$firstname','$lastname','$country','$cityname','$postalcode','$streetname','$streetnumber','$activationKey', 'verify')");


        if (!mysql_query($insert))
        {

            die('Error: ' . mysql_error());

        }


        echo "An email has been sent to $_POST[email] with an activation key. Please check your mail to complete registration.";

        $to = $_POST[email];

        $subject = " blabla.net Registration";

        $message = "Welcome to blabla Net! \r\r You, or someone using your email address, has completed registration at blabla.net. You can complete registration by clicking the following link:\rhttp://www.blabla.net/brugeroprettelse/verify.php?$activationKey\r\r If this is an error, ignore this email and you will be removed from our mailing list.\r\r Regards,\ blabla.net";

        $headers = 'From: noreply@blabla.net' . "\r\n" .

        'Reply-To: noreply@blabla.net' . "\r\n" .

        'X-Mailer: PHP/' . phpversion();

        mail($to, $subject, $message, $headers);


    }
    else
    {
        if ($_SERVER['QUERY_STRING'])
        {

            $queryString = $_SERVER['QUERY_STRING'];
            $query = "SELECT * FROM users";

            $result = mysql_query($query) or die(mysql_error());

            while($row = mysql_fetch_array($result))
            {

                if ($queryString == $row["activationkey"])
                {

                    echo "Congratulations!" . $row["firstname"] . " " . $row["lastname"] . " is now the proud new owner of a blabla.net account.";
                    $insert="UPDATE users SET activationkey = '', status='activated' WHERE (id = $row[id])";
   
                    if (!mysql_query($insert))
                    {
                        die('Error: ' . mysql_error());
                    }
                }
            }
        }
        else
        {
            echo "Brugernavnet er optaget!";
        }

    }
}
else
{
    echo "Go back";
}
Avatar billede langkiller Nybegynder
01. august 2010 - 13:01 #11
Får nu følgende:

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1
Avatar billede langkiller Nybegynder
01. august 2010 - 13:02 #12
Tror da ikke der er fejl i min sql ? Og har ikke noget sted i mine sql sætninger hvor der står "1"?
Avatar billede ggxdg Nybegynder
01. august 2010 - 13:12 #13
prøv evt
$tjek = "SELECT email FROM users WHERE email = $_POST['email']";
Avatar billede langkiller Nybegynder
01. august 2010 - 13:26 #14
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/clich.net/public_html/insertprofile.php on line 44
Avatar billede jantzen88 Nybegynder
01. august 2010 - 13:47 #15
Kan du ikke skrive hvad linje 44 er. Så er det lidt nemmere for os :)
Avatar billede langkiller Nybegynder
01. august 2010 - 13:51 #16
Jo selvfølgelig :)
Det var den som ggxdg skrev for lidt siden:

$tjek = "SELECT email FROM users WHERE email = $_POST['email']";
Avatar billede jantzen88 Nybegynder
01. august 2010 - 14:44 #17
$tjek = "SELECT email FROM users WHERE email = '". $_POST['email'] ."'"; burde være rigtig.. Sikker på det ikke er en anden fejl? har du prøvet at lave en debug af det hele? Og hvad er der på line 1?
Avatar billede langkiller Nybegynder
01. august 2010 - 15:08 #18
Her er hele koden for siden:

<?php
session_start();

mysql_connect("***","***","***");
mysql_select_db("****");

require("countries.php");
require("menu.php");

topmenu();
menuall();



print "
<html>
<head><title> Blabla</title><link rel=\"stylesheet\" href=\"style.css\"></head>
<body topmargin=\"0\" leftmargin=\"0\" rightmargin=\"0\">

<p>&nbsp;
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
<tr>
<td width=\"40\" height=\"100%\">&nbsp;
</td>

<td>";


$activationKey =  mt_rand() . mt_rand() . mt_rand() . mt_rand() . mt_rand();
$profiletype = $_POST["profiletype"];
$email = $_POST["email"];
$password = $_POST["password"];
$repeat = $_POST["repeat"];
$firstname = $_POST["firstname"];
$lastname = $_POST["lastname"];
$country = $_POST["country"];
$cityname = $_POST["cityname"];
$postalcode = $_POST["postalcode"];
$streetname = $_POST["streetname"];
$streetnumber = $_POST["streetnumber"];

$errorCount = "0";
$tjek = "SELECT email FROM users WHERE email = $_POST['email']";
$resultat = mysql_query($tjek);



if($profiletype == "")
{   
echo "Please, choose your profiletype<br>";   
$errorCount++;
}

if($email == "")
{   
echo "Please, enter your email adress (your username)<br>";
$errorCount++;
}

if($password == "")
{   
echo "Please, enter a password<br>";   
$errorCount++;
}

if($repeat == "" || $repeat != $password)
{    echo "Your passwords don't match, please enter them carefully<br>";   
$errorCount++;
}

if($firstname == "")
{   
echo "Please, enter your first name<br>";   
$errorCount++;
}

if($lastname == "")
{   
echo "Please, enter your first name<br>";   
$errorCount++;
}

if($country == "")
{   
echo "Please, choose your country from the list<br>";   
$errorCount++;}if($cityname == "")
{   
echo "Enter your city's name<br>";   
$errorCount++;
}

if($postalcode == "")
{   
echo "Enter your postal code<br>";   
$errorCount++;
}

if($streetname == "")
{   
echo "Enter your street's name<br>";   
$errorCount++;
}
if($streetnumber == "")
{   
echo "Enter the number of your street where you live<br>";   
$errorCount++;
}

if($errorcount == 0)
{   
  if(mysql_num_rows($resultat) == 0)   
  {       
    mysql_connect("***","***","***") or die(mysql_error());
    mysql_select_db("***") or die(mysql_error());   

    $password = MD5($password);       
    $insert = mysql_query("INSERT INTO users (profiletype,email,password,firstname,lastname,country,cityname,postalcode,streetname,streetnumber,activationkey,status) VALUES ('$profiletype','$email','$password','$firstname','$lastname','$country','$cityname','$postalcode','$streetname','$streetnumber','$activationKey', 'verify')");


    if (!mysql_query($insert))
    {           
    die('Error: ' . mysql_error());       
    }       


    echo "An email has been sent to $_POST[email] with an activation key. Please check your mail to complete registration.";       
   
    $to = $_POST[email];       
    $subject = " blabla.net Registration";       
    $message = "Welcome to blabla Net! \r\r You, or someone using your email address, has completed registration at blabla.net. You can complete registration by clicking the following link:\rhttp://www.blabla.net/brugeroprettelse/verify.php?$activationKey\r\r If this is an error, ignore this email and you will be removed from our mailing list.\r\r Regards,\ blabla.net";       
    $headers = 'From: noreply@blabla.net' . "\r\n" .
        'Reply-To: noreply@blabla.net' . "\r\n" .       
        'X-Mailer: PHP/' . phpversion();       

    mail($to, $subject, $message, $headers);   

  }   
  else   
  {       

    if ($_SERVER['QUERY_STRING'])       
    {           

    $queryString = $_SERVER['QUERY_STRING'];           
    $query = "SELECT * FROM users";           
    $result = mysql_query($query) or die(mysql_error());           

      while($row = mysql_fetch_array($result))           
      {               
        if ($queryString == $row["activationkey"])               
        {                   
        echo "Congratulations!" . $row["firstname"] . " " . $row["lastname"] . " is now the proud new owner of a blabla.net account.";                   
        $insert="UPDATE users SET activationkey = '', status='activated' WHERE (id = $row[id])";
       
        if (!mysql_query($insert))                   
        {                       
        die('Error: ' . mysql_error());                   
        }               
        }           
      }       
    }       
    else       
    {           
    echo "The username/email you have entered is not available!";       
    }   
    }
  }
  else
  {   
  echo "Go back";
  }








print "

</td>
</tr>
</table>

</body>
</html>
";

?>
Avatar billede ggxdg Nybegynder
02. august 2010 - 13:51 #19
prøv evt at hardcode en e-mail i din forsørgsel og din database, for at tage så mange fejlkilder ud som muligt.

$tjek = "SELECT email FROM users WHERE email = 'test'";


hvis det fungerer at hardcode dem, skal du nok bare escape diverse tegn i værdien af din variabel, hvis det giver nogen mening. Der er en funktion til dette og til at undgå injection.

f.eks.

$tjek = sprintf("SELECT email FROM users WHERE email ='%s'",
            mysql_real_escape_string($_POST['email']));


Du kan læse mere om det her:
http://dk.php.net/manual/en/function.mysql-real-escape-string.php

Hvis det ikke fungerer, kan det godt være du skal gemme værdierne med samme funktion.
Avatar billede langkiller Nybegynder
02. august 2010 - 22:24 #20
Prøvede at "hardcode" med min egen mail og fik præcis samme fejl medd. som før .. :S
Avatar billede langkiller Nybegynder
02. august 2010 - 22:34 #21
nej undskyld får denne fejl medd. :

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1
Avatar billede langkiller Nybegynder
02. august 2010 - 22:46 #22
En anden underlig ting ved dette er at den oprette en bruger i databasen uanset hvad.. også selvom errorcount IKKE er lig med 0.. f.eks. hvis de to passwords ikke matcher oprette den brugeren alligevel.. alle de her fejl er dukket op efter at jeg har prøvet at få det med en aktiveringsmail til at virke.
Avatar billede ggxdg Nybegynder
04. august 2010 - 08:22 #23
Du siger du prøvede at hardcode sin egen mail. Prøv med en ikke mail-adresse, jeg tror måske fejlen i din syntax skyldes tegn i e-mailadressen, men jeg er dog ikke lige sikker. så prøv med "test" eller et eller andet simpelt som du kan være sikker på at den vil godkande, og se om den stadig melder fejl.

$errorCount++;
er ikke den samme variabel som
if($errorcount == 0)


rettes til
if($errorCount == 0)
så burde din control at fungere.
Avatar billede ggxdg Nybegynder
04. august 2010 - 08:22 #24
*godkende
Avatar billede langkiller Nybegynder
04. august 2010 - 11:28 #25
stadig den samme fejl kode :(

errorCount havde du dog selvfølgelig ret i,
Avatar billede ggxdg Nybegynder
04. august 2010 - 14:58 #26
bruger du flere databaser, siden du logger ind på en DB flere gange?

Jeg ved ikke om det giver nogen problemer, hvis man forsøger at logge in på den samme flere gange...
Avatar billede langkiller Nybegynder
04. august 2010 - 18:06 #27
det var heller ikke nødvendigt at forbinde til db 2 gange.. det var en fejl, men gør ingen forskel.
Avatar billede ggxdg Nybegynder
04. august 2010 - 18:22 #28
hmmm... måske er det den forkerte query jeg sidder og kigger på, prøv at lave din insert query til en comment og se om den stadig melder fejl...
Avatar billede langkiller Nybegynder
04. august 2010 - 23:38 #29
Det er den rigtige . Lavede den til comment og fik:
Error: Query was empty

Fejlen må ligge der et sted :/
Avatar billede ggxdg Nybegynder
05. august 2010 - 08:13 #30
$insert = mysql_query("INSERT INTO users (profiletype,email,password,firstname,lastname,country,cityname,postalcode,streetname,streetnumber,activationkey,status) VALUES('$profiletype','$email','$password','$firstname','$lastname','$country','$cityname','$postalcode','$streetname','$streetnumber','$activationKey','verify')");



Jeg har slettet et par spaces... Jeg tvivler på det hjælper noget. Jeg kan ikke lige umiddelbart se nogen fejl i den.
Hvis ovenstående ikke fungerer, så prøv forfra og byg den op 1 værdi ad gangen, bare lad den originale linje blive stående som comment, så du ikke glemmer noget.
Det er nok lidt omstændigt, men det er en god hjælp.
Avatar billede ggxdg Nybegynder
05. august 2010 - 08:15 #31
Jeg prøver lige igen

insert = mysql_query("INSERT INTO users (profiletype,email,password,firstname,lastname,country,cityname,postalcode,streetname,streetnumber,activationkey,status) VALUES('$profiletype','$email','$password','$firstname','$lastname','$country','$cityname','$postalcode','$streetname','$streetnumber','$activationKey','verify')");
Avatar billede ggxdg Nybegynder
05. august 2010 - 08:16 #32
insert = mysql_query("INSERT INTO users (profiletype,email,password,firstname,lastname,country,cityname,postalcode,streetname,streetnumber,activationkey,status) VALUES('$profiletype','$email','$password','$firstname','$lastname','$country','$cityname','$postalcode','$streetname','$streetnumber','$activationKey','verify')");
Avatar billede langkiller Nybegynder
05. august 2010 - 12:19 #33
nej hjalp ikke med de spaces der.. Er heller ikke sikker på at det er præcis den linje alligevel da den sætter værdierne ind i db'en, men ikke sender nogen mail..
Avatar billede ggxdg Nybegynder
05. august 2010 - 13:39 #34
Kan du ikke lige smide dine tables ind?

Prøv evt. med:

$insert="UPDATE users SET activationkey = '', status='activated' WHERE id = '$row[id]'";

Jeg roder sjældent med UPDATE, men jeg tror at WHERE skal være uden parentes.

Ellers er jeg ved at løbe lidt tør for idéer, men hvis det stadig ikke fungerer, så smid lige din table ind...
Avatar billede langkiller Nybegynder
05. august 2010 - 20:33 #35
Jo her er min table (users)

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `profiletype` varchar(20) NOT NULL,
  `status` varchar(20) NOT NULL,
  `email` varchar(50) NOT NULL,
  `password` varchar(20) NOT NULL,
  `activationkey` varchar(100) NOT NULL,
  `firstname` varchar(50) NOT NULL,
  `lastname` varchar(50) NOT NULL,
  `country` varchar(100) NOT NULL,
  `cityname` varchar(100) NOT NULL,
  `postalcode` int(20) NOT NULL,
  `streetname` varchar(100) NOT NULL,
  `streetnumber` int(10) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `activationkey` (`activationkey`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=37 ;
Avatar billede ggxdg Nybegynder
05. august 2010 - 22:05 #36
$insert="UPDATE users SET activationkey = '', status='activated' WHERE id = '$row[id]'";

hjalp ikke eller hvad? :)
Avatar billede langkiller Nybegynder
05. august 2010 - 22:31 #37
Altså jeg erstattede den gamle INSERT INTO sætning med den UPDATE som du skrev .(i $insert)

Den udskrev min egen besked :
An email has been sent to mads275o@hotmail.com with an activation key. Please check your mail to complete registration.

Men den sendte ingen mail
Avatar billede langkiller Nybegynder
05. august 2010 - 23:09 #38
Jo undskyld, mailen var havnet i uønsket post :D

Mange tak for hjælpen ggxdg , glad for du var så tålmodig.
læg et svar så du kan få dine points :) hvis du altså samle på dem
Avatar billede ggxdg Nybegynder
06. august 2010 - 11:20 #39
Ehm... det var ikke lige meningen at du skulle udskifte din INSERT INTO sætning :P

Længere nede er der en sætning der ser ud som følger:

$insert="UPDATE users SET activationkey = '', status='activated' WHERE (id = $row[id])";

det var den jeg ville have dig til at udskifte med:

$insert="UPDATE users SET activationkey = '', status='activated' WHERE id = '$row[id]'";

Uden din INSERT INTO kan du ikke oprette en ny bruger.


Vil du ikke prøve at smide din kode ind igen, så jeg lige kan se hvordan den ser ud nu? :P
Avatar billede langkiller Nybegynder
06. august 2010 - 11:38 #40
Nej det ved jeg godt man ikke kan, men den blev bare ved med at sætte værdier i databasen uden at sende mail.. Erstattede bare INSERT for at tjekke.. ændrede på nogle forskellige ting og har fået det til at virke helt nu.. kan lige sætte koden ind for en god ordens skyld.
Avatar billede langkiller Nybegynder
06. august 2010 - 11:40 #41
$verify = "verify";
$activationKey =  mt_rand() . mt_rand() . mt_rand() . mt_rand() . mt_rand();
$profiletype = $_POST["profiletype"];
$password = $_POST["password"];
$repeat = $_POST["repeat"];
$firstname = $_POST["firstname"];
$lastname = $_POST["lastname"];
$country = $_POST["country"];
$cityname = $_POST["cityname"];
$postalcode = $_POST["postalcode"];
$streetname = $_POST["streetname"];
$streetnumber = $_POST["streetnumber"];

$errorCount = "0";

$email = $_POST['email'];
$tjek = sprintf("SELECT email FROM users WHERE email ='%s'",            mysql_real_escape_string($_POST['email']));

$resultat = mysql_query($tjek);



if($profiletype == "")
{   
echo "Please, choose your profiletype<br>";   
$errorCount++;
}

if($email == "")
{   
echo "Please, enter your email adress (your username)<br>";
$errorCount++;
}

if($password == "")
{   
echo "Please, enter a password<br>";   
$errorCount++;
}

if($repeat == "" || $repeat != $password)
{    echo "Your passwords don't match, please enter them carefully<br>";   
$errorCount++;
}

if($firstname == "")
{   
echo "Please, enter your first name<br>";   
$errorCount++;
}

if($lastname == "")
{   
echo "Please, enter your first name<br>";   
$errorCount++;
}

if($country == "")
{   
echo "Please, choose your country from the list<br>";   
$errorCount++;}if($cityname == "")
{   
echo "Enter your city's name<br>";   
$errorCount++;
}

if($postalcode == "")
{   
echo "Enter your postal code<br>";   
$errorCount++;
}

if($streetname == "")
{   
echo "Enter your street's name<br>";   
$errorCount++;
}
if($streetnumber == "")
{   
echo "Enter the number of your street where you live<br>";   
$errorCount++;
}


  if($errorCount == 0)
  {


if(mysql_num_rows($resultat) == 0)
{


if ($_POST['form_submitted'] == '1')
{

$activationKey =  mt_rand() . mt_rand() . mt_rand() . mt_rand() . mt_rand();

$password = MD5($password);
$insert = mysql_query("INSERT INTO users (profiletype,email,password,firstname,lastname,country,cityname,postalcode,streetname,streetnumber,activationkey,status) VALUES('$profiletype','$email','$password','$firstname','$lastname','$country','$cityname','$postalcode','$streetname','$streetnumber','$activationKey','verify')");

echo "An email has been sent to $_POST[email] with an activation key. Please check your mail to complete registration.";

$to = $_POST[email];

$subject = " Clich.net Registration";

$message = "Welcome to Clich Net! \r\r You, or someone using your email address, has completed registration at Clich.net. You can complete registration by clicking the following link:\r http://www.clich.net/verify.php?$activationKey\r\r If this is an error, ignore this email and you will be removed from our mailing list.\r\r Regards,\ Clich.net Team";

$headers = 'From: noreply@clich.net' . "\r\n" .

    'Reply-To: noreply@clich.net' . "\r\n" .

    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);



}
else
{

$queryString = $_SERVER['QUERY_STRING'];
$query = "SELECT * FROM users";

$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result))
{

  if ($queryString == $row["activationkey"])
  {

      echo "Congratulations!" . $row["username"] . " is now the proud new owner of an YOURWEBSITE.com account.";
      $$insert="UPDATE users SET activationkey = '', status='activated' WHERE (id = $row[id])";
      if (!mysql_query($insert))

    {
    die('Error: ' . mysql_error());
    }

  }

  }

}

}
else
{
echo "<br>brugernavnet er optaget!</br>";
}

}
else
{
echo "<br><a href=\"http://clich.net/createprofile.php\">Try again!</a>";
}
Avatar billede ggxdg Nybegynder
12. august 2010 - 14:17 #42
Smider lige et svar så du kan få lukket. Bare tag halvdelen eller det hele selv :P
Avatar billede langkiller Nybegynder
26. august 2010 - 13:48 #43
havde fuldstændig glemt at få lukket tråden

tak for hjælpen :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester