php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.01.2009, 19:18  
Benutzer
 
Registriert seit: 10.11.2008
Beiträge: 62
marc77 befindet sich auf einem aufstrebenden Ast
Standard Nach register_globals off keine Formular Daten mehr

Hallo,

in einem Report Formular werden die Daten des Eintrags aus der DB nicht mehr mit in die E-Mail geschrieben. Ich vermute es hängt mit register_globals off zusammen, was ich vor ein paar Wochen ausgestellt habe. Kann aber auch was anderes sein..hat jemand eine Idee? hier der Code:

PHP-Code:
<?php
require_once 'init.php';

ini_set('url_rewriter.tags''');
session_start();

$id $_GET["id"];
if (
$id == "") { $id $HTTP_GET_VARS["id"]; }

if (empty(
$_POST['submit'])) {
    
$data $db->GetRow("SELECT * FROM {$tables['link']['name']} WHERE STATUS>0 AND ID='$id'");
    if (! 
$data) {
    
header("HTTP/1.0 404 Not Found");
        echo 
"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"
  \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\" xml:lang=\"en\">
<head>
<title>Die angeforderte Webseite wurde nicht gefunden!</title>
<style type=\"text/css\"><!--/*--><![CDATA[/*><!--*/ 
    body { color: #003366; background-color: #E5F1FD; }
    a:link { color: #0000CC; }
    p, address {margin-left: 3em;}
    span {font-size: smaller;}
/*]]>*/--></style>
</head>
<body>
<h1>Objekt nicht gefunden!</h1>
<p>Der angeforderte URL konnte auf dem Server nicht gefunden werden. </p>
<h2>Error 404</h2>
</body>
</html>"

    exit; 
}
    
    if (
ENABLE_REWRITE) {
        
$data['CATEGORY_TITLE_URL'] = construct_mod_rewrite_path($data['CATEGORY_ID']);
    }
    
    
$tpl->assign('category_path'get_path($data['CATEGORY_ID']));
    
$cdata    $db->GetRow("SELECT * FROM {$tables['category']['name']} WHERE ID=".$data['CATEGORY_ID']);
    
$data['CATEGORY_TITLE'] = $cdata['TITLE'];

    
SmartyValidate :: connect($tpl);
    
SmartyValidate :: register_form('report_form'true);
    
SmartyValidate :: register_criteria('isNotEqual''validate_not_equal''report_form');
SmartyValidate :: register_validator('v_name''NAME''notEmpty'falsefalsefalse'trim''report_form');
SmartyValidate :: register_validator('v_email''EMAIL''isEmail'falsefalsefalse'trim''report_form');

    
SmartyValidate :: register_validator('v_REASON''REASON:0''isNotEqual'truefalsefalsenull'report_form');
    
SmartyValidate :: register_validator('v_DETAILS''DETAILS''dummyValid'falsefalsefalse'trim''report_form');
    
SmartyValidate :: register_criteria('isCaptchaValid''validate_captcha''report_form');
    
SmartyValidate :: register_validator('v_CAPTCHA''CAPTCHA''isCaptchaValid'falsefalsefalsenull'report_form');
}
else {
    
SmartyValidate :: connect($tpl);
    
$rdata                $db->GetRow("SELECT * FROM {$tables['link']['name']} WHERE ID='$id'");
    
$data                = array();
    
$data['TITLE']            = $rdata['TITLE'];
    
$data['DESCRIPTION']    = $rdata['DESCRIPTION'];
    
$data['URL']            = $rdata['URL'];
    
$data['CATEGORY_ID']    = $rdata['CATEGORY_ID'];
    
$currcat                $data['CATEGORY_ID'];
if (
ENABLE_REWRITE) {
                
$data['CATEGORY_TITLE_URL'] = construct_mod_rewrite_path($rdata['CATEGORY_ID']);
            }
    
$data['ID']                = $id;
    
$data['NAME']            = $_POST['NAME'];
        
$cdata                    $db->GetRow("SELECT * FROM {$tables['category']['name']} WHERE ID='$rdata[CATEGORY_ID]'");
        
$data['CATEGORY_TITLE'] = $cdata['TITLE'];
    
$data['EMAIL']            = $_POST['EMAIL'];
    
$data['REASON']        = $_POST['REASON'];
    
$data['DETAILS']        = $_POST['DETAILS'];
    
$data array_merge($data, array('CAPTCHA' => $_REQUEST['CAPTCHA']));
    while (
$currcat 0) {
        
$cats        $db->GetRow("SELECT * FROM {$tables['category']['name']} WHERE ID='$currcat'");
        
$label        $cats['TITLE'];
        
$cats        $db->GetRow("SELECT * FROM {$tables['category']['name']} WHERE ID='$cats[PARENT_ID]'");
        if (
$cats['TITLE']) { $label $cats['TITLE'] . " » " $label; }
        
$currcat        $cats[PARENT_ID];
    }
    
$label      "Home" " » " $label;
    if (
SmartyValidate :: is_valid($data'report_form')) {
        require_once 
'libs/phpmailer/class.phpmailer.php';
        
$mail                = new PHPMailer();
        
$mail->PluginDir        'libs/phpmailer/';
        
$mail->Mailer        'mail';
        
$mail->From        $data['EMAIL'];
        
$mail->FromName    $data['NAME'];
        
$mail->Subject        $data['REASON'];
        
$mail->Body "";

        
$dir        $_SERVER[PHP_SELF];
        
$dir        eregi_replace("report.php"""$dir);
        
$LINK    "http://" $_SERVER['SERVER_NAME'] . $dir "index.php?c=" $data['CATEGORY_ID'];

        if (
$data['NAME']) { $mail->Body .= "Name : " $data['NAME'] . "\n"; }
        if (
$data['EMAIL']) { $mail->Body .= "Email : " $data['EMAIL'] . "\n"; }
        if ((
$data['EMAIL']) || ($data['NAME'])) { $mail->Body .= "\n"; }
        
$mail->Body .= "ID : " $data['ID'] . "\n";
        
$mail->Body         .= "Referer IP Address : " get_client_ip() . "\n\n";
        
$mail->Body .= "Title : " $data['TITLE'] . "\n";
        
$mail->Body .= "URL : " $data['URL'] . "\n";
        
$mail->Body .= "Kategorie : " $label "\n";
        
$mail->Body .= "Kategorie URL : " $LINK "\n\n";
        
$mail->Body .= "Betreff : " $data['REASON'] . "\n";
        if (
$data['DETAILS']) { $mail->Body .= "Details : " $data['DETAILS'] . "\n"; }
        
$mail->AddAddress('info@test.de''Support');
        if (! 
$mail->Send()) { $tpl->assign('error'true); }
        else { 
$tpl->assign('success'true); }
        
$mail->ClearAddresses();
    }
}

unset (
$_SESSION['CAPTCHA']);
function 
validate_captcha($value$empty, & $params, & $form) {
    require_once 
'libs/captcha/captcha.class.php';
    return isset(
$_SESSION['CAPTCHA']) && strtolower($_SESSION['CAPTCHA']) == strtolower($value);
}

function 
check_input($input) {
if (
eregi("\r"$input) || eregi("\n"$input) || eregi("%0a"$input) || eregi("%0d"$input) || 
    
eregi("Content-Type:"$input) || eregi("bcc:"$input) || eregi("to:"$input) || eregi("cc:"$input)) {
    return 
0;
}
else { return 
1; }
}

$path    = array();
$path    get_path($_SESSION['cid']);
$path[]    = array ('ID' => '0''TITLE' => _L('Meldung für ' .$data['TITLE']), 'TITLE_URL' => '''DESCRIPTION' => _L('Report Listing'));
$tpl->assign('path'$path);

 
$links $db->Getall("SELECT * FROM {$tables['link']['name']} WHERE ID='$id'");

foreach(
$links as $link => $link_row){
    
$links[$link]['DETAIL_URL'] = detail_page_url($links[$link]['ID'], $links[$link]['TITLE']);
    }
$tpl->assign('links'$links);

$tpl->assign('LINK'$LINK);
$tpl->assign('URL'$URL);
$categs    get_categs_tree($db0);
$tpl->assign('categs'$categs);
$tpl->assign($data);

echo 
$tpl->fetch('kontakt.tpl'$id);
unset(
$data);

?>
marc77 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.01.2009, 19:23  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

wenn du error_reporting(E_ALL); ganz oben hinschreibst, dann wirst du wahrscheinlich undefinierte variablen genannt bekommen, da sind dann auch die bei die du durch register_globals off nun nicht mehr hast
cycap ist offline  
Alt 13.01.2009, 19:34  
Benutzer
 
Registriert seit: 10.11.2008
Beiträge: 62
marc77 befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

habe error_reporting(E_ALL); eingefügt aber keine ausgabe erhalten..heisst das jetzt, dass es mit register_globals wohl nix zu tun hat?!
marc77 ist offline  
Alt 13.01.2009, 19:38  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
if (empty($_POST['submit'])) {
// das funktioniert ?
}
else {
// das funktioniert nicht?
}
Geht es nur um den als // das funktioniert nicht? markierten Abschnitt?
David ist offline  
Alt 13.01.2009, 19:38  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.847
HPR1974 wird schon bald berühmt werden
Standard

Dein code ist a) unvollständig und b) gibst Du keine gute FEhlerbeschreibung ab.
Was soll wo passieren und was kommt stattdessen.

btw warum muss $_POST['submit'] empty sein damit Du einen Datenfetch machst?
HPR1974 ist offline  
Alt 13.01.2009, 19:50  
Benutzer
 
Registriert seit: 10.11.2008
Beiträge: 62
marc77 befindet sich auf einem aufstrebenden Ast
Standard

Also der Code ging die ganze Zeit, er kann nicht so unvollständig sein. post $empty weiss ich nicht. Ich hab das nicht geschrieben...

Der Fehler ist, dass in der Email welche versendet wird, die Datenfelder leer sind

$data = array();
$data['TITLE'] = $rdata['TITLE'];
$data['DESCRIPTION'] = $rdata['DESCRIPTION'];
$data['URL'] = $rdata['URL'];
$data['CATEGORY_ID'] = $rdata['CATEGORY_ID'];


$_Post hingegen wird übermittelt
marc77 ist offline  
Alt 13.01.2009, 20:13  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.847
HPR1974 wird schon bald berühmt werden
Standard

sind die namen der datenbank felder in grossbuchstaben?
HPR1974 ist offline  
Alt 13.01.2009, 20:23  
Benutzer
 
Registriert seit: 10.11.2008
Beiträge: 62
marc77 befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

ja sind Sie alle. Wenn ich irgendwas debuggen soll, müsst ihr es mir sagen..danke

Grüße
marc77 ist offline  
Alt 13.01.2009, 20:29  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.847
HPR1974 wird schon bald berühmt werden
Standard

ja dann debugge mal deinen ganzen code. ab zeile 1 bis zum ende
dann bekommst Du raus an welcher stelle was passiert, welche vars welchen inhalt haben und warum.
HPR1974 ist offline  
Alt 13.01.2009, 20:43  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zitat:
Der Fehler ist, dass in der Email welche versendet wird, die Datenfelder leer sind
Wenn Du das vermutest, dann schau Dir die Daten doch einfach mal an.
Besser mit einem Debugger, aber zur Not geht das auch mit einem simplen echo-Debugger.
PHP-Code:
    if (ENABLE_REWRITE) {
        
$data['CATEGORY_TITLE_URL'] = construct_mod_rewrite_path($rdata['CATEGORY_ID']);
    }
    
$data['ID']                = $id;
    
$data['NAME']            = $_POST['NAME'];
    
$cdata                    $db->GetRow("SELECT * FROM {$tables['category']['name']} WHERE ID='$rdata[CATEGORY_ID]'");
    
$data['CATEGORY_TITLE'] = $cdata['TITLE'];
    
$data['EMAIL']            = $_POST['EMAIL'];
    
$data['REASON']        = $_POST['REASON'];
    
$data['DETAILS']        = $_POST['DETAILS'];
echo 
'<pre>Debug 1: data='var_dump($data), "</pre>\n";
echo 
'<pre>Debug 1: rdata='var_dump($rdata), "</pre>\n";
echo 
'<pre>Debug 1: cdata='var_dump($cdata), "</pre>\n";
    
$data array_merge($data, array('CAPTCHA' => $_REQUEST['CAPTCHA']));
echo 
'<pre>Debug 2: data='var_dump($data), "</pre>\n"
David 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
POST Daten senden ohne Formular tinchen PHP Tipps 2007 6 07.03.2007 11:54
Einlesen von Daten in Formular Fragenfrager PHP Tipps 2006 3 14.08.2006 10:11
Formular mit Daten aus mehreren Frames Jacks Rache HTML, Usability und Barrierefreiheit 8 27.06.2006 15:03
POST Daten ohne Formular übergeben? &lt;Daniel&gt; PHP Tipps 2006 8 19.06.2006 14:34
Formular übermittelt keine Daten PHP Tipps 2006 4 08.03.2006 13:09
Formular - Daten für nächste Seite behalten NetLook PHP Tipps 2007 7 18.11.2005 13:21
[Erledigt] sql daten für einen kunden auslesen/ändern im Formular PHP Tipps 2005-2 3 12.10.2005 08:36
Daten im Formular sollen erhalten bleiben 'progman' PHP Tipps 2005-2 11 02.09.2005 14:53
Formular Daten in die Datenbank schreiben… sunset PHP Tipps 2005-2 3 26.08.2005 11:49
[Erledigt] PHP Formular - Daten an nächsten Schritt weiter geben - Wie? PHP Tipps 2005 14 02.01.2005 20:05
[Erledigt] Daten in einem Formular ausgeben und ändern PHP Tipps 2004-2 7 07.12.2004 17:22
[Erledigt] Daten aus Formular in Datenbank eingeben ??? PHP Tipps 2004 6 14.08.2004 23:17
Daten in Formular formatieren. PHP Tipps 2004 3 11.08.2004 12:47
Wie übergebe ich aus einem Formular die Daten in Variablen. PHP Tipps 2004 14 11.08.2004 01:58
Daten aus einem Formular auslesen??? PHP-Fortgeschrittene 1 21.06.2004 17:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
register_globals off kontaktformular, register_globals off formular, mail($email, register_globals off, <select name=\ \register_globals off\, kontaktformular register globals, register_globals=off, kontaktformular php ohne register_globals, datenübergabe bei register_globals=off mit php, formular daten register_globals php_self, formulare register globals on, register globals off formulardaten, register_globals off, register_globals formular, formular funktioniert nicht mehr nach register gloabls off, formular php register_globals off, kontaktformular php register off, formular e-mail bei register_globals off, select name= register_globals formular

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:07 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