Undefined variable
Notice: Undefined variable: q in /home/httpd/vhosts/site.com/httpdocs/markt/index.php on line 50
Notice: Undefined variable: q in /home/httpd/vhosts/site.com/httpdocs/markt/index.php on line 52
Dit staat op de regel:
$content = "pages/$q.php";
if (strlen($q)==0)
wat is hier fout aan?
Undefined variable == Onbekende variabele.
Edit: Beter: Ongedefiniëerde variabele.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
SanThe schreef op 14.06.2008 15:35:
Even vertalen.
Undefined variable == Onbekende variabele.
Edit: Beter: Ongedefiniëerde variabele.
Undefined variable == Onbekende variabele.
Edit: Beter: Ongedefiniëerde variabele.
Het rare is dat ik 2 domeinnamen (hostings).
Bij de een draai ik het script en werkt alles correct.
Bijde ander krijg ik dit soort meldingen sament met undefined index.
Als het script bij de een werk moet het toch ook bij de ander werken?
(heeft misschien met php versie verschil qua server bij hoster te maken?)
Bovenstaande is niet correct:
Het betreft de volgende (tal van) foutmeldingen
Notice: Undefined index: password in /home/httpd/vhosts/site.com/httpdocs/markt/config.php on line 19
Op de regels staan dit:
$password = $_REQUEST['password'];
Bij de een staat error_reporting misschien uit/lager. Verder weet ik niet waar $q vandaan komt maar als die uit een GET, POST of welke andere superglobal ook komt, dan staan die blijkbaar uit ( dat is vanaf php 5 gelukkig standaard). Gebruik dan $_GET['q'], $_POST['q'] enz.
flashfocus schreef op 14.06.2008 15:42:
Undefined index: password in /home/httpd/vhosts/site.com/httpdocs/markt/config.php on line 19
Op de regels staan dit:
$password = $_REQUEST['password'];
Op de regels staan dit:
$password = $_REQUEST['password'];
Dat wil zeggen dat er in het array(), $_REQUEST in dit geval, geen key is met de naam 'password'.
Niet Bumpen.
Bumpen::
SanThe.
Edit: Oeps. en nou bump ik zelf. ;-)
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
SanThe schreef op 14.06.2008 15:44:
Bij de een staat error_reporting misschien uit/lager. Verder weet ik niet waar $q vandaan komt maar als die uit een GET, POST of welke andere superglobal ook komt, dan staan die blijkbaar uit ( dat is vanaf php 5 gelukkig standaard). Gebruik dan $_GET['q'], $_POST['q'] enz.
Zo staat het in mijn script:
$q = $_GET['q'];
Dit moet otch goed zijn, ik krijg hierop ook een undefind index melding
flashfocus schreef op 14.06.2008 15:48:
ik krijg hierop ook een undefind index melding
Dan is in $_GET geen key 'q' aanwezig, oftewel de GET is leeg.
Kijk eens naar isset en empty.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
SanThe schreef op 14.06.2008 15:49:
Staat dat wel vóór de notice?
Om misverstanden te voorkomen..
Op bijna alles na de
$q = $_GET['q'];
krijg ik de undefind index: melding?
Hieronder betreffende pagina (op andere pagina's krijg ik precies het zelfde)
Script werkt wel maar geeft veel foutmeldingen.
[post]
Code (php)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
$q = $_GET['q'];
$id = $_REQUEST['id'];
$password = $_REQUEST['password'];
$category = $_REQUEST['category'];
$photo = $_REQUEST['photo'];
$name = $_POST['name'];
$email = $_POST['email'];
$address = $_POST['address'];
$phone = $_POST['phone'];
$country = $_POST['country'];
$address = $_POST['address'];
$website = $_POST['website'];
$title = $_POST['title'];
$price = $_POST['price'];
$description = $_POST['description'];
$status = $_POST['status'];
$evaluatemsg = $_POST['evaluatemsg'];
$emailevaluate = $_POST['emailevaluate'];
$subject = $_POST['subject'];
$forsalecat = $_POST['forsalecat'];
$contactname = $_POST['contactname'];
$contactemail = $_POST['contactemail'];
$contactmessage = $_POST['contactmessage'];
$catsearch = $_POST['catsearch'];
$searchstring = $_POST['searchstring'];
$useragent = ($_SERVER['HTTP_USER_AGENT']);
$forsaleurl = "http://www.****/markt/";// script url met slach op het einde
$websitetitle = "****"; // site titel
$currency = "EUR"; // valuta
$uploadDir = "fotos/"; // upload dir voor de foto's
$maxfilesize = "300000"; // in bytes // max upload grootte in bytes
$maxfilesizekb = "300"; // in KB // max upload grootte in KB
function showCount($urlID)
{
global $cnt_sql;
$query = "SELECT count FROM forsale_clickcount WHERE bargain = '$urlID'";
$numdls = mysql_query($query) or die("Select Failed!");
if(mysql_num_rows($numdls) == 0) {
return 0;
} else {
$count = mysql_fetch_row($numdls);
return $count[0];
}
}
mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db) or die( "Unable to select database");
?>
$q = $_GET['q'];
$id = $_REQUEST['id'];
$password = $_REQUEST['password'];
$category = $_REQUEST['category'];
$photo = $_REQUEST['photo'];
$name = $_POST['name'];
$email = $_POST['email'];
$address = $_POST['address'];
$phone = $_POST['phone'];
$country = $_POST['country'];
$address = $_POST['address'];
$website = $_POST['website'];
$title = $_POST['title'];
$price = $_POST['price'];
$description = $_POST['description'];
$status = $_POST['status'];
$evaluatemsg = $_POST['evaluatemsg'];
$emailevaluate = $_POST['emailevaluate'];
$subject = $_POST['subject'];
$forsalecat = $_POST['forsalecat'];
$contactname = $_POST['contactname'];
$contactemail = $_POST['contactemail'];
$contactmessage = $_POST['contactmessage'];
$catsearch = $_POST['catsearch'];
$searchstring = $_POST['searchstring'];
$useragent = ($_SERVER['HTTP_USER_AGENT']);
$forsaleurl = "http://www.****/markt/";// script url met slach op het einde
$websitetitle = "****"; // site titel
$currency = "EUR"; // valuta
$uploadDir = "fotos/"; // upload dir voor de foto's
$maxfilesize = "300000"; // in bytes // max upload grootte in bytes
$maxfilesizekb = "300"; // in KB // max upload grootte in KB
function showCount($urlID)
{
global $cnt_sql;
$query = "SELECT count FROM forsale_clickcount WHERE bargain = '$urlID'";
$numdls = mysql_query($query) or die("Select Failed!");
if(mysql_num_rows($numdls) == 0) {
return 0;
} else {
$count = mysql_fetch_row($numdls);
return $count[0];
}
}
mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db) or die( "Unable to select database");
?>
SanThe schreef op 14.06.2008 15:49:
$q = $_GET['q'];
Kopiëren van een waarde van de ene $var naar de andere $var zonder dat er iets aan wordt gewijzigd is zinloos. Het kost alleen maar extra geheugen en processortijd. Niet doen dus.
$q = $_GET['q'];
Moet verwijderen uit het scrip?
Toegevoegd...
Ik zat net ergens te lezen over de melding en hadden ze het over
Heb ik toegepast bovenin mijn script en de foutmeldingen zijn inderdaad verdwenen? maar wat is de maar? Wat heb ik nu precies gedaan?
Gewijzigd op 01/01/1970 01:00:00 door flashfocus
flashfocus schreef op 14.06.2008 16:00:
Bedoel je dat ik alles stukjes zoals
$q = $_GET['q'];
Moet verwijderen uit het scrip?
Toegevoegd...
Ik zat net ergens te lezen over de melding en hadden ze het over
Heb ik toegepast bovenin mijn script en de foutmeldingen zijn inderdaad verdwenen? maar wat is de maar? Wat heb ik nu precies gedaan?
$q = $_GET['q'];
Moet verwijderen uit het scrip?
Toegevoegd...
Ik zat net ergens te lezen over de melding en hadden ze het over
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
error_reporting( E_ERROR );
Alle eerdere meldingen zijn warnings, met bovenstaande regel heb je de ingesteld dat alleen de error worden getoond. De warnings worden onderdrukt. De meldingen zijn er dus nog wel. Maar worden niet getoond.
TIP: Kijk eens naar de print_r; isset; en empty functies. Dit zijn div functies om te kijken wat er in een array/variabele wel/niet zit. Extra tip $_REQUEST, $_POST en $_GET zijn ook arrays.
?>
error_reporting( E_ERROR );
Alle eerdere meldingen zijn warnings, met bovenstaande regel heb je de ingesteld dat alleen de error worden getoond. De warnings worden onderdrukt. De meldingen zijn er dus nog wel. Maar worden niet getoond.
TIP: Kijk eens naar de print_r; isset; en empty functies. Dit zijn div functies om te kijken wat er in een array/variabele wel/niet zit. Extra tip $_REQUEST, $_POST en $_GET zijn ook arrays.
?>
Heb ik toegepast bovenin mijn script en de foutmeldingen zijn inderdaad verdwenen? maar wat is de maar? Wat heb ik nu precies gedaan?
Zoals Santhe al aangaf, kijk eens naar ISSET en EMPTY (op php.net) voor uitleg over deze functies, deze heb je nodig om de fouten op een behoorlijke manier weg te werken en niet alleen maar te verbergen.