2 kleine PHP-vraagjes

Status
Niet open voor verdere reacties.

Kligham

Gebruiker
Lid geworden
7 jan 2009
Berichten
389
Hallo,

Ik heb twee vraagjes i.v.m PHP:

1) Als ik mijn index.php bij mijn host upload en daarna controleer of hij deze pagina toont wanneer ik naar mijn website ga, dan gebeurt dit. Nu is het echter zo wanneer ik mijn index.php in mijn httdocs van apache zet, ik de pagina krijg met index of/ en daaronder index.php.

-> Mijn apache ondersteunt PHP, dit is zeker niet het probleem.

2) Ik vroeg me af of het mogelijk is om HTML te includen? Op het internet staat dat dit mogelijk is, maar als ik het probeer, krijg ik een warning dat hij mijn html bestand niet vindt.

Weet er iemand een oplossing voor het probleem?
 
Voor 1: Je webserver heeft een instelling die aangeeft welke pagina hij opent als er geen file is meegegeven; je zult in de instellingen moeten zoeken welke dit is en daar dan index.php aan toe moeten voegen.

Voor 2: Weet je zeker dat je de filename goed hebt? Die moet precies overeenkomen en ook het pad moet goed staan (tenzij het in dezelfde map staat)
 
Voor 1: Je webserver heeft een instelling die aangeeft welke pagina hij opent als er geen file is meegegeven; je zult in de instellingen moeten zoeken welke dit is en daar dan index.php aan toe moeten voegen.

Voor 2: Weet je zeker dat je de filename goed hebt? Die moet precies overeenkomen en ook het pad moet goed staan (tenzij het in dezelfde map staat)

i.v.m. vraag 1 heb ik gezocht op index in mijn apache config file. Daar ben ik op het volgende gestoten:

</Directory>

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

Als ik daar DirectoryIndex index.php bijvoeg of de index.html verander in php blijf hetzelfde probleem zich voordoen.

Ik weet niet namelijk niet hoe dit moet.
 
Laatst bewerkt:
Het moet zo ->

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

Daarna zou je eventueel je webserver nog kunnen herstarten; misschien dat dat nodig is voor hij het oppakt :)
Kun je dat eens proberen?
 
Mercikes, ik was vergeten mijn apache te herstarten :o
 
Als ik op deze manier informatie uit mijn database te halen is dit geen probleem

PHP:
<?php
$con = mysql_connect("localhost","root","$$$$$$$$$");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("vetweb", $con);

