foto in sql speichern

latinum_1982

Erfahrenes Mitglied
Hallo

hab ich mal was geschriebn zum foto hochladen der name wird nur in die Sql geschreiben und das foto selbst wird auf ein bestimmen odner hochgeladen nur das es leider nicht funktioniert..

bekomme immer die fehlermeldung :

Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in F:\xampp\htdocs\xxx\ajaximage.php on line 39

hier der code überseh ich da vielleicht was?

PHP:
<?php

error_reporting(E_ALL);
ini_set("display_errors", "true");  


$path = "usr-photos/";

	$valid_formats = array("jpg", "png", "gif", "bmp");
	if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
			$name = $_FILES['photoimg']['name'];
			$size = $_FILES['photoimg']['size'];
			
			if(strlen($name)){
					list($txt, $ext) = explode(".", $name);
					if(in_array($ext,$valid_formats)){

						if($size<(1024*1024)){
								$actual_image_name = time().substr(str_replace(" ", "_", $txt), 5).".".$ext;
								$tmp = $_FILES['photoimg']['tmp_name'];
								if(move_uploaded_file($tmp, $path.$actual_image_name)){
									mysql_query("INSERT INTO 
												ratephoto 
                									VALUES 
												rate_image='$actual_image_name',  
												user='".$_SESSION['user_id']."'");
									
											echo 'Hochgeladen';
								}else{
									echo 'Fehlgeschlagen';
						}else{
							echo 'Das Foto darf nicht mehr als 1MB haben...';					
					}else{
						echo 'Ung&uuml;ltiges Foto Format...';	
 			}else{
	echo 'Please select image..!';		
	}

?>
 
Zuletzt bearbeitet:
so da war der einer fehler
PHP:
user='".$_SESSION['user_id']."'");

aber jetzt denn fehler

Parse error: syntax error, unexpected T_ELSE in F:\xampp\htdocs\xxx\ajaximage.php on line 31

PHP:
<?php

error_reporting(E_ALL);
ini_set("display_errors", "true");  


$path = "usr-photos/";

	$valid_formats = array("jpg", "png", "gif", "bmp");
	if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
			$name = $_FILES['photoimg']['name'];
			$size = $_FILES['photoimg']['size'];
			
			if(strlen($name)){
					list($txt, $ext) = explode(".", $name);
					if(in_array($ext,$valid_formats)){

						if($size<(1024*1024)){
								$actual_image_name = time().substr(str_replace(" ", "_", $txt), 5).".".$ext;
								$tmp = $_FILES['photoimg']['tmp_name'];
								if(move_uploaded_file($tmp, $path.$actual_image_name)){
									mysql_query("INSERT INTO 
												ratephoto 
                									VALUES 
												rate_image='$actual_image_name',  
												user='".$_SESSION['user_id']."'");
									
											echo 'Hochgeladen';
								}else{
									echo 'Fehlgeschlagen';
						}else{
							echo 'Das Foto darf nicht mehr als 1MB haben...';					
					}else{
						echo 'Ung&uuml;ltiges Foto Format...';	
 			}else{
	echo 'Please select image..!';		
	}

?>
 
In dem folgenden Bereich schlisst du kein else ab
PHP:
                                }else{
                                    echo 'Fehlgeschlagen';
                        }else{
                            echo 'Das Foto darf nicht mehr als 1MB haben...';                    
                    }else{
                        echo 'Ung&uuml;ltiges Foto Format...';    
             }else{
    echo 'Please select image..!';

Etwa so währe besser (es kann gut noch weitere solche Fehler im Code haben)
PHP:
                                }else{
                                    echo 'Fehlgeschlagen';
                                }
                        }else{
                            echo 'Das Foto darf nicht mehr als 1MB haben...';                   
                        }
                    }else{
                        echo 'Ung&uuml;ltiges Foto Format...';    
                    }
         }else{
			echo 'Please select image..!';        
	     }

ps: Rot bedeutet hier nicht fehler, sondern String....
Gleicher Code, andere Formatierung: [code=php] ...[/code]
PHP:
                                }else{
                                    echo 'Fehlgeschlagen';
                                }
                        }else{
                            echo 'Das Foto darf nicht mehr als 1MB haben...';                   
                        }
                    }else{
                        echo 'Ung&uuml;ltiges Foto Format...';    
                    }
         }else{
			echo 'Please select image..!';        
	     }
 
ich meinte eh das mit zu viele Strings sind zuerst war es ja so

PHP:
<?php

error_reporting(E_ALL);
ini_set("display_errors", "true");  


