• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit Php und MySQL, kriege keinen funktionierenden Code hin!?

Bengman

Mitglied
Hey, Ich habe es geschafft, dass man sich registrieren kann und es gibt auch in der registration abfragen, ob z.B. die Email richtig ist, oder so, aber was ich nicht hinkriege ist zum Beispiel zu überprüfen, ob die Email schon in der Datenbank ist! Und das mit dem Anmelden kriege Ich auch nicht hin, Ich weiß nicht wie Ich Daten aus ner Tabelle überprüfen kann, Ich finde einfach kein vernünftiges Tut...

Kann mir einer helfen?:(

Ich kriegs ums verrecken nicht hin...

Mein bisheriger Code zum anmelden ( bei dem nicht geprüft wird, ob es die Daten schon in der Datenbank gibt )
PHP:
<form action="registrieren.php?page=erfolg" method="post">
<h3>Registrieren</h3>
<h4>EMail:</h4><input type="text" name="email"><br />
<h4>Bentuzername:</h4><input type="text" name="benutzername"><br />
<h4>Passwort:</h4><input type="password" name="passwort"><br />
<h4>Passwort wiederholen:</h4><input type="password" name="passwort2"><br /><br />
<input class="submit" type="submit" name="erfolg" value="Registrieren"><br /><br />Achtung! Wenn Sie auf<br />"Registrieren" klicken,
stimmen Sie automatisch den <a href="/regeln.html">Richtlinien</a> zu!
</form>
<?php
$email = $_POST["email"];
$benutzername = $_POST["benutzername"];
$passwort = $_POST["passwort"];
$passwort2 = $_POST["passwort2"];
$einverstanden = $_POST["einverstanden"];


if(isset($_GET["page"])) {

    function check_email($email) {
    if(!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
        return false;
    }
    $email_array = explode("@", $email);
    $local_array = explode(".", $email_array[0]);
    for ($i = 0; $i < sizeof($local_array); $i++) {
        if(!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) {
            return false;
        }
    }
    if(!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) {
        $domain_array = explode(".", $email_array[1]);
        if(sizeof($domain_array) < 2) {
            return false;
        }
        for($i = 0; $i < sizeof($domain_array); $i++) {
            if(!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
                return false;
            }
        }
    }
    return true;
} 
if(check_email($email) == false)
        {
?>
              <section>
<form action="registrieren.php?page=erfolg" method="post">
<h4>EMail:</h4><input type="text" name="email"><br /> <?php echo "Emailadresse existiert nicht!" ?>
<h4>Bentuzername:</h4><input type="text" name="benutzername"><br />
<h4>Passwort:</h4><input type="password" name="passwort"><br />
<h4>Passwort wiederholen:</h4><input type="password" name="passwort2"><br />
<br />
<hr />
<input type="submit" name="erfolg" value="Registrieren"> Achtung! Wenn Sie auf "Registrieren" klicken,
stimmen sie automatisch den <a href="/regeln.html">Richtlinien</a> zu!<br />
</form>
</section>
<?php
        }
    $emailcontrol = 0;
  $abfrage = "  SELECT email FROM datennutzer WHERE email = '$email'";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_object($ergebnis)) { $emailcontrol++; }
  if($control != 0) {
?>
    <section>
<form action="registrieren.php?page=erfolg" method="post">
<h4>EMail:</h4><input type="text" name="email"><br /> <?php echo "Emailadresse schon vergeben!" ?>
<h4>Bentuzername:</h4><input type="text" name="benutzername"><br />
<h4>Passwort:</h4><input type="password" name="passwort"><br />
<h4>Passwort wiederholen:</h4><input type="password" name="passwort2"><br />
<br />
<hr />
<input type="submit" name="erfolg" value="Registrieren"> Achtung! Wenn Sie auf "Registrieren" klicken,
stimmen sie automatisch den <a href="/regeln.html">Richtlinien</a> zu!<br />
</form>
</section>
<?php

         }elseif($benutzername =="") {
?>
               <section>
<form action="registrieren.php?page=erfolg" method="post">
<h4>EMail:</h4><input type="text" name="email"><br />
<h4>Bentuzername:</h4><input type="text" name="benutzername"><br /> <?php echo "Du hast keinen benutzernamen angegeben!"; ?>
<h4>Passwort:</h4><input type="password" name="passwort"><br />
<h4>Passwort wiederholen:</h4><input type="password" name="passwort2"><br />
<br />
<hr />
<input type="submit" name="erfolg" value="Registrieren"> Achtung! Wenn Sie auf "Registrieren" klicken,
stimmen sie automatisch den <a href="/regeln.html">Richtlinien</a> zu!<br />
</form>
</section>
<?php
  }elseif($passwort != $passwort2 or $passwort =="" or $passwort2 =="") {
?>
                   <section>
<form action="registrieren.php?page=erfolg" method="post">
<h4>EMail:</h4><input type="text" name="email"><br />
<h4>Bentuzername:</h4><input type="text" name="benutzername"><br />
<h4>Passwort:</h4><input type="password" name="passwort"><br /> <?php echo "Passw&ouml;rter stimmen nicht &uuml;berein"; ?>
<h4>Passwort wiederholen:</h4><input type="password" name="passwort2"><br />
<br />
<hr />
<input type="submit" name="erfolg" value="Registrieren"> Achtung! Wenn Sie auf "Registrieren" klicken,
stimmen sie automatisch den <a href="/regeln.html">Richtlinien</a> zu!<br />
</form>
</section>
<?php
  }

  $control = 0;
  $abfrage = "  SELECT benutzername FROM datennutzer WHERE benutzername = '$benutzername'";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_object($ergebnis)) { $control++; }
  if($control != 0) {
?>
                       <section>
<form action="registrieren.php?page=erfolg" method="post">
<h4>EMail:</h4><input type="text" name="email"><br />
<h4>Bentuzername:</h4><input type="text" name="benutzername"><br /> <?php echo "Bentuzernamen gibt es schon!"; ?>
<h4>Passwort:</h4><input type="password" name="passwort"><br />
<h4>Passwort wiederholen:</h4><input type="password" name="passwort2"><br />
<br />
<hr />
<input type="submit" name="erfolg" value="Registrieren"> Achtung! Wenn Sie auf "Registrieren" klicken,
stimmen sie automatisch den <a href="/regeln.html">Richtlinien</a> zu!<br />
</form>
</section>
<?php
  }elseif($email == true and $benutzername != "" and $control ==0 and $passwort !="" and $passwort!="" and $passwort == $passwort2) {

    $passwort = md5($_POST["passwort"]);

    $kontoinfos = "INSERT INTO datennutzer
    (email, benutzername, passwort) VALUES ('$email', '$benutzername', '$passwort')";

    $eintragen = mysql_query($kontoinfos);

    if($eintragen =true) {
      echo "Perfekt! Du wirst jetzt weitergeleitet! <meta http-equiv=\"refresh\" content=\"3; URL=http:/anmelden.php\">";
    }else {
      echo "Registrierung fehlgeschlagen, bitte versuche es später erneut!";
    }
  }
}

mysqli_close($mysqlconnect);

Und anmelden [ klappt nicht, egal was man eingibt, man kommt immer auf die "loginseite"
PHP:
<form action="index.php?save" method="post">
<h3>Anmelden</h3>
<h4>Benutzername:</h4><input type="text" name="benutzername"><br />
<h4>Passwort:</h4><input type="password" name="passwort"><br/><br />
<input class="submit" type="submit" value="Anmelden"><br /><br >
Noch nicht registriert?
Hier <a href="registrieren.php">registrieren!</a>
</form>
<?php
$benutzername = ($_POST["benutzername"]);
$passwort = md5($_POST["passwort"]);

$control = 0;
  $abfrage = "  SELECT benutzername, passwort FROM datennutzer WHERE benutzername = '$benutzername' AND passwort = '$passwort'";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_object($ergebnis)) { $control++; }


  if($control != 0) {
    $_SESSION["benutzername"] = $benutzername;
    $verhalten = 1;
  }else {
    $verhalten = 2;
  }

mysql_close($mysqlconnect);
 
Werbung:
Bitte MySQLi / PDO anstatt MySQL benutzen. Ich sehe auch in keiner Zeile, das du irgendwo versuchst eine Verbindung zu deiner Datenbank aufzubauen. Ich sehe nur ein mysql_close und ein mysqli_close .
 
Werbung:
Oh, Ok. Die Verbindung zur Datenbank habe Ich nicht mit eigefügt, ist ja auch relativ unwichtig.
Wüsste nicht warum die Verbindung zur Datenbank unwichtig wäre, evtl. liegt da schon der Fehler. Ich weiß auch nicht woher dein Quellcode rührt. Sieht sehr nach einem veralteten Tutorial aus..

Habe lange ned mehr mit mysqli gearbeitet, aber so müsste es eig. funktionieren. Musst du natürlich an deine Formulare usw. anpassen... Sollte selbstverständlich sein.
PHP:
$salt = 'e48e13207341b6bffb7fb1622282247b';

$con = mysqli_connect("hostname","user","passwd","database");

if(mysqli_connect_error()) {
    die(mysqli_connect_error());
}

$username = mysqli_real_escape_string($con, $_POST['username']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$password = sha1($password . $salt);


$query = "SELECT username, password FROM users WHERE username='$email' AND password='$password'";
$result = mysqli_query($con, $query);
$rows = mysqli_num_rows($result);

if($rows === 1) {
    echo "Sie haben sich erfolgreich eingeloggt.";
} else {
    echo "Benutzername und/oder Passwort falsch.";
}
 
Zurück
Oben