WIe muss ich das machen?

wingman

Erfahrenes Mitglied
Hallo

Habe selber etwas programmiert aber jetzt meldet es immer $benutzername gibt es schon in meiner Liste
Aber das stimmt gar nicht!

Sage mal genau was ich will

Das Password wird überprüfft ob beide Passwörder überein stimmen und obs der user schon in meiner Datenbank schon gibt.

Wenn beiden stimmen sollte es in die Datenbank reinschreiben

Bitte hilft mir das es geht

Password nicht übereinstimmt sollte das ausgeben
Password stimmt nicht überrein!

Wenn den Benutzer in meiner Datenbank schon gibt sollte es das rausgeben!
$benutzername gibt es schon in meiner Liste!


PHP:
<?

if(!isset($_POST[abschicken])) {
include ('add_user.php');
exit;
}

include ('config.php');

$sql ="SELECT benutzername FROM users WHERE benutzername='$benutzername'";
$res = mysql_query($sql);
$gefunden=mysql_num_rows($res);

if($password == '$password2') 
{
if($gefunden == 0)
{
$sql = "INSERT INTO users VALUES ('$benutzername', '$password')";
$ausgabe ="$benutzername wurde erfolgreich gespeichert...!";
} else $ausgabe ="Password stimmt nicht überrein!";
} else $ausgabe ="$benutzername gibt es schon in meiner Liste";


echo "$ausgabe";

?>
 
Möglicherweise solltest du's einfach etwas besser strukturieren:
PHP:
<?php
  if( !isset($_POST['abschicken']) ) {
    include('add_user.php');
    exit;
  }

  include('config.php');

  $sql ="SELECT benutzername FROM users WHERE benutzername='$benutzername'";
  $res = mysql_query($sql);
  $gefunden = mysql_num_rows($res);

  if( $password == $password2 ) {
    if( $gefunden == 0 ) {
      $sql = "INSERT INTO users VALUES ('$benutzername', '$password')";
      $ausgabe ="$benutzername wurde erfolgreich gespeichert...!";
    } else {
      $ausgabe = "$benutzername gibt es schon in meiner Liste";
   }
  } else {
    $ausgabe = "Password stimmt nicht überrein!";
  }

  echo $ausgabe;

?>
 
Arbeite mal mit
PHP:
error_reporting(E_ALL)
.
Und schaue auf http://pear.php.net mal unter Code Einrücken ,erleichtert das Lesen doch ungemein.
Dein Fehler ,den ich erkennen konnte ,war es das du eine Variable in einfache Anführungszeichen gesetzt hast ,dann wird diese als String behandelt.

PHP:
if(!isset($_POST['abschicken']))
{
    include ("add_user.php");
    exit;
}

include ("config.php");

$sql ="SELECT benutzername FROM users WHERE benutzername='".$benutzername."'";
$res = mysql_query($sql);
$gefunden=mysql_num_rows($res);

if($password == ''.$password2.'') //wird ansonsten als STRING behandekt
{
    if($gefunden == 0)
    {    
        $sql = "INSERT INTO users VALUES ('$benutzername', '$password')";
        $ausgabe ="$benutzername wurde erfolgreich gespeichert...!";
    }else{ 
    $ausgabe ="Password stimmt nicht überrein!";
    }
    
}else{
 $ausgabe ="$benutzername gibt es schon in meiner Liste";
}


echo $ausgabe; //Variablen gehören nicht in Anführungszeichen!

Leider weiss ihc nicht über den Rest Code bescheid ,aber soweit sollte es gehen.

Edit: Mist ,hätte ich mal refresht und sofort geantwortet!
 
Hallo

Habe noch ein Problem

Es schreibt nicht in die Datenbank sonst geht alles

Aktuelle Version

PHP:
<?

if(!isset($_POST['abschicken'])) 
{ 
    include ("add_user.php"); 
    exit; 
} 

$_POST[benutzername]	= $benutzername;
$_POST[password]	= $password;
$_POST[password2]	= $password2;

include ('config.php'); 
 
$sql ="SELECT benutzername FROM users WHERE benutzername='".$benutzername."'"; 
$res = mysql_query($sql); 
$gefunden=mysql_num_rows($res); 
 
if($password == ''.$password2.'') 
{ 
    if($gefunden == 0) 
    {     
        $sql= "INSERT INTO `users` ( `benutzername` , `password` )";  // Aber es speichert nicht in die Datenbank!
        $ausgabe ="$benutzername wurde erfolgreich  gespeichert...!";  // Das gibt es aus!
    }else{ 
    $ausgabe ="$benutzername gibt es schon in meiner Liste";
    } 
     
}else{ 
 $ausgabe ="Password stimmt nicht überrein!"; 
} 
 
 
echo $ausgabe;

Gruss Dave
 
