Willkommen in der Webstatt
User-1 am 09.04.06 10:50

Hallo,

ich habe so ein script zu DB Verbinndung:

<?php
$conn = @mysql_connect("localhost", "", "")
or die("Verbindung zum Datenbankserver gescheitert!");
@mysql_select_db("freehost_2277_1") or die("Datenbankzugriff gescheitert!");
?>


Nun möchte ich das falls es einen fehler gibt nicht "Datenbankzugriff gescheitert!" angezeigt wird, sondern die Seite witergeleitet wird.
Geht das?

netcup.de Warum gibt es hier Werbung?
User-2 am 09.04.06 10:52

Schaust du hier:

logisches errorhandling?

User-1 am 09.04.06 11:19

Ja, aber da ist es ja nur zum anzeigen, nicht zum weiterleiten!

User-2 am 09.04.06 11:23

xyz-48n schreibst du in deiner Fehlerbehandlungsmethode eben einen Redirect ;)

User-1 am 09.04.06 11:27

So?

<?
/*
* errorhandling beispiel
*/
class bsp {

var $error;

# funktion wo was passiert
function test () {
if (befehl) {
mach was
}
else {
# wie übergeb ich den fehler an die function 'error'?
$error.= '<br />irgendeinfehler ist passiert!';
}
}

# funktion falls error
function error ($error) {
$this->error = $error;

if ($error) {
$error_out = '<b>error:</b>';
$error_out.= $error;
}
}
}

# funktion starten
$bsp = new bsp();
$bsp->test();


function $answer ()
{
$this->question = $question;
$this->answer = $answer;

if ($this->question != $this->answer) {
trigger_error('fehlermeldung');
}
else {
redirect("error.php")
}
}
?>

User-2 am 09.04.06 11:30

Hast du den anderen Thread gelesen?

So in etwa (nur ganz grob wegen eines Katers):


function my_error_handling(parameter) {
header('Location: ....');
}

set_error_handler('my_error_handling');

if ($this->question != $this->answer) {
trigger_error('fehlermeldung und weiterleitung');
}

?>

User-1 am 09.04.06 11:33

So? sry, bin noch nub im php bereich!

<?
/*
* errorhandling beispiel
*/
class bsp {

var $error;

# funktion wo was passiert
function test () {
if (befehl) {
mach was
}
else {
# wie übergeb ich den fehler an die function 'error'?
$error.= '<br />irgendeinfehler ist passiert!';
}
}

# funktion falls error
function error ($error) {
$this->error = $error;

if ($error) {
$error_out = '<b>error:</b>';
$error_out.= $error;
}
}
}

# funktion starten
$bsp = new bsp();
$bsp->test();


function $answer ()
{
$this->question = $question;
$this->answer = $answer;

if ($this->question != $this->answer) {
trigger_error('fehlermeldung');
}
else {
function my_error_handling(parameter) {
header('Location: ....);
}

set_error_handler('my_error_handling');

if ($this->question != $this->answer) {
trigger_error('fehlermeldung und weiterleitung');
}

?>


Egal wie, es kommt immer der Fehler:

Quote
Parse error: parse error, unexpected T_STRING in C:\FoxServ\www\Re-Design\config.ini.php

User-2 am 09.04.06 11:58

header('Location: ....');

Da fehlt ein schließendes '
Des Weiteren sollte der set_error_handler und die dazugehörige Klassen an den Anfang des Scriptes.

User-1 am 09.04.06 12:05

Immer noch der fehler:

Quote
Parse error: parse error, unexpected T_STRING in C:\FoxServ\www\Re-Design\config.ini.php


Mein ganzer Code:

<!-- Hier beginnt der MySQL-Zugriff -->
<?php
$conn = @mysql_connect("localhost", "", "")
or die("Verbindung zum Datenbankserver gescheitert!");
@mysql_select_db("freehost_2277_1") or die("Datenbankzugriff gescheitert!");
$Datenbank = freehost_2277_1
?>
<!-- Hier endet der MySQL-Zugriff -->

<!-- Variablen für das Feedback -->
<?php
$admin_mail = ""
?>

<!-- Weiterleitung bei einem fehler -->

<?
set_error_handler('my_error_handling');

if ($this->question != $this->answer) {
trigger_error('fehlermeldung und weiterleitung');
}

class bsp {

var $error;

# funktion wo was passiert
function test () {
if (befehl) {
mach was
}
else {
# wie übergeb ich den fehler an die function 'error'?
$error.= '<br />irgendeinfehler ist passiert!';
}
}

# funktion falls error
function error ($error) {
$this->error = $error;

if ($error) {
$error_out = '<b>error:</b>';
$error_out.= $error;
}
}
}

# funktion starten
$bsp = new bsp();
$bsp->test();


function $answer ()
{
$this->question = $question;
$this->answer = $answer;

if ($this->question != $this->answer) {
trigger_error('fehlermeldung');
}
else {
function my_error_handling(parameter) {
header('Location: error/error.php');
}


?>


Die zeile 31 wird als Fehler angegeben:
Das wäre dan die mach was Zeile:
mach was

Soll man das Löschen, oder ist das nur ein Kommentar das nicht als welches markiert wurde?

User-2 am 09.04.06 12:19

Du darfst ja auch nicht einfacg mach was in den Code schreiben...

Entweder du kommentierst es aus
// mach was

Oder du gibst es aus
print 'mach was';

xyz-141el

User-1 am 09.04.06 12:21

Quote
Original von xyz-141el
Du darfst ja auch nicht einfacg mach was in den Code schreiben...

...


Ich habe den Code ja aus dem Theard übernommen ;)

Ok, habs entfert, jetzt kommt wieder ein Fehler:

Quote
Parse error: parse error, unexpected T_VARIABLE, expecting T_STRING in C:\FoxServ\www\Re-Design\config.ini.php on line 55


Also ist was mit der funktion answer nicht in ordnung...

User-2 am 09.04.06 12:25

Du musst parameter schon durch die Parameter ersetzen:

function my_error_handling($fehlerlevel, $fehlermeldung, $fehlerfile, $fehlerline) {

Ohne dir zu nahe treten zu wollen, solltest du vielleicht noch einmal die Grundlagen anschauen :)

// edit

Die funktion answer ist auch total kaputt... Mom ich verbessere einfach mal en gesamten Code, das geht schneller

// edit2

Wei gesagt, du solltest noch einmal die Grundlage anschauen. Ich habe nur Syntaxfehler verbessert


<!-- Hier beginnt der MySQL-Zugriff -->
<?php
$conn = @mysql_connect("localhost", "", "")
or die("Verbindung zum Datenbankserver gescheitert!");
@mysql_select_db("freehost_2277_1") or die("Datenbankzugriff gescheitert!");
$Datenbank = freehost_2277_1
?>
<!-- Hier endet der MySQL-Zugriff -->

<!-- Variablen für das Feedback -->
<?php
$admin_mail = ""
?>

<!-- Weiterleitung bei einem fehler -->

<?php

function my_error_handling($fehlerlevel, $fehlermeldung, $fehlerfile, $fehlerline) {
header('Location: error/error.php');
}

set_error_handler('my_error_handling');

class bsp {

var $error;

# funktion wo was passiert
function test () {
if (0) {
//mach was
}
else {
# wie übergeb ich den fehler an die function 'error'?
$error.= '<br />irgendeinfehler ist passiert!';
}
}

# funktion falls error
function error ($error) {
$this->error = $error;

if ($error) {
$error_out = '<b>error:</b>';
$error_out.= $error;
}
}


function answer () {
$this->question = $question;
$this->answer = $answer;

if ($this->question != $this->answer) {
trigger_error('fehlermeldung und weiterleitung');
}
}
}


?>

User-3 am 09.04.06 12:25

function answer() <- ohne das Dollarzeichen, welches für Variablen gebraucht wird.

User-1 am 09.04.06 12:37

Ok, nun hab ich das ja soweit:

<!-- Weiterleitung bei einem fehler -->
<?php

function my_error_handling($fehlerlevel, $fehlermeldung, $fehlerfile, $fehlerline) {
header('Location: error/error.php');
}

set_error_handler('my_error_handling');

class bsp {

var $error;

# funktion wo was passiert
function test () {
if (0) {
//mach was
}
else {
# wie übergeb ich den fehler an die function 'error'?
$error.= '<br />irgendeinfehler ist passiert!';
}
}

# funktion falls error
function error ($error) {
$this->error = $error;

if ($error) {
$error_out = '<b>error:</b>';
$error_out.= $error;
}
}


function answer () {
$this->question = $question;
$this->answer = $answer;

if ($this->question != $this->answer) {
trigger_error('fehlermeldung und weiterleitung');
}
}
}


?>
<!-- Weiterleitung bei einem fehler ende -->




<!-- Hier beginnt der MySQL-Zugriff -->
<?php
$conn = @mysql_connect("localhost", "", "") or die("Verbindung zum Datenbankserver gescheitert!");
@mysql_select_db("freehost_2277_1") or die("Datenbankzugriff gescheitert!");
$Datenbank = freehost_2277_1
?>
<!-- Hier endet der MySQL-Zugriff -->




<!-- Variablen für das Feedback -->
<?php
$admin_mail = ""
?>


Nur wird jetzt weiter alles angezeigt als ob es das script gar nicht gäbe.
Muss ich jetzt nicht irgendwie die funktion "my_error_handling" in die MySQL Eingabe einbauen?

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt