php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.08.2005, 00:09  
Gast
 
Beiträge: n/a
Standard [Erledigt] Bilder vertauscht beim upload

Hiho!
Ich habe mir gerade 3 Seiten Suchergebnisse angeschaut, aber nix gefunden...

Ich habe ein kleines Auktionshaus gebaut und habe nun folgendes Problem :
Hin und wieder wenn 2 oder mehr Leute gleichzeitig nen Artikel einstellen, dann kommt es vor, dass die Bilder vertauscht werden...
Ich habe leider 0 Ahnung woran das liegen kann...

Formular :
Code:
	$zeit = time();
	$eintag = strtotime("+1 day");
	$dreitage = strtotime("+3 day");
	$fuenftage = strtotime("+5 day");
	$siebentage = strtotime("+7 day");
	if(!$_GET[minschritt])
		{
		$minschritt = "100";
		}
	else
		{
		$minschritt = $_GET[minschritt];
		}
	print "
	<font color=\"#000000\"><table>
	<form enctype=\"multipart/form-data\" name=\"artikelvorschau\" action=\"index.php\" method=\"post\" onSubmit=\"return chkFormular()\">
	<input type=\"hidden\" name=\"menu\" value=\"mymenu\">
	<input type=\"hidden\" name=\"go\" value=\"artikeleintragen\">
	<input type=\"hidden\" name=\"kategorie\" value=\"$_GET[kategorie]\">
	<input type=\"hidden\" name=\"unterkategorie\" value=\"$_GET[unterkategorie]\">
	<tr><td><font color=\"#000000\">[b]&uuml;berschrift (40 Zeichen)</td><td><font color=\"#000000\">[b] : </td><td><input type=\"text\" name=\"titel\" value=\"$_GET[titel]\" maxlength=\"40\"></td></tr>
	<tr><td><font color=\"#000000\">[b]Auktionsdauer</td><td><font color=\"#000000\">[b] : </td><td><select name=\"endzeit\"><option value=\"$eintag\">1 Tag</option><option value=\"$dreitage\">3 Tage</option><option value=\"$fuenftage\">5 Tage</option><option value=\"$siebentage\">7 Tage</option></select></td></tr>
	<tr><td><font color=\"#000000\">[b]Startpreis (in Gold)</td><td><font color=\"#000000\">[b] : </td><td><input type=\"text\" name=\"startpreis\" value=\"$_GET[startpreis]\"></td></tr>
	<tr><td><font color=\"#000000\">[b]Gebotsschritte (in Gold)</td><td><font color=\"#000000\">[b] : </td><td><input type=\"text\" name=\"minschritt\" value=\"$minschritt\"></td></tr>
	<tr><td><font color=\"#000000\">[b]Sofort Kaufen</td><td><font color=\"#000000\">[b] : </td><td><input  type=\"checkbox\" name=\"sofortkauf\"></td></tr>
	<tr><td><font color=\"#000000\">[b]Sofort Kaufen Preis</td><td><font color=\"#000000\">[b] : </td><td><input type=\"text\" name=\"sofortkaufpreis\" value=\"$sofortkaufpreis\"></td></tr>
	<tr><td><font color=\"#000000\">[b]Bild (als jpg-datei)</td><td><font color=\"#000000\">[b] : </td><td><input type=\"file\" name=\"userfile1\"></td></tr>
	<tr><td><font color=\"#000000\">[b]Beschreibung</td><td><font color=\"#000000\">[b] : </td><td><textarea cols=\"20\" rows=\"4\" name=\"inhalt\">$_GET[inhalt]</textarea></td></tr>
	<center><tr height=\"50\"><td></td><td></td><td></td></tr>
	<center><tr><td></td><td></td><td><input type=\"Submit\" name=\"true\" value=\"Abschicken\"></td></tr></form></table>
	";
Auswertung und Eintrag in die DB :
Code:
$result = mysql_query("SELECT * FROM Auction_Artikel WHERE 1 ORDER BY artnum DESC LIMIT 1");
$row = mysql_fetch_array($result) or die(mysql_error());
$ingamenick1 = $geheimchaos->geheimIngamenick;
$startzeit = time();
$endzeit = date("d.m.Y | H:i",$_POST[endzeit]);
$endzeiteintragen = $_POST[endzeit];
$kategorie = $_POST[kategorie];
$unterkategorie = $_POST[unterkategorie];
$titel = $_POST[titel];
$inhalt = $_POST[inhalt];
$startpreis = $_POST[startpreis];
$minschritt = $_POST[minschritt];
$einsteller = $geheimchaos->geheimUsername;
$artnum = $row[artnum]+1;
if($sofortkauf=="on")
	{
	$sofortkauf = "Ja";
	}
else
	{
	$sofortkauf = "Nein";
	}
$sql = "INSERT INTO Auction_Artikel (artnum,kategorie,unterkategorie,einsteller,ingamenick1,titel,inhalt,startzeit,endzeit,startpreis,gebot,minschritt,sofortkauf,sofortkaufpreis) VALUES ('$artnum', '$kategorie', '$unterkategorie', '$einsteller' ,'$ingamenick1' ,'$titel' ,'$inhalt' ,'$startzeit', '$endzeiteintragen', '$startpreis', '$startpreis', '$minschritt', '$sofortkauf', '$sofortkaufpreis')";
mysql_query($sql) or die(mysql_error());

$sql = "INSERT INTO Auction_Gebote (artnum) VALUES ('$artnum')";
mysql_query($sql) or die(mysql_error());

$filename1 = $artnum . ".jpg";
move_uploaded_file($_FILES['userfile1']['tmp_name'], "auktionsbilder/" . $filename1);
$tempbild = "auktionsbilder/".$filename1;

print "
<font color=\"#000000\">
Folgender Artikel wurde eingestellt :


Kategorie : $_POST[kategorie]

Unterkategorie : $_POST[unterkategorie]

&uuml;berschrift : $_POST[titel]

Angebot endet am : $endzeit

Startpreis : $_POST[startpreis]

Gebotsschritte : $_POST[minschritt]

Beschreibung : $_POST[inhalt]
";
if(file_exists($tempbild))
	{
	print "<img src=\"auktionsbilder/$filename1\">
";
	}
else
	{
	print "<img src=\"auktionsbilder/nopic.jpg\">
";
	}
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.08.2005, 07:16  
Gast
 
Beiträge: n/a
Standard

Kannst du bitte beim nächsten mal dein PHP-Code im PHP packen ?

Code:
PHP-Code:
dein php code ... 
 
Alt 26.08.2005, 10:38  
Gast
 
Beiträge: n/a
Standard

versteh ich jetzt nicht wirklich...
habe lediglich das <? und das ?> weggelassen...
Ausserdem ist das keine Hilfe für mich ^^
 
Alt 26.08.2005, 10:39  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
   $zeit 
time();
   
$eintag strtotime("+1 day");
   
$dreitage strtotime("+3 day");
   
$fuenftage strtotime("+5 day");
   
$siebentage strtotime("+7 day");
   if(!
$_GET[minschritt])
      {
      
$minschritt "100";
      }
   else
      {
      
$minschritt $_GET[minschritt];
      }
   print 
"
   <font color=\"#000000\"><table>
   <form enctype=\"multipart/form-data\" name=\"artikelvorschau\" action=\"index.php\" method=\"post\" onSubmit=\"return chkFormular()\">
   <input type=\"hidden\" name=\"menu\" value=\"mymenu\">
   <input type=\"hidden\" name=\"go\" value=\"artikeleintragen\">
   <input type=\"hidden\" name=\"kategorie\" value=\"$_GET[kategorie]\">
   <input type=\"hidden\" name=\"unterkategorie\" value=\"$_GET[unterkategorie]\">
   <tr><td><font color=\"#000000\">[b]&uuml;berschrift (40 Zeichen)</td><td><font color=\"#000000\">[b] : </td><td><input type=\"text\" name=\"titel\" value=\"$_GET[titel]\" maxlength=\"40\"></td></tr>
   <tr><td><font color=\"#000000\">[b]Auktionsdauer</td><td><font color=\"#000000\">[b] : </td><td><select name=\"endzeit\"><option value=\"$eintag\">1 Tag</option><option value=\"$dreitage\">3 Tage</option><option value=\"$fuenftage\">5 Tage</option><option value=\"$siebentage\">7 Tage</option></select></td></tr>
   <tr><td><font color=\"#000000\">[b]Startpreis (in Gold)</td><td><font color=\"#000000\">[b] : </td><td><input type=\"text\" name=\"startpreis\" value=\"$_GET[startpreis]\"></td></tr>
   <tr><td><font color=\"#000000\">[b]Gebotsschritte (in Gold)</td><td><font color=\"#000000\">[b] : </td><td><input type=\"text\" name=\"minschritt\" value=\"$minschritt\"></td></tr>
   <tr><td><font color=\"#000000\">[b]Sofort Kaufen</td><td><font color=\"#000000\">[b] : </td><td><input  type=\"checkbox\" name=\"sofortkauf\"></td></tr>
   <tr><td><font color=\"#000000\">[b]Sofort Kaufen Preis</td><td><font color=\"#000000\">[b] : </td><td><input type=\"text\" name=\"sofortkaufpreis\" value=\"$sofortkaufpreis\"></td></tr>
   <tr><td><font color=\"#000000\">[b]Bild (als jpg-datei)</td><td><font color=\"#000000\">[b] : </td><td><input type=\"file\" name=\"userfile1\"></td></tr>
   <tr><td><font color=\"#000000\">[b]Beschreibung</td><td><font color=\"#000000\">[b] : </td><td><textarea cols=\"20\" rows=\"4\" name=\"inhalt\">$_GET[inhalt]</textarea></td></tr>
   <center><tr height=\"50\"><td></td><td></td><td></td></tr>
   <center><tr><td></td><td></td><td><input type=\"Submit\" name=\"true\" value=\"Abschicken\"></td></tr></form></table>
   "
;
?>
PHP-Code:
<?php
$result 
mysql_query("SELECT * FROM Auction_Artikel WHERE 1 ORDER BY artnum DESC LIMIT 1");
$row mysql_fetch_array($result) or die(mysql_error());
$ingamenick1 $geheimchaos->geheimIngamenick;
$startzeit time();
$endzeit date("d.m.Y | H:i",$_POST[endzeit]);
$endzeiteintragen $_POST[endzeit];
$kategorie $_POST[kategorie];
$unterkategorie $_POST[unterkategorie];
$titel $_POST[titel];
$inhalt $_POST[inhalt];
$startpreis $_POST[startpreis];
$minschritt $_POST[minschritt];
$einsteller $geheimchaos->geheimUsername;
$artnum $row[artnum]+1;
if(
$sofortkauf=="on")
   {
   
$sofortkauf "Ja";
   }
else
   {
   
$sofortkauf "Nein";
   }
$sql "INSERT INTO Auction_Artikel (artnum,kategorie,unterkategorie,einsteller,ingamenick1,titel,inhalt,startzeit,endzeit,startpreis,gebot,minschritt,sofortkauf,sofortkaufpreis) VALUES ('$artnum', '$kategorie', '$unterkategorie', '$einsteller' ,'$ingamenick1' ,'$titel' ,'$inhalt' ,'$startzeit', '$endzeiteintragen', '$startpreis', '$startpreis', '$minschritt', '$sofortkauf', '$sofortkaufpreis')";
mysql_query($sql) or die(mysql_error());

$sql "INSERT INTO Auction_Gebote (artnum) VALUES ('$artnum')";
mysql_query($sql) or die(mysql_error());

$filename1 $artnum ".jpg";
move_uploaded_file($_FILES['userfile1']['tmp_name'], "auktionsbilder/" $filename1);
$tempbild "auktionsbilder/".$filename1;

print 
"
<font color=\"#000000\">
[b]Folgender Artikel wurde eingestellt :[/b]


Kategorie : $_POST[kategorie]

Unterkategorie : $_POST[unterkategorie]

&uuml;berschrift : $_POST[titel]

Angebot endet am : $endzeit

Startpreis : $_POST[startpreis]

Gebotsschritte : $_POST[minschritt]

Beschreibung : $_POST[inhalt]
"
;
if(
file_exists($tempbild))
   {
   print 
"<img src=\"auktionsbilder/$filename1\">
"
;
   }
else
   {
   print 
"<img src=\"auktionsbilder/nopic.jpg\">
"
;
   } 
?>
 
Alt 26.08.2005, 11:56  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Die PHP-Tags sollen ja nicht Dir helfen, sondern denen, die Dir helfen (w|s)ollen und den Code dazu lesen müssen.

Was soll denn diese Abfrage hier...
$result = mysql_query("SELECT * FROM Auction_Artikel WHERE 1 ORDER BY artnum DESC LIMIT 1");
$row = mysql_fetch_array($result) or die(mysql_error());

Das or die(mysql_error()); solltest Du lieber hinter den query-Aufruf schreiben.

Du suchst Dir immer den erstbesten Artikel aus der DB raus und nimmst davon natürlich auch die Artikel-Nr für das Bild.

Was meinst Du denn eigentlich damit , dass "Bilder vertauscht werden"?
Wirklich vertauscht oder kriegen zwei für unterschiedliche Artikel das gleiche Bild?

Bei Dir sind übrigens alle Zugriffe auf $_POST außerhalb von Stringkonstanten falsch.
Es heißt nicht
$_POST[endzeit]
sondern
$_POST['endzeit']


Setz oben in das Script mal
error_reporting(E_ALL);
rein und staune über die Warnungen....
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 30.08.2005, 00:20  
Gast
 
Beiträge: n/a
Standard

0 Warnungen...

$result = mysql_query("SELECT * FROM Auction_Artikel WHERE 1 ORDER BY artnum DESC LIMIT 1");
$row = mysql_fetch_array($result) or die(mysql_error());

das sucht nicht irgendeinen eintrag sondern den letzten raus.
man achte auf "ORDER BY artnum DESC LIMIT 1"
das ergibt meine neue "artnum"...

Das Fehlerbild ist unterschiedlich.
Mal haben 2 das gleiche Bild, mal sind sie vertauscht...
 
Alt 30.08.2005, 07:01  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Entweder Du hast die Warnungen wegen der undefinierten Konstanten schon beseitigt, oder da stimmt was nicht.
$artnum = $row[artnum]; gibt bestimmt eine Warnung!

Der Teil mit "or die (mysql_error()); sollte immer noch hinter den mysql_query-Aufruf statt hinter mysql_fetch_array().

Da Du keinerlei Bedingunen an den Artikel stellst, ist es für mich schon "irgendeiner". Nur halt zufällig der mit der höchsten Nummer. Das hat ja nix damit zu tun, welchen Artikel der Besucher grade angucken will.
Sollte da nicht irgendwas anderes in den WHERE-Teil? Sonst müssen doch eigentlich alle Besucher immer den gleichen Artikel kriegen bis mal wieder ein neuer dazu kommt.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 30.08.2005, 08:04  
Gast
 
Beiträge: n/a
Standard

hi...

also...er fragt die letzte artnum ab und zählt eins dazu:
PHP-Code:
<?php
$artnum 
$row[artnum]+1
?>
plz so schreiben:
PHP-Code:
<?php
$artnum 
$row['artnum']++;
?>
nun häbgst du ein ".jpg" an die neue artnum (frag mich nicht was passiert wenn es ein *.gif file ist^^) und lädt es dann hoch...

