[PHP] Formular mit PHP und MySQL

Male

Mitglied
Ich bin gerade dabei ein Forumlar zu schreiben, wobei die Variablen nicht nur übergeben werden sollen, sondern auch auf einer Datenbank gespeichert werden sollten.

Ich habe mir diverse Tutorials angeguckt und versucht, bin leider jedoch daran gescheitert. Daher hoffe ich, Ihr könnt mir weiter helfen.

Das Problem ist, mein Script möchte nicht die Daten in der MySQL Tabelle abspeichern. Verbindung wird aber aufgebaut. Zur besseren Orientierung poste ich kurz die Scripts rein.
(html tags usw lass ich erstmal weg).

Code:
<?php
    //variablen.php
    $dateien=array();
    $dateien['ausgabe']= "ausgabe.php";
    $dateien['eingabe']= "eingabe.php";
?>

Code:
//content.php
<?php
    error_reporting(E_ALL);

    include 'config.php';
    include 'variablen.php';
        // Konfigurationsdatei laden

            $db_link = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);

                if($db_link)
                {  echo "Verbindung wurde aufgebaut<br />\n";   }

                else
                {  echo "Es konnte keine Verbindung aufgebaut werden";    }
?>

Code:
//eingabe.php     <--- Eingabe HTML 
<body>
    <form method=post action="eintrag.php" class=formular>

            Tag : <input type=text name"tag" id="Tag"><br/>
            Uhrzeit : <input type=text name"uhrzeit" id="Uhrzeit"><br/>
            Datum : <input type=text name"datum" id="Datum"><br/>

                <input type="submit" name="submit"" value="Speichern">
                <input type="reset" name="submit" value="Zurücksetzen">
</body>

Code:
//ausgabe.php
<?php
    include 'content.php';
    $sql = "SELECT
                tag
            FROM
                Event";
                
    $result = mysql_query( $sql ) OR die( mysql_error() );

        echo "Satz in der Datenbank:<br />\n";
        
            while($row = mysql_fetch_assoc( $result ))
            {
            echo $row['tag'];
            }
?>

Code:
<?php
    // config.php
    error_reporting(E_ALL);

    define('MYSQL_HOST',     'localhost');
    define('MYSQL_USER',     '*******');
    define('MYSQL_PASS',     '*******');
    define('MYSQL_DATABASE', '*******');
?>

Code:
//eintrag.php
<?php
    include 'content.php';
    $sql = "INSERT INTO Event
                (tag)
            VALUES
                ('".$_POST['tag']"')";

    mysql_query($sql) OR die(mysql_error());

    echo "<p>Vielen Dank für ihren Eintrag.</p>\n";
?>


Ich weiß etwas viele Dateien, aber ich hoffe hier könnt mir helfen. Ich denke der Fehler befindet sich in der eintrag.php. Er findet den Array $_POST, obwohl ich gelesen habe, dass es eine globales Array sein soll. Was ich noch befürchte ist, dass ich die Arrays falsch eingeteilt habe.

Vielen Dank schonmal im vorraus.

[edit]

Ich habe jetzt schon etwas rausgefunden bei dem Befehl ('".$_POST['tag']."')"; fehlte hinter dem "['tag'] der Punkt. Nun kommt diese Fehlermeldung:

Code:
Verbindung wurde aufgebaut
resource(9) of type (mysql link)

Notice: Undefined index: tag in /data/members/free/tripod/de/i/n/g/ingo3333/htdocs/eintrag.php on line 15

Vielen Dank für ihren Eintrag.

In der SQL Tabelle werden zwar die Daten gesendet aber der Inhalt bleibt leer.
 
Zuletzt bearbeitet:
Hallo,
vielleicht so:
PHP:
//eintrag.php
<?php
	include 'content.php';
	$tag = $_POST['tag'];
	$sql = "INSERT INTO Event
				(tag)
			VALUES
				('$tag')";
 
	mysql_query($sql) OR die(mysql_error());
 
	echo "<p>Vielen Dank für ihren Eintrag.</p>\n";
?>

Was mir noch aufgefallen ist, dass du irgendwie keine Datenbank mit z.B. [phpf]mysql_select_db[/phpf] auswählst.

mfg
forsterm
 
Guckguck.

Ich habe Deinen Vorschlag probiert und stellt sich leider immernoch das gleiche Problem.

Code:
Notice: Undefined index: tag in /data/members/free/tripod/de/i/n/g/ingo3333/htdocs/eintrag.php on line 12

Die Variable aus dem Formular wird nicht übertragen. Es liegt am Array, denke ich, jedoch finde ich nicht den Fehler.


Den Befehl mysql_select_db habe ich jetzt in meiner contant.php Datei eingebunden:

Code:
<?php
    error_reporting(E_ALL);
    include 'config.php';
    include 'variablen.php';
    // Konfigurationsdatei laden

    @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
        die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR
        die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());

?>

Was mir auf fällt ist, dass das Script die Einträge in die SQL DB einträgt, jedoch der Inhalt von " tag " leer bleibt:

Code:
vollständige Textfelder   	  ID   	  tag        uhrzeit   	  datum
Ändern 	Löschen 	          4 	  	       NULL 	  NULL
Ändern 	Löschen 	          3 	  	       NULL 	  NULL
 
PHP:
//eintrag.php
<?php
    include 'content.php';
    if(isset($_POST['tag'])) $tag = $_POST['tag'];
    $sql = 'INSERT INTO Event
                (tag)
            VALUES
                ("'.mysql_real_escape_string($tag).'")';

    mysql_query($sql) OR die(mysql_error());

    echo "<p>Vielen Dank für ihren Eintrag.</p>\n";
?>
 
Leider auch hier kein Erfolg. Er sagt mir immernoch, das " tag " eine undefinierte Variable ist.
Könnte es vielleicht an meinem Webserver liegen ?

Meine Datenbank hab ich eigentlich normal mit:

CREATE TABLE News
(
ID INT AUTO_INCREMENT PRIMARY KEY,
tag TEXT,
uhrzeit VARCHAR(15),
Datum TEXT
);

erstellt.

Vll hat ja jemand eine andere Idee dies zu verwirklichen. Eigentlich möchte ich ein Formular, wo ich den Wochentag, das Datum und die Uhrzeit eintragen kann. Dann kann ich noch per Dropdown Menu 1 von 3 Bildern aussuchen. Diesen 4 Sachen sollen dann in die index.php in eine Tabelle übergeben werden. Die Daten sollen ja nicht verloren gehen, solange sie nicht geupdatet wurden, vondaher die Datenbank.
Stell ich mich zu blöd an oder ist es zu kompliziert rangegangen oder was mache ich falsch ?
 
Zuletzt bearbeitet:
Hab nochmal ein paar Tutorials gelesen und jetzt hab ich das Script etwas verkürzt oder wie auch immer. Gibt noch ein paar kleine Fehler ansonsten geht es aber ganz gut.

Code:
<form action="<?php echo $PHP_SELF ?>" method="post" name="eintragung">

        Tag:<input type="text" name="tag" size="25">
        Uhrzeit:<input type="text" name="uhrzeit" size="25">
        Datum:<input type="text" name="datum" size="25">


        <input type="submit" name="neueintrag" value="Eintragen">
        <input type="submit" name="update" value="Update">
        <input type="reset" value="L&ouml;schen">

</form>



<?php
    include 'config.php';

    @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR
        die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR
        die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());


                if($neueintrag)
                {
                    $tag = addslashes($tag); 
                    $uhrzeit = addslashes($uhrzeit);
                    $datum = addslashes($datum);


                    $sql = "INSERT INTO Event
                                (tag, uhrzeit, datum)
                            VALUES
                                ('$tag', '$uhrzeit', '$datum')";

                            mysql_query($sql) or
                              die("Error: " . mysql_error());

                    echo "Eintragung erfolgreich hinzugefügt"; // Bestätigung ausgeben
                }
                
                elseif($update)
                {
                    $sql = "UPDATE
                                Event
                            SET
                                ('$tag', '$uhrzeit', '$datum')";

                            mysql_query($sql) or
                              die("Error: " . mysql_error());

                    echo "Update erfolgreich "; 

                }

    $sql = "SELECT
                tag,
                uhrzeit,
                datum
            FROM
                Event";

    $result = mysql_query($sql) OR die(mysql_error());

        echo "Satz in der Datenbank:<br />\n";

            while($row = mysql_fetch_assoc($result))
            {
            echo $row['tag']." ,\n".$row['uhrzeit']." ,\n ".$row['datum'];
            }
?>
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück