Problema Header location...

Emix

Utente Attivo
15 Feb 2010
596
0
16
Salve...
Ho un problema... o forse due :/
Io ho una pagina di inserimento barcode o email :
HTML:
<html>
<head>
<title> Modifica User </title>
<style type="text/css">
body {
font: Eras Medium ITC;
color:#FFF
}
</style>

<style type="text/css">
#main {
	width:672px;
	height:300px;
	position:absolute;
	top:50%;
	left:50%;
	margin:-150px 0 0 -336px;
	color:#FFF;
}
</style>
</head>
<body bgcolor="#000000">
<form action="puntifidelity.php" method="post" name="code_barcode">
<div id="main" >
<table border=0 cellpadding=5 cellspacing=5 align="center">
<tr>
<td colspan="2">
<img src="http://forum.mrwebmaster.it/images/logo.png" align="middle" />
</td>
</tr>
<tr>
<td colspan="2">
Inserisci l'email o il barcode:
</td>
</tr>
<tr>
<td>
<p align="center">Email:</p>
</td>
<td>
    <p align="center"><input name="mail" type="text" id="mail"></p>
</td>
</tr>
<tr>
<td>
<p align="center">Barcode:</p>
</td>
<td>
    <p align="center"><input name="Barcode" type="text" id="Barcode"></p>
</td>
</tr>
<tr>
<td colspan="2" align="center">

    <input name="invia" type="submit" id="invia" value="Invia">
    <input type="reset" name="submit" value="Reset">
</td>
</tr>
</table>
</div>
</form> 
</body>
</html>

Da qui vado alla pagina puntifidelity.php

PHP:
<?php
session_start();
//CONNESSIONE AL DATABASE
include('connect.php');
//RECUPERA DATI DAL FORM
$mail = $_POST['mail'];
$mail = addslashes(htmlspecialchars(($_POST['mail'])));
$Barcode = $_POST['Barcode'];
$Barcode = addslashes(htmlspecialchars(($_POST['Barcode'])));
if($Barcode =="" ){
	
	
	if($mail==""){
		echo ('Almeno uno dei due campi deve essere riempito!');
	header('Location: puntifidelity.htm');
	}else{
	 if((!isset($_POST['mail'])) || (!eregi("^([a-z0-9\._-]+)(@[a-z0-9.-]+)(\.{1}[a-z]{2,4})$", $_POST['mail'])))
			{
            echo "Attenzione, formato email non valido.";
            //ritorno al form
            }else{
			$ctrl_mail = @mysql_query("SELECT * FROM fidelity            WHERE mail='$mail'") or die (mysql_error());
                   if(@mysql_num_rows($ctrl_mail)>0)
                   {
			       $_SESSION['mail'] = $mail;
				   header('Location:fidelitypoint.php');
                   }else{
					   echo ('Email non trovata!');
					   header('Location: puntifidelity.htm');
				   }
	             }
		}
		}else{
			$ctrl_barcode = @mysql_query("SELECT * FROM fidelity WHERE barcode='$Barcode'") or die (mysql_error());
                if(@mysql_num_rows($ctrl_barcode)>0)
                {
			    $_SESSION['barcode'] = $Barcode;
				  header('Location:fidelitypoint.php');
                }else{
					   echo ('Barcode non trovato!');
					   header('Location: puntifidelity.htm');
				   }
}
?>

Qui cominciano i problemi... Come vedete la pagina effettua dei controlli.. se barcode non inserito controlla email se non è inserito tira fuori messaggio uno dei due va inserito e ti DOVREBBE riportare alla pagina di isnerimento.. Ma qui ricevo errore... L'errore è il seguente :

HTML:
Almeno uno dei due campi deve essere riempito!
Warning: Cannot modify header information - headers already sent by (output started at blablabla/puntifidelity.php:14) in blablabla/puntifidelity.php on line 15
Il controllo chiaramente lo effettua... ma non mi rimanda alla pagina... idem se il barcode non esiste o se l'email non esiste....

Inoltre , ammesso che io isnerisca tutto per bene e arrivo alla pagina fidelitypoint.php :

PHP:
<?php
session_start();
include('connect.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Inserimento punti</title>
<style type="text/css">
body {
	font: Eras MediUM ITC;
	color:#FFF;
	background-color: #000;
}
</style>
<style type="text/css">
#main {
	width:672px;
	height:300px;
	position:absolute;
	top:30%;
	left:50%;
	margin:-150px 0 0 -336px;
	color: #000;
}
.testo {
	color: #FFF;
}
</style>
</head>

<body bgcolor="#000000">
<div id="main">
<form action="aggiungi_punti.php" method="post" name="inserisci"> 
<table cellspacing=5 cellpadding=5 align="center">
<tr>
<td colspan="2" bgcolor="#000000">
<img src="http://forum.mrwebmaster.it/images/logo.png" align="middle" />
</td>
</tr>
<tr>
<td class="testo">
Inserisci punti a BARCODE :
</td> 
<td>
<input name="bcode" type="text" id="bcode" readonly="readonly" value="
<?php
echo $_SESSION[barcode];
?> 
">
</td>
</tr>
<tr>
<td class="testo">
Inserisci punti a EMAIL:
</td> 
<td>
<input name="email" type="text" id="email" readonly="readonly" value="
<?php 
echo $_SESSION[mail];
?> 
">
</td>
</tr>
<tr>
<td class="testo">
Data Acquisto:
</td>
<td class="testo">
    <input name="dataacquisto" type="text" id="dataacquisto" value=""> 
</td>
</tr>
<tr>
<td class="testo">
Importo Scontrino:
</td>
<td class="testo">	
<input type="text"  name="importo" onKeyUp="vendita()" value="" id="importo" size=35/>
</td>
</tr>
<tr>
<td class="testo">
Numero Scontrino:
</td>
<td class="testo">
   <input name="numeroscnt" type="text" id="numeroscnt" value=""> 
</td>
</tr>
<tr>
<td class="testo">
Punti
</td>
<td class="testo">
<input type="text" readonly value="0" name="punti" id="punti" size=35/>
</td>
</tr> 
<tr>
<td class="testo">	
<input name="mail" type="hidden" value="<?php echo $_SESSION[mail]; ?>">
<input name="sottrazione" type="hidden" onKeyUp="vendita()" id="sottrazione" value="20">
</td>
</tr>
<tr>
<td colspan="2" class="testo">
    <input name="inserisci" type="submit" id="inserisci" value="Inserisci"> 
</td>
</tr>
</table>
</form> 
</div>

Dai valori che ho passato nelle precedenti pagine in sessione, me li riprende tutti e due!!! anche se io passo in sessione o email o barcode!!
Aiuto :S :incazz:
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
nessuno sa dirmi cosa devo sostituire? a me sembra tutto ok apparentemente....
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Warning: Cannot modify header information - headers already sent by (output started at blablabla/puntifidelity.php:14) in blablabla/puntifidelity.php on line 15
Php non consente di mandare in output nessun carattere nemmeno uno spazio prima dell'uso della funzione header()
se proprio non riesci a mettere la funzione prima degli echo puoi usare javascript
Codice:
<script>
location.href='indirizzo.html';
</script>
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Sistemando tutti i problemi il tuo script diventa:
PHP:
<?php
require_once __DIR__ . '/connect.php';

session_start();

$email = isset($_POST['email']) ? trim($_POST['email']) : '';
$email = addslashes(htmlspecialchars($email));

$barcode = isset($_POST['barcode']) ? trim($_POST['barcode']) : '';
$barcode = addslashes(htmlspecialchars($barcode));

if ('' == $barcode && '' == $email) {
    header('Location: puntifidelity.htm');
    die('Almeno uno dei due campi deve essere riempito!');
}

if ($email !== '') {
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        header('Location: puntifidelity.htm');
        die('Attenzione: formato email non valido.');
    }

    $sql = 'SELECT * FROM fidelity WHERE mail = \'%s\'';
    $query = mysql_query(sprintf($sql, $email)) or die(mysql_error());

    if (mysql_num_rows($query) == 0) {
        header('Location: puntifidelity.htm');
        die('Email non trovata!');
    }

    $_SESSION['mail'] = $email;
} else {
    $sql = 'SELECT * FROM fidelity WHERE barcode = \'%s\'';
    $query = mysql_query(sprintf($sql, $barcode)) or die(mysql_error());

    if (mysql_num_rows($query) == 0) {
        header('Location: puntifidelity.htm');
        die('Barcode non trovato!');
    }

    $_SESSION['barcode'] = $barcode;
}

header('Location: fidelitypoint.php');
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
Sistemando tutti i problemi il tuo script diventa:
PHP:
<?php
require_once __DIR__ . '/connect.php';

session_start();

$email = isset($_POST['email']) ? trim($_POST['email']) : '';
$email = addslashes(htmlspecialchars($email));

$barcode = isset($_POST['barcode']) ? trim($_POST['barcode']) : '';
$barcode = addslashes(htmlspecialchars($barcode));

if ('' == $barcode && '' == $email) {
    header('Location: puntifidelity.htm');
    die('Almeno uno dei due campi deve essere riempito!');
}

if ($email !== '') {
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        header('Location: puntifidelity.htm');
        die('Attenzione: formato email non valido.');
    }

    $sql = 'SELECT * FROM fidelity WHERE mail = \'%s\'';
    $query = mysql_query(sprintf($sql, $email)) or die(mysql_error());

    if (mysql_num_rows($query) == 0) {
        header('Location: puntifidelity.htm');
        die('Email non trovata!');
    }

    $_SESSION['mail'] = $email;
} else {
    $sql = 'SELECT * FROM fidelity WHERE barcode = \'%s\'';
    $query = mysql_query(sprintf($sql, $barcode)) or die(mysql_error());

    if (mysql_num_rows($query) == 0) {
        header('Location: puntifidelity.htm');
        die('Barcode non trovato!');
    }

    $_SESSION['barcode'] = $barcode;
}

