problema con la funzione header!!! AIUTO!

lorenzoFRS

Nuovo Utente
4 Apr 2014
15
0
0
Salve a tutti ho iniziato una guida per imparare il php "missing manual di breett McLaunghlin sono arrivato al capitolo 6 fin qui tutto bene, nel libro ci sono degli esempi di codice uno per la registrazione del utente uno per la pagina del profilo del utente con biografia nome cognome ecc allora il problema sostanzialmente è questo nel ultima parte di questo capitolo viene riportato un codice d esempio che quando un utente si iscrive al "sito"tramite un form viene reindirizzato automaticamente alla pagina del suo profilo, e si vede tutto quello che ha scritto nel form il codice d esempio che mi fa scrivere il libro è e questo: header("Location: show_user.php?user_id=" . mysql_insert_id()); ovviamente aggiunto ad altro codice che sarebbe questo:

PHP:
<?php
require("database_connection.php");
$first_name = trim($_REQUEST['first_name']);
$last_name = trim($_REQUEST['last_name']);
$email = trim($_REQUEST['email']);
$bio = trim($_REQUEST['bio']);
$facebook_url = str_replace("facebook.org", "facebook.com", trim($_REQUEST['facebook_url']));
$position = strpos($facebook_url, "facebook.com");
if ($position === false) {
$facebook_url = "http://www.facebook.com/" . $facebook_url;
}
$twitter_handle = trim($_REQUEST['twitter_handle']);
$twitter_url = "http://www.twitter.com/";
$position = strpos($twitter_handle, "@");
if ($position === false) {
$twitter_url = $twitter_url . $twitter_handle;
} else {
$twitter_url = $twitter_url . substr($twitter_handle, $position + 1);
}
header("Location: show_user.php?user_id=" . mysql_insert_id());


$insert_sql = "INSERT INTO users (first_name, last_name, email, bio, facebook_url, twitter_handle) " .
"VALUES ('{$first_name}', '{$last_name}', '{$email}', '{$bio}', " .
"'{$facebook_url}', '{$twitter_handle}');";
// Insert the user into the database
mysql_query($insert_sql);
il problema è che aggiungendo questo codice che dovrebbe riportare automaticamente l utente nella sua pagina del profilo questo non viene fatto e visualizzo soltanto che sono connesso al database e non vengo riportato nella pagina del profilo tramite questo codice:header("Location: show_user.php?user_id=" . mysql_insert_id()); da come dice il libro dovrei essere riporta nella pagina del profilo ma questo non accade anche se metto questa stringa per prima come mi è stato detto vi prego datemi una mano non riesco più a uscirne fuori!
 
Ultima modifica di un moderatore:

marino51

Utente Attivo
28 Feb 2013
3.041
192
63
Lombardia
ciao,
non ho conoscenza di mysql, ma da come scrivi mysql_insert_id() è il richiamo ad una funzione,
che scrive le info nel db,

la tabella del db dovrebbe avere un campo "user_id" o nome simile, che si autoincrementa e che assegna di conseguenza un codice univoco allo user,

quando inserisci l'elemento nella tabella, dovrebbe esserti restituito il codice univoco che con la "return" dalla funzione, attacchi al link

spero di aver capito e di averti dato un suggerimento valido,
ciao
Marino

PHP:
header("Location: show_user.php?user_id=" . mysql_insert_id());

function  mysql_insert_id($first_name, $last_name, ........) {
  $insert_sql = "INSERT INTO users (first_name, last_name, email, bio, facebook_url, twitter_handle) " .
  "VALUES ('{$first_name}', '{$last_name}', '{$email}', '{$bio}', " .
  "'{$facebook_url}', '{$twitter_handle}');";
  // Insert the user into the database
return mysql_query($insert_sql);
}
 
Ultima modifica:

lorenzoFRS

