2012-04-06 11 views
1

Ich stehe einige Probleme beim Versuch, einen PHP-Variablen Wert durch Funktionen zu übergeben, jedes Mal, wenn ich versuche, eine Variable in einer meiner Funktionen zu verwenden, wird der Wert Null, lassen Sie mich genauer. Ich habe den folgenden Code in meinem pHP-Datei:PHP-Variablen über Funktionen übergeben?

$myvar = $Session['username']; 

function updateuserinformation(){ 

     if(trim($_FILES["fileUpload"]["tmp_name"]) != ""){ 

      $images = $_FILES["fileUpload"]["tmp_name"]; 
      $new_images = "thumbnails_".$_FILES["fileUpload"]["name"]; 
      copy($_FILES["fileUpload"]["tmp_name"],"Photos/".$_FILES["fileUpload"]["name"]); 
      $width=200; //*** Fix Width & Heigh (Autu caculate) ***// 
      $size=GetimageSize($images); 
      $height=round($width*$size[1]/$size[0]); 
      $images_orig = ImageCreateFromJPEG($images); 
      $photoX = ImagesX($images_orig); 
      $photoY = ImagesY($images_orig); 
      $images_fin = ImageCreateTrueColor($width, $height); 
      ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY); 
      ImageJPEG($images_fin,"Photos/".$new_images); 
      ImageDestroy($images_orig); 
      ImageDestroy($images_fin); 

      print $data["foo"]; 

      echo"$myvar"; 

      mysql_query("UPDATE users SET userpictureaddress = 'http://www.litsdevelopment.com/litsapplication/userimages/MATEUS' WHERE username = 'Mateus' "); 

     } 
} 

ich versuche, die $ myvar Wert in meiner Funktion zu verwenden, aber jedes Mal, wenn ich den Code ausführen es funktioniert einfach nicht, ich habe bereits versucht, global, Globals, Arrays und Sitzung für nichts gearbeitet .Um corse ich mache einen kleinen Fehler in einem Teil davon, aber jemand weiß, was ist der richtige Weg, dies zu tun?

+0

Uhm ... Sollte nicht '$ myvar = $ Session ['Benutzername'];' be '$ myvar = $ _SESSION ['Benutzername'];'? – stealthyninja

Antwort

2

Wenn Sie verstehen wollen, wie variable Umfang funktioniert in PHP dies lesen:

http://php.net/manual/en/language.variables.scope.php

$myvar = $Session['username']; 

function updateuserinformation(){ 
    global $myvar; 

     if(trim($_FILES["fileUpload"]["tmp_name"]) != ""){ 

      $images = $_FILES["fileUpload"]["tmp_name"]; 
      $new_images = "thumbnails_".$_FILES["fileUpload"]["name"]; 
      copy($_FILES["fileUpload"]["tmp_name"],"Photos/".$_FILES["fileUpload"]["name"]); 
      $width=200; //*** Fix Width & Heigh (Autu caculate) ***// 
      $size=GetimageSize($images); 
      $height=round($width*$size[1]/$size[0]); 
      $images_orig = ImageCreateFromJPEG($images); 
      $photoX = ImagesX($images_orig); 
      $photoY = ImagesY($images_orig); 
      $images_fin = ImageCreateTrueColor($width, $height); 
      ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY); 
      ImageJPEG($images_fin,"Photos/".$new_images); 
      ImageDestroy($images_orig); 
      ImageDestroy($images_fin); 

      print $data["foo"]; 

      echo"$myvar"; 

      mysql_query("UPDATE users SET userpictureaddress = 'http://www.litsdevelopment.com/litsapplication/userimages/MATEUS' WHERE username = 'Mateus' "); 

     } 
} 

Aber wie @JohnConde weist darauf hin, es sieht aus wie Sie wirklich _SESSION $ bedeuten, wenn Sie versuchen, Lesen Sie aus der Sitzung.

1

Sie müssen entweder die Variable an die Funktion übergeben oder innerhalb der Funktion deklarieren, dass es sich um eine globale Variable handelt.

z.

function updateuserinformation($myvar){ 

oder

global $myvar; 
echo $myvar; 

Auch vor dem Zugriff mit Session-Variablen arbeiten, müssen Sie session_start() nennen.

+0

Ich habe es versucht. Kannst du etwas Code zur Verfügung stellen, ich habe auch im Internet gesucht und es hat nicht funktioniert! – Mateus

2
  1. Sie nicht nennen session_start()
  2. Sie $_SESSION falsch geschrieben
  3. Sie müssen alle Variablen übergeben werden, in einer Funktion als Parameter verwendet, wenn Sie möchten sie in der Funktion verwenden und Best Practices folgen

    session_start(); 
    $myvar = $_SESSION['username']; 
    
    function updateuserinformation($myvar){ 
    
        if(trim($_FILES["fileUpload"]["tmp_name"]) != ""){ 
    
         $images = $_FILES["fileUpload"]["tmp_name"]; 
         $new_images = "thumbnails_".$_FILES["fileUpload"]["name"]; 
         copy($_FILES["fileUpload"]["tmp_name"],"Photos/".$_FILES["fileUpload"]["name"]); 
         $width=200; //*** Fix Width & Heigh (Autu caculate) ***// 
         $size=GetimageSize($images); 
         $height=round($width*$size[1]/$size[0]); 
         $images_orig = ImageCreateFromJPEG($images); 
         $photoX = ImagesX($images_orig); 
         $photoY = ImagesY($images_orig); 
         $images_fin = ImageCreateTrueColor($width, $height); 
         ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1, $height+1, $photoX, $photoY); 
         ImageJPEG($images_fin,"Photos/".$new_images); 
         ImageDestroy($images_orig); 
         ImageDestroy($images_fin); 
    
         print $data["foo"]; 
    
         echo"$myvar"; 
    
         mysql_query("UPDATE users SET userpictureaddress = 'http://www.litsdevelopment.com/litsapplication/userimages/MATEUS' WHERE username = 'Mateus' "); 
    
        } 
    

    }