Referrer einbauen

Guten Morgen,

mir ist soeben noch ein Fehler aufgefallen und würde diesen gerne lösen.
Wenn nun jemand ohne ref (Referrer) auf weinschulung.ch kommt steht zuoberst in der Seite folgenden Fehlertext:

Notice: Undefined index: ref in /srv/www/vhosts/weinschulung.ch/httpdocs/includes/metas.php on line 113 Notice: Undefined index: wer in /srv/www/vhosts/weinschulung.ch/httpdocs/includes/metas.php on line 114 Notice: Undefined index: domain in /srv/www/vhosts/weinschulung.ch/httpdocs/includes/metas.php on line 115 Notice: Undefined index: provision in /srv/www/vhosts/weinschulung.ch/httpdocs/includes/metas.php on line 116 Notice: Undefined index: ref in /srv/www/vhosts/weinschulung.ch/httpdocs/includes/metas.php on line 113 Notice: Undefined index: wer in /srv/www/vhosts/weinschulung.ch/httpdocs/includes/metas.php on line 114 Notice: Undefined index: domain in /srv/www/vhosts/weinschulung.ch/httpdocs/includes/metas.php on line 115 Notice: Undefined index: provision in /srv/www/vhosts/weinschulung.ch/httpdocs/includes/metas.php on line 116 Notice: Undefined index: ref in /srv/www/vhosts/weinschulung.ch/httpdocs/includes/metas.php on line 113 Notice: Undefined index: wer in /srv/www/vhosts/weinschulung.ch/httpdocs/includes/metas.php on line 114 Notice: Undefined index: domain in /srv/www/vhosts/weinschulung.ch/httpdocs/includes/metas.php on line 115 Notice: Undefined index: provision in /srv/www/vhosts/weinschulung.ch/httpdocs/includes/metas.php on line 116

Wie kann ich diesen Fehler beheben?
Danke Euch vielmals für Eure Mithilfe...
 
Zuletzt bearbeitet:
moin, das hat dir dein vorposter schon geschrieben das du keine überprüfung hast ob ein ref übergeben wurde oder nicht.

in worten gefasst ist dein code so:

wenn Session-Ref existiert, dann mach meinen Query und in der while-schleife die zuordnungen.

wenn du nun kein ref übergist, macht er den query und die zuordnungen nicht. deshalb kommt die NOTICE-meldung. Da du die variablen/arrays welche aber dann nicht definiert wurden trotzdem verwendest zur ausgabe, kommt diese meldung.
 
Woooowww... :eek:
Kannst du mir dies auch als Code Posten?
Verstehe nur Bahnhof von dem was du da Schreibst.
Danke vielmals dafür!
 
naja, du musst die variablen welche du ausgibst halt auch wenn KEIN ref übergeben wird definieren. zb mit "0". oder machst am anfang deines scriptes:

PHP:
error_reporting(E_ALL & ~E_Notice);

damit werden die Notice-Meldungen welche keine fehlermeldungen sind sondern nur Hinweise unterdrückt. Ist allerdings keine saubere Programmierweise.
 
Tönt ja sehr einfach aber wie übergebe ich eine "0" wenn kein "ref" vorhanden ist?
Würde es dann in etwa so Aussehen:
PHP:
<?php
session_start(); 
if (isset($_SESSION['ref'])){
$referrer = $_SESSION['ref'];
$query = "SELECT * FROM referrer where id = '$referrer'"; }
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))

if($referrer == ""){$referrer = 0;} #NEU HINZUGEFÜGT#

{ 
$ref[$row['id']] = $row['ref'];
$wer[$row['id']] = $row['wer'];
$domain[$row['id']] = $row['domain'];
$provision[$row['id']] = $row['provision'];
} 
?>
Danke für ein nochmaliges Feedback...
Die Notice-Fehlermeldung möchte ich als solches nicht Deaktivieren, da ich gerne einen Fehlerfreien Code hätte.
 
Guten Morgen,

ich verstehe das nicht, es lief und nun wird auf einmal kein "ref" übergeben in meinem Formular?

Der ausgehende Link ab Referrerseite sieht folgendermassen aus:
HTML:
http://www.weinschulung.ch/?ref=1

und hier die ref abfrage in der Homepage Weinschulung:
PHP:
session_start(); 
if (isset($_SESSION['ref'])){
$referrer = $_SESSION['ref'];
$query = "SELECT * FROM referrer where id = '$referrer'"; }
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
{
$ref[$row['id']] = $row['ref'];
$wer[$row['id']] = $row['wer'];
$domain[$row['id']] = $row['domain'];
$provision[$row['id']] = $row['provision'];
}

und folgende Felder bleiben leer im Formular auf Weinschulung:
PHP:
<input name="Referrer" type="hidden" class="formmailertextfeld" id="Referrer" 
value="ID= <?php echo $ref[$_SESSION['ref']]; ?> | 
Name= <?php echo $wer[$_SESSION['ref']]; ?> | 
Domain= <?php echo $domain[$_SESSION['ref']]; ?> | 
Provision= <?php echo $provision[$_SESSION['ref']]; ?>" />

Wieso? Sollte doch alles richtig sein? :confused:
Wäre wirklich sehr dankbar für jegliche Hilfe...
 
Wurde folgendermassen gelöst durch einen guten Freund und Helfer...
Auf index.php:
PHP:
<?php
// ** abfrage des referrers mit session id ** //
session_start(); 
$referrer = mysql_real_escape_string($_GET["ref"]);
if ($referrer != "")
{
$query = "SELECT * FROM referrer where id = '$referrer'"; 
$result = mysql_query($query);
while($row = mysql_fetch_object($result))
{	 
$_SESSION['ref'] = $row->ref;
$_SESSION['wer'] = $row->wer;
$_SESSION['domain'] = $row->domain;
$_SESSION['provision'] = $row->provision;
}  
}
?>
Auf anmeldung.php und somit beim verborgenen Inputfeld im Formular:
PHP:
<?php session_start(); ?>
<input name="Referrer" type="hidden" class="formmailertextfeld" id="Referrer" 
value="ID= <?php echo $_SESSION['ref']; ?> | 
Name= <?php echo $_SESSION['wer']; ?> | 
Domain= <?php echo $_SESSION['domain']; ?> | 
Provision= <?php echo $_SESSION['provision']; ?>" />
Danke trotzdem an alle Suporter die Geduld hatten mit mir. ;)
 
Zurück