Formulardaten in Datenbank schreiben via functions.php
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
antworten
befehl
code
dank
datenbank
datum
form
index
klappen
kunde
nachname
paar
problem
sache
separaten datei
set
spielwiese
url
vorname
wurm
-
Hallo liebe Community,
seit einigen Stunden stehe ich vor einem Problem das ich einfach nicht gelöst bekomme.
Irgendwie ist gerade der Wurm drin ...
Bekomme folgenden Fehler:
Notice: Undefined variable: result_sql in /Applications/XAMPP/xamppfiles/htdocs/spielwiese/includes/functions.php on line 14
Fehlgeschlagen
Selbst wenn ich die Überprüfung ausklammere oder die result_sql auf true setze will er einfach nicht in die Datenbank schreiben.
index.php
<!DOCTYPE> <html> <head> <title>not</title> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <?php include('./includes/config.php'); //configuration include ?> <?php include('./includes/functions.php'); //functions include ?> <?php if(isset($_POST['send']) && ($_POST['send'] != '')) { $result = customer_add($_POST['vorname'],$_POST['nachname']); if($result == true) { echo "Daten wurden hinzugefügt."; } else { echo "Fehlgeschlagen."; } } ?> <body> <!-- CONTENT BEREICH --> <h1>Titelseite</h1><br/><br/> <h1>Formular</h1> <?php include("form.php"); ?> </body> </html>
form.php
<html> <form name="form1" method="post" action=""> <input class="field" type="text" name="vorname" id="vorname" required> Vorname<br/> <input class="field" type="text" name="nachname" id="nachname" required> Nachname<br/> <input class="button" type="submit" name="send" id="button" value="Bestellen"> </form> </html>
functions.php
<?php function customer_add($vorname,$nachname) { @mysql_query("set names 'utf8'"); // utf-8 unicode anpasssung $sql = @mysql_query("INSERT INTO kunden VALUES('','".$vorname."','".$nachname."')"); if($sql == true) { $result_sql = 1; } return $result_sql; } ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Schreibt dein Script denn was in die Datenbank? Weil wenn nicht, dann gibt es auch die Variable nicht, die du zurück geben willst ;) also deine Variable vorher (bevorzugt am Anfang) deklarieren ($result_sql = 0;) oder einen Else-Befehl (if($sql == true) { $result_sql = 1;} else { $result_sql = 0;}) einfügen.
PS: Wie öffnest und schließt du deine Datenbankverbindung?
MFG Micha
Beitrag zuletzt geändert: 6.9.2014 20:17:56 von michaelkoepke -
mysql_* function sind abolut veraltet und sollten dringend ersetzt werden. im einfachsten Fall durch mysqli_* aber mysqli im OO Modus ist sehr praktisch zum Programmieren, alternativ geht auch PDO.
Vielleicht löst sich damit auch dein Problem -
Erst einmal danke für eure Antworten, beide konnten mir weiterhelfen.
Habe meine Funktion wie folgt abgeändert:
functions.php
function customer_add($vorname,$nachname) { $con=mysqli_connect("localhost","root","","d232423"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } // $sql = mysqli_query($con,"INSERT INTO kunden (vorname,nachname) VALUES ('$vorname','$nachname')"); if($sql == true) { $result_sql = 1; } else { $result_sql = 0; } mysqli_close($con); return $result_sql; }
Nun möchte ich meine Datenbankverbindung aber in einer separaten Datei haben (config.php).
Habe schon ein paar Sachen versucht, aber es will nicht klappen.
Jemand evtl. einen Lösungsansatz?
Vielen lieben Dank -
kevsworld schrieb:
Erst einmal danke für eure Antworten, beide konnten mir weiterhelfen.
[...]
Nun möchte ich meine Datenbankverbindung aber in einer separaten Datei haben (config.php).
Habe schon ein paar Sachen versucht, aber es will nicht klappen.
Hey,
es ist schön zu hören, dass wir beide dir helfen konnten (gibt manchmal kein Feedback von Usern).
Meine Vorschläge zum Problem:
Lösung A: rufe die Datei in deiner Function auf
function customer_add($vorname,$nachname) { include('./includes/config.php'); [...]
Lösung B: Übergib die $con-Variable deiner Function
function customer_add($vorname,$nachname,$con) { $sql = mysqli_query($con,"INSERT INTO kunden (vorname,nachname) VALUES ('$vorname','$nachname')"); if($sql == true) { $result_sql = 1; } else { $result_sql = 0; } mysqli_close($con); return $result_sql; } [...]
-
Lösung:
index.php
<?php include('connections/config.php'); include('includes/functions.php'); // Hier beginnt der Content include('form.php'); // In Datenbank schreiben if(isset($_POST['send']) && ($_POST['send'] != '')) { $customer_vorname = $_POST['vorname']; $customer_nachname = $_POST['nachname']; customer_add($dbh, $customer_vorname,$customer_nachname); } ?>
config.php
<?php // Datenbankverbindung $user = 'root'; // Username $pass = ''; // Passwort try { $dbh = new PDO('mysql:host=localhost;dbname=dbsi3', $user, $pass); } catch (PDOException $e) { print "Database Error <br/>"; die(); } ?>
form.php
<form name="form1" method="post" action=""> <input class="field" type="text" name="vorname" id="vorname" required> Vorname<br/> <input class="field" type="text" name="nachname" id="nachname" required> Nachname<br/> <input class="button" type="submit" name="send" id="button" value="Bestellen"> </form>
functions.php
<?php function customer_add($dbh, $cus_vorname, $cus_nachname) { $sql = $dbh->exec("INSERT INTO kunden (vorname,nachname) VALUES ('$cus_vorname','$cus_nachname')"); if($sql == 1) { echo "OK"; } else { echo "FEHLER"; } $dbh = NULL; } ?>
Beitrag zuletzt geändert: 10.9.2014 23:44:40 von kevsworld -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage