Antworten auf deine Fragen:
Neues Thema erstellen

Installationsskript macht Probleme

Dissolution

Freund und Helfer

Einen schönen guten Abend zusammen!
Derzeit bin ich wieder dabei mein PHP-Grundwissen aufzufrischen um mich danach hoffentlich, diesmal, wenn ich die Zeit finde, tiefer in die Materie einzuarbeiten.

Grundsätzlich habe ich beim Lesen der Syntax keine Probleme, das meiste erschließt sich mir auf Anhieb. Da Übung allerdings den Meister macht, habe ich mich nun selbst an ein winziges Skript gesetzt, dass eine Datenbank mit variablem Namen (der bei der "Installation" vergeben wird) erzeugen soll.

Leichter gesagt als getan - hier einmal mein letzter Versuch:


install.php
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Installation Schritt 1</title>
<link rel="stylesheet" href="../templates/css/common.css" type="text/css" />
<link rel="stylesheet" href="../templates/css/layout.css" type="text/css" />
<link rel="stylesheet" href="../templates/css/offline.css" type="text/css" />
</head>
<body>
<div id="frame" class="outline">
<form action="install_install.php" method="post">
Datenbank-Name: <input type="text" name="dbname" />
<input type="submit" />
</form> 
</p>
</div>
</body>
</html>

install_install.php

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Installation - Schritt 2</title>
</head>
<body>
<?php
$con = mysql_connect("localhost","root","");
  if (!$con)
  {
  die('Konnte keine Verbindung herstellen: ' . mysql_error());
  }
  
  // Create database
  if (mysql_query("CREATE DATABASE $_POST['dbname']",$con))
  {
  echo "Datenbank wurde kreiert";
  }
  else
  {
  echo "Fehler beim Erstellen der Datenbank: " . mysql_error();
  }
  
  // Create table
  mysql_select_db("$_POST['dbname'], $con);
  $sql = "CREATE TABLE user
  (
  userID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(30) NOT NULL,
  password CHAR(32) NOT NULL,
  email VARCHAR(100) NOT NULL 
  
  )";
  
  // Execute query
  mysql_query($sql,$con);
  
  mysql_close($con); 
  ?>
</body>
</html>
Da ich nicht sicher bin wie weit ich von der Lösung entfernt bin, möchte ich hier nochmal erläutern was passieren soll:

1) Zuerst soll ein Name für die Datenbank eingegeben werden.
2) Falls diese nicht existiert, soll sie erzeugt werden, ansonsten nur die Tabellen.

3) Weiters würde ich, daran biss ich mir ebenfalls die Zähne aus, gerne auch Variablen für den Server, den MySQL-Usernamen und das MySQL-Passwort einführen, die dann bequem per Formular eingegeben werden können, damit das Skript auf verschiedenen Servern mit verschiedenen Benutzern und Passwörtern ohne Probleme zu installieren ist, vor allem ohne gefummle am Code!

Das Skript besteht derzeit nur aus diesen 2 Dateien und ein paar Style-Dateien, das wars, es geht mir nur darum Grundlegendes (wieder) zu erlernen.

Möchte mich vielleicht jemand erleuchten?

Liebe Grüße und eine gute Nacht,
Dissolution
 
Zuletzt bearbeitet:

Chriss1987

me.drinkCoffee();

AW: Installationsskript macht Probleme

Hi,

um weitere Parameter per Formular eintragen zu können, musst du einfach das Formular erweitern, z.B. so:
HTML:
<form action="install_install.php" method="post">
Datenbank-Name: <input type="text" name="dbname" />
User: <input type="text" name="user" />
Passwort: <input type="password" name="pass" />
Host: <input type="text" name="host" />
<input type="submit" />

dein php-Code könnte dann so aussehen:
PHP:
<?php
$con = mysql_connect($_POST['host'], $_POST['user'], $_POSt['pass']);
  if (!$con)
.
.
.

Zum Problem selber:
werden Fehlermeldungen angezeigt? Lass doch mal mit
PHP:
error_reporting(E_ALL);
alle Fehlermeldungen ausgeben. Du kannst dir auch mal die Variable $con ausgeben, wird eine Verbindung zur DB aufgebaut?

Schöne Grüße aus dem Sauerland!
Chriss
 

Dissolution

Freund und Helfer

AW: Installationsskript macht Probleme

Vielen lieben Dank Chriss1987,

das mit dem Formular war mir schon klar, nicht aber ob ich die Variablen richtig an die install_install.php weitergebe.

Jedenfalls kommt, nach deiner Änderung, der Fehler:

Parse error: syntax error, unexpected ';' in Pfad\zur\Installation\install\install_install.php on line 9

Problem an der Sache, ich find keinen Fehler... schon klar, da ist ein ";" zuviel, in Zeile 9 oder davor... ich bin das ganze Skript durchgegangen, da ist kein ";" zuviel.

Fehler werden doch eh durch . mysql_error() ausgegeben, egal, ich hab deine Zeile hinzugefügt, falls es an einer anderen Stelle harken sollte.

