Datenübergabe

mike4004

Erfahrenes Mitglied
Hallo ich wollte fragen ob mir jemand sagen kann warum dieses script net geht.
(es kommt keine Fehler meldung deshalb geh i davon aus dass es an den Sql befehlen liegt hab aber keine ahnung)
thx schon im vorfeld.


Code:
<?php

$server = "localhost"
$user = "xxx"
$pass = "xxxx";

$dbh = mysql_connect($server,$user,$pass);

mysql_connect($server,$user,$pass);

mysql_select_db(mike4004,$dbh);

$ip =getenv("REMOTE_ADDR");
$host = getenv("REMOTE_HOST");
$serverip = getenv("SERVER_NAME");
$scipt = getenv("SCRIPT_NAME");
$browser = getenv("HTTP_USER_AGENT");
$realip   = getenv("HTTP_X_FORWARDED_FOR");


$eintrag = "INSERT INTO SAVE
(NAME, PASSWORT, IP, IPProxy, HOST, SEVERIP, SCRIPT, BROWSER )


VALUES
('$name', '$pass', '$ip' , '$realip', '$host', '$serverip', '$scipt', '$browser')";
mysql_query($eintrag);

mysql_close($dbh)
?>
 
So sollts eigendlich Funktionieren...
Sag mir bescheid !

Code:
<?php
#---------------------------------------------- Verbindung Herstellen ----------------------------------------------#
                                                ### initiieren ###
$server = "localhost";
$user = "xxx";
$pass = "xxxx";
$db = "mike4004";

$verbindung = mysql_connect ($server,$user,$pass) or die ("Verbindung fehlgeschlagen");
  mysql_select_db($db) or die ("DB unbekannt");

#------------------------------------------------- Einfügen --------------------------------------------------------#
                                              ### initiieren ###
$ip       = getenv("REMOTE_ADDR");
$host     = getenv("REMOTE_HOST");
$serverip = getenv("SERVER_NAME");
$scipt    = getenv("SCRIPT_NAME");
$browser  = getenv("HTTP_USER_AGENT");
$realip   = getenv("HTTP_X_FORWARDED_FOR");
$name     = "";
$pass     = "";


$sql_eintrag = "INSERT INTO
                        `SAVE`
                        (`NAME`, `PASSWORT`, `IP`, `IPProxy`, `HOST`, `SEVERIP`, `SCRIPT`, `BROWSER`)
            VALUES
                        ('".$name."', '".$pass."', '".$ip."' , '".$realip."', '".$host."', '".$serverip."', '".$scipt."', '".$browser."')";
$erg_eintrag = mysql_query($sql_eintrag);

#----------------------------------------------Verbindung Schließen ------------------------------------------------#
mysql_close($verbindung)
?>

Achte besonders darauf, dass der Name der Datenbank, Dein Passwort, Dein Username, Dein Server >>RICHTIG<< geschrieben sind.
Es MÜSSEN auch die Namen der Spalten in der tabelle, sowie der Tabellenname selbst >>Richtig<< geschreiben sein.
DIE GROß/kleinschreibung wird beachtet.
 
Zuletzt bearbeitet von einem Moderator:
Ui, ganz schön viele Feher! Probier mal Folgendes:
PHP:
<?php

	$server = 'localhost';
	$user = 'xxx';
	$pass = 'xxxx';

	$dbh = mysql_connect($server, $user, $pass);
	mysql_select_db('mike4004', $dbh);

	$query = "
		INSERT INTO
		        `SAVE`
		 SET
		        `NAME`     = '".mysql_real_escape_string($_POST['name'])."',
		        `PASSWORT` = '".mysql_real_escape_string($_POST['passwort'])."',
		        `IP`       = '".$_SERVER['REMOTE_ADDR']."',
		        `IPProxy`  = '".( isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? mysql_real_escape_string($_SERVER['HTTP_X_FORWARDED_FOR']) : '' )."',
		        `HOST`     = '".( isset($_SERVER['REMOTE_HOST']) ? mysql_real_escape_string($_SERVER['REMOTE_HOST']) : '' )."',
		        `SEVERIP`  = '".( isset($_SERVER['SERVER_NAME']) ? mysql_real_escape_string($_SERVER['SERVER_NAME']) : '' )."',
		        `SCRIPT`   = '".mysql_real_escape_string($_SERVER['SCRIPT_NAME'])."',
		        `BROWSER`  = '".mysql_real_escape_string($_SERVER['HTTP_USER_AGENT'])."'
		";
	mysql_query($query);

	mysql_close($dbh);

?>
 
Sorry das ich das sage, aber das, was du gepostet hast, ist falsch.
Schau mal in das referenz-handbuch von PHP !
da siehst du, das das
SET
lala = poo

nur bei Updates verwendet wird....
deshlab wird dein Script nicht funktionieren !

Und wo ist deine Initiierung der Variablen ?


Wir können ja ne kleine Wette abschließen... es geht um die Ehre...
Wenn mein Code funktioniert, habe ich gewonnen.
Wenn dein Code funktioniert, hast du gewonnen.
Zusätzlich können wir ja jemand anderes mal um seine Meinung fragen.

Ich fänds nur Cool, wenn du mal beide Codes ausprobieren würdest und uns danns agen würdest,. welcher funktioniert...

danke *umknuddel*
 
Zuletzt bearbeitet von einem Moderator:
ja danke beide script funktionieren danke aber ich wollt wissen wieso in beiden scripten die variable name und pass net eingetragen werden muss i die ohne $ schreiben da die von einem anderen script kommen das die variablen per post übertragen?

ach ja was meinst du Sealtuagn das was nix geht beide scripte gehen bei mir halt.

ach ja ich möchte die aktuelle Zeit auch in die datenbank bringen so ungefähr 2.7.2005 12:15

kann mir jemad das einfügen bitte.


thx
 
Zuletzt bearbeitet:
mike4004 hat gesagt.:
ich wollt wissen wieso in beiden scripten die variable name und pass net eingetragen werden muss i die ohne $ schreiben da die von einem anderen script kommen das die variablen per post übertragen?
Gott oh Gott.. geht auch nicht so Kunfuse ?
Also... bei mir ist die Variable $pass sowie die variable $name initiiert.
Die musst du, wenn sie in der URL übergebn wurd (test.php?name=lala&pass=poo)
die auch mit $pass und $name eintragen.

Wenn sie über ein Formular übergeben werden, dann musst du sie mit $_POST['name'] und $_POST['pass'] eintragen.

mike4004 hat gesagt.:
ach ja was meinst du Sealtuagn das was nix geht beide scripte gehen bei mir halt.
Seid wann kann man denn auch so eine Zeile Einsetzen ?
wusst ich garnicht...
cool, danke... (hehe, was machen wa nu wa ham beide recht.. o.kay.. beide gewonnen... einverstanden ?)

Das einfügen geht so:
PHP:
### initiieren ###
$timestamp = time();

### Code ###
$sql = "INSERT INTO 'tabelle' (`datum`) VALUE ('".date("d.m.Y", $timestamp).", ".date("H:i", $timestamp)."')";
$erg = mysql_query($sql);

is nur so runtergetippt.. könnt n fehler drinne sein mit den Kommas
 
Zuletzt bearbeitet von einem Moderator:
wenn ich $name durch $_post['name'] ersetze kommt das passwort und der name noch immer net in der Datenbank an,

Code:
<?php

    $server = 'localhost';
    $user = 'mike4004';
    $pass = 'mike';

    $dbh = mysql_connect($server, $user, $pass);
    mysql_select_db('mike4004', $dbh);

    $query = "
        INSERT INTO
                `SAVE`
         SET
                `NAME`     = '".mysql_real_escape_string($_POST['name'])."',
                `PASSWORT` = '".mysql_real_escape_string($_POST['pass'])."',
                `IP`       = '".$_SERVER['REMOTE_ADDR']."',
                `IPProxy`  = '".( isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? mysql_real_escape_string($_SERVER['HTTP_X_FORWARDED_FOR']) : '' )."',
                `HOST`     = '".( isset($_SERVER['REMOTE_HOST']) ? mysql_real_escape_string($_SERVER['REMOTE_HOST']) : '' )."',
                `SEVERIP`  = '".( isset($_SERVER['SERVER_NAME']) ? mysql_real_escape_string($_SERVER['SERVER_NAME']) : '' )."',
                `SCRIPT`   = '".mysql_real_escape_string($_SERVER['SCRIPT_NAME'])."',
                `BROWSER`  = '".mysql_real_escape_string($_SERVER['HTTP_USER_AGENT'])."'
        ";
    mysql_query($query);

    mysql_close($dbh);

?>
 
Am besten Postest du uns mal den Code, wo du die Daten herbekommst, sprich wo $name und $pass definiert werden...

und ich denke ich spreche für alle, das es dann einfacher ist, die "herkunft" zu bestimmen und dein problem zu lösen.
 
Sorry das ich das sage, aber das, was du gepostet hast, ist falsch.
Schau mal in das referenz-handbuch von PHP !
Gegenargument ? 1: In der Zeichenkette wird eine MySQL-Abfrage beschrieben, das hat mit PHP absolut nichts zu tun.
Gegenargument ? 2: Die INSERT-Syntax erlaubt sowohl die VALUES- als auch SET-Klausel. Die Variante mit der SET-Klausel halte ich persönlich für zu bevorzugen, da sie gegenüber der anderen Variante eine gewisse Übersichtlichkeit bietet.

Und wo ist deine Initiierung der Variablen ?
Nur die Parameter „name“ und „pass“ werden vom Benutzer selbst gesetzt. Und da es sich den Abkürzungen nach zu urteilen wohl um eine Benutzerauthentifizierung handelt, bin ich davon ausgegangen, dass die Daten in einem Formular mit der POST-Methode übermittelt werden.

Allgemein sollten übermittelte Parameter, sei es per GET- oder per POST-Methode, über die vordefinierten, superglobalen Pendanten $_GET und $_POST referenziert werden.

Desweiteren sollten wiederum vom Benutzer manipulierbare Parameter für eine Datenbankabfrage vorbereitet bzw. entschärft werden. Sonst könnten diese schnell zu SQL-Injektionen missbraucht werden.


Übrigens: seidseit.de und vor Satzzeichen wie dem Frage- oder Ausrufungszeichen stehen im Deutschen keine Leerzeichen.
 
Wie gesagt.. ich wusste nicht, dass das auch SET funktioniert, da es mir selbst nur mit Value... beigebracht wurde.....

jedoch kann man immernoch nicht ermitteln, WO die variable $name und 4$pass herkommt...
sprich es könnte einer der Fehler sein, von denen Der USer selbst nichts bemerkt hat, und dies der fehler sein könnte...
denn wie in allen Programmiersprachen heißt es: Wenn eine globale Variable nicht definiert ist, ist es keine globale variable !
 
Zurück