Page 1 sur 1
instruction php ouvrir une page
Posté : 28 oct. 2008, 11:44
par iclicktro
J'utilise un script php pour permettre d'uploader des photos sur mon site.
Après l'exécution du script un message s'affiche gràce à ce code : echo 'Upload effectué avec succès !'; ou alors echo 'Echec de l\'upload !';
Je voudrais, au lieu d'afficher un de ces messages, ouvrir une page succes.html en cas d'upload effectué avec succès ou une page echec.html en cas d'Echec de l'upload.
Merci par avance de votre aide.
iclicktro
Posté : 28 oct. 2008, 11:49
par sylvaing26
a mon avis il faut que tu croise php et javascript.
Ta page s'actualise avec en paramettre succes ou error par exemple et en fonction de cela dans ton echo tu met la fonction javascript qui te permet soit de faire une popup ou soit d'afficher une fenetre d'avertissement du genre
Posté : 28 oct. 2008, 11:59
par charabia
Tu peux juste faire une redirection en php non ? Au lieu de faire un echo pour afficher la phrase, hop une petite redirection vers une page ou une autre selon les cas.
Posté : 28 oct. 2008, 12:11
par iclicktro
Tu peux juste faire une redirection en php non ? Au lieu de faire un echo pour afficher la phrase, hop une petite redirection vers une page ou une autre selon les cas.
C'est exactement ça je veux faire une redirection en php mais je suis plus que débutant et je ne sais pas faire.
Merci de ton aide
Posté : 28 oct. 2008, 12:35
par sylvaing26
alors dans ce cas c'est un truc du genre
if ($param == erreur){
echo "<meta http-equiv=\"refresh\" content=\"2;url=tapage_erreur.php\">\n ";
}
else {
echo "<meta http-equiv=\"refresh\" content=\"2;url=tapage_ok.php\">\n ";
}
qu'il faut mettre entre <HEAD> et </HEAD> de ton code HTML
Posté : 28 oct. 2008, 12:40
par charabia
Posté : 28 oct. 2008, 12:46
par iclicktro
Désolé mais malgrès votre aide, je rame encore.
_le script est nommé 30.php
_confirmation.htm est la page à ouvrir en cas de réussite de l'upload
_echecenvoi.htm est la page à ouvrir en cas d'echec de l'upload
Voici le script (30.php) qui me sert à uploader les photos sur mon site :
<?php
$dossier = 'receptionphoto/';
$fichier = basename($_FILES['photo']['name']);
$taille_maxi = 2000000;
$taille = filesize($_FILES['photo']['tmp_name']);
$extensions = array('.png', '.PNG', '.gif', '.GIF', '.jpg', '.JPG', '.jpeg', '.JPEG');
$extension = strrchr($_FILES['photo']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, ou jpeg';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier))
//Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
header('location: confirmation.htm' );
exit;
}
else //Sinon la fonction renvoie FALSE.
{
header('location: echecenvoi.htm' );
exit;
}
else
{
echo $erreur;
}
?>
et voici le message d'erreur que j'obtiens quand j'essaye d'uploader une photo :
Parse error: syntax error, unexpected T_ELSE in /home.30/m/o/n/monsite/www/30.php on line 37
Merci d'avance pour votre aide.
iclicktro
Posté : 29 oct. 2008, 18:09
par iclicktro
En bidouillant un peu, j'ai trouvé ça qui est beaucoup mieux.
<?php
$dossier = 'receptionphoto/';
$fichier = basename($_FILES['photo']['name']);
$taille_maxi = 500000;
$taille = filesize($_FILES['photo']['tmp_name']);
$extensions = array('.png', '.PNG', '.gif', '.GIF', '.jpg', '.JPG', '.jpeg', '.JPEG');
$extension = strrchr($_FILES['photo']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
header('location: echecenvoi.htm' );
exit;
}
if($taille>$taille_maxi) //Si la taille est supérieure à 500 Ko
{
header('location: echecenvoi.htm' );
exit;
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
}
if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier))
//Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
header('location: confirmation.htm' );
exit;
}
?>
Merci à tous pour votre aide