2015-07-30 8 views
0

Примечание: Я немецкий. Таким образом, некоторые нерелевантные тексты на немецком языке, например, например. некоторые php-эхо-сообщения.PHP Script Script с XAMPP и MySQL

Возможно, это только новичок. Но я всю ночь искал и не нашел ответа на свою проблему. Я надеюсь, что вы можете мне помочь.

Я хочу создать сценарий входа php с помощью XXAMP и его mysql-базы данных. Я создал базу данных через phpmyadmin.

[Здесь может быть изображение этой базы данных] - Но: «Вам нужно как минимум 10 репутации для публикации изображений». Sry.

Затем я работал над скриптом login.php. Это выглядит так:

<?php 
session_start(); 
?> 

<?php 
$verbindung = mysql_connect("127.0.0.1", "myname" , "mypassword") 
or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
mysql_select_db("homepage") or die ("Datenbank konnte nicht ausgewählt werden"); 

$username = $_POST["username"]; 
$password = md5($_POST["password"]); 

$abfrage = "SELECT username, password FROM access WHERE username LIKE '$username' LIMIT 1"; 
$ergebnis = mysql_query($abfrage); 
$row = mysql_fetch_object($ergebnis); 

// $count = mysql_num_rows($ergebnis); 

if($row->password == $password) { 
    $_SESSION["username"] = $username; 
    echo "Login erfolgreich. <br> <a href=\"home.php\">Weiter</a>"; 
    } 
else { 
    echo "Benutzername und/oder Passwort waren falsch. <a href=\"index.htm\">Login</a>"; 
    } 
?> 

Я уже тестировал подключение к базе данных в отдельном файле php. Это работает.

Но когда я пытаюсь войти на моем index.htm:

<html> 
<head> 
     <title>Login</title> 
</head> 
<body> 

     <form action="login.php" method="post"> 
       <input type="text" size="24" maxlength="50" name="username"<br> 
       <input type="password" size="24" maxlength="50" name="password"<br> 
       <input type="submit" value="Login"> 
     </form> 

</body> 
</html> 

я получаю ответ на login.php:

пароль == $ пароль) {$ _SESSION [» username "] = $ username; echo "Login erfolgreich. Weiter"; } else {echo "Benutzername und/oder Passwort waren falsch. Login"; }?>

Я пробовал так много всего, но ничего не помогло. Возможно, у вас есть идея, почему это не работает?
Буду очень признателен вам.

+1

Похоже, что ваш код разбивается на '>' 'if ($ row->'. Я предполагаю, что php не запущен, так как он предполагает, что это html-код, и это закрытие тег ' Sean

+0

Вам лучше начать обучение методам с помощью PDO .. mysql_connct вышел из моды. К тому времени, когда вы его повесите, mysql_connect будет на каком-то надгробии ... ;-) .. Посмотрите некоторые из вас. Это хорошее начало. – Daniel

ответ

0

Вы бы попробовать код ниже:

<?php 
session_start();?> 

<?php 
$verbindung = mysql_connect("127.0.0.1", "myname" , "mypassword") 
or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
mysql_select_db("homepage") or die ("Datenbank konnte nicht ausgewählt werden"); 

$username = $_POST["username"]; 
$password = md5($_POST["password"]); 

$abfrage = "SELECT username, password FROM access WHERE username='$username' LIMIT 1"; 
$ergebnis = mysql_query($abfrage) or die("error"); 
$row = mysql_fetch_array($ergebnis); 

// $count = mysql_num_rows($ergebnis); 

if($row['password'] == $password) { 
$_SESSION["username"] = $username; 
echo "Login erfolgreich. <br> <a href=\"home.php\">Weiter</a>"; 
} 
else { 
echo "Benutzername und/oder Passwort waren falsch. <a href=\"index.htm\">Login</a>"; 
} 
?> 

Пожалуйста, дайте мне, если это работает или нет.

+0

Затем я получаю следующий ответ на login.php: ** Weiter ";} else {echo" Benutzername und/oder Passwort waren falsch. Login ";}?> ** Возможно, я смогу проверить с некоторым эхом, какая информация не отправляется/обрабатывается правильно. – Horatios

0

здесь полный сценарий аутентификации Логин:

<?php 
session_start(); 

//Include db connection 
include 'db_connect.php'; 

//Get inputs and encode password to md5() remove that if no md5 enc. 
$Username = mysql_real_escape_string($_POST['username']); 
$Password = md5(mysql_real_escape_string($_POST['password'])); 


//Username check query 
$Check_if_Username = mysql_query("SELECT * FROM Users WHERE Username = '$Username' AND Password = '$Password'"); 

//Email check query 
$Check_if_Mail = mysql_query("SELECT * FROM Users WHERE Email = '$Username' AND Password = '$Password'"); 


//Check if Username returns any result 
if(mysql_num_rows($Check_if_Username)==1){ 

    //Data was found, populate variables: 
    $data = mysql_fetch_array($Check_if_Username); 
    $_SESSION['Username'] = $data['Username']; 
    $_SESSION['LoggedIn'] = TRUE; 
} 

//Otherwise, check for email match 
else if(mysql_num_rows($Check_if_Mail)==1){ 

    //Data was found, populate variables: 
    $data = mysqli_fetch_array($Check_if_Mail); 
    $_SESSION['Username'] = $data['Username']; 
    $_SESSION['LoggedIn'] = TRUE; 

} 

//No data was found: 
else{ 
    mysql_close(); 
    header("Location: /login.php?error=invalid data"); 
    die; 
} 



//If the user was logged in and the data was found, close mysql connection 
mysql_close(); 

//Then redirect 
header("Location: /account.php"); 
1

попробовать этот index.html

<html> 
<head> 
     <title>Login</title> 
</head> 
<body> 

     <form action="login.php" method="post"> 
       <input type="text" size="24" maxlength="50" name="username"<br> 
       <input type="password" size="24" maxlength="50" name="password"<br> 
       <input type="submit" value="Login"> 
     </form> 

</body> 
</html> 

и login.php

<?php 
session_start(); 

$verbindung = mysql_connect("127.0.0.1", "myname" , "mypassword") 
or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
mysql_select_db("project") or die ("Datenbank konnte nicht ausgewählt werden"); 

$username = $_POST["username"]; 
$password = md5($_POST["password"]); 

$abfrage = "SELECT username, password FROM user WHERE username LIKE '".$username."' LIMIT 1"; 
$ergebnis = mysql_query($abfrage); 
if (!$ergebnis) 
{ 
die("mySQL error: ". mysql_error()); 

} 
$row = mysql_fetch_object($ergebnis); 

// $count = mysql_num_rows($ergebnis); 

if($row->password == $password) { 
    $_SESSION["username"] = $username; 
    echo "Login erfolgreich. <br> <a href=\"home.php\">Weiter</a>"; 
    } 
else { 
    echo "Benutzername und/oder Passwort waren falsch. <a href=\"index.htm\">Login</a>"; 
    } 

?> 

Примечание :: Расширение MySQL является debrecated.if вы делаете новый проект, затем используйте mysqli

1

Вы уверены, что это сохранено как .PHP-файл?

0

Так что я выясню, что случилось. Я смущен своей немой ошибкой.
Это не вопрос программирования, а каталог открытия php-файлов в моем браузере. Я открыл его из htdocs в xampp, но это нужно сделать с помощью localhost/....
Тем не менее, я очень благодарен вашим быстрым ответам!Я думаю, сначала я должен прочитать некоторые объяснения всех этих программ и модулей.

До встречи. Когда-нибудь я отвечу на некоторые из ваших вопросов. :)