Willkommen in der Webstatt Zum Webstatt Blog und Stories
BNightSpeeder 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?
Michael Michael am 09.04.06 10:52

Schaust du hier:

logisches errorhandling?

BNightSpeeder am 09.04.06 11:19

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

Michael Michael am 09.04.06 11:23

Dann schreibst du in deiner Fehlerbehandlungsmethode eben einen Redirect ;)

BNightSpeeder 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")
}
}
?>

Michael Michael 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');
}

?>

BNightSpeeder 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

Michael Michael 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.

BNightSpeeder 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?

Michael Michael 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';

Michael

BNightSpeeder am 09.04.06 12:21

Quote
Original von Michael
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...

Michael Michael 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');
}
}
}


?>

sili sili am 09.04.06 12:25

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

BNightSpeeder 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