$result = mysql_query("SELECT * FROM gebruiker
WHERE gebruikersnaam='kligham'");

while($row = mysql_fetch_array($result))
  {
  echo $row['gebruikersnaam'] . " " . $row['emailadres'];
  echo "<br />";
  }

?>

Wanneer ik het nu op deze manier doe:

PHP:
<?php
require_once ('db_fns.php');

$connection = db_connect;

$result = $connection->query("SELECT * FROM gebruiker
WHERE gebruikersnaam='kligham'");

while($row = mysql_fetch_array($result))
  {
  echo $row['gebruikersnaam'] . " " . $row['emailadres'];
  echo "<br />";
  }

?>

db_fns.php:

PHP:
<?php
//Dit zijn de nodige constants voor de mysqli-connectie
define("dbhost", "localhost");
define("dbuser", "root");
define("Password", "********");
define("Database", "vetweb");


//Hier begint de eigelijke connectie
//in een functie geplaatst, voor hergebruik
function db_connect(){
	
	$connect = mysqli_connect(dbhost, dbuser, Password, Database);
	
	if (!$connect) {
		throw new Exception('Er kan geen connectie tot stand gebracht worden. De volgende fout heeft zich voorgedaan:' . mysqli_connect_errno(). 
		' ' . mysql_connect_error() . '<br /><br /> Als zich dit blijft voordien, gelieve de site administrator te contacteren');
	} 
	else {
		return $connect;
	}
}
?>

Ik heb ook een foto van mijn database bijgevoegd
 

Bijlagen

  • Database.jpg
    Database.jpg
    103,2 KB · Weergaven: 34
Laatst bewerkt:
Het is niet zo handig om je database wachtwoord in je post te zetten.
 
Je hebt er een gemist in db_fns.php :)

En ik weet het zo niet en heb niet genoeg tijd.
 
K'had dat over het hoofd gezien. Hoe dan ook, hij doet het nog steeds niet. Ik snap echt niet waar het probleem hier zit? Heeft er iemand nog een ander idee?
 
Ik heb zelf niet eerder met mysqli gewerkt maar waarom gebruik je niet gewoon de mysql functies zoals het eerst was?

Dan doe je ipv
PHP:
$result = $connection->query("SELECT * FROM gebruiker

gewoon:

PHP:
$result = mysql_query("SELECT * FROM gebruiker
 
Dit heeft ook geen resultaat. Ik heb eens al de mysqli vervangen door mysql en dit levert helaas ook nog altijd geen oplossing op.

test.php:
PHP:
<?php
require_once ('db_fns.php');

$connection = db_connect();

$result = mysql_query("SELECT * FROM gebruiker
WHERE gebruikersnaam='kligham'");

while($row = mysql_fetch_array($result))
  {
  echo $row['gebruikersnaam'] . " " . $row['emailadres'];
  echo "<br />";
  }

?>

db_fns.php
PHP:
<?php
//Dit zijn de nodige constants voor de mysqli-connectie
define("dbhost", "localhost");
define("dbuser", "root");
define("Password", "*********");
define("Database", "vetweb");


//Hier begint de eigelijke connectie
//in een functie geplaatst, voor hergebruik
function db_connect(){
	
	$connect = mysql_connect(dbhost, dbuser, Password, Database);
	
	if (!$connect) {
		throw new Exception('Er kan geen connectie tot stand gebracht worden. De volgende fout heeft zich voorgedaan:' . mysql_connect_errno(). 
		' ' . mysql_connect_error() . '<br /><br /> Als zich dit blijft voordien, gelieve de site administrator te contacteren');
	} 
	else {
		return $connect;
	}
}
?>
 
En dan maak je hiervan:

PHP:
<?php
//Dit zijn de nodige constants voor de mysqli-connectie
define("dbhost", "localhost");
define("dbuser", "root");
define("Password", "*********");
define("Database", "vetweb");


//Hier begint de eigelijke connectie
//in een functie geplaatst, voor hergebruik
function db_connect(){
    
    $connect = mysql_connect(dbhost, dbuser, Password, Database);
    
    if (!$connect) {
        throw new Exception('Er kan geen connectie tot stand gebracht worden. De volgende fout heeft zich voorgedaan:' . mysql_connect_errno(). 
        ' ' . mysql_connect_error() . '<br /><br /> Als zich dit blijft voordien, gelieve de site administrator te contacteren');
    } 
    else {
        return $connect;
    }
}
?>

Dit:

PHP:
<?php
//Dit zijn de nodige constants voor de mysqli-connectie
define("dbhost", "localhost");
define("dbuser", "root");
define("Password", "*********");
define("Database", "vetweb");


//Hier begint de eigelijke connectie
//in een functie geplaatst, voor hergebruik
function db_connect(){
    
    $connect = mysql_connect(dbhost, dbuser, Password);
 
    
    if (!$connect) {
        throw new Exception('Er kan geen connectie tot stand gebracht worden. De volgende fout heeft zich voorgedaan:' . mysql_connect_errno(). 
        ' ' . mysql_connect_error() . '<br /><br /> Als zich dit blijft voordien, gelieve de site administrator te contacteren');
    } 
    else {
        return $connect;
    }
}
?>

En dan doe je op je pagina:

PHP:
$db = mysql_select_db(Database, $connect

Onder je connect functie.
 
Dit doet het inderdaad:

test.php:

PHP:
<?php
require_once ('db_fns.php');

$connection = db_connect();

mysql_select_db(Database, $connection);  

$result = mysql_query("SELECT * FROM gebruiker
WHERE gebruikersnaam='kligham'");

while($row = mysql_fetch_array($result))
  {
  echo $row['gebruikersnaam'] . " " . $row['emailadres'];
  echo "<br />";
  }
?>

db_fns.php:

PHP:
<?php
//Dit zijn de nodige constants voor de mysqli-connectie
define("dbhost", "localhost");
define("dbuser", "root");
define("Password", "**********");
define("Database", "vetweb");


//Hier begint de eigelijke connectie
//in een functie geplaatst, voor hergebruik
function db_connect(){
    
    $connect = mysql_connect(dbhost, dbuser, Password);
 
    
    if (!$connect) {
        throw new Exception('Er kan geen connectie tot stand gebracht worden. De volgende fout heeft zich voorgedaan:' . mysql_connect_errno(). 
        ' ' . mysql_connect_error() . '<br /><br /> Als zich dit blijft voordien, gelieve de site administrator te contacteren');
    } 
    else {
        return $connect;
    }
}


//functie disconnect van database
function db_disconnect($connect){
	
	mysql_close($connect);
}

?>
 
Laatst bewerkt:
Ik ben je heel er dankbaar voor je hulp, en begrijp dit niet verkeerd, maar hoe komt het dat net hetzelfde niet lukt als ik met mysqli werk? Deze functie doet het niet:

test.php:

PHP:
<?php
require_once ('db_fns.php');

$connection = db_connect();

mysqli_select_db(Database, $connection);  

$result = mysqli_query("SELECT * FROM gebruiker
WHERE gebruikersnaam='kligham'");

while($row = mysqli_fetch_array($result))
  {
  echo $row['gebruikersnaam'] . " " . $row['emailadres'];
  echo "<br />";
  }

db_fns.php :

PHP:
<?php
//Dit zijn de nodige constants voor de mysqli-connectie
define("dbhost", "localhost");
define("dbuser", "root");
define("Password", "****************");
define("Database", "vetweb");


//Hier begint de eigelijke connectie
//in een functie geplaatst, voor hergebruik
function db_connect(){
    
    $connect = mysqli_connect(dbhost, dbuser, Password);
 
    
    if (!$connect) {
        throw new Exception('Er kan geen connectie tot stand gebracht worden. De volgende fout heeft zich voorgedaan:' . mysqli_connect_errno(). 
        ' ' . mysqli_connect_error() . '<br /><br /> Als zich dit blijft voordien, gelieve de site administrator te contacteren');
    } 
    else {
        return $connect;
    }
}


//functie disconnect van database
function db_disconnect($connect){
	
	mysqli_close($connect);
}

?>

Als er hier iemand eens een antwoord op zou kunnen geven.

Ondertussen maak ik gebruik van het vorige script :p:thumb::D;):)
 
Laatst bewerkt:
Je gebruikt PHP 4.1.3 of later?

Dan zou het volgens mij zo moeten zijn:

db_fns.php
PHP:
<?php
//Dit zijn de nodige constants voor de mysqli-connectie
define("dbhost", "localhost");
define("dbuser", "root");
define("Password", "****************");
define("Database", "vetweb");


//Hier begint de eigelijke connectie
//in een functie geplaatst, voor hergebruik
function db_connect(){
    
    $connect = new mysqli(dbhost, dbuser, Password, Database);
    if ($mysqli->connect_error) {
        throw new Exception('Er kan geen connectie tot stand gebracht worden. De volgende fout heeft zich voorgedaan:' . mysqli_connect_errno(). 
        ' ' . mysqli_connect_error() . '<br /><br /> Als zich dit blijft voordien, gelieve de site administrator te contacteren');
    } else {
        return $connect;
    }
}

//functie disconnect van database
function db_disconnect($connect){
    mysqli->close($connect);
}

?>

test.php
PHP:
<?php
require_once ('db_fns.php');

$connection = db_connect();  

$result = mysqli->query("SELECT * FROM gebruiker WHERE gebruikersnaam = 'kligham' ");

while($row = $result_fetch_assoc()){
    echo $row['gebruikersnaam'] . " " . $row['emailadres'];
    echo "<br />";
}
?>

Ik heb het maar OO (Object Oriented) gedaan, zal eens kijken of ik het ook 'ouderwets' functiegeörienteerd kan plaatsen.
 
PHP:
<?php
//Dit zijn de nodige constants voor de mysqli-connectie
define("dbhost", "localhost");
define("dbuser", "root");
define("Password", "****************");
define("Database", "vetweb");


//Hier begint de eigelijke connectie
//in een functie geplaatst, voor hergebruik
function db_connect(){
    
    $connect = mysqli_connect(dbhost, dbuser, Password, Database);
    if (mysqli_connect_error()) {
        throw new Exception('Er kan geen connectie tot stand gebracht worden. De volgende fout heeft zich voorgedaan:' . mysqli_connect_errno(). 
        ' ' . mysqli_connect_error() . '<br /><br /> Als zich dit blijft voordien, gelieve de site administrator te contacteren');
    } else {
        return $connect;
    }
}

//functie disconnect van database
function db_disconnect($connect){
    mysqli_close($connect);
}

?>

Deze is functiegeörienteerd, ik heb nog nooit met MySQLi gewerkt, dus ik heb geen idee of dit helemaal klopt, maar dit is wat ik van PHP.net heb.

Je had het dus wel zo'n beetje goed, maar volgens mij had je ook geen spatie tussen 'gebruiker' en 'WHERE' dat zou ook nog wel eens een foutmelding kunnen veroorzaken, maar dat is ook lastig te zien als je het op deze manier op twee regels hebt staan.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan