#1 27. September 2007 Ist ja auch ne Programierspache hab leider keinen anderen Ort gefunden, wo es besser gepasst hätte.. kommen wir zu den Fragen... ich hab mich vor ein paar Jahren mal an PHP versucht.. habs damals auch recht schnell gelernt, bin aber bei der (wahrscheinlich) simplen lösung für ein Upload gescheitert.. um euch genau zu beschreiben, was ich brauche, nehmen wir mal an ich will eine Seite machen, in der man ein Album eintragen kann. Hierzu geht man auf eine Seite und gibt den interpret und album an (es wird gecheckt, ob das album existiert) falls es nicht existiert, werden die werte an ne weitere seite gegeben, und man kann das bild hochladen... dazu gibt es 2 möglichkeiten einmal perupload vom PC einmal via URL diese Datein sollen dann unter Interpretnamen_Album.gif/jpg/png gespeichert werden. dann kommt man auf ne weitere seite, inder man die liedtitel einfürgen muss. ich suche erstens ne möglichkeit die bilder in den Schema Interpretnamen_Album.gif/jpg/png zu speichern 2. muss der Fehler beim upload via URL ausgemerzt werden und 3. hätte ich es noch gerne, das (irgendwie ... hab keine ahnung wie) die hochgeladenen Bilder wieder gelöscht werden, wenn das eintragen nicht vollständig war oder abgebrochen wurde. ich hoffe ihr konnt helfen (hier mein script, das ich dafür geschrieben hab (ist ungetestet, aber so ungefähr hab ichs) PHP: <? php $Interpret = $_GET [ 'Interpret' ]; $Albumname = $_GET [ 'Albumname' ]; if( $_POST [ 'submit' ]) { $Interpret = $_POST [ 'Interpret' ]; $Albumname = $_POST [ 'Albumname' ]; $art =( $_POST [ 'art' ]); if (! $art ) { die ( "bitte geben sie eine upload art an" ); $Fehler = 1 ; } else { if ( $art == 'Datei' ) { $max_byte_size = 2097152 ; $allowed_types = "(jpg|jpeg|gif|bmp|png)" ; $anfang = $Interpret "_" $Albumname ; if( is_uploaded_file ( $_FILES [ "Datei" ][ "tmp_name" ])) { if( preg_match ( "/\." . $allowed_types . "$/i" , $_FILES [ "Datei" ][ "name" ])) { if( $_FILES [ "Datei" ][ "size" ] <= $max_byte_size ) { if( copy ( $_FILES [ "Datei" ][ "tmp_name" ], $_FILES [ "Datei" ][ "name" ])) { echo "Datei erfolgreich hochgeladen!<input type='button' value='Weiter' onClick=\"location.href='dienaechsteseite.php?Interpret=" . $Interpret . "&Albumname=" . $Albumname . "'\"><br>" ; $Fehler = 1 ; } else { die ( "Datei konnte nicht hochgeladen werden." ); $Fehler = 1 ; } } else { die ( "Die Datei darf nur eine Größe von " . $max_byte_size . " Byte besitzen." ); $Fehler = 1 ; } } else { die ( "Das Format ist nicht erlaubt." ); $Fehler = 1 ; } } else { die ( "Keine Datei zum Hochladen angegeben." ); $Fehler = 1 ; } } if ( $art == 'URL' ) { echo $_POST [ 'URL' ]; if( $data = file_get_contents ( $_POST [ 'URL' ])) { if( get_magic_quotes_runtime ()) $data = stripslashes ( $data ); $fh = fopen ( "bilder/zieldatei.ext" , "w" ); fputs ( $fh , $data ); fclose ( $fh ); } } } } } if (! $Fehler ) { ?> <html> <head> <title>Upload</title> <script type="text/javascript"> function auswahl(file) { if (file) { document.getElementById('datei').style.display='block'; document.getElementById('url').style.display='none'; } else { document.getElementById('datei').style.display='none'; document.getElementById('url').style.display='block'; } } --> </script> </head> <body> <center> <form action="<?php echo $_SERVER [ 'PHP_SELF' ]; ?>" enctype="multipart/form-data" method="post"> <table cellpadding="2" align="center"> <tr> <td>Uploadart:</td> <td><input type="radio" name="art" value="Datei" onclick="auswahl(true);">Datei<input type="radio" name="art" value="URL" onclick="auswahl(false);">URL</td> </tr> <tr> <td>URL oder Pfad:</td> <td><div id="datei" style="display:"><input type="file" name="Datei" ></div> <div id="url" style="display: none"><input type="text" name="URL" value="Bitte hier die URL eingeben"></div><input type="hidden" name="Interpret" value="<?php echo $Interpret ; ?>"><input type="hidden" name="Albumname" value="<?php echo $Albumname ; ?>"></td> </tr> <tr> <td colspan="3" align="center"><br><input type="submit" name="submit" value="Upload"> <input type="reset" value="Zurücksetzen"> <input type="button" value="Zurück" onclick="location='javascript:history.back()'"> </td> </tr> </table> </center> </form> </body> </html> <?php } ?>
#3 27. September 2007 AW: PHP-Fragen if(copy($_FILES["Datei"]["tmp_name"], $_FILES["Datei"]["name"])) der copy befehl gibt einen fehler aus falls die datei nicht vollständig geladen werden konnte also falls die if abfrage nicht true zurückgibt kannst du mit else dafür sorgen dass falsche einträge wieder gelöscht werden aber sorry ich versteh nicht ganz welches prob auftritt wenn du als file eine url angibst?
#4 27. September 2007 AW: PHP-Fragen sorry, aber lern erstmal richtig php grundwissen ist z.B. dass php eine scriptsprache ist.... außerdem gibt es php.net wo man wunderschöne informationen über operationen im filesystem und auch über fileuploads findet da steht z.B. dass man für hochgeladene dateien eigentlich move_uploaded_file() benutzt und wenn du dich durch php.net durchgelesen hast kannst du dich gerne wieder melden