Problème de redirection php

Fermé
soniadm Messages postés 9 Date d'inscription vendredi 14 septembre 2012 Statut Membre Dernière intervention 1 octobre 2012 - 1 oct. 2012 à 18:57
harderpod Messages postés 320 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 22 avril 2014 - 1 oct. 2012 à 21:22
Bonjour à tous,

tout d'abord merci à tout ceux qui prendront le temps de m'aider;)
voici le souci: j'ai un formulaire avec envoi de pj.
Dans le cas où le formulaire est accepté, je souhaiterais rediriger l'internaute sur une autre page.
Or: avec le code suivant, quand j'envoie le formulaire, je retombe sur une page index.php?page=Nouveauxauteurs, je ne comprends pas pour quoi je n'attéris pas sur la page ?page=validationManuscrit.php tout simplement. J'ai toujours index.php avant l'url de ma page de redirection.

Idem pour le message d'erreur, en cas de fichier non conforme, je n'arrive pas à changer ma page de redirection.
j'ai vraiment besoin de votre aide!
MERCI D'AVANCE!;)

<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$ref = $_POST['reference'];
$adresse = $_POST['adresse'];
$ville = $_POST['ville'];
$cp = $_POST['cp'];
$tel = $_POST['tel'];
$date = date("d-m-Y");
$heure = date("H");
$minutes = date("i");


if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) {
$insertSQL = sprintf("INSERT INTO auteurs (ID, nom, prenom, adresse, ville, cp, tel, email, pass, statut, reference) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['ID'], "int"),
GetSQLValueString($nom, "text"),
GetSQLValueString($prenom, "text"),
GetSQLValueString($adresse, "text"),
GetSQLValueString($ville, "text"),
GetSQLValueString($cp, "text"),
GetSQLValueString($tel, "text"),
GetSQLValueString($email, "text"),
GetSQLValueString($_POST['pass'], "text"),
GetSQLValueString($_POST['statut'], "text"),
GetSQLValueString($ref, "text"));

mysql_select_db($database_Connexionbook, $Connexionbook);
$Result1 = mysql_query($insertSQL, $Connexionbook) or die(mysql_error());


if ($_FILES['nom_du_fichier']['error']) {
switch ($_FILES['nom_du_fichier']['error']){
case 1: // UPLOAD_ERR_INI_SIZE
echo"Le fichier dépasse la limite autorisée";
break;
case 2: // UPLOAD_ERR_FORM_SIZE
echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !";
break;
case 3: // UPLOAD_ERR_PARTIAL
echo "L'envoi du fichier a été interrompu pendant le transfert !";
break;
case 4: // UPLOAD_ERR_NO_FILE
echo "Le fichier que vous avez envoyé a une taille nulle !";
break;
}
$insertGoTo = "../index.php";
}
else {
// $_FILES['nom_du_fichier']['error'] vaut 0 soit UPLOAD_ERR_OK
// ce qui signifie qu'il n'y a eu aucune erreur
$titre = $_FILES['nom_du_fichier']['name'];
move_uploaded_file ($_FILES['nom_du_fichier']['tmp_name'],"/homez.116/bookimpu/www/manuscrit/".$titre);

$headers1 ='From: "Book"<commande@book.com>'."\n";
$headers1 .='Reply-To: ut@book.com'."\n";
$headers1 .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$headers1 .='Content-Transfer-Encoding: 8bit';

$message ='<html><head><title>Nouveau manuscrit</title></head>
<body>
Un nouveau manuscrit est disponible dans le dossier : www/manuscrit<br/>
Nom du fichier : '.$titre.'<br/>
Référence : '.$ref.'<br/>
Auteur : '.$prenom.' '.$nom.' ('.$email.')<br/>
Date : '.$date.' à '.$heure.'h'.$minutes.'
</body></html>';

mail('commande@book.com', 'Nouveau manuscrit', $message, $headers1);

$headers2 ='From: "Book"<commande@book.com>'."\n";
$headers2 .='Reply-To: ut@book.com'."\n";
$headers2 .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$headers2 .='Content-Transfer-Encoding: 8bit';

$message2 ='<html><head><title>Félicitations !</title></head>
<body>

Si une des informations ci-dessous est incorrect, merci de répondre à cet email : <br/>
Prénom : '.$prenom.'<br/>
Nom : '.$nom.'<br/>
Téléphone : '.$tel.'<br/><br/>

</body></html>';

mail($email, 'Félicitations !', $message2, $headers2);
$insertGoTo ="?page=validationManuscrit.php";
}

if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
@header(sprintf("Location: %s", $insertGoTo));
}

mysql_select_db($database_Connexionbook, $Connexionbook);
$query_rsAuteurs = "SELECT * FROM auteurs";
$rsAuteurs = mysql_query($query_rsAuteurs, $Connexionbook) or die(mysql_error());
$row_rsAuteurs = mysql_fetch_assoc($rsAuteurs);
$totalRows_rsAuteurs = mysql_num_rows($rsAuteurs);
?>



A voir également:

3 réponses

harderpod Messages postés 320 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 22 avril 2014 50
1 oct. 2012 à 19:16
Salut, tu devrais echo tes variables ou tu stcok l'url pour comprendre, sinon tu peut utiliser les header

if($formulaire == true){
header ('location: index.php?page=validationManuscrit.php');
}

tu tourne un boolean sur true si ton formulaire est valide, tu test ta variable et tu fais la redirection.
0
soniadm Messages postés 9 Date d'inscription vendredi 14 septembre 2012 Statut Membre Dernière intervention 1 octobre 2012
1 oct. 2012 à 19:37
salut Harderpod!
tout d'abord un grand merci pour ton message. J'ai essayé ce que tu m'as dit, mais la page réagit toujours pareil! :(
pour l'nstant j'ai toujours:
$insertGoTo ="?page=validationManuscrit.php";
peut etre n'est il pas à sa bonne place?
merci d'avance!
0
harderpod Messages postés 320 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 22 avril 2014 50
1 oct. 2012 à 19:50
ne passe pas par $insertGoto écrit ton URL manuellement dans une condition if else
si test true -> hedear ("location: index.php?page=validationManuscrit");
sinon -> header("location: index.php?page=errorPage.php");
0
soniadm Messages postés 9 Date d'inscription vendredi 14 septembre 2012 Statut Membre Dernière intervention 1 octobre 2012
1 oct. 2012 à 20:26
Hello harderpod!
voilà le message d'erreur que j'obtiens sur la page:
Warning: Cannot modify header information - headers already sent by (output started at /homez.116/bookimpu/www/index.php:8) in /homez.116/bookimpu/www/Templates/Nouveauxauteurs.dwt.php on line 63
Je n'ai pas l'impression qu'il accepte un nouvel header!
0
harderpod Messages postés 320 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 22 avril 2014 50
1 oct. 2012 à 21:22
tu utilise une architecture mvc pour ton site ?

https://forums.commentcamarche.net/forum/affich-1257704-php-warning-cannot-modify-header-information

sinon plusieurs solutions sont proposées dans le topic au dessus, jette un oeil si des fois y a pas ta réponse
0