Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Redirect con echo chiarimenti

    Ciao a tutti

    Utilizzo uno scrip che quando carica una pagina non trovata tramite una funziona echo mi scrive a video

    "errore" (scritto tramite la funzione echo)

    Adesso vorrei al posto di questa scritta (inutile) che mi facesse un redirect alla home page del sito, vorrei proprio che ridirezionasse, ma riesco solo a sccrierlo a video non ad effettuare il vero redirect.

    Come posso fare, ho gia provato le classiche istruzioni per fare redirect (sia html e sia php) ma da sempre errore all'interno dell echo (tra cui un errore dell'header)

    Potete aiutarmi con un semplice esempio, a me interessa che dopo la funzione echo mi sposti ad un'altra pagina.


    ecco il codice della pagina


    Codice PHP:
    <?php
     session_start
    (); include('includes/config.inc.php'); $myDb->connect(); $sql "SELECT * FROM yob_site WHERE id='1'"$result mysql_query($sql); $row mysql_fetch_array($result); $myDb->close(); define('AD_TIMER',$row['adtimer']); $ad_id=limpiar($_GET["ad"]); $myDb->connect(); $ad_result=mysql_query("SELECT * FROM yob_ads WHERE id='$ad_id'"); $myDb->close();  if (mysql_num_rows($ad_result)==0) { echo "QUESTO TESTO APPARE QUANDO CARICA UNA PAGINA NON TROVATA (vorrei al posto di questo fare un redirect ad un'altra pagina)"; exit(); } $ad_row=mysql_fetch_array($ad_result);  if(!$logged_in) { $myDb->connect(); mysql_query("UPDATE yob_ads SET members=members+1 WHERE id='$ad_id'"); $visitime=time(); mysql_query("UPDATE yob_ads SET visitime='$visitime' WHERE id='$ad_id'"); $myDb->close(); }   function get_codes($num,$len) { for($i=0;$i<$num;++$i) { $codes[]=substr(strtoupper(md5(rand(1000,1000000000))),0,$len); } return $codes; } $codes=get_codes(4,3); $_SESSION['captcha']=$codes[rand(0,count($codes)-1)]; $mycode $_SESSION['captcha']; ?>

    <html>
        <head>
            <title><?php echo SITENAME." - ".SITESLOGAN?></title>
            <link rel="stylesheet" type="text/css" href="css/adview.css">
            <style type="text/css">


    Grazie a tutti e un saluto

  2. #2
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    non puoi fare una redirezione dopo l'echo, ti dà errore

    http://it.php.net/manual/en/function.header.php

    Errare humanum est, perseverare ovest

  3. #3
    Non esiste qalche soluzione per fare questo redirect?

    qualche idea?

  4. #4
    Fai un controllo sull'esistenza del file/pagina a cui vuoi arrivare.
    Se esiste fai il redirect con il link, altrimenti redirezioni ad una pagina con l'echo che, dopo 5 secondi (con il tag html META refresh), riporta alla homepage.

    Potrebbe andare, no?

  5. #5
    purtroppo lo script è gia pronto e non so modificarlo, potete postarmi un esemio scritto cosi vedo se si puo integrare nel codice
    dello script ?

    riposto il codice in maniera piu chiara

    Codice PHP:
    <?php
    session_start
    (); include('includes/config.inc.php');
    $myDb->connect();
    $sql "SELECT * FROM yob_site WHERE id='1'";
    $result mysql_query($sql);
    $row mysql_fetch_array($result);
    $myDb->close(); define('AD_TIMER',$row['adtimer']);
    $ad_id=limpiar($_GET["ad"]);
    $myDb->connect();
    $ad_result=mysql_query("SELECT * FROM yob_ads WHERE id='$ad_id'");
    $myDb->close();
    if (
    mysql_num_rows($ad_result)==0)
    { echo 
    "QUESTO TESTO APPARE QUANDO CARICA
    UNA PAGINA NON TROVATA (vorrei al posto di questo
    fare un redirect ad un'altra pagina)"
    ; exit();
    $ad_row=mysql_fetch_array($ad_result);
    if(!
    $logged_in) { $myDb->connect();
    mysql_query("UPDATE yob_ads SET members=members+1 WHERE
    id='
    $ad_id'"); $visitime=time();
    mysql_query("UPDATE yob_ads SET visitime='$visitime'
    WHERE id='
    $ad_id'"); $myDb->close(); }
    function 
    get_codes($num,$len) { for($i=0;$i<$num;++$i)
    $codes[]=substr(strtoupper(md5(rand(1000,1000000000))),0,$len); }
    return 
    $codes; } $codes=get_codes(4,3);
    $_SESSION['captcha']=$codes[rand(0,count($codes)-1)];
    $mycode $_SESSION['captcha']; ?>

    <html>
    <head>
    <title><?php echo SITENAME." - ".SITESLOGAN?></title>
    <link rel="stylesheet" type="text/css" href="css/adview.css">
    <style type="text/css">

  6. #6
    A senso farei così....

    Codice PHP:
    <?php
    session_start
    (); include('includes/config.inc.php');
    $myDb->connect();
    $sql "SELECT * FROM yob_site WHERE id='1'";
    $result mysql_query($sql);
    $row mysql_fetch_array($result);
    $myDb->close(); define('AD_TIMER',$row['adtimer']);
    $ad_id=limpiar($_GET["ad"]);
    $myDb->connect();
    $ad_result=mysql_query("SELECT * FROM yob_ads WHERE id='$ad_id'");
    $myDb->close();
    if (
    mysql_num_rows($ad_result)==0)
    {
    header("HOMEPAGE.PHP"); exit();
    $ad_row=mysql_fetch_array($ad_result);
    if(!
    $logged_in) { $myDb->connect();
    mysql_query("UPDATE yob_ads SET members=members+1 WHERE
    id='
    $ad_id'"); $visitime=time();
    mysql_query("UPDATE yob_ads SET visitime='$visitime'
    WHERE id='
    $ad_id'"); $myDb->close(); }
    function 
    get_codes($num,$len) { for($i=0;$i<$num;++$i)
    $codes[]=substr(strtoupper(md5(rand(1000,1000000000))),0,$len); }
    return 
    $codes; } $codes=get_codes(4,3);
    $_SESSION['captcha']=$codes[rand(0,count($codes)-1)];
    $mycode $_SESSION['captcha']; ?>

    <html>
    <head>
    <title><?php echo SITENAME." - ".SITESLOGAN?></title>
    <link rel="stylesheet" type="text/css" href="css/adview.css">
    <style type="text/css">
    sostituisco con 'header'.... non vedo echo precedenti, quindi non dovrebbe dare errore, no?
    Basta non scrivere l'errore con l'echo che ho sostituito (tanto non lo visualizzeresti, se fai la redirect...).

    Se vuoi notificare l'errore puoi eventualmente aggiungere un parametro in GET, all'URL dell'homepage, con un valore che segnala la problematica. L'homepage quando controlla questo parametro ed è impostato correttamente mostrerà una finestrella con l'errore.

  7. #7
    Salve

    volevo informare tutti che ho risolto come mi avete ilustrato voi

    header("Location: LAMIAPAGINA.PHP"); al posto di echo

    Funziona perfettamente

    vi ringrazio di cuore

    un saluto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.