SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 27.02.2005, 11:41:50
Grega Grega ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 33
Datei unter neuem Namen speichern

Moin.

Es ist mir echt peinlich, aber ich muss es fragen. Ich habe folgendes von php.net. Es geht darum, ein Bild zu verkleinern und auch zu speichern. Derzeit ist das Bild noch auf dem Server direkt abgelegt ($orig), das wird später dann durch ein Upload-Formular geändert. Doch darum geht es nicht. Erst einmal der Code, dann die Frage:
PHP-Code:
<?php
$orig 
"test.jpg";
$myimage resizeImage($orig'150''120');

function 
resizeImage($filename$newwidth$newheight){
   list(
$width$height) = getimagesize($filename);
   if(
$width $height && $newheight $height){
       
$newheight $height / ($width $newwidth);
   } else if (
$width $height && $newwidth $width) {
       
$newwidth $width / ($height $newheight);   
   } else {
       
$newwidth $width;
       
$newheight $height;
   }
   
$thumb imagecreatetruecolor($newwidth$newheight);
   
$source imagecreatefromjpeg($filename);
   
$neu "thumb/little_" $orig;
   
imagecopyresized($thumb$source0000$newwidth$newheight$width$height);
   
imagejpeg($thumb,$neu,80);
}
?>
Das klappt alles, bis auf die Tatsache, dass er mir das mit dem neuen Namen nicht macht. Wenn ich bei imagejpeg() als zweiten Parameter einen absoluten Namen (hier auch noch mit Pfad) angebe, dann speichert er es mir z.B. unter thumb/meinkleinesbild.jpg - das kann so natürlich nicht stehen bleiben. Deshalb habe ich das $neu eingeführt. $neu ist zusammengesetzt aus dem Pfad, einem "thumb_" und daran soll eigentlich der Original-Name der Datei angehängt werden. Also in diesem Beispiel sollte das verkleinerte Bild im Ordner "thumb" liegen und "thumb_test.jpg" heißen. Das macht er nur nicht so ganz... *schwitz* Es wird im Ordner "thumb" eine Datei namens "thumb_" angelegt. Eigentlich verknüpfe ich doch mit einem Punkt, also hier "pfad/präfix_".$originalname - Klappt aber nicht. Entweder bin ich zu erkältet oder zu blöde. Ich hoffe einmal, es ist der erste Fall... Kann mir noch einmal jemand netter Weise kurz auf die Sprünge helfen?

Schönen Sonntag
Grüße
G.
__________________
<Meine Ankunft war zeitlich schlecht gewählt!>
Mit Zitat antworten
  #2  
Alt 27.02.2005, 12:14:12
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Datei unter neuem Namen speichern

Die Variable $orig existiert nur außerhalb der Funktion. Da du diese aber als Parameter an die Funktion übergibst, steht der Inhalt von $orig innerhalb der Funktion in der Variablen $filename zu Verfügung. Wenn du dieses dementsprechend bei der Zuweisung von $neu beachtest, sollte es funktionieren.
Mit Zitat antworten
  #3  
Alt 27.02.2005, 12:23:29
Grega Grega ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 33
AW: Datei unter neuem Namen speichern

Okay, das war es! Ich habe jetzt
PHP-Code:
$neu "thumb/little_" $filename
Damit klappt es. Es wird im Ordner "thumb" die Datei little_test.jpg angelegt. Danke und einen schönen Sonntag noch! :-)
__________________
<Meine Ankunft war zeitlich schlecht gewählt!>
Mit Zitat antworten
  #4  
Alt 01.03.2005, 12:08:40
Grega Grega ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 33
AW: Datei unter neuem Namen speichern

Okay. Das Problem geht weiter. Wie man oben sehen kann, habe ich das mit dem Resize bis dahin mit einer lokal vorliegenden Datei praktiziert. Das Resize-Skript soll aber nun ein Teil eines Bild-Hochlade-und-dann-ein-Thumb-erstellen-Skript sein. Dazu habe ich ein altes Hochlade-Skript benutzt und vor dem Eintrag des beschreibenden Textes und der Pfade zum großen und kleinen Bild in die DB noch die Verkleinerung eingeschoben. Läuft aber so nicht. :(

Da ich mal denke, dass es wieder ein Problem mit dem richtigen Ansprechen der Datei ist, poste ich mal das komplette Skript:
PHP-Code:
<?php
        
include ('mySQL.inc.php');
       
        
$conn mysql_connect($db_server,$db_user,$db_passwort) or die (mysql_error());
        
$link mysql_select_db($db_name$conn) or die (mysql_error());

    if (isset(
$_POST['mode']) && $_POST['mode'] == "store_bilder_new"){   
                 
    
$beschreibung addslashes($beschreibung);
         
  
/////////////////////////////////////////////////
  /// Bild-Upload ///////////////////////////////
  /////////////////////////////////////////////////
    
$storingBig "../pics/large/";
    
$storingSmall "../pics/thumbs/";
    
$maxSize "40"//kB
    
$validFileTypes = Array("image/pjepeg""image/jpeg");
    
$bildy "290";
    
$bildx "240";
                   
    
$errorNoFile "Bitte w&auml;hlen Sie ein Bild zum Upload aus, bzw. f&uuml;llen Sie das Eingabeformular aus.";
    
$errorTooLarge "Die Datei &uuml;berschreitet die erlaubte Gr&ouml;&szlig;e von max. 40kB.";
    
$errorExtention "Die Datei entspricht leider nicht dem erlaubten File Format (.jpg).";
    
$errorUpload ="Die Datei konnte nicht upgeloadet werden. Bitte &uuml;berpr&uuml;fen Sie die Rechtevergabe.";
    
$errorXY ="Die Abmessungen des Bildes stimmen nicht! Das Bild muss 290 Pixel breit und 240 Pixel (Querformat) oder aber 290 Pixel hoch und 240 Pixel (Hochformat) sein.";
    
$allGood "Der Bild-Upload und der Eintrag der Beschreibung haben geklappt!";   
                   
    if(
is_uploaded_file($_FILES['userFile']['tmp_name'])){
   
      
$origName $_FILES['userFile']['name'];
      
$tempName $_FILES['userFile']['tmp_name'];
      
$mimeType $_FILES['userFile']['type'];
      
$fileSize $_FILES['userFile']['size']/1024//da rueckgabewert in bytes ist, muss durch 1024 geteilt werden, um kb zu bekommen
      
$bildinfos getimagesize($_FILES['userFile']['tmp_name']);
                       
            if(
$fileSize <= $maxSize){
                    if(
in_array($mimeType$validFileTypes)){
                        if((
$bildinfos[0] == $bildy) && ($bildinfos[1] == $bildx) || ($bildinfos[0] == $bildx) && ($bildinfos[1] == $bildy)){
                                if( @
move_uploaded_file($tempName$storingBig $origName)){
                                }else{
                                
$errorMsg $errorUpload;
                                break;
                                }
                        }else{
                        
$errorMsg $errorXY;
                        break;
                        }
                    }else{
                    
$errorMsg $errorExtention;
                    break;
                    }                                       
            }else{
            
$errorMsg $errorTooLarge;
            break;
            }
   
            if(!isset(
$errorMsg)){
                
$derpfad $storingBig $_FILES['userFile']['name'];
                
$derkleine $storingSmall $_FILES['userFile']['name'];
               
                
//hier dann alles fuer den thumb rein
                
$dasbild $_FILES['userFile']['tmp_name'];
                
$myimage resizeImage($dasbild'150''120');
               
                function 
resizeImage($filename$newwidth$newheight){
                    list(
$width$height) = getimagesize($filename);
                    if(
$width $height && $newheight $height){
                        
$newheight $height / ($width $newwidth);
                    } else if (
$width $height && $newwidth $width) {
                        
$newwidth $width / ($height $newheight); 
                    } else {
                        
$newwidth $width;
                        
$newheight $height;
                    }
                    
$thumb imagecreatetruecolor($newwidth$newheight);
                    
$source imagecreatefromjpeg($filename);
                    
$neu "../pics/thumbs/" $filename;
                    
imagecopyresized($thumb$source0000$newwidth$newheight$width$height);
                    
imagejpeg($thumb,$neu,80);
                    }
                  
////////////////////
                  // jetzt alles speichern
                  
$sqlab "insert bilder ";
                  
$sqlab .= "(text, bildb, bilds) values ";
                  
$sqlab .= "('$beschreibung', '$derpfad', '$derkleine')";
                                   
            if(
mysql_query($sqlab)){
                  
$status $allGood;                                   
            }else{
                  echo 
"Fehler beim Bildupload...............";
                }
                }
            }else{
                
$errorMsg $errorNoFile;
                }
                           
            if(isset(
$errorMsg)){
                echo 
$errorMsg "<br><br>";                               
            }else{
                echo 
$status "<br><br>";
            }
 
    if(
mysql_query($sqlab)) {
        echo 
"Die Daten wurden erfolgreich gespeichert!";
    }else {
        echo 
"Es ist ein Fehler aufgetreten, es wurde kein Datensatz hinzugef&uuml;gt.";   
      }
 
      
mysql_close($conn);
}
?>
Die Fehlermeldung, die ich bekomme ist ein
Zitat:
Fatal error: Call to undefined function: resizeimage() in /www/htdocs/blabla/inc_store_bilder_new.php on line 85
Woran kann es liegen? Wie gesagt, ich denke einmal, ich spreche die Datei falsch an. Doch wie ist es richtig?

Anstatt
PHP-Code:
$myimage resizeImage($dasbild'150''120'); 
habe ich auch schon einmal
PHP-Code:
$myimage resizeImage($derpfad'150''120'); 
genommen. Eigentlich müsste er - dachte ich mir mal - dann auf die bereits hochgeladene Datei im Verzeichnis /large zugreifen, oder? So oder so - ich bekomme die selbe Fehlermeldung wie oben schon geschrieben...

Grüße
G.
__________________
<Meine Ankunft war zeitlich schlecht gewählt!>
Mit Zitat antworten
  #5  
Alt 01.03.2005, 12:35:05
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Datei unter neuem Namen speichern

Du rufst die Funktion auf, obwohl du sie erst eine Zeile später definierst. Das funktioniert nicht.
Mit Zitat antworten
  #6  
Alt 01.03.2005, 12:57:57
Grega Grega ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 33
AW: Datei unter neuem Namen speichern

Aber gaaaaanz oben steht doch das Ur-Skript zum Verkleinern. Da steht die Funktion auch davor und es läuft wunderbar!

*hmm*

Ha! Habe eben noch einmal den Aufruf
PHP-Code:
$myimage resizeImage($derkleine'150''120'); 
unter die Funktion geschrieben. Dann gabs noch ein, zwei Fehlermeldungen. Habe dann noch vor die Funktion schnell ein
PHP-Code:
copy($derpfad,$derkleine); 
geschrieben und nun klappt es. Ich habe also erst das Bild hochgeladen in das Verzeichnis /large wie in $derpfad angegeben, dann dieses Bild in /thumbs kopiert (wie in $derkleine angegeben) und dann die Verkleinerungs-Funktion drüber laufen lassen. So funktioniert es. Es musste erst einmal die Datei vorhanden sein! Bestimmt geht es auch anders, dass man z.B. direkt aus dem "Stream" das Thumb macht. Das habe ich versucht und es klappte nicht. Wenn jemand eine Lösung weiß: Immer her damit. :) Bin aber erst einmal froh, dass das Teil lüppt!
__________________
<Meine Ankunft war zeitlich schlecht gewählt!>
Mit Zitat antworten
  #7  