was mich jetzt intrerssieren würde ist wie die dateien im ortner "auktionsbilder" aussehen...

mfg stego87 :wink:
 
Alt 30.08.2005, 10:53  
Gast
 
Beiträge: n/a
Standard

was is der unterschied zwischen
$artnum = $row[artnum]+1;
und
$artnum = $row['artnum']++;

bezüglich gif mach ich ne abfrage :
$dateityp = $_FILES['userfile1']['type'];
if(($dateityp != "image/jpeg") && ($dateityp != "") && ($dateityp != "image/pjpeg"))
 
Alt 30.08.2005, 11:36  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

So solltest Du das lieber nicht ersetzen!

Der Unterschied ist, dass

PHP-Code:
<?php
$artnum 
$row['artnum']++; 
?>
zumindest syntaktisch korrekt ist.
Du hast Doch angeblich keine Warnungen.... ??????
Oder hast Du error_reporting(E_ALL) gar nicht reingesetzt?

Assoziative Arrays haben einen String als Index. Strings stehen nunmal in Hochkommata oder in Anführungszeichen.

Ganz richtig wäre aber

PHP-Code:
<?php
$artnum 
$row['artnum']+1;
?>
Du willst ja nicht $row['artnum']; nach der Zuweisung um 1 erhöhen sondern den höheren Wert an $artnum zuweisen.

Der Unterschied zwischen +1 und ++ besteht darin, das sich +1 nur auf den Wert des Ausdrucks auswirkt. Die Zuweisung wird also mit dem Wert des Array-Inhalts + 1 gemacht.

Bei ++ wird der verwendete Wert nach der Auswertung um 1 erhöht. Die Zuweisung wäre also der Wert aus dem Array. Nach dem Auslesen des Wertes wird dieser erhöht (Aber nicht für die Zuweisung verwendet).

Man kann das ++ auch vor den Wert schreiben. Dann wird der Wert vor der Verwendung erhöht. Die Zuweisung würde also mit dem erhöhten Wert erfolgen.

Könntest Du eigentlich endlich mal in Dein Start-Posting ein paar Zeilenumbrüche rein-editieren?
So lange Zeilen sehen im Forum (und auch im Editor) einfach fürchterlich aus weil sie das ganze Layout ruinieren.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bilder Upload PHP Tipps 2006 6 24.03.2006 15:19
Probelem bei meinem Upload Script für Bilder wiegia086 PHP Tipps 2006 3 17.03.2006 09:14
file upload & bilder resize PHP Tipps 2006 3 15.02.2006 18:56
Bilder upload plus eintrag in DB tommi89 Datenbanken 1 28.01.2006 08:59
[Erledigt] Bildergalerie Gallery 1.5-pl1 + Bilder upload Probleme !!!! PHP Tipps 2005-2 6 01.09.2005 23:22
[Erledigt] Mysql - PHP - Bilder upload Datenbanken 5 24.08.2005 00:04
Bilder Upload in MySQL...geht das? Aris Sung PHP-Fortgeschrittene 7 23.08.2005 23:18
[Erledigt] Bilder Upload für user in eigenen Ordner PHP-Fortgeschrittene 7 08.07.2005 10:38
Bilder Upload funktioniert nicht auf dem Webserver... 18inch PHP Tipps 2005-2 32 28.06.2005 19:14
Maximale grösse beim Upload der Bilder... PHP Tipps 2005-2 7 12.06.2005 17:45
Bilder Upload Problem unter Firefox... becks123 PHP Tipps 2005 19 16.04.2005 12:12
Bilder upload (Massen) PHP Tipps 2005 11 06.01.2005 14:14
Bilder - Upload - Email - MySQL PHP Tipps 2004 10 20.10.2004 15:48
[Erledigt] upload bilder PHP Tipps 2004 21 16.09.2004 13:57

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
chkformular dateityp, auktionsbilder upload

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.