kostenloser Webspace werbefrei: lima-city


Formulardaten in Datenbank schreiben via functions.php

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    kevsworld

    Kostenloser Webspace von kevsworld

    kevsworld hat kostenlosen Webspace.

    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>&nbsp;Vorname<br/>
    <input class="field" type="text" name="nachname" id="nachname" required>&nbsp;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;	
    	}
    ?>



  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. michaelkoepke

    michaelkoepke hat kostenlosen Webspace.

    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
  4. tafelrunde-der-neuzeit

    tafelrunde-der-neuzeit hat kostenlosen Webspace.

    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
  5. Autor dieses Themas

    kevsworld

    Kostenloser Webspace von kevsworld

    kevsworld hat kostenlosen Webspace.

    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
  6. michaelkoepke

    michaelkoepke hat kostenlosen Webspace.

    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 :thumb: (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;
    }	
    [...]
  7. Autor dieses Themas

    kevsworld

    Kostenloser Webspace von kevsworld

    kevsworld hat kostenlosen Webspace.

    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>&nbsp;Vorname<br/>
    <input class="field" type="text" name="nachname" id="nachname" required>&nbsp;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
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!