Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP Script für Datenbank übertrögt keine Daten
<?php
$host = "localhost";
$port = "5432";
$user = "ghd";
$password = "matrix";
$dbname = "ghd";
$conn = @pg_connect ("dbname=$dbname user=$user port=$port host=$host");
$sqi = "insert into news (text, title) values ";
$sqi .= "('".pg_escape_string ($text)."',";
$sqi .= "'".pg_escape_string ($title)."');";
$action = $_SERVER['PHP_SELF'];
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
{
$res = pg_query ("INSERT INTO news (title, date, owner, text)
VALUES ($title, $date, $owner, $text)",$conn);
$oid = pg_last_oid ($res);
echo $oid;
}
}
?>
<html>
<head>
<title></title>
<meta content="">
<style></style>
</head>
<?php
include ('cmslib.php');
?>
<body>
Titel:
<input type="text" name="title"/>
Datum:
<input type="text" name="date"/>
Besitzer:
<input type="text" name="owner"/>
Text:
<input type="text" name="text"/>
<form align="center" action="<?=$action?>" method="post">
<input type="submit" value="News Senden"/>
</form>
</body>
</html>
Romanday
25-07-2005, 00:22
Zählt man den Rechtschreibfehler in der Überschrift hinzu, habe
ich 9 Fehler in dem Script gefunden. ;-)
Bietet jemand mehr?
Du solltest dir in Ruhe die einzelnen Funktionen unter
www.php.net mal anschauen, wenn du Zeit hast.
habe query vergessen. :o
geht trotzdem nicht.
Fehlermeldung:
Warning: pg_query(): supplied argument is not a valid PostgreSQL link resource in /var/www/ghd/cms/cmslib.php on line 21
Warning: pg_last_oid(): supplied argument is not a valid PostgreSQL result resource in /var/www/ghd/cms/cmslib.php on line 22
<form align="center" action="<?=$action?>" method="post">
das klappt?
<input type="submit" value="News Senden"/>
Also hier fühlen sich einige Browser beleidigt. Ist lt.Kopf doch HTML und kein XML oder Scripterguß.
Hallo,
@BlueJay
also wegen dem schließenden / mache ich mir weniger sorgen - der einzige einigermaßen "aktuelle" Browser der meines Wissens damit Probleme hat ist Netscape < 4.6 (wer mit einem fünf Jahre alten Browser unterwegs ist braucht sich nicht zu wundern).
Korrekterweise, sollte man ein leerzeichen zwischen dem " und dem / lassen... dann rafft das auch Netscape 4.:
<input type="submit" value="News Senden" />
Eigentlich sollte man dann aber auch gleich komplett auf valides XHTML umsteigen und den Doctype richtig deklarieren ;) .
@Tuxist
Der "Short opening Tag" von PHP <? sollte NIE verwendet werden - stattdessen IMMER <?php .
1. ist die schreibweise nicht XML compliant
2. funktioniert es nur wenn die tags in der php.ini erlaubt sind
Zu den Fehlern:
1. Die Datenbankverbindung am Anfang schlägt fehl -> "not a valid PostgreSQL link resource" bei einer Abfrage. Mach das @ vor dem pgconnect weg und du siehst die Fehlermeldung.
2. Weil du keine Verbindung hast kann die Abfrage auch keine Valide Rückgabe liefern aus denen du dann die Datesätze liest -> " not a valid PostgreSQL result resource".
Ich kann mich den Vorrednern nur anschließen... mach erstmal ein paar PHP Tutorials und arbeite dich Stück für Stück and die Sachen heran - nicht gleich alles auf einmal!
undefined
27-07-2005, 15:28
Also ein Input gehört doch schon in ein Form Tag ;)
Ein einfaches var_dump() Hilft immer ;)
<fieldset>
<form align="center" action="<?php echo $action; ?>" method="post">
<div>
<label for="a">
Titel:
</label>
<input id="a" type="text" name="title"/>
<label for="b">
Datum:
</label>
<input id="b" type="text" name="date"/>
<label for="c">
Besitzer:
</label>
<input id="c" type="text" name="owner"/>
<label for="d">
Text:
</label>
<input id="d" type="text" name="text"/>
<input type="submit" value="News Senden"/>
</div>
</form>
</fieldset>
..............
<?php
var_dump( $_POST );
?>
bekomme noch die selbe Fehlermeldung vermute Fehler in:
+array(0) { }
$sqi = "insert into news (text, title) values ";
$sqi .= "('".pg_escape_string ($text)."',";
$sqi .= "'".pg_escape_string ($title)."');";
$res = pg_query ("INSERT INTO news (title, date, owner, text);
VALUES ($title, $date, $owner, $text)",$conn);
$oid = pg_last_oid ($res);
echo $oid;
pg_close($conn)
Kann ihn aber localisieren.
Hallo Tuxist,
Ich erlaube mir mal auseinanderzunehmen was du da postest:
bekomme noch die selbe Fehlermeldung vermute Fehler in:
+array(0) { }
-> Was soll das heißen?
-----------------------------------------
$sqi = "insert into news (text, title) values ";
$sqi .= "('".pg_escape_string ($text)."',";
$sqi .= "'".pg_escape_string ($title)."');";
-> 1. Wo verwendest du den $sqi... in dem folgenden Codeabschnitt ja wohl nicht
-> 2. Findest du das übersichtlich??? Schlechter Stil!
$esc_text = pg_escape_string ($text);
$esc_title = pg_escape_string ($title);
$sqi = "INSERT INTO news (text, title) VALUES ('$esc_text','$esc_title')";
-----------------------------------------
$res = pg_query ("INSERT INTO news (title, date, owner, text);
VALUES ($title, $date, $owner, $text)",$conn);
-> Blödsinn... was soll das Semikolon am Ende der Zeile?
-> Wieso machst du oben ein escape auf die Eingaben und hier nicht?
$sql = "INSERT INTO news (title, date, owner, text)
VALUES ('$title', '$date', '$owner', '$text')";
$res = pg_query ($sql,$conn);
Ein weiterer Tip von mir... gewöhn dir mal einen gescheiten Stil an.
Gruß,
Gaert
Dragoran
28-07-2005, 09:16
verwende die Post variablen nicht direkt.
Bei neueren phpversionen ist das aus sicherheitsgründen in der php.ini abgestellt.
$_POST['text'] usw...
undefined
28-07-2005, 15:58
verwende die Post variablen nicht direkt.
Bei neueren phpversionen ist das aus sicherheitsgründen in der php.ini abgestellt.
$_POST['text'] usw...
Wer hat dir denn den Bären aufgebunden :D
Oder meinst du jetzt Register_Globals off
Dragoran
30-07-2005, 08:33
Wer hat dir denn den Bären aufgebunden :D
Oder meinst du jetzt Register_Globals off
genau das meine ich....
$title = unsauber
$_POST['title'] = korrekt ;)
<?php
var_dump( $_POST );
$_POST['title'] =$tilte;
$_POST['datum'] =$datum;
$_POST['owner'] =$owner;
$_POST['texte'] =$texte;
?>
hat nichts bewirkt.
undefined
30-07-2005, 19:18
Lese dir bitte das einmal durch bevor es für dich noch peinlicher wird ;)
http://www.php.net/manual/de/langref.php
PS:
$title = $_POST['title'];
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.