$path = "usr-photos/";

    $valid_formats = array("jpg", "png", "gif", "bmp");
    if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
            $name = $_FILES['photoimg']['name'];
            $size = $_FILES['photoimg']['size'];
            
            if(strlen($name)){
                    list($txt, $ext) = explode(".", $name);
                    if(in_array($ext,$valid_formats)){

                        if($size<(1024*1024)){
                                $actual_image_name = time().substr(str_replace(" ", "_", $txt), 5).".".$ext;
                                $tmp = $_FILES['photoimg']['tmp_name'];
                                if(move_uploaded_file($tmp, $path.$actual_image_name)){
                                    mysql_query("INSERT INTO 
                                                ratephoto 
                                                    VALUES 
                                                rate_image='$actual_image_name',  
                                                user='".$_SESSION['user_id']."');
                                    
                                            echo 'Hochgeladen';
                                }else{
                                    echo 'Fehlgeschlagen';
                        }else{
                            echo 'Das Foto darf nicht mehr als 1MB haben...';                    
                    }else{
                        echo 'Ung&uuml;ltiges Foto Format...';    
             }else{
    echo 'Please select image..!';        
    }

?>

da ich ja mir editor arbeite seh ich leider bei der programierung keine farben :(

aber das script speicher trozdem die das foto in der sql nicht ab :(
 
Zuletzt bearbeitet:
ja denn fehler hatte ich bereits

hier nochmal der aktuelle stand des php

PHP:
<?php

error_reporting(E_ALL);
ini_set("display_errors", "true");  


$path = "usr-photos/";

	$valid_formats = array("jpg", "png", "gif", "bmp");
	if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
			$name = $_FILES['photoimg']['name'];
			$size = $_FILES['photoimg']['size'];
			
			if(strlen($name)){
					list($txt, $ext) = explode(".", $name);
					if(in_array($ext,$valid_formats)){

						if($size<(1024*1024)){
								$actual_image_name = time().substr(str_replace(" ", "_", $txt), 5).".".$ext;
								$tmp = $_FILES['photoimg']['tmp_name'];
								if(move_uploaded_file($tmp, $path.$actual_image_name)){
									mysql_query("INSERT INTO 
												tuningfieber.ratephoto 
                									VALUES 
												rate_image='$actual_image_name',  
												user='".$_SESSION['user_id']."'");
									
											echo 'Hochgeladen';
								}else{
									echo 'Fehlgeschlagen';
								}
						}else{
							echo 'Das Foto darf nicht mehr als 1MB haben...';
						}					
					}else{
						echo 'Ung&uuml;ltiges Foto Format...';	
					}
 			}else{
				echo 'Please select image..!';
			}		
	}

?>
 
naja ich wollte es ja mit ajax verwenden aber jetzt hab ich mal das ajax rausgenommen und mach das mal mit nur php ..

das ist jetzt der fehlercode :
otice: Undefined offset: 1 in F:\xampp\htdocs\upload2.php on line 25

die teile 25 is das :
Code:
list($txt, $ext) = explode(".", $name);

und der ganze code

PHP:
$path = "../usr-photos/";

	$valid_formats = array("jpg", "png", "gif", "bmp");
	if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){

			$name = $_FILES['photoimg']['name'];
			$size = $_FILES['photoimg']['size'];
			
			if(strlen($name)){
					list($txt, $ext) = explode(".", $name);
					if(in_array($ext,$valid_formats)){

						if($size<(1024*1024)){
								$actual_image_name = time().substr(str_replace(" ", "_", $txt), 5).".".$ext;
								$tmp = $_FILES['photoimg']['tmp_name'];
								if(move_uploaded_file($tmp, $path.$actual_image_name)){
									mysql_query("INSERT INTO 
												ratephoto 
                									VALUES 
												rate_image='$actual_image_name'") or dir (mysql_error());
									
											echo 'Hochgeladen';
								}else{
									
									echo 'Fehlgeschlagen';
								}
						}else{
							echo 'Das Foto darf nicht mehr als 1MB haben...';
						}					
					}else{
						echo 'Ung&uuml;ltiges Foto Format...';	
					}
 			}else{
				echo 'Please select image..!';
			}

var_dump($_POST);
	}

HTML:
<form method="post" enctype="multipart/form-data">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr>
<td width="246">
<input type="hidden">
<input name="photoimg" type="file" id="photoimg">
</td>
<td width="80"><input type="submit" class="box" value=" Hochladen "></td>
</tr>
</table>
</form>
 
Zuletzt bearbeitet:
Zurück