MySQL Anmeldungsscript

quellcode

Also hab das jetzt so gemacht:
1. Formular -> man gibt Tabellennamen ein -> Tabelle mit dem namen $table(Variable also) wird geschrieben
2.Formular ->$Username und $Passwort sollen in die $table reingeschrieben werden das funzt aber nicht weil anscheinend die variable $table nicht mehr weitergegeben wird.
2.Formular:
<body bgcolor="black" text="#a0a0a0">
<center><table border="1" width=400 height="200" cellpadding="1" cellspacing="1"><tr><td>
<form action="test.php" method="post">
Nickname: <input type="username" size="17" name="username">
<br><br>
Passwort: <input type="passwort" size="17" name="passwort">
<center>
<input type="submit" value="OK">
</center>
</form>
</td></tr></table>

test.php:
<?php

// Adresse des Servers mit Port
$servername = "localhost";

// Benutzername für die Datenbank
$dbusername = "";

// Passwort für die Datenbank
$dbpassword = "";

// Name der datenbank
$dbname = "user";

//eine Verbindung zum MySQL-Server wird hergestellt


@mysql_connect ("$servername", "$dbusername", "$dbpassword") OR die ("Verbindung zum MySQL-Server fehlgeschlagen");
mysql_select_db ("$dbname") OR die("Verbindung zur Datenbank fehlgeschlagen");
$query="INSERT INTO $table (username, passwort) values ('$username', '$passwort')";
if (mysql_query($query))
{
Echo "geschafft";
}
else
{
echo "fehler";
}
@mysql_close();


?>

ich hoffe damit könnt ihr etwas anfangen
 
hi,

wenn du dir deinen Code nochmal genau anschauen und mit deinem Gedankengang vergleichen würdest, dann würdest du auch deinen Fehler sehen.
Du übergibst mit deinem Formular nämlich die Variable $table überaupt nicht.
Also ich kann da zumindest nix davon lesen.

Am Anfang wolltest du aber ja, dass die Tabelle den gleichen Namen hat wie der Username.
Also wenn der User jetzt "fritz666" heisst, dann sollte die Tabelle auch "fritz666" heissen.

Wenn du bei dem prinzip geblieben bist, dann mach es doch ganz einfach so:

PHP:
//Hier ganz normal das Formular
//wie vorher

<body bgcolor="black" text="#a0a0a0"> 
<center>
<table border="1" width=400 height="200" cellpadding="1" cellspacing="1">
<tr>
<td> 
<form action="test.php" method="post"> 
Nickname:
<input type="username" size="17" name="username"> 
<br><br> 
Passwort:
<input type="passwort" size="17" name="passwort"> 
<center> 
<input type="submit" value="OK"> 
</center> 
</form> 
</td>
</tr>
</table>


und dann die Datei test.php

PHP:
<?php 

// Adresse des Servers mit Port 
$servername = "localhost"; 

// Benutzername für die Datenbank 
$dbusername = ""; 

// Passwort für die Datenbank 
$dbpassword = ""; 

// Name der datenbank 
$dbname = "user"; 

//eine Verbindung zum MySQL-Server wird hergestellt 


@mysql_connect ("$servername", "$dbusername", "$dbpassword") OR die ("Verbindung zum MySQL-Server fehlgeschlagen"); 
mysql_select_db ("$dbname") OR die("Verbindung zur Datenbank fehlgeschlagen"); 

//Jetzt werden in die Tabelle die Daten eingefügt
//die Tabelle besitzt den gleichen Namen wie der Username

$query="INSERT INTO $username (username, passwort) values ('$username', '$passwort')"; 

if (mysql_query($query)) 
{ 

   echo "Geschafft"; 

}else{ 

   echo "Ein Fehler ist aufgetreten:<br><br>\n\n"; 
   echo mysql_error();

} 

@mysql_close(); 

?>

So dürfte es stimmen.
Was an deinem Script jedoch fehlt ist, dass zuerst die Tabelle erstellt wird.
Weil wenn keine Tabelle existiert, kann natürlich auch nix eingefügt werden und dann kommt logischerweise ein Fehler.
Also musst du vorher eine Tabelle erzeugen.

Das Script test.php würde dann ungefähr so aussehen:

PHP:
<?php 

// Adresse des Servers mit Port 
$servername = "localhost"; 

// Benutzername für die Datenbank 
$dbusername = ""; 

// Passwort für die Datenbank 
$dbpassword = ""; 

// Name der datenbank 
$dbname = "user"; 

//eine Verbindung zum MySQL-Server wird hergestellt 


@mysql_connect ("$servername", "$dbusername", "$dbpassword") OR die ("Verbindung zum MySQL-Server fehlgeschlagen"); 
mysql_select_db ("$dbname") OR die("Verbindung zur Datenbank fehlgeschlagen"); 

//zuerst mal wird die Tabelle erzeugt
//die Tabelle heisst wie der ausgesuchte username

CREATE TABLE $username (
  id int(4) NOT NULL auto_increment,
  username varchar(10) default NULL,
  passwort varchar(10) default NULL,
  PRIMARY KEY  (id)
) TYPE=MyISAM;


//Jetzt werden in die Tabelle die Daten eingefügt
//die Tabelle besitzt den gleichen Namen wie der Username

$query="INSERT INTO $username (username, passwort) values ('$username', '$passwort')"; 

if (mysql_query($query)) 
{ 

   echo "Geschafft"; 

}else{ 

   echo "Ein Fehler ist aufgetreten:<br><br>\n\n"; 
   echo mysql_error();

} 

@mysql_close(); 

?>

Am besten erzeugst baust du dann aber noch eine IF-Abfrage ein in der du überprüfst, ob die tabelle bereits existiert und wenn ja, gibst du dann einfach eine Ausgabe an, dass sie es bereits tut.

So, ich hoffe du komst jetzt alleine weiter.
 
so, ich hab hier im Forum noch was gefunden um zu überprüfen ob die Tabelle bereits existiert:

PHP:
<?php 

// Adresse des Servers mit Port 
$servername = "localhost"; 

// Benutzername für die Datenbank 
$dbusername = ""; 

// Passwort für die Datenbank 
$dbpassword = ""; 

// Name der datenbank 
$dbname = "user"; 


//mit dieser Funktion wird überprüft ob eine Tabelle bereits existiert

function mysql_table_exists($table,$db)
{
   $tables=mysql_list_tables($db);
   while (list($temp)=mysql_fetch_array($tables))
   { 
      if($temp == $table)
      {
         return 1;
      }
   }
   return 0;
}


//eine Verbindung zum MySQL-Server wird hergestellt 

@mysql_connect ("$servername", "$dbusername", "$dbpassword") OR die ("Verbindung zum MySQL-Server fehlgeschlagen"); 
mysql_select_db ("$dbname") OR die("Verbindung zur Datenbank fehlgeschlagen");


//in dieser Variable wird gespeichert ob die Tabelle bereits existiert
//wenn ja wird "1" zurückgegeben
//wenn nein "0"

$temp = mysql_table_exists($username, $dbname);

if($temp=="0")
{ 
   
   //falls die Tabelle noch nicht existiert:
   //zuerst mal wird die Tabelle erzeugt
   //die Tabelle heisst wie der ausgesuchte username

   CREATE TABLE $username (
     id int(4) NOT NULL auto_increment,
     username varchar(10) default NULL,
     passwort varchar(10) default NULL,
     PRIMARY KEY  (id)
   ) TYPE=MyISAM;


   //Jetzt werden in die Tabelle die Daten eingefügt
   //die Tabelle besitzt den gleichen Namen wie der Username

   $query="INSERT INTO $username (username, passwort) values ('$username', '$passwort')"; 

   if (mysql_query($query)) 
   { 

      echo "Geschafft"; 

   }else{ 

      echo "Ein Fehler ist aufgetreten:<br><br>\n\n"; 
      echo mysql_error();
      echo "<br><br>\n\n";

   } 

}elseif($temp=="1"){

   //falls die Tabelle bereits existiert:

   echo "Dieser Username ist bereits vorhanden!<br>\n";
   echo "Bitte wählen Sie einen anderen aus.<br>\n";

}else{

   echo "Ein Fehler ist aufgetreten!<br>\n";

}

@mysql_close(); 

?>
 
k thx!

Sagt ma geht des eigentlich auch das der Username au anders ia als der Tabellen name hab des schonma probiert aba irgendwie funzt des nit.
 
freilich geht das.
dann musst du halt aber angeben wie er lauten soll.

wenn du willst, dass die tabelle "biertable" heissen soll, dann muss der code so lauten:

PHP:
   CREATE TABLE biertable (
     id int(4) NOT NULL auto_increment,
     username varchar(10) default NULL,
     passwort varchar(10) default NULL,
     PRIMARY KEY  (id)
   ) TYPE=MyISAM;

einfach nach dem "CREATE TABLE" den gewünschten Namen einfügen.
Aber für so ein Anmeldescript wäre dann ein Variabler Name natürlich notwendig.
 
jo,
wie geht des das ich der Tabelle einen namen geben kann und anschliessend einen usernamen und ein passwort eintragen zu können ich hab des ja getestet aber der übergibt die Variable leider nit vom Formular 1 zum Formular 2
 
du hast immer noch einen denkfehler drinne:

du kannst keine variable über ein formular übergeben, wenn diese variable in deinem formular gar nicht existiert.
du willst, dass man den tabellennamen im Formular eingeben kann.

also muss dafür mal ein INPUT-Field im formular bereitsgestellt werden.

anders gesagt sieht das dann code-mäßig so aus:

PHP:
<body bgcolor="black" text="#a0a0a0"> 
<center>
<table border="1" width=400 height="200" cellpadding="1" cellspacing="1">
<tr>
<td> 
<form action="test.php" method="post"> 
Tabellenname:
<input type="text" size="17" name="tablename"> 
<br><br> 
Nickname:
<input type="text" size="17" name="username"> 
<br><br> 
Passwort:
<input type="passwort" size="17" name="passwort"> 
<center> 
<input type="submit" value="OK"> 
</center> 
</form> 
</td>
</tr>
</table>

Die tabelle wird dann so erzeugt:

PHP:
CREATE TABLE $tablename (
     id int(4) NOT NULL auto_increment,
     username varchar(10) default NULL,
     passwort varchar(10) default NULL,
     PRIMARY KEY  (id)
   ) TYPE=MyISAM;
 
Ich habe das jetzt mal alles so übernommen, da hät ich aber noch ne Frage :
Also ich habe jetzt nicht für jeden mitglied eine eigene Tabelle angelegt sondern alle mitglieder in Die Tabelle Miglied reingetan.
Meine Frage:
Mit welchem Script kann ob der angemeldete Nick bereits existiert?
 
Hi und willkommen im Forum

HAb ich dich richtig verstanden? suchst du diesen Query (oder so in der Art)?
Code:
SELECT COUNT(*) count FROM users WHERE username = 'hanswurst'
Du musst anschließend nur noch überprüfen, ob count gleich 0 ist, wenn ja kannst du den neuen User anlegen.
 
Zurück