Nuovo Utente
4 Apr 2014
15
0
0
Grazie del post anche se non sono riuscito a risolvere forse non mi sono spiegato bene io allora: secondo questo manuale la prima operazione che devo fare è questa
dice:
la prima operazione è facile:
PHP:
<?php
//tutto il resto del codice già scritto//
//inserisce l' utente nel database//
mysql_query($insert_sql);
//poi mi viene detto di aggiungere questo codice sotto a quello che ho scritto adesso
//e devo scrivere questo!
header("Location: show_user.php");
exit();
poi sotto ci sono delle spiegazioni relative a come usare questa funzione alla pagina successiva C'é questo cambia tutto...e il codice che ho appena scritto cioè
PHP:
header("location:show_user.php");
sparisce e viene cambiato con questo:
PHP:
header("Location: show_user.php?user_id=" . mysql_insert_id());
e dopo di questo mi viene detto dal manuale di fare questo " ecco tutto. dopo aver aggiunto questo a CREATE_USER.PHP si è pronti per provare il tutto pero non funziona niente! il bello è che nella pagina successiva lui mostra che a lui funziona ma ti posso assicurare che ho scritto tutto come andava scritto! non ho idea del perché non funzioni! spero che magari con questa risposta più chiara che ti ho dato mi riesci a comprendere visto che forse nel post principale non mi sono spiegato benissimo! e dato che non è neanche facile spiegarlo comunque ti ringrazio ho provato a copiare il tuo codice ma l editor DW mi dice che ci sono degli errori! comunque ti ringrazio!
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, mysql_insert_id() è una funzione php che restituisce l'id dell'ultimo record inserito
quindi va messo dopo aver fatto la query
ps:
racchiudi il codice che posti tra i tag presenti sulla barra di formattazione (ultime 3 icone seconda linea)
 

lorenzoFRS

Nuovo Utente
4 Apr 2014
15
0
0
Ciao scusa sono alle prime armi non è che potresti dirmi scrivendo il codice come posso risolvere il problema?grazie mille.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
prova cosi
PHP:
$insert_sql = "INSERT INTO users (first_name, last_name, email, bio, facebook_url, twitter_handle) " .
        "VALUES ('{$first_name}', '{$last_name}', '{$email}', '{$bio}', " .
        "'{$facebook_url}', '{$twitter_handle}');";

// Insert the user into the database
if (!mysql_query($insert_sql)) {
    echo "Errore query : " . $insert_sql . " " . mysql_error();
    die();
}

header("Location: show_user.php?user_id=" . mysql_insert_id());
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Spiega cosa non funziona e dove si blocca lo script
la insert la fa?
ti stampa qualcosa a video?
 

lorenzoFRS

Nuovo Utente
4 Apr 2014
15
0
0
Ciao intanto grazie per le tue risposte,quello che non funziona è la funzione header perché mi dovrebbe portare alla pagina del profilo del utente appena registrato automaticamente nel database viene inserito tutto perfettamente è solo quella funzione che non va..
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
nella pagina show_user.php metti come prima istruzione un var_dump
PHP:
<?php
var_dump($_GET['user_id']);
//.......
?>

e posta cosa ti riporta
 

lorenzoFRS

Nuovo Utente
4 Apr 2014
15
0
0
Ciao l ho provato proprio adesso ma niente mi da le solite scritte:NULL
Connesso a mysql!

Connesso al database FRSTNCC.

Error locating user with ID
 

lorenzoFRS

Nuovo Utente
4 Apr 2014
15
0
0
ti posto anche il codice della pagina show_user.php<?php

PHP:
var_dump($_GET['user_id']);
//.......
require("database_connection.php");


// Get the user ID of the user to show
$user_id = $_REQUEST['user_id'];

// Build the SELECT statement
$select_query = "SELECT * FROM users WHERE user_id = " . $user_id;

// Run the query
$result = mysql_query($select_query);

if ($result) {
  $row = mysql_fetch_array($result);
  $first_name     = $row['first_name'];
  $last_name      = $row['last_name'];
  $bio            = preg_replace("/[\r\n]+/", "</p><p>", $row['bio']);
  $email          = $row['email'];
  $facebook_url   = $row['facebook_url'];
  $twitter_handle = $row['twitter_handle'];

  // Turn $twitter_handle into a URL
  $twitter_url = "http://www.twitter.com/" . substr($twitter_handle, $position + 1);

  // To be added later
  $user_image = "../../images/missing_user.png";
} else {
  die("Error locating user with ID {$user_id}");
}
?>

<html>
 <head>
  <link href="../../css/phpMM.css" rel="stylesheet" type="text/css" />
 </head>

 <body>
  <div id="header"><h1>PHP & MySQL: The Missing Manual</h1></div>
  <div id="example">User Profile</div>

  <div id="content">
    <div class="user_profile">
      <h1><?php echo "{$first_name} {$last_name}"; ?></h1>
      <p><img src="<?php echo $user_image; ?>" class="user_pic" />
        <?php echo $bio; ?></p>
      <p class="contact_info">Get in touch with <?php echo $first_name; ?>:</p>
      <ul>
        <li>...by emailing them at 
          <a href="<?php echo $email; ?>"><?php echo $email; ?></a></li>
        <li>...by 
          <a href="<?php echo $facebook_url; ?>">checking them out on Facebook</a></li>
        <li>...by <a href="<?php echo $twitter_url; ?>">following them on Twitter</a></li>
      </ul>
    </div>
  </div>
  <div id="footer"></div>
 </body>
</html>
 
Ultima modifica di un moderatore:

marino51

Utente Attivo
28 Feb 2013
3.041
192
63
Lombardia
per favore, posta la versione che stai usando del codice che contiene header,
altrimenti, si è un po' al buio
ciao
Marino
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
se ti da NULL viol dire non ch l'header non funzioni, ma che non tramette la querystringo o che la query stringa ha valore null.
ora guardando il tuo codice, mi sembra di capire il perchè
PHP:
<?php
//......
header("Location: show_user.php?user_id=" . mysql_insert_id());
$insert_sql = "INSERT INTO users (first_name, last_name, email, bio, facebook_url, twitter_handle) " .
"VALUES ('{$first_name}', '{$last_name}', '{$email}', '{$bio}', " .
"'{$facebook_url}', '{$twitter_handle}');";
// Insert the user into the database
mysql_query($insert_sql);
?>
le istruzioni che seguono l'header non vengono eseguite perrchè prima hai il reindirizzamento (esci dalla pagina) e non avendo fatto l'insert mysql_insert_id() e NULL
inverti il tutto
PHP:
<?php
//.....
$insert_sql = "INSERT INTO users (first_name, last_name, email, bio, facebook_url, twitter_handle) " .
"VALUES ('{$first_name}', '{$last_name}', '{$email}', '{$bio}', " .
"'{$facebook_url}', '{$twitter_handle}');";
// Insert the user into the database
mysql_query($insert_sql);
header("Location: show_user.php?user_id=" . mysql_insert_id());
?>
 

lorenzoFRS

Nuovo Utente
4 Apr 2014
15
0
0
ecco la foto Schermata-2014-04-07-alle-14.22.57.jpg
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Problema con connessione MySqli e funzione PHP 2
A [PHP] Problema invio mail con funzione mail() PHP 3
F [Javascript] Problema funzione jquery con elementi css esterni Javascript 1
S Problema con funzione "imagecreatefrompng" PHP 10
R Problema funzione caricate con il body Javascript 1
G Problema con la funzione array_combine PHP 2
M problema con elementi della funzione Javascript 3
L problema nella implementare una funzione con ritorno PHP 2
F Problema con funzione cambia password PHP 5
S Problema return con funzione PHP 2
L problema email con funzione mail PHP 1
B Problema con funzione JS Javascript 4
S problema con funzione php PHP 3
D Problema apostrofo con funzione unlink PHP 7
C Problema nel Caricare file e spostarlo con la funzione move_uploaded_file PHP 14
D Problema con funzione preg_match() per controllo email PHP 2
Neptune7650 Piccolo problema con la funzione include PHP 1
asevenx problema con funzione per far apparire e scomparire un form di commenti PHP 1
asevenx problema con la funzione AVG() PHP 1
P Problema con la funzione mail PHP 13
G ajax php myqsl - problema con funzione javascript Ajax 1
F Problema con funzione di RainTpl PHP 3
dk-wamp problema con la funzione sleep PHP 4
jan267 Problema con funzione getElementsByClassName Javascript 2
O Principiante: problema con funzione CURL ###URGENTE### PHP 1
M Problema con Try Catch PHP 0
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 1
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1

Discussioni simili