kostenloser Webspace werbefrei: lima-city


Problem bei Login und Register ...

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    f*************s

    Hey Leute,
    Ich hab da mal was für euch :D
    Irgendwie kann man eingeben was man will :) Und man ist eingeloggt ..
    /* IN DER MYSQL MUSS benutzername, benutzerpasswort, benutzeremail, benutzergeschlecht */
    include("includes/mysql.php");
    
    if (isset($_POST["sendlogin"])) {
    	/* Anmeldungsdaten */
    	$user = $_POST["username"] ;
    	$password = $_POST["passwort"] ;
        /* Anmeldungsdaten */
    	
    	/* Anmeldungscheck */
    	
        $abfrage = "SELECT benutzername, benutzerpasswort, benutzeremail FROM '$datenbankname' WHERE benutzername LIKE '$user' LIMIT 1"; 
    	$ergebnis = mysql_query($abfrage);
    	$row = mysql_fetch_object($ergebnis);
    	
    	if($row->benutzerpasswort =="$password")											
    		{
    		session_start();									
    		$_SESSION["name"] = $user;
    		$_SESSION["passwort"] = $password;
    		$_SESSION['angemeldet'] = true;
    		echo"ja du bist eingeloggt $user";
    		}
    		else
    		{
    		echo "Dein Passwort war falsch!";
    		}
    	/* Anmeldungscheck */
    }
    	/* Registrieren */
    if (isset($_POST["sendreg"])) { 
    	$user = $_POST["username"] ;
    	$password = $_POST["passwort"] ;
    	$password2 = $_POST["passwort2"] ;
    	$email = $_POST["email"] ;
    	$geschlecht = $_POST["geschlecht"] ;
    	
    	if($user=="" OR $password=="" OR $password2=="" OR $email=="" OR $geschlecht="")
    	{
    		echo "Fülle erst alle Felder aus!";
    	}
    	else
    	{ 
    		if($password=="$password2")
    		{
    			session_start();									
    			$_SESSION["name"] = $name;
    			$_SESSION["passwort"] = $passwort;
    			$_SESSION["email"] = $email;
    			$_SESSION["geschlecht"] = $geschlecht;
    			$_SESSION['angemeldet'] = true;
    		$register = mysql_query("INSERT INTO users VALUES ('','$user','$password','$email','$geschlecht')"); 
    		$nachricht = "Du hast dich erfolgreich registriert.";
    		$nachricht = wordwrap($nachricht, 70);
    		mail('$email', 'Registration', $nachricht);
    		}
    		else{
    			echo "Die beiden angegebenen Passwörter stimmten nicht überein.";
    		}
    	}
    }
    	/* Registrieren */
    ?>

    Keine Sorge, Datenbank Verbindung besteht. Falls ihr noch andere Fehler sieht ... bitte melden.
    Ich bin dankbar für jede Hilfe !
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    1) warum verwendest du
    WHERE benutzername LIKE '$user'
    und nicht
    WHERE benutzername = '$user'
    ?

    2) du vergisst die Eingaben zu escapen:
    $user = mysql_real_escape_string($_POST["username"]);
    $password = mysql_real_escape_string($_POST["passwort"]);
    Das gleiche gillt natürlich auch beim registrieren.

    3) warum verwendest du z.b.
    $password=="$password2"
    und nicht einfach
    $password == $password2
    ?

    4) beim INSERT INTO solltest du die Feldnamen angeben, sonst verwirrst du nur dich und alle anderen, also z.b so:
    INSERT INTO users (username, password) VALUE ('Name', 'Passwort')


    5) hast du mal mit phpMyAdmin o.ä. in deiner Datenbank nachgeschaut ob alles richtig eingetragen wurde?
  4. Setz das mal nach dem Festlegen der Variable $abfrage ein:
    die(var_dump($abfrage));

    Und probier mal den Query, der ausgegeben wird, direkt in MySQL einzugeben.
  5. Du testest nicht ob die Query überhaupt erfolgreich warst ausserdem würde ich noch prüfen ob die übergebenen Formulardaten nicht leer sind mindestens aber das Passwort oder du prüfst das Passwort direkt in der Query.

    Also etwa so:

    if ($ergebnis = mysql_query($abfrage)) {
    	$row = mysql_fetch_object($ergebnis);
    	
    	if(($row->benutzerpasswort == $password) And (isset($password))) 											
    		{
    		session_start();									
    		$_SESSION["name"] = $user;
    		$_SESSION["passwort"] = $password;
    		$_SESSION['angemeldet'] = true;
    		echo"ja du bist eingeloggt $user";
    		}
    		else
    		{
    		echo "Dein Passwort war falsch!";
    		} 
    }


    Beitrag zuletzt geändert: 22.7.2012 20:29:42 von vctb
  6. Autor dieses Themas

    f*************s

    Ich hab das gemacht was ihr gepostet hat...
    Das von Hack-Life hat nicht funktioniert und das von vctb, da hab ich das Problem jetzt erscheint das garnichts mehr :D
  7. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    fabian-meinders schrieb:
    Das von Hack-Life hat nicht funktioniert und das von vctb, da hab ich das Problem jetzt erscheint das garnichts mehr :D
    Was genau hast du gemacht (wie hast du den Quellcode umgebaut, eventuell nochmals hier posten)?

    Eine weiße Seite deutet auf einen Fehler im PHP hin. Aktivier mal die Fehlerausgabe (Beschreibung) und sag was dann auf der Seite steht.

    Hast du schon mit phpMyAdmin nachgeschaut was in der Tabelle tatsächlich steht?

    Übrigens war das "INSERT"-Statement von mir nur ein Beispiel um zu verdeutlichen was ich meine... also nicht 1:1 so einbauen! ;-)
  8. Autor dieses Themas

    f*************s

    Ja das Insert änder ich später nochmal :) Ihr könnt mein Script life auf fabi-me.de unter anmelden anschauen!
    Ach und die phpmyadmin tabellen stimmen auch überein

    HIer einmal ein Svreen
    http://www.imagebanana.com/view/gigbf2oc/phpmyadmin.png

    <?php
    /* IN DER MYSQL MUSS benutzername, benutzerpasswort, benutzeremail, benutzergeschlecht */
    include("includes/mysql.php");
    
    if (isset($_POST["sendlogin"])) {
    	/* Anmeldungsdaten */
    	$user = mysql_real_escape_string($_POST["username"]);
    	$password = mysql_real_escape_string($_POST["passwort"]);
        /* Anmeldungsdaten */
    	
    	/* Anmeldungscheck */
    	
        $abfrage = "SELECT benutzername, benutzerpasswort FROM '$datenbankname' WHERE benutzername '$user' LIMIT 1"; 
    	$ergebnis = mysql_query($abfrage);
    	$row = mysql_fetch_object($ergebnis);
    	
    	if ($ergebnis = mysql_query($abfrage)) {
    	$row = mysql_fetch_object($ergebnis);
    	
    	if(($row->benutzerpasswort == $password) And (isset($password))) 											
    		{
    		session_start();									
    		$_SESSION["name"] = $user;
    		$_SESSION["passwort"] = $password;
    		$_SESSION['angemeldet'] = true;
    		echo"ja du bist eingeloggt $user";
    		}
    		else
    		{
    		echo "Dein Passwort war falsch!";
    		} 
    }
    	/* Anmeldungscheck */
    }
    	/* Registrieren */
    if (isset($_POST["sendreg"])) { 
    	$user = $_POST["username"] ;
    	$password = $_POST["passwort"] ;
    	$password2 = $_POST["passwort2"] ;
    	$email = $_POST["email"] ;
    	$geschlecht = $_POST["geschlecht"] ;
    	
    	if($user=="" OR $password=="" OR $password2=="" OR $email=="" OR $geschlecht="")
    	{
    		echo "Fülle erst alle Felder aus!";
    	}
    	else
    	{ 
    		if($password=="$password2")
    		{
    			session_start();									
    			$_SESSION["name"] = $name;
    			$_SESSION["passwort"] = $passwort;
    			$_SESSION["email"] = $email;
    			$_SESSION["geschlecht"] = $geschlecht;
    			$_SESSION['angemeldet'] = true;
    		$register = mysql_query("INSERT INTO users VALUES ('','$user','$password','$email','$geschlecht')"); 
    		$nachricht = "Du hast dich erfolgreich registriert.";
    		$nachricht = wordwrap($nachricht, 70);
    		mail('$email', 'Registration', $nachricht);
    		}
    		else{
    			echo "Die beiden angegebenen Passwörter stimmten nicht überein.";
    		}
    	}
    }
    	/* Registrieren */
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <link rel="shortcut icon" href="images/favicon.png" />
    <link rel="stylesheet" type="text/css" href="style.css.php" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title><?php include("includes/titel.php"); ?></title>
    </head>
    <body>
    <div id="homepage">
    	<div id="header">
    	<a href="index.php"><?php include("includes/titel.php"); ?></a>
    	</div>
    		<div id="navi">
    		<?php include("includes/menuoben.php"); ?>
       </div>
    <div id="content">
    <div id="contentmenu">
    		<?php include("includes/menurechts.php"); ?>
    </div>
    <div id="contenttext">
    Wenn Sie sich anmelden, k&ouml;nnen sie hier mehr machen als andere Personen.<br/><br/>
    
    &bull; Anmelden
    <form action="login.php" method="post">
       Benutzername:<br/> <input type="text" align="center" name="username" value="Max Mustermann" onfocus="this.value = ''"/> <br />
       Passwort:<br /> <input type="password" name="passwort" onfocus="this.value = ''" /> <br /> <br />
       <input class="inputanmelden" type="submit" name="sendlogin" value="Anmelden" />
      </form>
    &bull; Registrieren
    <form action="login.php" method="post">
       Benutzername:<br/> <input type="text" align="center" name="username" value="Max Mustermann" onfocus="this.value = ''" /> <br />
       Passwort:<br /> <input type="password" name="passwort" onfocus="this.value = ''" /> <br />
       Passwort:<br /> <input type="password" name="passwort2" onfocus="this.value = ''" /> <br />
       Email:<br/> <input type="text" align="center" name="email" onfocus="this.value = ''" /> <br />
       Geschlecht:<br/> &bull; M&auml;nnlich <input type="radio" name="geschlecht" value="Mann"><br />
    					&bull; Weiblich<input type="radio" name="geschlecht" value="Frau"><br /><br />
       <input class="inputanmelden" type="submit" name="sendreg" value="Registrieren" />
      </form>
    </div>
    </div>
    
    </div>
    </body>
    </html>
  9. Wenn garnichts mehr ausgegeben wird liegt es daran dass an der Query etwas nicht stimmt, bzw die übergebenen Daten stimmen nicht.

    Beitrag zuletzt geändert: 22.7.2012 21:27:32 von vctb
  10. Hast du es mal mit meinem var_dump probiert?
  11. Autor dieses Themas

    f*************s

    vctb .... daran kann was dran sein ? wie mache ich das denn
  12. Wie schön mein Beitrag doch überlesen wird :D

    Genau damit kannst du den Query überprüfen ...
  13. Erstmal hast du einen Fehler beim einbinden des Datenbankname, dieser darf nicht in Hochkomma sein, er muss entweder in Backticks ` (Links neben Backspace, + Shift) sein oder einfach ohne angegeben werden. Außerdem hoffe ich hast du den Tabellennamen angegeben und nicht den Datenbanknamen. Dieser muss über

    mysql_select_db('Datenbankname', $sqllink);


    ausgewählt werden.

    $abfrage = "SELECT `benutzername`, `benutzerpasswort` FROM `$datenbankname` WHERE `benutzername` = '$user'";
    	if(($ergebnis = mysql_query($abfrage)) And (!empty($user)) And (!empty($password))) ) {
    		$row = mysql_fetch_object($ergebnis);
    	
    		if($row->benutzerpasswort == $password) 											
    			{
    			session_start();									
    			$_SESSION["name"] = $user;
    			$_SESSION["passwort"] = $password;
    			$_SESSION['angemeldet'] = true;
    			echo"ja du bist eingeloggt $user";
    			}
    			else
    			{
    			echo "Dein Passwort war falsch!";
    			}
    	} else {
    		echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
    	}


    PS: habe noch 2 Fehler gefunden und korrigiert!

    Beitrag zuletzt geändert: 22.7.2012 22:55:34 von vctb
  14. fabian-meinders schrieb:
    ... /* Anmeldungscheck */
    $abfrage = "SELECT benutzername, benutzerpasswort FROM '$datenbankname' WHERE benutzername '$user' LIMIT 1";
    ...
    ich würde mal das probieren:
    $abfrage = "SELECT benutzername, benutzerpasswort FROM $datenbankname WHERE benutzername='$user' LIMIT 1";


    vctb schrieb:Erstmal hast du einen Fehler beim einbinden des Datenbankname, dieser darf nicht in Hochkomma sein, er muss entweder in Backticks ` (Links neben Backspace, + Shift) sein oder einfach ohne angegeben werden. ...
    genauer backticks brauchst nur für geschützte ausdrücke (zb. wenn die datenbank-/tabellen-/spaltenname - blöder weise - `alter` o. so heißt, aber nicht wenn es um altern handelt ;).
    hier ist so eine liste.

    Beitrag zuletzt geändert: 22.7.2012 23:48:02 von czibere
  15. Autor dieses Themas

    f*************s

    Ich habe jezt alles gelesen ...
    Bei meinem Script siehst momentan so aus ;)
    /* IN DER MYSQL MUSS benutzername, benutzerpasswort, benutzeremail, benutzergeschlecht */
    include("includes/mysql.php");
    
    if (isset($_POST["sendlogin"])) {
    	/* Anmeldungsdaten */
    	$user = $_POST["username"];
    	$password = $_POST["passwort"];
    	
    	$abfrage = "SELECT benutzername, benutzerpasswort FROM `users` WHERE benutzername LIKE '$users' LIMIT 1";
    	$ergebnis = mysql_query($abfrage);
    	$row = mysql_fetch_object($ergebnis);
    	if($row->benutzerpasswort == $password)											
    		{
    		session_start();									
    		$_SESSION["username"] = $user;
    		$_SESSION['angemeldet'] = true;
    		echo "<div style='width:300px; height:200px; background-color:red; color:white;'>Joa das klappt!</div>";
    		}
    	else
    		{
    		echo "<div style='width:300px; height:200px; background-color:red; color:white;'>Ging nicht xD</div>";
    		} 
    }
    	
    	/* Registrieren */
    if (isset($_POST["sendreg"])) { 
    	$user = $_POST["username"] ;
    	$password = $_POST["passwort"] ;
    	$password2 = $_POST["passwort2"] ;
    	$email = $_POST["email"] ;
    	$geschlecht = $_POST["geschlecht"] ;
    	
    	if($user=="" OR $password=="" OR $password2=="" OR $email=="" OR $geschlecht="")
    	{
    		echo "Fülle erst alle Felder aus!";
    	}
    	else
    	{ 
    		if($password=="$password2")
    		{
    			session_start();									
    			$_SESSION["name"] = $name;
    			$_SESSION["passwort"] = $passwort;
    			$_SESSION["email"] = $email;
    			$_SESSION["geschlecht"] = $geschlecht;
    			$_SESSION['angemeldet'] = true;
    		$register = mysql_query("INSERT INTO users VALUES ('','$user','$password','$email','$geschlecht')"); 
    		$nachricht = "Du hast dich erfolgreich registriert.";
    		$nachricht = wordwrap($nachricht, 70);
    		mail('$email', 'Registration', $nachricht);
    		}
    		else{
    			echo "Die beiden angegebenen Passwörter stimmten nicht überein.";
    		}
    	}
    }
    	/* Registrieren */
    ?>

    SOOO!!! Jetzt kommt aber das coole ich hab eine andere Seite parallel laufen und da funktionierts...
    Das funktionierende:
    <?php
    include("mysql.php");
    	$verbindung = mysql_connect($mysql_host, $mysql_user , $mysql_password)
    	or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
    	mysql_select_db(UNWICHTIG) or die ("Datenbank konnte nicht ausgewhlt werden");
    
    function login()															
    {
    	$host = htmlspecialchars($_SERVER["HTTP_HOST"]);
    	$uri = rtrim(dirname(htmlspecialchars($_SERVER['PHP_SELF'])), "/\\");
    	$extra = "index.php";
    	$name = $_POST["name"];													
    	$passwort = $_POST["passwort"];							
    	
    	$abfrage = "SELECT name, passwort, status FROM users WHERE name LIKE '$name' LIMIT 1"; 
    	$ergebnis = mysql_query($abfrage);
    	$row = mysql_fetch_object($ergebnis);
    	$status = $row->status ;
    	if($row->passwort == $passwort)											
    		{
    		session_start();									
    		$_SESSION["username"] = $name;
    		$_SESSION["status"] = $status;
    		$_SESSION['angemeldet'] = true;
    		}
    	else
    		{
    		echo " Deine Anmeldung war nicht korrekt! <form method='post' action='index.php'>Dein Username:<br><input type='text' size='24' maxlength='50' name='name'><br><br/>Dein Passwort:<br/> <input type='password' size='24' maxlength='50' name='passwort'><br><input type='submit' name='send' value='send'> </form>";
    		} 
    }
    
    if (isset($_POST["send"])) { 
    	login();
    
    } else {
    	echo "<form method='post' action='index.php'>Dein Username:<br><input type='text' size='24' maxlength='50' name='name'><br><br/>Dein Passwort:<br/> <input type='password' size='24' maxlength='50' name='passwort'><br><input type='submit' name='send' value='send'> </form> ";
    }
    
    if (isset($_SESSION["angemeldet"])) {
    	$host = htmlspecialchars($_SERVER["HTTP_HOST"]);
    	$uri = rtrim(dirname(htmlspecialchars($_SERVER['PHP_SELF'])), "/\\");
    	header("Location: http://$host$uri/panel.php");
    }
    	mysql_close($verbindung);
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Unbenanntes Dokument</title>
    </head>
    <body>
    </body>
    </html>
  16. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!