2017-11-14 3 views
0

Ich versuche, eine funktionierende HTML-Anmeldeseite mit einem PHP-Skript zu erstellen, das die Anmeldedaten mit der Datenbank vergleicht. Ich habe versucht, dies funktioniert seit einiger Zeit, aber es funktioniert wirklich. Dies ist der Fehlercode erhalte ich, wenn ich auf der Login-Button drücken:Wie kann ich eine HTML-Anmeldung erstellen, die eine Verbindung zu einer Datenbank mit PHP herstellt?

Cannot POST /connectivity.php 

ich eine Datenbank (genannt leftover_youth) mit XAMPP erstellt.

UserNameID 
userName 
pass 

Dies ist im Moment der HTML-Code für die ganze Seite.

<html> 
    <head lang="en"> 
     <meta charset="utf-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" /> 
     <meta content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui" name="viewport"> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
     <script type="text/javascript" src="scripts/app.js"></script> 
     <link rel="stylesheet" href="css/stylesheet.css"/> 
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 
     <title>Project Bootstrap</title> 
    </head> 
    <body> 
     <header> 
       <div class="navlogo"> 
        <a href="index.html"> 
         <h1 class="Logo">Leftover Youth</h1> 
        </a> 
        <a href="index.html"> 
         <img class="logoo" src="img/logoo.png" alt="firstimage"> 
        </a> 
       </div> 
     </header> 
     <div> 
     <fieldset style="width:30%"> 
      <legend>LOG-IN HERE</legend> 
      <form method="POST" action="connectivity.php"> User <br> 
       <input type="text" name="user" size="40"><br> Password <br> 
       <input type="password" name="pass" size="40"><br> 
       <input id="button" type="submit" name="submit" value="Log-In"> 
      </form> 
     </fieldset> 
     </div> 
    </body> 
</html> 

PHP:

<?php define('DB_HOST', 'localhost'); 
define('DB_NAME', 'leftover_youth'); 
define('DB_USER','root'); 
define('DB_PASSWORD',''); 

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error()); 
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error()); 

$ID = $_POST['user']; 
$Password = $_POST['pass']; 

function SignIn() 
{ 
session_start(); //starting the session 
if(!empty($_POST['user'])) //checking User data 
{ 
     $query = mysql_query("SELECT * FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error()); 
     $row = mysql_fetch_array($query) or die(mysql_error()); 
     if(!empty($row['userName']) AND !empty($row['pass'])) 
     { 
      $_SESSION['userName'] = $row['pass']; 
      echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE..."; 

     } 
     else 
     { 
       echo "SORRY... YOU ENTERD WRONG ID AND PASSWORD... PLEASE RETRY..."; 
     } 
} 
} 
if(isset($_POST['submit'])) { SignIn(); 
} 
?> 
+1

Zunächst einmal besuchen Sie http: // bobby-tables.com und Elarn über SQL-Injektion und wie man sie verhindert. Gerade jetzt ist Ihr Code sehr anfällig und Ihre gesamte Datenbank kann in wenigen Sekunden gelöscht werden, ohne dass Sie Ihr System kennen müssen. Alwqys verwendet vorbereitete Anweisungen für Abfragen mit Benutzereingaben !!!! Beenden Sie auch die Verwendung von mysql_ * '- es ist veraltet und wird in PHP7 nicht mehr unterstützt. Verwenden Sie stattdessen mysqli_ * 'oder' PDO_ * 'driver - sie unterstützen vorbereitete Anweisungen. Googeln Sie auch nach 'PHP Password Verify Function' - speichern Sie niemals Passwörter im Klartext in Ihrer Datenbank. – Twinfriends

+0

Bessere Verwendung von mysqli und 'prepared statement' – Pedram

+1

Wenn Sie mit Ihrem Projekt live gehen wollen, empfehle ich Ihnen, ein bereits existierendes Login-System zu verwenden, anstatt ein eigenes zu erstellen. Login-Systeme sind ein ziemlich schwieriges Thema, wenn Sie sie wirklich sicher machen wollen, und wie ich sehe, wissen Sie nicht so viel über Sicherheit und die Art, wie wir PHP heute schreiben. Das ist keine Beleidigung, ich empfehle Ihnen, entweder zu lernen, wie wir 2017 eine Datenbank abfragen, vorbereitete Aussagen zu lernen oder einfach ein fertiges System zu verwenden. Momentan würde ich niemals mit deinem Code leben, dem Weg zur Entschlüsselung. – Twinfriends

Antwort

1

Sie müssen das Verzeichnis/Pfad von connectivity.php

auch bewegen, um die $ ID und $ Passwort in die Post überprüfen überprüfen

if(isset($_POST['submit'])) { SignIn(); 
$ID = $_POST['user']; 
$Password = $_POST['pass']; 
} 
0

Vor allem vermeiden, mit mysql, die lange zurück ist veraltet, verwenden Sie stattdessen mysqli

Es gibt nur wenige Lösungen für Ihr Problem.

Die Art und Weise mit MySQLi so sein würde:

$connection = mysqli_connect('localhost', 'username', 'password', 'database'); 

Datenbank-Abfragen auszuführen ist auch einfach und nahezu identisch mit der alten Art und Weise:

// Old way 
$query = mysql_query("SELECT * FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error()); 
// New way 
$query = mysqli_query("SELECT * FROM UserName where userName = '$_POST[user]' AND pass = '$_POST[pass]'") or die(mysql_error()); 
Verwandte Themen