Frage von MaXXi1502, 29

Fehler im Registrierungs Skript Php?

Hallo, ich möchte ein kleines php Skript schreiben, um Nutzer in einer Mysql datenbank zu registrieren. Jedoch gibt mir der Browser bei der Ausführung "Serverfehler 500" aus. Mein Quellcode

<?php
require_once 'config.php';

/** Variablen zum eintragen in die Datenbank */
$name = $_POST['name'];
$email = $_POST['email'];
$username = $_POST['username'];
$password = $_POST['password'];

$statement = "INSERT INTO 'User' (Name, Benutzername, E-mail, Passwort) VALUES ($name, $username, $email, $password)";

$query = mysql_query($statement, $connection) or die (mysqli_error:. " Konnte nicht mit Datenbank verbinden!") or die("Error: " .mysql_error());

if(!$db_selected)
{
    die (mysql_error());
}
mysql_close($connection);
?>

Config.php:

<?php

define('hostname','192.168.2.120');
define('user', 'root');
define('password', '6260989');
define('db_name', 'W-Seminar');

$connection = mysql_connect(hostname, user, password) or die (mysql_error:. " Konnte nicht mit Datenbank verbinden!");
$db_selected = mysql_select_db('db_name', $connection);

?>

Antwort
von tgel79, 22

Was für einen Webserver verwendest du. Hast du Zugriff auf den error.log vom Web-Server? Da sollte eine Fehlermeldung drin stehen.

Antwort
von maximilianus7, 10

du hast jede menge php- und sql-fehler und ich hätte da schon eine php-fehlermeldung erwartet - aber das war ja nicht die frage.
ich kann mir nicht vorstellen (muß aber nix heissen), dass der server deswegen 500 meldet.
siehe:
http://www.checkupdown.com/status/E500_de.html

gehen denn andere - einfache php-skripts? wenn ja, dann doch die fehler beseitigen.

Antwort
von happyfish2, 16

Die Werte im SQL Query müssten in einzelne Hochkommas gesetzt werden. Davon abgesehen solltest du dich mal mit SQL Injections beschäftigen, dein Code ist hochgradig anfällig für Angriffe.

Antwort
von Alextoexplain, 11

Hello there,

was auf jeden Fall ein Problem ist, ist diese Zeile hier:

$db_selected = mysql_select_db('db_name', $connection);

Du hast db_name oben drüber als Konstante definiert, aber nun schreibst du die als String. Das kann nicht gehen. Konstanten werfen ohne  ' ' aufgerufen.

also nur db_name

Dass du  uns dein Passwort verrätst...naja. Gut SQL Sicherheit kannst du später noch einbauen, das ist so nämlich nix.
Auch solltest du nicht mysql, sondern mysqli als Schnittstelle in PHP verwenden. Aus mysql_query() wird dann etwa mysqli_query()

MfG

Alex

Keine passende Antwort gefunden?

Fragen Sie die Community