Script soll auf eingabe warten

r3ddragon

Mitglied
Ich habe hier folgendes Script:

PHP:
<html>
Install Daten
<form action="<?php echo $PHP_SELF ?>" method="POST">
Db.user:<input name="user" size="15" maxlength="30" value="" type="text"></br>
Db.passwort:<input name="password" size="15" maxlength="20" value="" type="text"></br>
Db.Adresse:<input name="address" size="15" maxlength="20" value="" type="text"></br></br>

<input type="submit" name="register" value="register">
</html>

<?php
/*DB-DATEN*/
	if(!empty($_POST['user'])){
$db_user = $_POST['user'];
	echo OK;
	}
         	if(!empty($_POST['password'])){
$db_pass = $_POST['password'];
	echo OK;
	}
         	if(!empty($_POST['adress'])){
$db_host = $_POST['adress'];
	echo OK;
	}
$db_name = "userdata";

/*Verbindung zur Datenbank wird hergestellt*/
$link = mysql_connect($db_host, $db_user, $db_pass)
   or die ("Keine Verbindung zum Server");

//     if (mysql_create_db($db_name)){
//  echo 'Datenbank ' . $db_name . ' wurde erstellt!';
//  }
 // mysql_query($db_name);

$create= "CREATE DATABASE  " . $db_name . " DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci";
 if (mysql_query ($create, $link)) {
echo 'Database created successfully.';
}
 else {
echo "Error! ".mysql_error()."
 ";
 }


//	$create_table = "CREATE TABLE acc (
//        		id INT( 255 ) NOT NULL AUTO_INCREMENT ,
//		user VARCHAR( 50 ) NOT NULL default '',
//		pass VARCHAR( 50 ) NOT NULL default '',
//        		site VARCHAR( 75 ) NOT NULL default '',
//		PRIMARY KEY ( `id` ) ;
//	mysql_db_select ('userdata');
//	mysql_query ($create_table, $link);

?>

ich das problem was ich habe ist, das das Script nicht auf die Eingabe der Daten wartet sondern sofort weiter läuft.

Fehler:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampplite\htdocs\php\install.php on line 28
Keine Verbindung zum Server

Wie kann ich das ändern, das das Script mit den Daten weiter arbeitet?

Gruß R3D
 
PHP:
<html>
Install Daten
<form action="<?php echo $PHP_SELF ?>" method="POST">
Db.user:<input name="user" size="15" maxlength="30" value="" type="text"></br>
Db.passwort:<input name="password" size="15" maxlength="20" value="" type="text"></br>
Db.Adresse:<input name="address" size="15" maxlength="20" value="" type="text"></br></br>

<input type="submit" name="register" value="register">
</html>

<?php
/*DB-DATEN*/
$error = 0;
	if(!empty($_POST['user'])){
$db_user = $_POST['user'];
	echo OK;
	} else $error = 1;
         	if(!empty($_POST['password'])){
$db_pass = $_POST['password'];
	echo OK;
	} else $error = 1;
         	if(!empty($_POST['adress'])){
$db_host = $_POST['adress'];
	echo OK;
	} else $error = 1;
$db_name = "userdata";

/*Verbindung zur Datenbank wird hergestellt*/
if($error == 0){
$link = mysql_connect($db_host, $db_user, $db_pass)
   or die ("Keine Verbindung zum Server");

//     if (mysql_create_db($db_name)){
//  echo 'Datenbank ' . $db_name . ' wurde erstellt!';
//  }
 // mysql_query($db_name);

$create= "CREATE DATABASE  " . $db_name . " DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci";
 if (mysql_query ($create, $link)) {
echo 'Database created successfully.';
}
 else {
echo "Error! ".mysql_error()."
 ";
 }


//	$create_table = "CREATE TABLE acc (
//        		id INT( 255 ) NOT NULL AUTO_INCREMENT ,
//		user VARCHAR( 50 ) NOT NULL default '',
//		pass VARCHAR( 50 ) NOT NULL default '',
//        		site VARCHAR( 75 ) NOT NULL default '',
//		PRIMARY KEY ( `id` ) ;
//	mysql_db_select ('userdata');
//	mysql_query ($create_table, $link);
}
?>


Überprüfe ob überall etwas eingegeben wurde und nur dann versuchst du den connect usw
 
es geht so auch nicht, die Fehlermeldung komm sofort wie ich die seite lade.
Für mich sie es so aus, das er einfach das Script nach unter durchjagt ohne auf die daten oben zu warten.

MfG R3D
 
Du solltest zuerst überprüfen ob der Submit-Button gedrückt wurde.
Falls ja führe dein Script aus, wenn nicht zeige das Formular an.
 
Hmmm.... ok, ich habe 'ne weile nichts mehr in PHP gemacht... aber: Warum SOLLTE er warten?
Scripte laufen nun einmal von oben bis unten durch, tun sie immer.
Wenn etwas NICHT passieren soll muss man es an Irgedn eine Bedingung binden:

PHP:
if (isset($_POST["user"])){
 ...ratterdurch
}
 