Es liegt daran, dass du zwar die Abfrage formulierst, sie aber nicht abschickst:
PHP:
<?php
  if( !isset($_POST['abschicken']) ) {
    include('add_user.php');
    exit;
  }

  include('config.php');


  $benutzername = ( isset($_POST['benutzername']) && trim($_POST['benutzername'])!='' )
    ?  mysql_escape_string(trim($_POST['benutzername']))
    :  FALSE;
  $password = ( isset($_POST['password']) && trim($_POST['password'])!='' )
    ?  mysql_escape_string(trim($_POST['password']))
    :  FALSE;
  $password2 = ( isset($_POST['password2']) && trim($_POST['password2'])!='' )
    ?  mysql_escape_string(trim($_POST['password2']))
    :  FALSE;

  if( !$benutzername || !$password || !$password2 )
    echo 'Eingaben inkorrekt';
  }

  $sql ="SELECT benutzername FROM users WHERE benutzername='".$benutzername."' LIMIT 1";
  $res = mysql_query($sql);
  $gefunden = mysql_num_rows($res);

  if( $password == $password2 ) {
    if( $gefunden <= 0 ) {
      $sql = "INSERT INTO users VALUES ('".$benutzername."', '".$password."')";
      if( mysql_query($sql) {
        $ausgabe = $benutzername.' wurde erfolgreich gespeichert...!';
      }
    } else {
      $ausgabe = $benutzername.' gibt es schon in meiner Liste'
   }
  } else {
    $ausgabe = 'Password stimmt nicht überrein!';
  }

  echo $ausgabe;

?>
 
Vielen Dank für deine Hilfe hat aber noch ein Fehler bei Zeile 22

Kannst du mir noch erklären was genau hier macht.

PHP:
<?php 
  if( !isset($_POST['abschicken']) ) { 
    include('add_user.php'); 
    exit; 
  } 
 
  include('config.php'); 
 
 // Was wird hier gemacht, bin eben anfänger und intressiert mich!
  $benutzername = ( isset($_POST['benutzername']) && trim($_POST['benutzername'])!='' ) 
    ?  mysql_escape_string(trim($_POST['benutzername'])) 
    :  FALSE; 
  $password = ( isset($_POST['password']) && trim($_POST['password'])!='' ) 
    ?  mysql_escape_string(trim($_POST['password'])) 
    :  FALSE; 
  $password2 = ( isset($_POST['password2']) && trim($_POST['password2'])!='' ) 
    ?  mysql_escape_string(trim($_POST['password2'])) 
    :  FALSE; 
 
  if( !$benutzername || !$password || !$password2 ) 
    echo 'Eingaben inkorrekt'; 
    }  // Hier ist Zeile 22
 
  $sql ="SELECT benutzername FROM users WHERE benutzername='".$benutzername."' LIMIT 1"; 
  $res = mysql_query($sql); 
  $gefunden = mysql_num_rows($res); 
 
  if( $password == $password2 ) { 
    if( $gefunden <= 0 ) { 
      $sql = "INSERT INTO users VALUES ('".$benutzername."', '".$password."')"; 
      if( mysql_query($sql) { 
        $ausgabe = $benutzername.' wurde erfolgreich gespeichert...!'; 
      } 
    } else { 
      $ausgabe = $benutzername.' gibt es schon in meiner Liste' 
   } 
  } else { 
    $ausgabe = 'Password stimmt nicht überrein!'; 
  } 
 
  echo $ausgabe; 
 
?>

Gruss Dave
 
Zuletzt bearbeitet:
if( !$benutzername || !$password || !$password2 )
echo 'Eingaben inkorrekt';
} // Hier ist Zeile 22

Bei der if Anweisung fehlt die öffnende Klammer.
Mit kurzem überlegen hättest du das aber sicher auch selbst rausgefunden ;).

Viele Grüße,

Stefan
 
Ja stimmt

Aber bei der Zeile 31 gibt es auch eine Fehler aber dort ist es gesetzt komisch ?

PHP:
<?if( $password == $password2 ) { 
    if( $gefunden <= 0 ) { 
      $sql = "INSERT INTO users VALUES ('".$benutzername."', '".$password."')"; 
      if( mysql_query($sql) {  //Zeile 31 ist doch aber richtig?
        $ausgabe = $benutzername.' wurde erfolgreich  gespeichert...!';  // Hier fehlt auch noch eine Punkt
      } 
    } else { 
      $ausgabe = $benutzername.' gibt es schon in meiner Liste'   // Hier fehlt auch noch eine Punkt
   } 
  } else { 
    $ausgabe = 'Password stimmt nicht überrein!'; 
  } 
 
  echo $ausgabe; 
 
?>

Gruss Dave
 
Original geschrieben von wingman
Ja stimmt

Aber bei der Zeile 31 gibt es auch eine Fehler aber dort ist es gesetzt komisch ?

PHP:
<?if( $password == $password2 ) { 
    if( $gefunden <= 0 ) { 
      $sql = "INSERT INTO users VALUES ('".$benutzername."', '".$password."')"; 
      if( mysql_query($sql) {  //Zeile 31 ist doch aber richtig?
        $ausgabe = $benutzername.' wurde erfolgreich  gespeichert...!';  // Hier fehlt auch noch eine Punkt
      } 
    } else { 
      $ausgabe = $benutzername.' gibt es schon in meiner Liste'   // Hier fehlt auch noch eine Punkt
   } 
  } else { 
    $ausgabe = 'Password stimmt nicht überrein!'; 
  } 
 
  echo $ausgabe; 
 
?>


Gruss Dave

Es wäre geschickt wenn du jeweils die Fehlermeldung dazu schreiben würdest. Dann müsste man nicht raten. Fehler ist halt nicht gleich Fehler.

Auch würde ich keine singlequotes (') bei den echos benutzen sondern doublequotes(").


Zu dem in Zeile 31:
Da gibt es gleich mehrere Fehler. Zum einen müssen die Spaltennamen in die Werte eingetragen werden auch benannt werden.
Also
INSERT INTO tabelle (spaltenname1, spaltenname2) VALUES ('wert1', 'wert2')

Zum anderen fehlt bei der if Anweisung doch ne Klammer.
Bei if(mysql_query($sql) fehlt schlicht und einfach eine schließende.

Desweiteren schreib einfach
$ausgabe = "$benutzername gibt es schon in meiner Liste";
statt
$ausgabe = $benutzername.' gibt es schon in meiner Liste';

Achso, da fehlt auch noch ein Strichpunkt.


Würde mir an deiner Stelle etwas mehr Zeit bei der Fehlersuche lassen. Denn so wie es aussieht verstehst du ja schon die Ansätze.


Viele Grüße Stefan
 
Zurück