header('Location: fidelitypoint.php');
non funziona un cavolo e mi restituisce mille errori...
Mentre @criric ho provato ma, o non capisco dove va messo, oppure mi da errore....io ho preso la tua parte di codice e l'ho incollata al posto dei miei header
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
Quali errori, precisamente?

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at puntifidelity.php:1) in puntifidelity.php on line 4

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at puntifidelity.php:1) in puntifidelity.php on line 4

Warning: Cannot modify header information - headers already sent by (output started at puntifidelity.php:1) in puntifidelity.php on line 13
Almeno uno dei due campi deve essere riempito!

prova inserendo una mail impossibile... ossia nel campo email ho scritto ffds
 

Emix

Utente Attivo
15 Feb 2010
596
0
16
PHP:
<?php
//definisco i parametri della connessione: nomeserver,username,password e nome db
$server="85.94.212.170";
$username="m49477d1";
$password="password";
$nomedb="m49477d1";
$admin_email = "[email protected]";
//mi connetto al server mysql
$db=mysql_connect($server,$username,$password);
if ($db == FALSE) {
die ("Errore nella connessione.");
}
//mi connetto al database specificato nella variabile $nomedb
mysql_select_db($nomedb, $db)
or die ("Errore nella selezione del database");
?>
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Modifica in questo modo:
PHP:
<?php
$server = '85.94.212.170';
$username = 'm49477d1';
$password = 'password';
$nomedb = 'm49477d1';

$admin_email = '[email protected]';

$db = mysql_connect($server, $username, $password) or die('Errore nella connessione.');
mysql_select_db($nomedb, $db) or die('Errore nella selezione del database.');
Nota che manca il tag di chiusura (?>). Dev'essere così per evitare che vengano inviati eventuali spazi bianchi alla fine del file.
 
Ultima modifica:

Emix

Utente Attivo
15 Feb 2010
596
0
16
basterebbe anche lo script di criric ma non mi funziona/non so come metterlo...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
puoi inserirli in questo modo
PHP:
<?php
if ($mail == "") {
    ?>
    <script>
        alert('Il campo mail deve essere riempito!');
        location.href='puntifidelity.htm';
    </script>
    <?php
}
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
@alex
ciao
approfitto anche per chiedere:
perchè non suggerisci quando ci sono problemi di header (che secondo me è comodo anche per non far vedere dove reinirizza al contrario di js o del tag <meta http-equiv=....) di usare
PHP:
<?php
ob_start();
//.............
ob_end_flush();
?>
le due istruzioni hanno controindicazioni?
 
Discussioni simili
Autore Titolo Forum Risposte Data
P problema con header(Location....) PHP 11
gandalf1959 [PHP] problema con l'utilizzo di Header PHP 3
Kolop [WordPress] [HTML] Problema header su mobile WordPress 4
gandalf1959 problema con header in area riservata PHP 4
X Problema con header() include() e i siti di hosting PHP 1
enzonero problema immagini header WordPress 1
L problema con la funzione header!!! AIUTO! PHP 24
G html problema table scrollable con header fisso HTML e CSS 2
Dexter_90 [AIUTO!] Problema Inserimento Menu Fireworks nell'Header WordPress 11
H problema tabella con header e prima colonna fissi Javascript 1
T Forse è un problema di header..? PHP 6
K Problema variabili sessione e ...forse header PHP 6
I Problema con header PHP 16
T Problema con header:"troppi reindirezzamenti" PHP 3
A Re_ problema con HEADER PHP 2
A Problema header con dreamweaver cs3 e PHP PHP 6
L problema readfile e header PHP 0
A Problema con autenticazione e header() PHP 0
I Sto progettando nuovi siti utilizzando bootstrap e devo dire funziona bene, l'unico problema e la maschera -moz- HTML e CSS 0
K Problema form update PHP 2
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
S Problema nel ciclare un json Javascript 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
K Problema Inner join PHP 1
F firefox problema http Linux e Software 0
N Problema con position absolute e overflow HTML e CSS 4
E Problema jquery Success jQuery 2
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
E problema selezione sfumata Photoshop 2
K [PHP] Problema con variabili concatenate. PHP 1
A Problema filtro fluidifica Photoshop Photoshop 1
H Problema Bordi Scontorno Photoshop 1
O problema con query PHP 4
R Problema installazione Realtek WiFi USB rtl8821 Reti LAN e Wireless 1
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
Y Problema percorso file in rete PHP 1
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 4
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
P Problema acquisizione clienti Webdesign e Grafica 1
F NetBeans problema creazione progetto Java Windows e Software 0
M Problema con Try Catch PHP 0
C problema seo + cerco esperto SEO e Posizionamento 11
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1

Discussioni simili