if Anweisung

Oke es kalbt:):)

Aber kann mir jemand noch jemand sagen wie ich sicher stehlen kann das es keinen usernamen doppelt gibt


Und schon mal danke an euch alle:):)
 
Ganz einfach wenn im Formular eine name gesendet wurde dann fragste einfach die Db ab nach dem gesendeten namen findet er dann was ist der Name Doppelt.

Und man gibt eine entsprechende Fehlermeldung aus.

$error.="Diesen Usernamen gibt es bereits. Bitte suche Dir einen anderen aus.";


Mfg Splasch
 
Ich weiß nicht ob die Antwort von Splasch für dich klar war, ich gebe dir noch mal ein Codebeispiel:

Vorraussetzung: Du hast eine Datenbank, und die Verbindung steht (mit Username & Passwort), dafür findest du genug Beispiele, z.B. hier: http://tut.php-quake.net/mysql.html

Jetzt hast du ja den Benutzernamen in der $_POST Variable gespeichert. Dann kannst du in einem MySQL-Query das abfragen, dazu habe ich mir eine Funktion geschrieben:
PHP:
function user_exists($username, $table)
{
	$sql = "SELECT
                COUNT(*) as Anzahl
            FROM
                $table
            WHERE
                Loginname = '".$username."';";
    $result = mysql_query($sql) OR die(mysql_error());
    $row = mysql_fetch_assoc($result);
    mysql_free_result($result);
    return $row['Anzahl'];
}
Die kannst du im Script mit <? user_exists($_POST['username'], "MeineTabelle"); ?> aufrufen, und die gibt eine 1 zurück, wenn der Benutzername schon verwendet wurde, oder eine 0 wenn er noch nicht verwendet wurde. Dadurch kannst du das auch in if-Abfragen benutzen, also
PHP:
if(user_exists($_POST['username'], "MeineTabelle")
   echo "Benutzername wird bereits verwendet!";
else
  // tu was

Ich hoffe, damit konnte ich dir helfen!
 
Ich hab ne Datenbank hab aber noch nie mit der gearbeitet die sieht so aus
PHP:
CREATE TABLE `user` (
`id` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`anrede` VARCHAR( 4 ) NOT NULL ,
`vorname` VARCHAR( 30 ) NOT NULL ,
`nachname` VARCHAR( 30 ) NOT NULL ,
`geburtstag` INT( 2 ) NOT NULL ,
`geburtsmonat` INT( 2 ) NOT NULL ,
`geburtsjahr` INT( 4 ) NOT NULL ,
`land` VARCHAR( 11 ) NOT NULL ,
`strasse` VARCHAR( 30 ) NOT NULL ,
`plz` INT( 10 ) NOT NULL ,
`ort` VARCHAR( 30 ) NOT NULL ,
`email` VARCHAR( 30 ) NOT NULL ,
`username` VARCHAR( 16 ) NOT NULL ,
`passwort` VARCHAR( 16 ) NOT NULL ,
`sicherheitsfrage` VARCHAR( 60 ) NOT NULL ,
`geheimeantwort` VARCHAR( 30 ) NOT NULL ,
`beruf` TEXT NOT NULL ,
`interessen` TEXT NOT NULL ,
`usertext` TEXT NOT NULL ,
`icq` INT( 9 ) NOT NULL ,
`msn` VARCHAR( 30 ) NOT NULL ,
`yahoo` VARCHAR( 30 ) NOT NULL
) ENGINE = MYISAM ;

Da hat mir auch mal ein Freund ne if dazu geschrieben bei der hab ich aber gar nichts geblickt
Und die hat auch nicht so funktioniert wie sie sollte

PHP:
<?php require_once('../Connections/MySQL_1.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "wregisteren")) {
  $insertSQL = sprintf("INSERT INTO user (anrede, vorname, nachname, geburtstag, geburtsmonat, geburtsjahr, land, strasse, plz, ort, email, username, passwort, sicherheitsfrage, geheimeantwort) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['anrede'], "text"),
                       GetSQLValueString($_POST['vorname'], "text"),
                       GetSQLValueString($_POST['nachname'], "text"),
                       GetSQLValueString($_POST['geburtstag'], "int"),
                       GetSQLValueString($_POST['geburtsmonat'], "int"),
                       GetSQLValueString($_POST['geburtsjahr'], "int"),
                       GetSQLValueString($_POST['land'], "text"),
                       GetSQLValueString($_POST['strasse'], "text"),
                       GetSQLValueString($_POST['plz'], "int"),
                       GetSQLValueString($_POST['ort'], "text"),
                       GetSQLValueString($_POST['email'], "text"),
                       GetSQLValueString($_POST['username'], "text"),
                       GetSQLValueString($_POST['passwort'], "text"),
                       GetSQLValueString($_POST['sicherheitsfrage'], "text"),
                       GetSQLValueString($_POST['geheimeantwort'], "text"));

  mysql_select_db($database_MySQL_1, $MySQL_1);
  $Result1 = mysql_query($insertSQL, $MySQL_1) or die(mysql_error());

  $insertGoTo = "../index.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
?>
 
Ich hab ne Datenbank hab aber noch nie mit der gearbeitet die sieht so aus

Schön das du eine Db hast was willst du uns damit sagen?
Oder sollen wir für dich den Sql befehl schreiben

PHP:
$Slq="SELECT COUNT(username) as Anzahl FROM user WHERE username='".$username."' ";

Mfg Splasch
 

Neue Beiträge

Zurück