Versuchs mal mit if(isset($_POST['register'])) Damit überprüfst du ob der Submitbutton gedrückt wurde.

PHP:
<html>
Install Daten
<form action="<?php echo $PHP_SELF ?>" method="POST">
Db.user:<input name="user" size="15" maxlength="30" value="" type="text"></br>
Db.passwort:<input name="password" size="15" maxlength="20" value="" type="text"></br>
Db.Adresse:<input name="address" size="15" maxlength="20" value="" type="text"></br></br>

<input type="submit" name="register" value="register">
</html>

<?php
if(isset($_POST['register'])) {
/*DB-DATEN*/
$error = 0;
    if(!empty($_POST['user'])){
		$db_user = $_POST['user'];
		echo OK;
    } else $error = 1;
	
    if(!empty($_POST['password'])){
		$db_pass = $_POST['password'];
		echo OK;
    } else $error = 1;
	
    if(!empty($_POST['adress'])){
		$db_host = $_POST['adress'];
		echo OK;
    } else $error = 1;
	
$db_name = "userdata";

/*Verbindung zur Datenbank wird hergestellt*/
$link = mysql_connect($db_host, $db_user, $db_pass) or die ("Keine Verbindung zum Server");

//     if (mysql_create_db($db_name)){
//  echo 'Datenbank ' . $db_name . ' wurde erstellt!';
//  }
 // mysql_query($db_name);

$create= "CREATE DATABASE  " . $db_name . " DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci";
if (mysql_query ($create, $link)) {
	echo 'Database created successfully.';
}


//    $create_table = "CREATE TABLE acc (
//                id INT( 255 ) NOT NULL AUTO_INCREMENT ,
//        user VARCHAR( 50 ) NOT NULL default '',
//        pass VARCHAR( 50 ) NOT NULL default '',
//                site VARCHAR( 75 ) NOT NULL default '',
//        PRIMARY KEY ( `id` ) ;
//    mysql_db_select ('userdata');
//    mysql_query ($create_table, $link);
}
?>
 
PHP:
<html>
Install Daten
<form action="<?php echo $PHP_SELF ?>" method="POST">
Db.user:<input name="user" size="15" maxlength="30" value="" type="text"></br>
Db.passwort:<input name="password" size="15" maxlength="20" value="" type="text"></br>
Db.Adresse:<input name="address" size="15" maxlength="20" value="" type="text"></br></br>

<input type="submit" name="Go Install" value="register">
</html>

<?php
if(isset($_POST['register'])) {
/*DB-DATEN*/

    if(isset($_POST['user'])){
$db_user = $_POST['user'];
    echo OK;

             if(isset($_POST['password'])){
$db_pass = $_POST['password'];
    echo OK;

             if(isset($_POST['adress'])){
$db_host = $_POST['adress'];
    echo OK;

    $db_name = "userdata";

/*Verbindung zur Datenbank wird hergestellt*/
$link = mysql_connect($db_host, $db_user, $db_pass)
   or die ("Keine Verbindung zum Server");

//     if (mysql_create_db($db_name)){
//  echo 'Datenbank ' . $db_name . ' wurde erstellt!';
//  }
 // mysql_query($db_name);

$create= "CREATE DATABASE  " . $db_name . " DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci";
 if (mysql_query ($create, $link)) {
echo 'Database created successfully.';
}
 else {
echo "Error! ".mysql_error()."
 ";
 }



?>

Parse error: syntax error, unexpected $end in C:\xampplite\htdocs\php\install.php on line 50

line 50 is die letzte
 
Merke : Fehler auf der letzten Zeile sind in der Regel nicht geschlossene { ( [ " oder '

in deinem Script eben hatten 4 mal eine } gefehlt:

PHP:
<html>
Install Daten
<form action="<?php echo $PHP_SELF ?>" method="POST">
Db.user:<input name="user" size="15" maxlength="30" value="" type="text"></br>
Db.passwort:<input name="password" size="15" maxlength="20" value="" type="text"></br>
Db.Adresse:<input name="address" size="15" maxlength="20" value="" type="text"></br></br>

<input type="submit" name="Go Install" value="register">
</html>

<?php

/*DB-DATEN*/
if(isset($_POST['register'])) { 
    if(isset($_POST['user'])){
$db_user = $_POST['user'];
    echo OK;
    }
             if(isset($_POST['password'])){
$db_pass = $_POST['password'];
    echo OK;
             }
             if(isset($_POST['adress'])){
$db_host = $_POST['adress'];
    echo OK;
             }
    $db_name = "userdata";

/*Verbindung zur Datenbank wird hergestellt*/
$link = mysql_connect($db_host, $db_user, $db_pass)
   or die ("Keine Verbindung zum Server");

//     if (mysql_create_db($db_name)){
//  echo 'Datenbank ' . $db_name . ' wurde erstellt!';
//  }
 // mysql_query($db_name);

$create= "CREATE DATABASE  " . $db_name . " DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci";
 if (mysql_query ($create, $link)) {
echo 'Database created successfully.';
}
 else {
echo "Error! ".mysql_error()."
 ";
 }
}
             

?>
 

Neue Beiträge

Zurück