Wie testet man ein php login-Verbindung zu einem mysql-Datenbank über xampp?
Hallo dies ist mein Erster post auf stackoverflow bin ich im beginner-level in php, mysql und ein php-log-in-Seite angeschlossen an eine mysql-Datenbank, die ich wollte versuchen test über xampp und immer folgende Fehlermeldung
Warning: include(../storescripts/connect_to_mysql.php): failed to open stream: No such
file or directory in C:\xampp\htdocs\myonlinestore\storeadmin\admin_login.php
on line 15
Warning: include(): Failed opening '../storescripts/connect_to_mysql.php' for
inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\myonlinestore
\storeadmin\admin_login.php on line 15
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in
C:\xampp\htdocs\myonlinestore\storeadmin\admin_login.php on line 18
That information is incorrect, try again Click Here
War ich in der Lage, erfolgreich eine Verbindung zu der mysql-Datenbank durch dreamwavercs6 auf win7 64bit und erstellt einen Benutzer für die db als auch erstellte ich ein administrator mit uneingeschränkten Benutzerrechten in den erstellten admin-Tabelle. Mit einem erfolgreichen log-in sollte es direkt zu einer follow-up-Seite aufgerufen index.php
ist eine zweite index-Seite nur für Administratoren wählen Sie "Aufgaben", befindet sich in einem Unterordner im gleichen Verzeichnis. Die Homepage index.php
befindet sich hier C:\xampp\htdocs\myonlinestore\index.php\
die Datei mit dem Skript namens admin_login.php
gezeigt wird unter hier
<?php
session_start();
if (isset($_SESSION["manager"])){
header("location: index.php");
exit();
}
?>
<?php
if (isset($_POST["username"]) && isset($_POST["password"])){
$manager = preg_replace('#[^A-Za-z0-9]#i','',$_POST["username"]);
$password = preg_replace('#[^A-Za-z0-9]#i','',$_POST["password"]);
include "../storescripts/connect_to_mysql.php";
$sql = mysql_query("SELECT id FROM admin WHERE username='$manager' AND
password='$password' LIMIT 1");
$existCount = mysql_num_rows($sql);
if ($existCount == 1){
while($row = mysql_fetch_array($sql)){
$id = $row["id"];
}
$_SESSION["id"] = $id;
$_SESSION["manager"] = $manager;
$_SESSION["password"] = $password;
header("location: index.php");
exit();
} else {
echo 'That information is incorrect, try again <ahref="index.php">Click Here</a>';
exit();
}
}
?>
Skript connect_to_mysql.php
unter hier
<?php
$db_host = "localhost";
$db_username = "user";
$db_pass = "user";
$db_name = "myonlinestore_db";
mysql_connect("$db_host","$db_username","$db_pass") or die ("could not connect to
mysql");
mysql_select_db("$db_name") or die ("no database");
?>
Skript index.php
das ist die Zielseite, wo auf dem erfolgreichen login aus admin_login
sollten Sie umleiten, unter hier
<?php
session_start();
if(!isset($_SESSION["manager"])){
header("location: admin_login.php");
exit();
}
$managerID = preg_replace('#[^0-9]#i', '',$_SESSION["id"]);
$manager = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION["manager"]);
$password = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION["password"]);
include"../storescripts/connect_to_mysql.php";
$sql=mysql_query("SELECT*FROM admin WHERE id='$managerID' AND username='$manager' AND
password='$password' LIMIT 1"); //query the person
$existCount=mysql_num_rows($sql); //count the nums
if ($existCount==0){//evaluate the count
echo "Your login session data is not on record in the database";
exit();
}
?>
das problem ist, dass ich mich nicht einloggen kann über mein firefox-browser und immer der Fehler wie erwähnt an der Spitze. Alle addons,Erweiterungen in meinem firefox-browser auf und deaktivieren der Annahme von cookies aktiviert ist, kann jemand helfen um dieses problem zu beheben?
Vielen Dank im Voraus
- Sie sind anfällig für SQL-injection. Gegeben Sie sagen, Sie arbeiten an einem online-Shop, die Sie besser lernen, dass und wie vermeiden Sie es, BEVOR dein Shop gehackt wird. Während Ihr preg_replace macht diese bestimmte Abfrage etwas sicher, wahrscheinlich haben Sie noch Probleme an anderer Stelle.
- Es hängt von deiner Datei-Struktur. Ist
index.php
befindet sich im gleichen Verzeichnis wie das Skript dieser Auszug stammt aus? - index.php ist die Datei, wo Sie gerichtet werden sollte, um aus der log-in Seite, beide befinden sich in einem sub-Ordner im gleichen Verzeichnis
- Marc B danke für den Hinweis auf die Sicherheitsanfälligkeit nach Angriffe und hacks, ich werde in diesem später, ich versuche zu lernen, wie zu testen und zu bauen, die Dinge im Allgemeinen, wobei es Schritt für Schritt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier in Ihrem Skript, das Sie nicht in der Lage, Ihre connect_to_mysql.php Datei.
Sie versuchen, um den relativen Pfad. Stellen Sie sicher, dass Sie richtig in der Lage für den Zugriff auf diese Datei aus der relativen Pfad sind inklusive. d.h. Ihr admin_login.php Datei.
Können Sie versuchen, die übergabe der absolute Pfad in der include:
bitte überprüfen Sie den Pfad in Ihrer Datei-manager, wenn es ist die richtige absolute Pfad.
Entfernen Sie einen der Punkte aus der
include("../
wenn die Skripts inVom
"../" wird htdocs, so müssen Sie "./" man
htdocs\myonlinestore
werden können, wird es Ihnen helfen.