So richtig will es aber nicht :(
 

Chriss1987

me.drinkCoffee();

AW: Installationsskript macht Probleme

Hi,

ein Syntaxfehler befindet sich hier:
PHP:
// Create table
  mysql_select_db("$_POST['dbname'], $con);
  $sql = "CREATE TABLE user

da ist das Anführungszeichen vor $_POST['dbname'] zuviel!

Schöne Grüße aus dem Sauerland!
Chriss
 

Dissolution

Freund und Helfer

AW: Installationsskript macht Probleme

Natürlich, ich bin für jede Hilfe dankbar... ich möchte nur die Grundstruktur haben und durchschauen, mit der Weitergabe der Variablen. Heute Abend fang ich garantiert nochmal von 0 an, damit das ganze sauber ist.

Ich hab noch etwas dran geschraubt, dann musste ich los, kann jetzt sein, dass mehrere Zeichen nicht passen :|, wie gesagt, ich setz mich am Abend nochmal dran und fang von vorne an.

install.php
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Installation</title>
<link rel="stylesheet" href="../templates/css/common.css" type="text/css" />
<link rel="stylesheet" href="../templates/css/layout.css" type="text/css" />
<link rel="stylesheet" href="../templates/css/offline.css" type="text/css" />
</head>
<body>
<div id="frame" class="outline">
<form action="install_install.php" method="post">
Datenbank-Name: <input type="text" name="dbname" />
User: <input type="text" name="user" />
Passwort: <input type="password" name="pass" />
Host: <input type="text" name="host" />
<input type="submit" />
</form>
</div>
</body>
</html>

install_install.php

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Installation Schritt 2</title>
</head>
<body>
<?php
($con = mysql_connect($_POST['host'], $_POST['user'], $_POST['pass']);
  if (!$con)
  {
  die('Konnte keine Verbindung herstellen: ' . mysql_error());
  }
  
  // Create database
  if (mysql_query("CREATE DATABASE $_POST['dbname']",$con))
  {
  echo "Datenbank wurde kreiert";
  }
  else
  {
  echo "Fehler beim Erstellen der Datenbank: " . mysql_error();
  }
  
  // Create table
  mysql_select_db($_POST['dbname'], $con);
  $sql = "CREATE TABLE user
  (
  userID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(30) NOT NULL,
  password CHAR(32) NOT NULL,
  email VARCHAR(100) NOT NULL 
  
  )";
  
  // Execute query
  mysql_query($sql,$con);
  
  mysql_close($con); 
  
  // Error Reporting
  error_reporting(E_ALL);  
  ?>
</body>
</html>
 

netbandit

Aktives Mitglied

AW: Installationsskript macht Probleme

Vor $con hast Du eine Klammer geöffnet; warum? ;)

error_reporting immer an den Anfang der Datei
 

Dissolution

Freund und Helfer

AW: Installationsskript macht Probleme

Vor $con hast Du eine Klammer geöffnet; warum? ;)

error_reporting immer an den Anfang der Datei

Dankeschön *peinlich*

Jaja, ich bin am (wieder)lernen... Learning by doing funktioniert bei mir am besten, leider nerv ich euch damit :(

Jetzt kommt dafür
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in Pfad\zum\Verzeichnis\install\install_install.php on line 16

Versteh ich das richtig, in oder vor Zeile 16 hat er ein Zeichen entdeckt (T_ENCAPSED) und einen Abstand, den er nicht erwartet hat...

argh... wenn ich die Fehler wenigstens sehen würd, da harperts noch gewaltig bei .php :(
 

Dissolution

Freund und Helfer

AW: Installationsskript macht Probleme

Danke, aber es wird so nichts, fürchte ich... Fehlermeldung bleibt die gleiche obwohl ich jetzt jede Zeile akribisch durchgegangen bin... mir fehlt noch das "innere Auge" dafür :(

";" in Zeile 16 hinzugefügt, ändert nichts.

edit: ich klaube das Skript gerade ausseinander und siehe da, schon am Anfang harpert es

Warning: mysql_connect() []: Access denied for user 'root'@'localhost' (using password: NO) in pfad\zum\verzeichnis\install\install_install.php on line 9
Konnte keine Verbindung herstellen: Access denied for user 'root'@'localhost' (using password: NO)
 
Zuletzt bearbeitet:

netbandit

Aktives Mitglied

AW: Installationsskript macht Probleme

Na, wenn da steht:

PHP:
echo "Hallo $_GET['foo']"; //Fehler
echo "Hallo ".$_GET['foo']; //ok

Was unterscheidet sich da? Doch wohl die Art wie die Variable $_GET['foo'] eingebunden wurde...

Zeile 16:

PHP:
if (mysql_query("CREATE DATABASE $_POST['dbname']",$con))

Korrigiert:

PHP:
if (mysql_query("CREATE DATABASE " . $_POST['dbname'],$con))
 

Dissolution

Freund und Helfer

AW: Installationsskript macht Probleme

Na, wenn da steht:

PHP:
echo "Hallo $_GET['foo']"; //Fehler
echo "Hallo ".$_GET['foo']; //ok
Was unterscheidet sich da? Doch wohl die Art wie die Variable $_GET['foo'] eingebunden wurde...

Zeile 16:

PHP:
if (mysql_query("CREATE DATABASE $_POST['dbname']",$con))
Korrigiert:

PHP:
if (mysql_query("CREATE DATABASE " . $_POST['dbname'],$con))

Verstehe, ich hatte

PHP:
if (mysql_query("CREATE DATABASE . $_POST['dbname']",$con))
:(

Ändert aber nichts daran, dass er eh keine Verbindung herstellen mag... Passwort wurde eines vergeben, egal was er da sagt... .

edit: Vieeeelen herzlichen Dank! Ich habs jetzt hinbekommen :)
Ich hab auch wieder was gelernt und hoffe, dass es so weitergeht!

Danke!
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.635
Beiträge
1.538.449
Mitglieder
67.556
Neuestes Mitglied
Ggirl
Oben