kostenloser Webspace werbefrei: lima-city


Hilfe mit Login Skript

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    uebungen-till

    uebungen-till hat kostenlosen Webspace.

    Hallo :wave:
    ich habe ein kleines Problem mit meinem Login Skript
    uebungen-till.lima-city.de

    Die Registrierung funktioniert einwandfrei aber auf der Login Seite kommt nach eingabe von E-Mail und Passwort die Info, dass E-Mail oder Passwort ungültig sind.

    Nutzername(db) und Passwort(db) sind nicht die originalen Zugangstaten.

    <?php 
    session_start();
    $pdo = new PDO('mysql:host=91.216.248.2;dbname=db_356572_3', 'Nutzername(db)', 'Passwort(db)');
     
    if(isset($_GET['login'])) {
    	$email = $_POST['email'];
    	$passwort = $_POST['passwort'];
    	
    	$statement = $pdo->prepare("SELECT * FROM db_356572_3 WHERE email = :email");
    	$result = $statement->execute(array('email' => $email));
    	$user = $statement->fetch();
    		
    	//Überprüfung des Passworts
    	if ($user !== false && password_verify($passwort, $user['passwort'])) {
    		$_SESSION['userid'] = $user['id'];
    		die('Login erfolgreich. Weiter zu <a href="geheim.php">internen Bereich</a>');
    	} else {
    		$errorMessage = "E-Mail oder Passwort war ungültig<br>";
    	}
    	
    }
    ?>
    <!DOCTYPE html> 
    <html> 
    <head>
      <title>Login</title>
        <script language="JavaScript">
                <!--
                var interval = window.setInterval("uhr_anzeigen()", 1000);
                function uhr_anzeigen(){
                    var Datum = new Date();
                    var stunde = Datum.getHours();
                    var minute = Datum.getMinutes();
                    var sekunde = Datum.getSeconds();
                    Zeit = ((stunde < 10) ? " 0" : " ")+ stunde;
                    Zeit += ((minute < 10) ? ":0" : ":")+ minute;
                    Zeit += ((sekunde < 10) ? ":0" : ":")+ sekunde;
                    Zeit += " Uhr";
                    document.getElementById('uhr').innerHTML=Zeit;
                }
                // -->
            </script>
    </head> 
    <body  onload="uhr_anzeigen()">
     
    <?php 
    if(isset($errorMessage)) {
    	echo $errorMessage;
    }
    ?>
    <h1 align="center">Herzlich Willkommen auf meiner Login Seite.</h1>
    <form action="?login=1" method="post">
    <table width="90%" align="center">
        <tr><td width="20%"></td><td width="20%"></td><td width="10%"></td><td width="10%"></td><td width="20%"></td><td width="20%"></td></tr>
        
        <tr>
            <td rowspan="20"><b><div id="uhr"></div></b>
                <a target="_blank" href="http://www.waschmaschineninfo.de/"></a><br><a href="http://www.waschmaschineninfo.de/"><iframe src="http://www.schulferien-aktuell.de/kalender.php" name="Kalender" width="141" height="146" align="left" scrolling="no" marginheight="0" marginwidth="0" frameborder="0">
                </iframe></a>
            </td>
            <td></td>
            <td>E-Mail:</td>
            <td><input type="email" size="20" maxlength="50" name="email"></td>
            <td></td>
            <td rowspan="20"><!-- WetterOnline Homepagewetter Beginn //-->
                <div style="position:relative;background-image:url(https://st.wetteronline.de/img/p_city_hpweather/background/blau_d.gif);background-repeat:repeat-x;border:0px solid #BCBCBC;width:158px;text-align:center;font-family:arial,verdana;"><a href="http://www.wetteronline.de" target="_blank" style="text-decoration:none;color:#000;outline:none;"><img src="https://st.wetteronline.de/img/logo/wetteronline_blue_114x22.png" title="WetterOnline" alt="WetterOnline" style="border: 0; padding-top: 2px;"></a><a href="http://www.wetteronline.de/wetter/frankfurt-oder" target="_blank" style="font-size:12px;margin-bottom:2px; font-weight:bold; color:#000; text-align:center; text-decoration:none; display:block;">Das Wetter für<br />Frankfurt (Oder)</a><iframe  marginheight="0" marginwidth="0" frameborder="0" scrolling="no" src="http://www.wetteronline.de/?pid=p_city_hpweather&amp;WMO=10494&amp;FORMAT=long&amp;MENU=search&amp;MAP=weathermaps" allowtransparency="true" width="158" height="275"></iframe><div style="font-size:10px;height:18px; color:#000; text-align:center;">Mehr auf <a href="http://www.wetteronline.de/" target="_blank" title="WetterOnline Homepage" style="text-decoration:none;color:#000;">wetteronline.de</a></div></div>
                <!-- WetterOnline Homepagewetter Ende //--></td>
        </tr>
        
        <tr><td></td><td>Dein Passwort:</td><td><input type="password" size="20"  maxlength="50" name="passwort"></td><td></td></tr>
        
        <tr><td></td><td><input type="submit" value="Abschicken"></td></form><td><form action="./register.php"><input type="submit" value="Registrieren"></form></td><td></td></tr>
        
    </table>
    <br>
    <br>
     
    
     
    </body>
    </html>


    Ich hoffe es kann mir jemand helfen das Problem zu Lösen.

    Danke schon mal im Voraus.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Hallo,

    der erste Fehler der mir ins Auge springt, ist dein SELECT Statement:
    $statement = $pdo->prepare("SELECT * FROM db_356572_3 WHERE email = :email");

    Du versuchst hier etwas aus der Tabelle db_356572_3 zu selektieren. Ich gehe davon aus, dass du keine Tabelle hast die so heißt, sonder eher aus einer Tabelle User oder Benutzer oder ähnlich abfragen willst.

    Ersetze also db_356572_3 durch den Namen deiner User-Tabelle und prüfe, ob es dann klappt.

    lg
  4. Autor dieses Themas

    uebungen-till

    uebungen-till hat kostenlosen Webspace.

    das ist der Name von meiner Tabelle und in der Registrierung habe ich genau den gleichen Namen angegeben und das funktioniert auch.

    <?php 
    session_start();
    $pdo = new PDO('mysql:host=91.216.248.2;dbname=db_356572_3', 'Nutzername(db)', 'Passwort(db)');
    ?>
    <!DOCTYPE html> 
    <html> 
    <head>
      <title>Registrierung</title>
        <script language="JavaScript">
                <!--
                var interval = window.setInterval("uhr_anzeigen()", 1000);
                function uhr_anzeigen(){
                    var Datum = new Date();
                    var stunde = Datum.getHours();
                    var minute = Datum.getMinutes();
                    var sekunde = Datum.getSeconds();
                    Zeit = ((stunde < 10) ? " 0" : " ")+ stunde;
                    Zeit += ((minute < 10) ? ":0" : ":")+ minute;
                    Zeit += ((sekunde < 10) ? ":0" : ":")+ sekunde;
                    Zeit += " Uhr";
                    document.getElementById('uhr').innerHTML=Zeit;
                }
                // -->
            </script>
    </head> 
    <body onload="uhr_anzeigen()">
     
    <?php
    $showFormular = true; //Variable ob das Registrierungsformular anezeigt werden soll
     
    if(isset($_GET['register'])) {
    	$error = false;
        $vorname = $_POST['vorname'];
        $nachname = $_POST['nachname'];
    	$email = $_POST['email'];
    	$passwort = $_POST['passwort'];
    	$passwort2 = $_POST['passwort2'];
        $geburtsdatum = $_POST['geburtsdatum'];
        $telefon = $_POST['telefon'];
        $adresse = $_POST['adresse'];
        $hausnummer = $_POST['hausnummer'];
        $plz = ['plz'];
        $ort = ['ort'];
      
        if(strlen($vorname) == 0) {
            echo 'Bitte den Vornamen angeben<br>';
            $error = true;
        }
        if(strlen($nachname) == 0) {
            echo 'Bitte den Nachnamen angeben<bfr>';
            $error = true;
        }
    	if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    		echo 'Bitte eine gültige E-Mail-Adresse eingeben<br>';
    		$error = true;
    	} 	
    	if(strlen($passwort) == 0) {
    		echo 'Bitte ein Passwort angeben<br>';
    		$error = true;
    	}
    	if($passwort != $passwort2) {
    		echo 'Die Passwörter müssen übereinstimmen<br>';
    		$error = true;
    	}
        if(strlen($geburtsdatum) == 0) {
            echo 'Bitte das Geburtsdatum angeben<br>';
            $error = true;
        }
    	
    	//Überprüfe, dass die E-Mail-Adresse noch nicht registriert wurde
    	if(!$error) { 
    		$statement = $pdo->prepare("SELECT * FROM user WHERE email = :email");
    		$result = $statement->execute(array('email' => $email));
    		$user = $statement->fetch();
    		
    		if($user !== false) {
    			echo 'Diese E-Mail-Adresse ist bereits vergeben<br>';
    			$error = true;
    		}	
    	}
    	
    	//Keine Fehler, wir können den Nutzer registrieren
    	if(!$error) {	
    		$passwort_hash = password_hash($passwort, PASSWORD_DEFAULT);
    		
    		$statement = $pdo->prepare("INSERT INTO user (   vorname,
                                                                    nachname,
                                                                    email, 
                                                                    passwort,
                                                                    geburtsdatum,
                                                                    telefon,
                                                                    adresse,
                                                                    hausnummer,
                                                                    plz,
                                                                    ort
                                                                ) 
                                                        VALUES (:vorname,
                                                                :nachname,
                                                                :email,
                                                                :passwort,
                                                                :geburtsdatum,
                                                                :telefon,
                                                                :adresse,
                                                                :hausnummer,
                                                                :plz,
                                                                :ort
                                                                )
                                        "
                                      );
    		$result = $statement->execute(array('vorname' => $vorname,
                                                'nachname' => $nachname,
                                                'email' => $email,
                                                'passwort' => $passwort_hash,
                                                'geburtsdatum' => $geburtsdatum,
                                                'telefon' => $telefon,
                                                'adresse' => $adresse,
                                                'hausnummer' => $hausnummer,
                                                'plz' => $plz,
                                                'ort' => $ort
                                               )
                                         );
    		
    		if($result) {		
    			echo 'Sie wurden erfolgreich registriert. Sie können sich jetzt <a href="login.php">einloggen</a>.';
    			$showFormular = false;
    		} else {
    			echo 'Beim Abspeichern ist leider ein Fehler aufgetreten<br>';
                $showFormular = true;
    		}
    	} 
    }
     
    if($showFormular) {
    ?>
     <h1 align="center">Herzlich willkommen bei meinem Registrierungsformular auf uebungen-till.lima-city.de</h1>
    <form action="?register=1" method="post">
    <table width="90%" align="center">
        <tr height="10%"><td width="20%"></td><td width="20%"></td><td width="10%"></td><td width="20%"></td><td width="20%"></td><td width="20%"></td></tr>
        
        <tr><td rowspan="10"><b><div id="uhr"></div></b>
                        <a target="_blank" href="http://www.waschmaschineninfo.de/"></a><br>
    <a href="http://www.waschmaschineninfo.de/"><iframe src="http://www.schulferien-aktuell.de/kalender.php" name="Kalender" width="141" height="146" align="left" scrolling="no" marginheight="0" marginwidth="0" frameborder="0">
    </iframe></a>
                        <script src='https://www.ferienwiki.de/tools/widgets/calendar.js' type='text/javascript'></script>
                        <div class='calendar_widget'></div></td><td></td><td>Vorname*:</td><td><input type="text" size="15" maxlength="30" name="vorname"></td><td></td><td rowspan="10"><!-- WetterOnline Homepagewetter Beginn //-->
    <div style="position:relative;background-image:url(https://st.wetteronline.de/img/p_city_hpweather/background/blau_d.gif);background-repeat:repeat-x;border:0px solid #BCBCBC;width:158px;text-align:center;font-family:arial,verdana;"><a href="http://www.wetteronline.de" target="_blank" style="text-decoration:none;color:#000;outline:none;"><img src="https://st.wetteronline.de/img/logo/wetteronline_blue_114x22.png" title="WetterOnline" alt="WetterOnline" style="border: 0; padding-top: 2px;"></a><a href="http://www.wetteronline.de/wetter/frankfurt-oder" target="_blank" style="font-size:12px;margin-bottom:2px; font-weight:bold; color:#000; text-align:center; text-decoration:none; display:block;">Das Wetter für<br />Frankfurt (Oder)</a><iframe  marginheight="0" marginwidth="0" frameborder="0" scrolling="no" src="http://www.wetteronline.de/?pid=p_city_hpweather&amp;WMO=10494&amp;FORMAT=long&amp;MENU=search&amp;MAP=weathermaps" allowtransparency="true" width="158" height="275"></iframe><div style="font-size:10px;height:18px; color:#000; text-align:center;">Mehr auf <a href="http://www.wetteronline.de/" target="_blank" title="WetterOnline Homepage" style="text-decoration:none;color:#000;">wetteronline.de</a></div></div>
    <!-- WetterOnline Homepagewetter Ende //--></td></tr>
        
        <tr><td></td><td>Nachname*:</td><td><input type="text" size="15" maxlength="30" name="nachname"></td><td></td></tr>
        
        <tr><td></td><td>E-Mail*:</td><td><input type="email" size="15" maxlength="50" name="email"></td><td></td></tr>
        
        <tr><td></td><td>Dein Passwort*:</td><td><input type="password" size="15"  maxlength="50" name="passwort"></td><td></td></tr>
        
        <tr><td></td><td>Passwort wiederholen*:</td><td><input type="password" size="15" maxlength="50" name="passwort2"></td><td></td></tr>
        
        <tr><td></td><td>Geburtsdatum*:</td><td><input type="date" size="5" name="geburtsdatum"></td><td></td></tr>
        
        <tr><td></td><td>Telefon:</td><td><input type="tel" size="15" maxlength="10" name="telefon"></td><td></td></tr>
        
        <tr><td></td><td>Straße/Hausnummer:</td><td><input type="text" size="15" maxlength="50" name="adresse"> <input type="text" size="2" maxlength="5" name="hausnummer"></td></tr>
        
        <tr><td></td><td>PLZ/Ort:</td><td><input type="text" size="2" maxlength="5" name="plz"> <input type="text" size="15" maxlength="50" name="ort"></td></tr>
        
        <tr><td></td><td></td><td></td><td></td><td></td></tr>
        
        <tr><td></td><td></td><td><input type="submit" value="Abschicken"></form></td><td><form action="./login.php"><input type="submit" value="Login"></form></td><td></td></tr>
        
        <tr><td></td><td></td><td></td><td></td><td></td></tr>
    </table>
    
     
    <?php
    } //Ende von if($showFormular)
    ?>
     
    </body>
    </html>


    Ich habe jetzt den Namen der Tabelle, in login.php und in registry.php den Namen in "user" geändert, aber es funktioniert immer noch nicht

    Beitrag zuletzt geändert: 23.9.2016 14:48:28 von uebungen-till
  5. Hast Du denn überhaupt eine schon eine Tabelle erstellt? Am einfachsten geht das über PHPMyAdmin (https://pma.lima-city.de). Der Name beim Verbinden (Datenbankname) und der Name der Tabelle, den Du beim SELECT Statement benötigst, sind zwei verschiedene Dinge, mir scheint, als sei Dir das nicht ganz klar.
  6. invalidenturm

    Kostenloser Webspace von invalidenturm

    invalidenturm hat kostenlosen Webspace.

    Abgesehen vom von davidlw gesagten, würde ich dir raten, mal zu prüfen ob dein Anmeldescrpt für neue Benutzer diese auch in die Datenbank schreibt. (ich verstehe nicht viel von PHP-Script, aber wenn nix abgelegt wird, klappt es auch nicht mit der Anmeldung)
  7. torominogames

    Kostenloser Webspace von torominogames

    torominogames hat kostenlosen Webspace.

    Hey,

    was mir als erstes auffällt ist, dass Du eine IP als Host genommen. Ich weiß zwar nicht, ob diese auch direkt zu Lima verbindet, ich würde aber eher die nutzen, die bei der auch in der Verwaltung unter "MySQL-Datenbanken" angegeben ist.

    Dann müsstest Du, wie davidlw schon gesagt hat, prüfen ob Du die Tabelle, in die Du schreiben und auslesen möchtest, existiert. Und alle Werte, die Du befüllen möchtest, auch festgelegt sind. Mit PHPMyAdmin könntest Du auch immerhin prüfen, ob sich die Daten immerhin beschreiben lassen. Normalerweise sollte er aber auch weitere Fehler, falls noch welche in deinem PHP-Code sein sollten, ausgeben. (Sofern Du es aktiviert hast.)
  8. s****p

    torominogames schrieb:
    Hey,

    Normalerweise sollte er aber auch weitere Fehler, falls noch welche in deinem PHP-Code sein sollten, ausgeben. (Sofern Du es aktiviert hast.)


    Auch wenn das üblicherweise gelöscht wird, wiese ich nochmal daurauf hin, das der Code des TE PAssagen wier:
    echo 'Du wurdest erfolgreich registriert. <a href="login.php">Zum Login</a>';

    aufweisst.
  9. torominogames

    Kostenloser Webspace von torominogames

    torominogames hat kostenlosen Webspace.

    @strlcp

    Mir ging es jetzt nicht um eine grobe Fehlermeldung, die man dann selbst ausgibt, wenn die Registrierung fehlgeschlagen ist, oder erfolgreich war. Sondern darum, dass man individuelle Fehler im Code ausfindig machen kann. Damit könnte man z.B. sehen, falls ein Wert den man aus der Datenbank auslesen will, gar nicht existiert.
  10. Autor dieses Themas

    uebungen-till

    uebungen-till hat kostenlosen Webspace.

    Danke für die vielen Antworten
    Also die Tabelle, die ich angegeben habe existiert und die Daten, die abgefragt werden, werden auch in der Tabelle eingetragen
  11. s****p

    Da Vorschläge zu Thema "php debugging" hier gelöscht worden sind, biete ich nochmal an, mich des Problems intensiver anzunehmen; immerhin ist ja nicht mehr so viel passiert hier im Thread, und das Script läuft ja irgendwie unter der Überschrift "lernen".

  12. Autor dieses Themas

    uebungen-till

    uebungen-till hat kostenlosen Webspace.

    Hab das Problem gelöst bekommen :biggrin:
    Das Problem war ein kleiner Fehler in der Groß-klein-Schreibung

    Trotzdem Danke für die Antworten :thumb:
  13. ich sehe hier das alle angaben in pdo gemacht werden, sollte man nur noch pdo verwenden oder kann ruhig in msqli geschrieben werden ?
  14. Je nachdem wie man seine Queries schreibt (MSSQL kann z.B. kein LIMIT) macht PDO durchaus Sinn.
    Dadurch ergibt sich der Vorteil dass z.B. bei der Umstellung von sqlite auf MySQL einfach nur der Verbindungsstring geändert werden muss.
  15. 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!