da fehlt dir wohl ein include. Die Funktion GetSQLValueString existiert einfach nicht. http://forums.digitalpoint.com/showthread.php?t=54786 Warum du diesen Post jedoch nicht via google gefunden hast, ist fraglich ;-)
Hallo Forum,
Habe eine Zeile als Update generiert.
Diese Zeile funktioniert im "SQL Manager" und "phpmyadmin" ohne Fehlermeldung.
Nur wenn es aus dem Browser aufgerufen wird gibt es eine Fehlermeldung.
habe das schon hin und her formatiert, Google bemüht, aber nichts gefunden.Code:generiert mit var_dump($_POST) array(10) { ["form_bild"]=> string(2) "13" ["form_JPG"]=> string(18) "Bi_13_p1010680.jpg" ["form_titel"]=> string(20) "Ein Titel für Bi_13" ["form_text"]=> string(16) "sjdfajsdnflkjsdf" ["form_datum"]=> string(10) "2010-11-15" ["form_pfad"]=> string(39) "/images/stories/BIG/galerie/archiv/big/" ["form_do"]=> string(2) "do" ["form_update"]=> string(6) "update" ["layout"]=> string(7) "default" ["view"]=> string(7) "article" } UPDATE galerie SET pfad = '/images/stories/BIG/galerie/archiv/big/', JPG = 'Bi_13_p1010680.jpg', titel = 'Ein Titel für Bi_13', text = 'sjdfajsdnflkjsdf', datum = '2010-11-15' WHERE ID_GA = '13' >>>>>________UPDATE Anfrage (>> UPDATE galerie SET pfad = '/images/stories/BIG/galerie/archiv/big/', JPG = 'Bi_13_p1010680.jpg', titel = 'Ein Titel für Bi_13', text = 'sjdfajsdnflkjsdf', datum = '2010-11-15' WHERE ID_GA = '13' <<) konnte nicht ausgeführt werden : das ist der SQL-Teil: $sql_upd = "UPDATE galerie SET "; $sql_upd .= "pfad = '" . $_POST['form_pfad'] . "', "; $sql_upd .= "JPG = '" . $_POST['form_JPG'] . "', "; $sql_upd .= "titel = '" . $_POST['form_titel'] ."', "; $sql_upd .= "text = '" . $_POST['form_text'] . "', "; $sql_upd .= "datum = '" . $_POST['form_datum'] . "'"; $sql_upd .= " WHERE ID_GA = '" . $_POST['form_bild'] . "'"; ____________________________________________________- generiert mit var_dump($_POST) array(10) { ["form_bild"]=> string(2) "13" ["form_JPG"]=> string(18) "Bi_13_p1010680.jpg" ["form_titel"]=> string(20) "Ein Titel für Bi_13" ["form_text"]=> string(16) "sjdfajsdnflkjsdf" ["form_datum"]=> string(10) "2010-11-15" ["form_pfad"]=> string(39) "/images/stories/BIG/galerie/archiv/big/" ["form_do"]=> string(2) "do" ["form_update"]=> string(6) "update" ["layout"]=> string(7) "default" ["view"]=> string(7) "article" } Fatal error: Call to undefined function GetSQLValueString() in E:\apache\xampp\htdocs\cms\templates\big-garath\myphpfiles\Images_einlesen_inDB.php on line 25 das ist der SQL_Teil $sql_upd = sprintf("UPDATE galerie SET pfad=%s, titel=%s, text=%s, datum=%s, JPG=%s WHERE ID_GA=%s", GetSQLValueString($_POST['form_pfad'], "text"), // Das ist die 25 GetSQLValueString($_POST['form_titel'], "text"), GetSQLValueString($_POST['form_text'], "text"), GetSQLValueString($_POST['form_datum'], "date"), GetSQLValueString($_POST['form_JPG'], "text"), GetSQLValueString($_POST['form_bild'], "int"));
Vielleicht auch eine falsche Frage gestellt. Wer kann mir den Fehler sagen, den ich da mache?
da fehlt dir wohl ein include. Die Funktion GetSQLValueString existiert einfach nicht. http://forums.digitalpoint.com/showthread.php?t=54786 Warum du diesen Post jedoch nicht via google gefunden hast, ist fraglich ;-)
Viele Grüße
Matthias.
http://www.bruecksen.de
Hallo Matthias,
doch, der GetSQLValueString ist da...
Wenn ich den String mit echo $sql_upd ausgebe ist alles da.
Code:UPDATE galerie SET pfad='/images/stories/BIG/galerie/archiv/big/', titel='Ein Titel für Bi_08', text='kaslfdjkaölkjdsf ', datum='2010-11-15', JPG='Bi_08_p1010651.jpg' WHERE ID_GA=8
Hallo Kami,
der String mag da sein. Aber wenn dir die Funktion fehlt hilft dir das auch nicht weiter. Versuch doch mal folgendes aufzurufen:
verursacht genau den gleichen Fehler weil er einfach die Funktion nicht findet, diese nicth existiert und es ihm dann egal ist was du dieser übergibst. Irgendwo muss die Funktion ja definiert sein, eine standard PHP Funktion ist es jedenfalls nicht! Fragt sich wo du das script her hast und ob du vielleicht ein File nicht eingebunden hast.PHP-Code:echo GetSQLValueString("bla", "blub");
Viele Grüße
Matthias.
http://www.bruecksen.de
...
das ist der var_dump:
und das ist der String aus GetSQL...:Code:array(10) { ["form_bild"]=> string(1) "8" ["form_JPG"]=> string(18) "Bi_08_p1010651.jpg" ["form_titel"]=> string(20) "Ein Titel für Bi_08" ["form_text"]=> string(18) "kaslfdjkaölkjdsf " ["form_datum"]=> string(10) "2010-11-15" ["form_pfad"]=> string(39) "/images/stories/BIG/galerie/archiv/big/" ["form_do"]=> string(2) "do" ["form_update"]=> string(6) "update" ["layout"]=> string(7) "default" ["view"]=> string(7) "article" }
Code:bla
In anbetracht dessen, dass der Fehler offensichtlich (und wie Du ja auch selbst schon festgestellt hast) nicht am SQL selbst liegt, wäre es sicher sinnvoll ein wenig des Quelltextes zu posten, aus dem das Problem entsteht. Die Fehlermeldung besagt, dass die Funktion an dieser Stelle nicht definiert ist - von daher würde ich hier erst mal ansetzen. Evtl. hilft auch ein Debugger, so dass du Schritt für Schritt nachverfolgen kannst, wie dein Code ausgeführt wird.
...zur Zeit außer Betrieb...
... Leider habe ich keinen Debugger für PHP/HTML.
Habe es mit echo gemacht und die; Aber den Fehler konnte ich noch nicht lokalisieren.
Nachfolgend der Code:
und hier die Tabelle:PHP-Code:<?php
// Verhindern, dass die Datei direkt aufgerufen wird
defined('_JEXEC') or die('Restricted access');
require_once('Connections/kami.php');
require_once('searchFiles.inc.php');
$zeit = localtime ( time (), 1 );
$zeit = date('H')+1 . date(':i:s');
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}?>
<?php
//var_dump($_POST);
// es wird wieder das Formular geöffnet
$gehezupage = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$gehezupage .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
// Update der Bildunterschriften
if (isset($_POST['form_do']) && ($_POST['form_do']=="do") )
{
/* $sql_upd = sprintf("UPDATE galerie SET pfad=%s, titel=%s, text=%s, datum=%s, JPG=%s WHERE ID_GA=%s",
GetSQLValueString($_POST['form_pfad'], "text"),
GetSQLValueString($_POST['form_titel'], "text"),
GetSQLValueString($_POST['form_text'], "text"),
GetSQLValueString($_POST['form_datum'], "date"),
GetSQLValueString($_POST['form_JPG'], "text"),
GetSQLValueString($_POST['form_bild'], "int"));
*/
$sql_upd = "UPDATE galerie SET ";
//$sql_upd .= "pfad = '" . $_POST['form_pfad'] . "', ";
//$sql_upd .= "JPG = '" . $_POST['form_JPG'] . "', ";
$sql_upd .= "titel = '" . $_POST['form_titel'] ."', ";
$sql_upd .= "text = '" . $_POST['form_text'] . "', ";
//$sql_upd .= "datum = '" . $_POST['form_datum'] . "'";
$sql_upd .= " WHERE ID_GA = '" . $_POST['form_bild'] . "'";
echo $sql_upd . " >>>>>________UPDATE" . $br;
//echo GetSQLValueString("bla", "blub");
$resultat = $db->query($sql_upd);
if ( $resultat) {
echo "Anfrage (>> {$sql_upd} <<) konnte nicht ausgeführt werden : " . mysql_error();
exit;
}
}
// File vom Ordner in Array einlesen
$images = "/images/stories/BIG/galerie/archiv/big/";
$dir = $_SERVER['DOCUMENT_ROOT'] . $images;
$type = "JPG,jpg";
// Funktionsaufruf für den Ordner / Einlesen der Files in das Array
$ordnerliste = listPicture1($dir, $type);
$ordnerl_anz = count($ordnerliste);
for($x=0; $x <$ordnerl_anz ; $x++) {
$file = basename($ordnerliste[$x]['file']);
// SQL-Befehl ausführen ob Bild vorhanden
$db->select_db($database_kami);
$sql_frage = "SELECT JPG FROM galerie WHERE JPG = '{$file}'";
$result = $db->query($sql_frage);
$suched = $result->fetch_array ();
$anz = $result->num_rows;
// Prüfen in DB ob Bild vorhanden
if ( $anz == 0){
// wenn nicht vorhanden, dann das Bild aus dem Ordner in die DB einfügen
$sql_insert = "INSERT INTO galerie (JPG, pfad) VALUES ('{$file}', '{$images}')";
//echo $sql_insert . " >>>____es wird eingebaut" . $br;
$resultat = $db->query($sql_insert);
}
}
// Bild auswählen nach Auswahl-Liste
if ((isset($_POST['suche2'])) && ($_POST['suche2']=="Senden")) {
// Bild holen nach Auswahl-Liste
$id_nr = $_POST['suche'] . $br;
$db->select_db($database_kami);
$sql_Bild = "SELECT * FROM galerie WHERE ID_GA = '{$id_nr}' ORDER BY ID_GA ASC";
$holenB = $db->query($sql_Bild);
$row_holenB = $holenB->fetch_array();
$total_row_holenB = $holenB->num_rows;
};
// abholen (nur nach Galerie) aus DB galerie
$db->select_db($database_kami);
$sql_hol = "SELECT * FROM galerie WHERE pfad = '{$images}' ORDER BY ID_GA ASC";
$holen = $db->query($sql_hol);
$row_holen = $holen->fetch_array();
$total_row_holen = $holen->num_rows;
// Page wieder aufrufen Adresse
/*$self_op = $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
$self_op .= "?" . $_SERVER['QUERY_STRING'];
*/
// das ist für das Aufrufen des Bildes
$bilder = $_SERVER['HTTP_HOST'] . $_POST['pfad'] . $_POST['JPG'];
$bilddatum = date("Y-m-d");
?>
<div class="bild">
<h3>Hier kann der Redakteur den Titel und Bildtext einbauen</h3>
<img src="http://<?php echo $bilder; ?>" alt="" vspace="15" align="left">
</div>
<div> </div>
<div class="formular">
<?php // Das Auswahl-Formular; ?>
<form method="post" name="titel_einf" target="_self">
<!-- Bild hier einfügen -->
Suche Bild: <select name="suche" >
<?php
do {
?>
<option value="<?php echo $row_holen['ID_GA']?>"<?php if (!(strcmp($row_holen['JPG'], $row_holen['ID_GA']))) {echo "selected=\"selected\"";} ?>><?php echo $row_holen['JPG']?></option>
<?php
} while ($row_holen = $holen->fetch_array());
$rows = $holen->num_rows;
if($rows > 0) {
$holen->data_seek;
$row_holen = $holen->num_rows;
}
?>
</select>
<input type="submit" name="suche2" id="suche2" value="Senden" />
<?php echo $br; ?>
<input name="form_ID_GA" type="hidden" value="<?php echo $_POST['ID_GA'] ?>"><br />
</form> <br />
<?php
// hier das Formular
?>
<form action="<?php echo $gehezupage ?>" method="post" name="redakteur" target="_self">
ID-Nr.:<br />
<input name="form_bild" type="hidden" value="<?php echo $row_holenB['ID_GA']; ?>" size="50%" readonly="readonly"><br />
<br />Bild:<br />
<input name="form_JPG" type="text" value="<?php echo $row_holenB['JPG'] ?>" size="95%" maxlength="250" ><br />
<br />Titel:<br />
<input name="form_titel" type="text" value="<?php echo $row_holenB['titel'] ?>" size="95%" maxlength="250" ><br />
<br />Titeltext:<br />
<textarea name="form_text" cols="72%"><?php echo $row_holenB['text'] ?></textarea><br />
<input name="form_datum" type="hidden" value="<?php echo $bilddatum ?>">
<?php echo 'Es ist: "'. $zeit . '" Uhr' . $br . $br;
?>
<input name="form_pfad" type="hidden" value="<?php echo $images; ?>">
<input name="form_do" type="hidden" value="do">
<img src="images/stories/besps_buttons/bwd.png" width="40" height="20" alt="zurück" />
<img src="images/stories/besps_buttons/fwd.png" width="40" height="20" alt="vor" />
<input name="form_update" type="submit" value="update">
</form></div>
<?php
$db->close();
?>
hoffentlich könnt Ihr mir helfen....PHP-Code:CREATE TABLE IF NOT EXISTS `galerie` (
`ID_GA` int(11) NOT NULL AUTO_INCREMENT,
`pfad` text CHARACTER SET latin1 COLLATE latin1_german2_ci,
`titel` text CHARACTER SET latin1 COLLATE latin1_german2_ci,
`text` text CHARACTER SET latin1 COLLATE latin1_german2_ci,
`datum` date DEFAULT NULL,
`JPG` varchar(30) CHARACTER SET latin1 COLLATE latin1_german2_ci DEFAULT NULL,
PRIMARY KEY (`ID_GA`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=25 ;
Nimm testweise die Abfrage
raus.PHP-Code:if (!function_exists("GetSQLValueString")) {
Nebenbei sehe ich, dass Du deine Werte aus dem Form ungeprüft in die DB schreibts. Das öffnet alle Tore für eine passable SQL-Injection und sollte unter allen Umständen vermieden werden. Siehe http://de.php.net/manual/en/security...-injection.php,
...zur Zeit außer Betrieb...
... nun dieses Formular kommt nur intern zur Verfügung.Nebenbei sehe ich, dass Du deine Werte aus dem Form ungeprüft in die DB schreibts.
Außerdem kommt noch htmlentities(xxxx) hinzu.
versorgt das Formular mit:GetSQLValueString
Das Rausnehmen desPHP-Code:$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
hat auch nichts gebracht. Weiterhin kommt die Fehlermeldung:PHP-Code:if (!function_exists("GetSQLValueString")) {
Code:Anfrage (>> UPDATE galerie SET pfad='/images/stories/BIG/galerie/archiv/big/', titel='Ein Titel für Bi_01', text='dyfgdf', datum='2010-11-15', JPG='Bi_01_dsc00149.jpg' WHERE ID_GA=1 <<) konnte nicht ausgeführt werden :
Das verstehe ich nicht, muss das nichtPHP-Code:$resultat = $db->query($sql_upd);
if ( $resultat) {
echo "Anfrage (>> {$sql_upd} <<) konnte nicht ausgeführt werden : " . mysql_error();
exit;
}
sein. Denn so wird doch eine Fehlermeldung ausgegeben wo gar kein Fehler ist.PHP-Code:if (!$resultat)
Deshalb steht hinter Deiner Fehlermeldung auch keine Error Nummer.
Grüße aus dem Odenwald
Thomas
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)