Alt 01.03.2005, 13:34:24
Grega Grega ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 33
AW: Datei unter neuem Namen speichern

Ach so, einen hatte ich vergessen: Die Einträge in der DB sind zwar richtig, die Bilder werden mitttlereile auch richtig hochgeladen, aber ich bekomme immer einen doppelten Eintrag in der DB! Wieso?
__________________
<Meine Ankunft war zeitlich schlecht gewählt!>
Mit Zitat antworten
  #8  
Alt 01.03.2005, 14:03:54
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: Datei unter neuem Namen speichern

Zitat:
Zitat von xabbuh
Du rufst die Funktion auf, obwohl du sie erst eine Zeile später definierst. Das funktioniert nicht.
äh, stimmt nicht...

bsp:
PHP-Code:
<?php
echo ($text colored_text('foo bar')) ? $text 'FALSE';

function 
colored_text($text){ 
    
//datentest 
    
if(!is_string($text)) return FALSE

    
//string vorformatieren 
    
$text htmlentities(trim($text)); 
     
    
//text einfaerben 
    
for($i 0$i < (strlen($text)); $i++){ 
        
$letter substr($text$i1); 
        if(
$letter != ' ' && $letter != "r" && $letter != "n" && $letter != "rn"){ 
            
$colored_text .= '<span style="color: '
            if(
$i 2){ 
                
$colored_text .= '#ff0000'
            }else{ 
                
$colored_text .= '#0000ff'
            } 
            
$colored_text .= '">'.$letter.'</span>'
        }else{ 
            
$colored_text .= $letter
        } 
    } 
    return 
nl2br($colored_text); 
}
?>
php interpretiert den code doch erst, wenn das dokument gebuffert ist.
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #9  
Alt 01.03.2005, 14:23:41
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Datei unter neuem Namen speichern

Zitat:
Zitat von |Coding
äh, stimmt nicht...
Stimmt auch wieder, habe da was verwechselt.

Mich würde mal interessieren, welches jetzt Zeile 85 in dem Script von Grega ist.
Mit Zitat antworten
  #10  
Alt 01.03.2005, 14:30:26
Grega Grega ist offline
Anfänger
 
Registriert seit: Jan 2005
Beiträge: 33
AW: Datei unter neuem Namen speichern

Öhhh, ich bin der Meinung, das war diese hier:
PHP-Code:
 $myimage resizeImage($dasbild'150''120'); 
(Ist ja jetzt scon wieder alles umgeschrieben... *g*) Hat mich ja auch gewundert, dass das daran liegen sollte. Denn es hat ja vorher auch schon geklappt. Doch zurück zum aktuellen Prob: Den doppelten Einträgen. Irgendeine Idee dazu?
__________________
<Meine Ankunft war zeitlich schlecht gewählt!>
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
tabellen namen in variable und dann query speichern prob Stifler MySQLi/PDO/(MySQL) 2 20.12.2004 11:27:47
Datei mit Javascript öffnen und in eine Variable speichern didi86 HTML, CSS und JavaScript Help! 1 23.02.2004 21:33:49
geparste datei schreiben ingo PHP Grundlagen 1 29.12.2003 19:45:56
Namen für verlinkte Datei vorgeben Mic PHP Grundlagen 7 16.01.2003 15:33:58
fileinhalt auf server auslesen und in 2te datei speichern? Silencer PHP für Fortgeschrittene und Experten 2 28.10.2002 13:57:39


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:11:05 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt