php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.06.2006, 14:37  
Neuer Benutzer
 
Registriert seit: 08.06.2005
Beiträge: 25
Wimme
Standard [header] Browser umleiten

Hallo!

Ich möchte den Browser mit php dazu zwingen eine andere Internetseite zu laden, wenn eine bestimmte Stelle im Code erreicht wird.

Dazu habe ich die Funktion header gefunden.

Ich mache das dann bei mir hier am Rechner so:

Code:
if (bla)
{
  header ("Location:D:\Programme\xampp\htdocs\spielerei\Newssystem\loeschen.php");
   exit;
}
es passiert aber gar nix. Auch wenn ich den Pfad so änder, dass es ihn nicht gibt, passiert rein gar nichts.

Woran liegt das? Weil header irgendwie immer als erstes gesendet werden?

Wäre über jede Hilfe dankbar,
wimme
Wimme ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.06.2006, 15:01  
Erfahrener Benutzer
 
Registriert seit: 23.08.2007
Beiträge: 1.510
M3g4Star befindet sich auf einem aufstrebenden Ast
Standard

hm wo kommt denn der Fehler und was soll das ???

PHP-Code:
<?php
if (bla
?>
Fehlermeldung ???

Irgendwas ...
M3g4Star ist offline  
Alt 13.06.2006, 15:03  
Gast
 
Beiträge: n/a
Standard

Zitat:
D:\Programme\xampp\htdocs\spielerei\Newssystem\loe schen.php
Lokaler Pfad - am Webserver vorbei. Wer interpretiert dann das php Skript?


PHP-Code:
error_reporting(E_ALL);
ini_set('display_errors'true); 
an den Anfang des Skripts setzen.
 
Alt 13.06.2006, 15:53  
Neuer Benutzer
 
Registriert seit: 08.06.2005
Beiträge: 25
Wimme
Standard

was meinst du damit, "wer interpretiert das php Skript"?

es gibt keine Fehlermeldung. Auch wenn alle Fehler angezeigt werden. Die If-Kontrollstruktur wird aber ausgeführt, somit müsste auch header ausgeführt werden. Es passiert aber rein gar nichts. Kann das an den php Einstellungen liegen oder irgend etwas?

edit: wenn ich den header so änder:
PHP-Code:
header("Location: [url]http://www.web.de/[/url] "); 
passiert auch nichts. Also kann es wohl nicht am Pfad liegen, oder?
Gruß,
Wimme
Wimme ist offline  
Alt 13.06.2006, 16:02  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

entweder hast du Bruchpilots Code-Schnipsel noch nicht eingebaut oder dein
Skript erreicht ganz einfach die Stelle nicht, an der dein header('Location:
...'); exit; ausgeführt wird.

Als Adresse ist eine Web-Adresse anzugeben, konform möglichst in absoluter
Form.
Zergling-new ist offline  
Alt 13.06.2006, 16:04  
Neuer Benutzer
 
Registriert seit: 08.06.2005
Beiträge: 25
Wimme
Standard

die Stelle erreicht es auf jeden Fall. Habe es mit einer echo Anweisung überprüft, außerdem bricht das Skript ab (exit).

Was meint du mit "Bruchpilots Code-Schnipsel"?

ich habe nun mal die Anweisung zu Testzwecken ganz an den Anfang des Skripts geschrieben, dort funktioniert sie.

Wimme
Wimme ist offline  
Alt 13.06.2006, 16:06  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Code und Werte der verwendeten Variablen zeigen.
Zergling-new ist offline  
Alt 13.06.2006, 16:12  
Neuer Benutzer
 
Registriert seit: 08.06.2005
Beiträge: 25
Wimme
Standard

ich denke, dieser Teil reicht hoffentlich.
im Array $array_id werden alle ids von Newsbeiträgen gespeichert. $anzahl_news enthält also die Anzahl der Newsbeiträge (in meinem Beispiel hier momentan 2).
Der Array Key startet bei Null und erhöht sich immer um eins.

Die Variable $_POST['loeschen' . ID] erhält den Wert löschen, wenn ein obiges Formular ausgeführt wird.


PHP-Code:
$anzahl_news count($array_id);
    for (
$k 0$k $anzahl_news$k++)
    {
        if(
$_POST['Loeschen' $array_id[$k]] == "loeschen")
        {
            echo 
"hier!!!!";
            
header("Location: [url]http://www.web.de/[/url] "); 
            exit;
        }
    } 
Wimme

edit: es liegt wohl hieran, nehm ich an, wie ich ja auch schon oben mal vage vermutet hatte:
Beachten Sie, dass header() aufgerufen werden muss, bevor eine Ausgabe gesendet wurde, egal ob dies normale HTML Tags, leere Zeilen in einer Datei oder von PHP sind.
Versteh dann aber nicht, warum nicht so ein Fehler kommt "Header already sent by..." oder sowas. Muss ich jetzt wirklich mit "ob_start" und so arbeiten? Gibt es keine Möglichkeit den Browser an einer beliebigen Stelle im Code umzuleiten?

PS. Ich weiß dass das Skript ziemlich doof ist, aber ich übe/probiere halt daran etwas rum.
Wimme ist offline  
Alt 13.06.2006, 16:18  
Gast
 
Beiträge: n/a
Standard

Dann zeig doch bitte mal den Code rund um das eingefügte
Zitat:
error_reporting(E_ALL);
ini_set('display_errors', true);
bzw bekommst Du die Meldung headers already sent ?
 
Alt 13.06.2006, 16:27  
Neuer Benutzer
 
Registriert seit: 08.06.2005
Beiträge: 25
Wimme
Standard

ok, ich geb dir mal den ganzen Code, aber nicht lachen, bin schließlich Anfänger. Und wie ich bereits gesagt habe, weiß ich, dass das ganze sehr umständlich ist.

PHP-Code:
<?php
    error_reporting
(E_All);
    
ini_set('display_errors'true);
?>

<!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=iso-8859-1" />
<title>News</title>
<link rel="stylesheet" type="text/css" href="stylesheets.css">
</head>
<html>
<body>


<?php
    define
('HOST',bla);
    
define('USER',bla);
    
define('PASS',bla);
    
define('DB',bla);
    
    @
mysql_connect(HOSTUSERPASS) OR die("Konnte nicht zur Datenbank verbinden! Grund: " mysql_error());
    @
mysql_select_db(DB) OR die("Auswahl der Datenbank fehlgeschlagen! Grund: " mysql_error());
    
    
//Verbindung nun vollständig aufgebaut
    
    
$sql "SELECT 
                ID,
                Titel,
                Autor,
                Datum,
                Inhalt 
            FROM
                neuigkeiten
            ORDER BY
                Datum DESC;"
;
                
    
$result mysql_query($sql) OR die(mysql_error());
    
$array_id = array(); //Array für die IDs
    
$i          0;          //Array-Key
    
    
if(mysql_num_rows($result) != 0)     //liefert die Anzahl der Datensätze im Ergebnis
    
{
        while(
$datensatz mysql_fetch_assoc($result)) //Wird false wenn keine Datensätze mehr
        
{
?>
          <table border="1" width="50%" align="center">
              <tr> <td> <?php echo $datensatz['Titel']; ?></td> 
                 <td> <?php echo "Autor: " $datensatz['Autor']; ?></td> 
                 <td> <?php echo $datensatz['Datum']; ?></td> 
            </tr>
            
              <tr> 
                <td colspan="3"><?php echo $datensatz['Inhalt']; ?> </td> 

            </tr>
                
            <tr> <form method="post" action="index.php">
                <td><input name="<?php echo "Loeschen".$datensatz['ID']; ?>" type="submit" value="loeschen" /> </td> 
                 <td><input name="<?php echo "Bearbeiten".$datensatz['ID']; ?>" type="submit" value="bearbeiten" />  </td> 
                </form>
            </tr>  
            
          </table>
          
 
 

<?php

            $array_id
[$i] = $datensatz['ID'];        //alle IDs werden in einem Array gespeichert.
            
$i++;
        } 
//of while
    
}    // of if
    
else
    {
        echo 
"Es sind keine Neugikeiten vorhanden! 

"
;        
    }        
        
    
$anzahl_news count($array_id);
    for (
$k 0$k $anzahl_news$k++)
    {
        if(
$_POST['Loeschen' $array_id[$k]] == "loeschen")
        {
            echo 
"hier!!!!";
            
header("Location: [url]http://www.web.de/[/url] "); // D:\Programme\xampp\htdocs\spielerei\Newssystem\loeschen.php
            
exit;
        }
    }
?>

[url="hierbla.php"]Newseintrag hinzufügen[/url]
</body>
</html>
headers already sent by - Fehler bekomme ich nicht
Wimme ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
HTML Header / JavaAplets: Test ob Browser JAs akzeptiert SvenLittkowski HTML, Usability und Barrierefreiheit 6 21.03.2008 04:20
Browser umleiten mike-loewe PHP Tipps 2008 6 02.02.2008 12:43
PHP Script als Browser ausgeben drieling PHP-Fortgeschrittene 12 22.10.2007 15:52
Browser umleiten Trumpfass PHP Tipps 2007 2 08.05.2007 17:37
[Erledigt] T-Online Browser schaltet sich ständig in den Vordergrund Off-Topic Diskussionen 6 08.05.2006 17:03
PHP-Ausgabe gepuffert an Browser senden sponer PHP Tipps 2006 2 24.04.2006 00:08
Style: Cursor für Browser definieren SvenLittkowski HTML, Usability und Barrierefreiheit 2 15.04.2006 14:02
nichts im Browser zu sehen PHP Tipps 2006 12 22.02.2006 20:11
varible im header gültig für alle browser PHP Tipps 2007 5 29.11.2005 12:03
Wie kann ich verhindern das der Browser encodete axelnes HTML, Usability und Barrierefreiheit 15 18.11.2005 18:37
Grafische Browser??? scooter HTML, Usability und Barrierefreiheit 13 01.06.2005 15:43
[Erledigt] PHP Anwendung im Browser PHP-Fortgeschrittene 13 30.05.2005 19:32
Welche Browser habt ihr? themonk Off-Topic Diskussionen 71 22.04.2005 08:47
Browser erkennen PHP Tipps 2005 24 25.01.2005 02:06
[Erledigt] Browser und MSG Box HTML, Usability und Barrierefreiheit 4 17.08.2004 18:40

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
browser umleiten, firefox erkennen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:02 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.