Aktivierungscode generieren

06/09/2012 17:02 eBay Advertising#1
Hallo,

Wie kann ich einen Aktivierungscode generien und den danach in der Datenbank abspeichern?

Gruß
06/09/2012 17:32 Project Rivalry#2
[Only registered and activated users can see links. Click Here To Register...]

PHP Code:

// verbindung herstellen
$verbindung mysql_connect("servername",
"Benutzername","Passwort")
or die (
"keine Verbindung möglich.");
mysql_select_db("Datenbankenname")
or die (
"Die Datenbank existiert nicht.");


//zufals zahl zwischen 5-15 generieren
$aktivierungscode rand(515);

//sql befehl
$eintrag "INSERT INTO Tabellenname ('Aktivierungscode') VALUES ('$aktivierungscode')";

//befehl abschicken
$eintragen mysql_query($eintrag);

//überprüfen ob eintrag erfolgreich ( query gibt true / false zurück)
if($eintragen)
{
echo
'it works';
}else{
echo 
'fehler beim abschicken';

... not tested....
06/09/2012 17:33 eBay Advertising#3
Meins sieht so aus:

PHP Code:
$code       rand(100000,9999999);

$add_user "INSERT INTO user (username, password, email, name, regdate, status, code)
VALUES ('
$username','$password','$email','$name','$reg_date','inaktiv','$code')";

mysql_query($add_user); 
Jedoch speichert er alles außer den Code :/
06/09/2012 17:54 JPGaming#4
mach mal anstelle
PHP Code:
$add_user "INSERT INTO user (username, password, email, name, regdate, status, code)
VALUES ('
$username','$password','$email','$name','$reg_date','inaktiv','$code')"
folgendes:
PHP Code:
$add_user "INSERT INTO user (username, password, email, name, regdate, status, code)
VALUES ('
$username','$password','$email','$name','$reg_date','inaktiv','$code') or die (mysql_error)"
und geb uns die Meldung aus. Sieht soweit eigentlich ganz okay aus..
06/09/2012 18:19 Mikesch01#5
Ist bei dir in der Tabelle 'user' auch die Spalte 'code' vorhanden?
06/09/2012 18:22 eBay Advertising#6
Kein Fehler er trägt alles ein, außer den Code.
06/09/2012 18:50 Project Rivalry#7
echo code mal vor dem eintrag das man weiß ob in code überhaupt was drin ist
06/09/2012 19:03 eBay Advertising#8
Jo dann zeigt er ir ne Random Zahl an =)

Komplettes Script:

PHP Code:

<?php

include('config/db_connect.php');
$username $_POST["username_reg"];
$password md5($_POST["password_reg"]);
$email    $_POST["email_reg"];
$name     $_POST["real_name"];
$add_user "INSERT INTO user (username, password, email, name, status, code)
VALUES ('
$username','$password','$email','$name','inaktiv','$mailcode')";
$check_user mysql_query("SELECT username FROM user WHERE username='$username'");
$check_mail mysql_query("SELECT email FROM user WHERE email='$email'");
$thanks     '<meta http-equiv="refresh" content="1; url=thanks.html">';
$mailcode   rand(100000,999999);



   if(empty(
$username))  {
    echo 
"Bitte gib einen Benutzernamen ein.";
     }
     
   Elseif(empty(
$password)) {
    echo 
"Bitte gib ein Passwort ein.";
    }
    
   Elseif(empty(
$email)) {
    echo 
"Bitte gebe eine Email ein.";
    }
    
   Elseif(empty(
$name)) {
    echo 
"Bitte gebe deinen Namen ein.";
    }
   Elseif(
$row[0] > 0) {
     echo 
"Dieser Benutzername ist bereits vergeben.";
     }
   Elseif(
mysql_num_rows($check_user) != 0) {
     echo 
"Benutzername vergeben.";
    }
   Elseif(
mysql_num_rows($check_mail) != 0) {
     echo 
"eMail bereits vergeben.";
   }
     Else {
      
      echo 
$mailcode;
      
mysql_query($add_user);
      
         
      
      }  
      
?>
06/09/2012 20:01 Mikesch01#9
Hi,

ich hoffe dir ist klar, was du tust^^

PHP Code:
include('config/db_connect.php');
$username $_POST["username_reg"];
$password md5($_POST["password_reg"]);
$email    $_POST["email_reg"];
$name     $_POST["real_name"];
$mailcode   rand(100000,999999); //Code muss vor Query
$add_user "INSERT INTO user (username, password, email, name, status, code)
VALUES ('
$username','$password','$email','$name','inaktiv','$mailcode')";
$check_user mysql_query("SELECT username FROM user WHERE username='$username'");
$check_mail mysql_query("SELECT email FROM user WHERE email='$email'");
$thanks     '<meta http-equiv="refresh" content="1; url=thanks.html">'
Du musst natürlich den Code vor dem Query posten, da die INSERT-Query natürlich keien Ahnung hat, was in der Variable ist, wenn sie noch nicht gesetzt wurde!
06/09/2012 20:13 eBay Advertising#10
Geht danke =D

PHP Code:
<?php

include('config/db_connect.php');

$username $_POST['username'];
$code     $_POST['code'];
$update_status "UPDATE user SET status = 'aktiv' WHERE username = '$username'";
$update_state  mysql_query($update_status);
$check_code    "SELECT * FROM user WHERE code = '$code'";
$check         mysql_query($check_code);

If(
$check == $code) {
  echo 
$update_state;
 }
  else {
    echo 
"Der eingebene Code ist falsch.";
  }


?>
Formular:


HTML Code:
<html>

   <head>
   
    <title> Tippspiel - Registrierung abschließen </title>
   
   </head>
   
   <body> 
    
     <form action="do_valid_register.php" method="post">
	 
	  <p> Benuztername: </p>
       <input type="text" name="username">	 
      <p> Aktivierungscode: </p>
       <input type="text" name="code">
	   <input type="submit" value="Abschließen">
	 
	 </form>
	   
   </body>
   
   
</html>
Was ist daran falsch er updatet auf "Aktiv" obwohl der Code falsch war.
06/09/2012 21:01 PseudoPsycho#11
Quote:
Originally Posted by eBay Advertising View Post
Was ist daran falsch er updatet auf "Aktiv" obwohl der Code falsch war.
Natürlich. Du setzt es ja auch erst auf aktiv und fragst dann nur für die Ausgabe ab..?!

So wär's richtig:
Code:
 <?php

include('config/db_connect.php');

$username = $_POST['username'];
$code     = $_POST['code'];
$check_code    = "SELECT * FROM user WHERE code = '$code'";
$check         = mysql_query($check_code);

If($check == $code) {
$update_status = "UPDATE user SET status = 'aktiv' WHERE username = '$username'";
$update_state  = mysql_query($update_status);
  echo $update_state;
 }
  else {
    echo "Der eingebene Code ist falsch.";
  }


?>
06/09/2012 21:38 eBay Advertising#12
Danke Pseudo jedoch stellt er nicht auf Aktiv und sagt das Code falsch ist obwohl er für den eingebenen Benutzer so in der Datenbank steht.
06/09/2012 22:57 galaxyo#13
PHP Code:

 <?php

include('config/db_connect.php');

$username $_POST['username'];
$code     $_POST['code'];
$check_code    "SELECT * FROM user WHERE code = '$code'";
$data         mysql_query($check_code); //geändert
$check mysql_fetch_assoc($data); //hinzugefügt

If($check['code'] == $code) { //geändert
$update_status "UPDATE user SET status = 'aktiv' WHERE username = '$username'";
$update_state  mysql_query($update_status);
  echo 
$update_state;
 }
  else {
    echo 
"Der eingebene Code ist falsch.";
  }


?>
Müsste jetzt funktionieren.

Solltest eventuell statt "aktiv" true oder für "inaktiv" false bzw. 1 für true und 0 für false verwenden.
06/09/2012 23:36 eBay Advertising#14
PHP Code:

<?php 
include('config/db_connect.php');

$username $_POST["username"]; 
$passwort $_POST["password"]; 

$abfrage "SELECT Username, Password FROM user WHERE username LIKE '$username' LIMIT 1"
$ergebnis mysql_query($abfrage); 
$row mysql_fetch_object($ergebnis); 

if(
$row->passwort == $passwort
    { 
    
$_SESSION["username"] = $username
    echo 
"Login erfolgreich. <br> <a href=\"geheim.php\">Geschützer Bereich</a>"
    } 
else 
    { 
    echo 
"Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"
    } 

?>
Hmm... was ist den hier wieder falsch egal was ich eingebe er sagt das Login erfolgreich war :O
06/10/2012 00:29 NotEnoughForYou#15
Du selectest Password fragst aber nach $row->paawort ab