PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP+Mysql]Prob.



chicill
29.04.2004, 00:24
Hi Leute,
ich habe ein Problem, undzwar habe ich ein Script geschrieben (oder versucht zu schreiben) mit dem man ein Admin Bilder hochladen kann. Diese werden hochgeladen und gleich danach werden die Daten der hochgeladenen Bilder in eine Datenbank geschrieben und können danach auf einer Seite ausgegeben werden, also eigentlich nichts besonders abnormales :D, aber es geht nicht.
Wenn ich die Datei im Browser öffnet kommt zwar keine Fehlermeldung mehr, aber wenn ich alles in die Formluare eingegeben habe etc. und auf den Button drücke (Upload) passiert nichts. Es scheint zwar das die Bilder hochgeladen werden, aber mehr passiert nicht und die Daten sind auch nicht in die Datenbank eingetragen worden.

Also hier mal der Code:


<?php

// Datenbank Variablen

$dbserver = 'blub'; // Datenbankserveradresse
$dbname = 'bla'; // Name der Datenbank
$dbuser = 'bluba'; // Username des Datenbankbenutzers
$dbpass = 'bla blow'; // Passwort des Datenbankbenutzers

// connecten zur db
$dbconnect = @mysql_connect("$dbserver", "$dbuser", "$dbpass");
if (!$dbconnect) {
echo( "<p>Verbindung zur Datenbank kann zur Zeit nicht hergestellt werden!</p>");
exit();
}
if (! @mysql_select_db("$dbname") ) {
echo ("<p>Auswahl der Datenbank zurzeit nicht noeglich!</p>");
exit();
}
// User Daten Laden
$result2 = @mysql_query("select username, pass FROM p4m_admin");
if (!$result2) {
echo("<p>Die Userdaten koennen zur Zeit nicht geladen werden!</p>");
exit();
}
while ( $row3 = mysql_fetch_array($result2) ) {
$username = $row3["username"];
$pass = $row3["pass"];
}
// Pic Daten Laden
$result = @mysql_query("select id, file, filem, text FROM p4m_pics");
if (!$result) {
echo("<p>Die Bilderdaten koennen zur Zeit nicht geladen werden!</p>");
exit();
}
while ( $row2 = mysql_fetch_array($result) ) {
$id = $row2["id"];
$file = $row2["file"];
$filem = $row2["filem"];
$text = $row2["text"];
}
$result3 = @mysql_query("select id from p4m_pics order by id desc limit 1");
if (!$result3) {
echo("<p>Die hoechste ID kann zur Zeit nicht aus der Datenbank ausgelesen werden!</p>");
exit();
}
while ( $row3 = mysql_fetch_array($result) ) {
$id = $row3["id"];
}
if ($_COOKIE['p4madmin'] == $username and $_COOKIE['p4mpass'] == $pass) {
// Echter Content hier
if ("hochladen" == "Upload"): {
// Upload
if ($uploadbig_type == "image/pjpeg" or $uploadbig_type == "image/gif") {
// Uploadbig
if ($uploadsmall_type == "image/pjpeg" or $uploadsmall_type == "image/gif"){
// Uploadsmall
if ( "image/pjpeg" == $uploadbig_type ) {
// Dateiendung Aussuchen
$extensionbig =".jpg";
} else {
$extensionbig = ".gif";
}
// Dateiendung Aussuchen Ende
$filebig = "pics/" . "3d" . $uploadid . $extensionbig;
if (is_uploaded_file($uploadbig) &&
copy($uploadbig, $filebig)) {
// Große Datei Erfolgreich hochgeladen
if ( "image/pjpeg" == $uploadsmall_type ) {
// Dateiendung Aussuchen
$extensionsmall =".jpg";
} else {
$extensionsmall = ".gif";
}
// Dateiendung Aussuchen Ende
$filesmall = "pics/" . "3d" . $uploadid . $extensionsmall;
if (is_uploaded_file($uploadsmall) &&
copy($uploadsmall, $filesmall)) {
// kleine Datei Erfolgreich hochgeladen
$filenamebig = "3d";
$filenamebig .= $uploadid;
$filenamebig .= $extensionbig;
$filenamesmall = "3d";
$filenamesmall .= $uploadid;
$filenamesmall .= $extensionsmall;
$sql3 = "insert into p4m_pics SET
id='$uploadid',
file='$filenamebig',
filem='$filenamesmall',
text='$uploadtext'";
if (@mysql_query($sql3)) {
echo ("Upload Erfolgreich! Upload Daten in die Datenbank eingetragen!");
?>
<meta http-equiv="refresh" content="2; URL=index.php">
<?php
exit();
} else {
echo ("Fehler beim einfügen der Upload Daten in die Datenbank! Bilder hochgeladen!");
}
// kleine Datei Erfolgreich hochgeladen ende
} else {
// kleine Datei nicht Erfolgreich hochgeladen
echo ("Die kleine Version des Bildes konnte nicht Erfolgreich hochgeladen werden");
}



} else {
echo ("Die große Version des Bilder konnte nicht erfolgreich hochgeladen werden.");
}
} else {
echo ("Das kleine Bild entspricht nicht dem richtigen Dateiformat!");
}
} else {
echo ("Das große Bild entspricht nicht dem richtigen Dateiformat!");
}
} else: {
// Upload Formular
$uploadid2 = "$id+1";
?>
<form name="upload" method="post" action="<?php $PHP_SELF ?>" enctype="multipart/form-data">
<font size="1" face="Verdana"><strong>Neues Bild hinzufuegen: </strong><br>
<br>
</font>
<table width="80%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="30%"><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Neues
Bild:</strong><br>
(in Originalgr&ouml;&szlig;e)</font></td>
<td width="70%">
<input name"uploadid" type="hidden" value="<? echo("$uploadid2"); ?>">
<input name="uploadbig" type="file" size="40">
&nbsp;</td>
</tr>
<tr>
<td><font size="1" face="Verdana"><strong>Neues
Bild:</strong><br>
(kleine Version)</font></td>
<td><input name="uploadsmall" type="file" id="uploadsmall" size="40"></td>
</tr>
<tr>
<td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>Bild
Text:</strong><br>
(der Text, welcher unter dem Bild steht)</font></td>
<td><input name="uploadtext" type="text" size="40"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="hochladen" value="Upload"></td>
</tr>
</table>
<font size="1" face="Verdana"> </font>
</form>
<?php
} endif;
} else {
echo ("Bitte Loge dich ein bevor du ein neues Bild hinzufuegen moechtest moechtest.");
?>
<meta http-equiv="refresh" content="2; URL=../login.php">
<?php
}
?>


was ist aber denn jetzt hier dran falsch? plz help...
greetz Razer

Chocwise
29.04.2004, 04:54
Entschuldige bitte, ich hab dein Script nicht nach Fehlern analysiert, hab gerade zu viel zu schaffen. :)
Aber könnte es sein das du das Datenbankfeld für die Speicherung der Bilddateien nicht richtig eingestellt hast?
Soweit ich mich erinnere muss man den Typus dieses Feldes auf "blob" einstellen. Allerdings hab ich das noch nie gemacht da die Abspeicherung von Dateien in der DB diese nur unnötig belasten. Ich würde es, sollten die Pix größer als Avatare sein, lieber als Datei im Dateisystem ablegen.

Schau mal in die MySQL-Dokumentation ob ich mit dem Typus "blob" richtig liege und ändere das DB-Feld entsprechend solltest du es noch nicht getan haben.

chicill
29.04.2004, 21:41
ne so meinte ich das nicht sry war vielleicht etwas komisch umschrieben :D.

Also die Bilder werden ganz normal auf dem Webspace gespeichert. Nur die Daten der Bilder, also der Bildname, Bildtext etc. wird in der Datenbank gespeichert :).

sry wenn ich mich etwas unverständlich ausdrücke, aber ich bin noch nicht lang mit PHP am werkeln :D.

CiferXIV
30.04.2004, 05:17
Versuchs mal mit:


if ($hochladen == "Upload"): {

statt


if ("hochladen" == "Upload"): {

Edit: Ach ja, ich denke, die Backslash in den echo-Ausdrücken wurden hier von der Forensoftware entfernt, ansonsten müsstest du da, wo du im echo "<img etc. blah mit Anführungsstrichen>" Anführungsstriche hast, musst du die Backslashs noch reinmachen.

chicill
30.04.2004, 19:20
Original geschrieben von CiferXIV
[B]Versuchs mal mit:


if ($hochladen == "Upload"): {

statt


if ("hochladen" == "Upload"): {



oh man ich könnte mir in den hintern tretten -.-
Aber trotzdem Big THX

War echt der Fehler, aber nun habe ich einen weiteren Fehler undzwar so das hochgeladene File in einen bestimmten Ordner kopiert werden, aber wie muss die bezeichnung sein?

Also die Orderstruktur ist wie folgt (dort wo das Bild rein soll: (so siehts über FTP aus)
/html/pics/

Wenn ich jetzt hochlade kommt die Fehlermeldung:
Warning: copy(): open_basedir restriction in effect. File(/tmp/phpZWGfK8) is not within the allowed path(s): (/home/www/web212/) in /home/www/web212/html/admin/addpic.php on line 67

Also hab ich das Upload Verzeichnis auf
/home/www/web212/html/pics/

geändert doch es funzt nicht :(

was muss ich denn dann angeben?

plz help

Ineluki
30.04.2004, 19:47
hast dus mit einem relativen pfad zur php datei versucht ?
also wenn die php datein .../html/ liegt und die Bilder nach .../html/pics/ sollen, das du dann als verzeichnis ./pics/ angibst ?

chicill
30.04.2004, 20:32
so jetzt geht alles Big THX an alle :D