un header location qui foire

Eléphanteau du PHP | 18 Messages

27 oct. 2005, 15:07

re salut j'ai un fichier de traitement de formulaire (insertion des données dans une BDD et upload d'une image) qui fonctionne sauf pour la redirection à l'issue du traitement

le code de la page upload.php3
<?php
// on détermine les dimensions maximums de l'image

$hauteur_max="800"; 
$largeur_max="800"; 
$poid_max="500000";

// on vérifie celles de l'image uploadée

$taille = getimagesize("$pseudo_photo"); 
$h_i = $taille[1]; 
$w_i = $taille[0]; 
$poid = filesize("$pseudo_photo");

$destination_photo="../trombinoscope/photo"; 

 if (($h_i<=$hauteur_max)&($w_i<=$largeur_max)&($poid<=$poid_max))
 {
 if(exif_imagetype($pseudo_photo)) // si c'est une image
{
if (is_writeable ("$destination_photo")) // si le fichier photo est ecrivable
{
copy($pseudo_photo, "$destination_photo/$pseudo_photo_name");
  	 }
  	}
  }
include "../Connections/akif2.php";

//on se connecte à la base de donnée
$dbconnect = mysql_connect($hostname_akif2,$username_akif2,$password_akif2) or die ("erreur de connexion");

//on selectionne votre base

mysql_select_db($database_akif2,$dbconnect) or die ("erreur de connexion base");


mysql_query("INSERT INTO user (`id`, `nom`, `ident`, `pass`, `adresse`, `contact`, `profil_id`, `email`, `info`, `pseudo_photo`, `valid`) VALUES ('', '$nom','$ident','$pass', '$adresse', '$contact', '$profil_id', '$email', '$info', '$pseudo_photo_name', ''); ") or die ("erreur insert ".mysql_error());

  header("location : ../module/index.php");


mysql_close();

?>
j'ai essayé sans else pour la redirection (pour faire simple)

mais je reste sur la page upload.php3
mes données sont bien insérées et l'image bien uploadée mais la redirection a foiré

comment je peux faire fonctionner le header("location ... ?

merci de votre aide

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 oct. 2005, 15:15

Utilises les balises
[/b] ton code sera beaucoup plus lisible pour les autres ;)

Edité : Sinon essaies de mettre ton [b]header("location : ../module/index.php");[/b] après le mysql_close(); pour tester.
Modifié en dernier par charabia le 27 oct. 2005, 15:17, modifié 2 fois.

Eléphanteau du PHP | 18 Messages

27 oct. 2005, 15:16

ok charabia

mais sinon le header ??? ... je sais j'emmerde tout le monde mais il me reste plus que ça à régler et vu que ça fait 3 jours que je trimme j'en peux plus


dsl d'être aussi "driven"

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 oct. 2005, 15:18

Qu'est ce que tu entends par "a foirée" ? Un message d'erreur ?

Je ne sais pas si c'est un mauvais copier/coller mais il y a un espace au début de ton code et il ne fut qu'il y en ait si tu veux que ta redirection fonctionne
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 18 Messages

27 oct. 2005, 15:19

la redirection fonctionne pas c'est à dire que j'arrive sur la page upload.php3 et je reste là comme un rond de flanc (?)

sinon l'espace c'était une erreur de copié collé je viens de vérifier

Avatar du membre
ViPHP
ViPHP | 3008 Messages

27 oct. 2005, 15:28

Tu as testé ce que je t'ai mis après edit ? Tu peux aussi essayer de mettre le chemin complet dans ton header avec les http pour voir si ça ne viendrait pas de l'adresse.

Eléphanteau du PHP | 18 Messages

27 oct. 2005, 15:35

dsl charabia j'avais pas vu ton edit

j'ai essayé les 2 choses que tu m'as conseillé

j'ai placé le header après la fermeture de la connexion sql

et j'ai mis le chemin absolu pour la redirection

ce qui donne
//on se connecte à la base de donnée
$dbconnect = mysql_connect($hostname_akif2,$username_akif2,$password_akif2) or die ("erreur de connexion");

//on selectionne votre base

mysql_select_db($database_akif2,$dbconnect) or die ("erreur de connexion base");


mysql_query("INSERT INTO user (`id`, `nom`, `ident`, `pass`, `adresse`, `contact`, `profil_id`, `email`, `info`, `pseudo_photo`, `valid`) VALUES ('', '$nom','$ident','$pass', '$adresse', '$contact', '$profil_id', '$email', '$info', '$pseudo_photo_name', ''); ") or die ("erreur insert ".mysql_error());

mysql_close();

header("location : http://akif2.free.fr/module/index.php");

?>
mais j'ai toujours le même résultat je suis scotché sur la page upload.php3 je comprends pas

Mammouth du PHP | 1885 Messages

27 oct. 2005, 15:37

Y a-t-il du texte affiché? (que ce soit un message d'erreur ou tout autre message)

Essaie d'ajouter les lignes suivantes au tout début de ton script afin de révéler les erreurs non affichées s'il y a:
<?php
ini_set('display_errors', 1);
ini_set('error_reporting', E_ALL);
?>
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphanteau du PHP | 18 Messages

27 oct. 2005, 15:42

j'ai fait un test en enlevant le header et en mettant un message à la place
if(exif_imagetype($pseudo_photo)) // si c'est une image
{
// si pas une image
echo "votre inscription a bien été effectuée elle sera validée prochainement<br><a href='http://akif2.free.fr/module/index'>Cliquez ici pour vous connecter</a>";
}
le message apparaît bien et le lien fonctionne (pas étonnant)

je vais essayer de faire le display error xenon

Eléphanteau du PHP | 18 Messages

27 oct. 2005, 15:46

en remettant le header

et en rajoutant le code pour voir les erreurs de xenon j'arrive sur upload.php3 sans rien pas de texte aucune info et pas de redirection non plus ...

chui maudit ou quoi ?

Mammouth du PHP | 1885 Messages

27 oct. 2005, 15:54

chui maudit ou quoi ?
Oui

Il faut bien écrire les entêtes:
header("location: http://akif2.free.fr/module/index.php");
Remarque que j'ai enlevé l'espace avant le caractère ":"
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphanteau du PHP | 18 Messages

27 oct. 2005, 16:02

chui vraiment neuneu

merci xenon et à tous aussi de vous intéresser à mes problèmes

ça fonctionne quand on a bien fait gaffe de virer les espaces après le location et avant l'adresse)

merci à tous

un petit résolu maintenant que je sais ou il se trouve :D