Gå til innhold

[LØST]problem med php og mysql


Anbefalte innlegg

vel, jeg har et registrerings script, som jeg er 100% sikker på funker, for prøvde dt på 2 maskiner, funka på den ene... vel, når jeg har skreve inn infoen jeg vil ha som account i registrering sida, kommer dt en helt hvit skjerm, jeg er 100% sikker på at config.php oxo er rett... får dem bare ikke til og connecte... vis dere er noe dere trenger mer info på, bare spør

Endret av Sander92
Lenke til kommentar
Videoannonse
Annonse

koden du bruker til å koble til basen med kunne vært kjekt. En helt hvit side kan tyde på at noe er feil hvis du ikke har slått på display errors. Du kan endre dette i php.ini fila eller ved å legge til dette helt i starten av scriptet ini_set('display_errors', 1).

 

Dette er koden jeg bruker. Legg til include "connect.php"; (eller hva du velger å kalle fila du legger koden i, og så f.eks $link=connect(); for å koble til.

Klikk for å se/fjerne innholdet nedenfor
PHP
<?php 

function connect() 

{ 

   $host="localhost";

   $user="******";

   $pwd="********";

   $db="******";   

   

   if (!($link=@mysql_connect($host,$user,$pwd))) 

   { 

      echo '<div style="text-align: center; padding: 1em;">Database doesn't exist.<br /> Check that the database name is spelled correctly.</div>';

echo '<div style="text-align: center; padding-top: 1em;">'.mysql_error().'</div>';

      exit(); 

   }

   if (!@mysql_select_db($db,$link)) 

   { 

      echo '<div style="text-align: center; padding: 1em;">Can't connect to database.</div>';

echo '<div style="text-align: center; padding-top: 1em;">'.mysql_error().'</div>';

      exit(); 

   }

   return $link; 

}

?>

Endret av crowly
Lenke til kommentar

feilmeldinger er på, får dt ellers, men ja, jeg har et config.php fil, som er samme sak som det du har som connect.php, har spurt på forum før, de sa bare at det tyder på at php ikke greier og koble seg til mysql, eller at mysql ikke har tilgang på nettet, men vet at jeg har disse, kan være noe innenfor det, får de forklarte ikke en dritt :p (bruker xampp bare så dt er sagt)

Endret av Sander92
Lenke til kommentar

Hvis du tester mitt tilkoblingsscript, eller modifiserer ditt eget til å skrive ut noen feilmeldinger på de forskjellige kommandoene, evt bruke mysql_error(), slik at du kan se på hvilken kommando den feiler.

 

Når jeg tester på min egen server så får jeg feilmeldingen fra mysql_error: Unknown MySQL server host 'host_navn' (1) når mysql_connect feiler fordi server/host adressen er feil. Hvis brukernavn eller passord er feil kommer dette: Access denied for user ... .

Hvis mysql_select_db() feiler så gir mysql_error denne meldingen: Unknown database 'database_navn'.

 

Disse feilmeldingene er ganske nyttig for å enklere finne ut hva som ikke fungerer/går galt.

Lenke til kommentar

Kan du poste scriptet du bruker ?

 

Kan være greit å legge inn noe debug tekst på forskjellige steder i koden, for å sjekke hvor langt scriptet kommer. F.eks noe slikt

PHP
<?php

echo "Start<br />";

//div kode

echo "Oppdaterer base<br />";

//mere kode

echo "Gjør noe annet<br />";

//enda mere kode

echo "Ferdig<br />";

?>

 

Har du mysql_error() med i tilkoblingsscriptet ditt ? Hvis problemet ditt er at du ikke får kontakt med basen av en eller annen grunn, så skal den gi en feilmelding (som jeg viste over).

Hvis det fungerer på den ene maskinen og ikke den andre, hva er da forskjellene på maskinene ? Kjører mysql basen på den som fungerer, mens den som ikke fungerer må koble til maskin nr 1 ? Da kan det kanskje være ett firewall problem som hindrer maskin nr 2 å få tilgang til basen på nr 1.

Lenke til kommentar
Kan du poste scriptet du bruker ?

 

Kan være greit å legge inn noe debug tekst på forskjellige steder i koden, for å sjekke hvor langt scriptet kommer. F.eks noe slikt

PHP
<?php

echo "Start<br />";

//div kode

echo "Oppdaterer base<br />";

//mere kode

echo "Gjør noe annet<br />";

//enda mere kode

echo "Ferdig<br />";

?>

 

Har du mysql_error() med i tilkoblingsscriptet ditt ? Hvis problemet ditt er at du ikke får kontakt med basen av en eller annen grunn, så skal den gi en feilmelding (som jeg viste over).

Hvis det fungerer på den ene maskinen og ikke den andre, hva er da forskjellene på maskinene ? Kjører mysql basen på den som fungerer, mens den som ikke fungerer må koble til maskin nr 1 ? Da kan det kanskje være ett firewall problem som hindrer maskin nr 2 å få tilgang til basen på nr 1.

8926079[/snapback]

Lenke til kommentar

config.php:

 

<?php

 

$config['mysql_host'] = '127.0.0.1'; //MySQL Host

$config['mysql_user'] = '******'; //MySQL Username

$config['mysql_pass'] = '**********'; //MySQL Password

$config['mysql_dbname'] = '********'; //Database Name

 

?>

Endret av Sander92
Lenke til kommentar
sorry, noe galt med postingen... kommer opp at diskusjon.no har tekniske problemer

8926269[/snapback]

 

prøv å legg det kun i code i stedet for php, eller fjern <?php ?> fra koden, har opplevd at det har resultert i tekniske problemer.

Lenke til kommentar

register.php

 

<?php

 

include("config.php");

 

error_reporting(E_ALL ^ E_NOTICE);

 

session_start();

 

$msg = Array();

$error = Array();

 

function addUser(){

if (empty($_POST)) return false;

global $config, $msg, $error;

if (empty($_POST['login'])) $error[] = 'Error, You forgot to enter a account name!';

if (empty($_POST['password'][0]) || empty($_POST['password'][1])) $error[] = 'Error, You forgot to enter a password!';

if ($_POST['password'][0] !== $_POST['password'][1]) $error[] = 'Password does not match!';

if (empty($_POST['email'])) $error[] = 'Please fill in a valid email adress!';

if (!empty($error)) return false;

$db = @mysql_connect($config['mysql_host'], $config['mysql_user'], $config['mysql_pass']);

if (!$db) return $error[] = 'Database: '.mysql_error();

if (!@mysql_select_db($config['mysql_dbname'], $db)) return $error[] = 'Database: '.mysql_error();

$query = "SELECT `acct` FROM `accounts` WHERE `login` = '".mysql_real_escape_string($_POST['login'])."'";

$res = mysql_query($query, $db);

if (!$res) return $error[] = 'Database: '.mysql_error();

if (mysql_num_rows($res) > 0) return $error[] = 'Username already in use.';

//Modified by Jerq

$query = "INSERT INTO `accounts` (`login`,`password`,`lastip`, `flags`) VALUES ('".mysql_real_escape_string($_POST['login'])."', '".mysql_real_escape_string($_POST['password'][0])."', '".$_SERVER['REMOTE_ADDR']."','".mysql_real_escape_string($_POST['tbc'][0])."')";

//Modified by Jerq

 

$res = mysql_query($query, $db);

if (!$res) return $error[] = 'Database: '.mysql_error();

$msg[] = 'The Account <span style="color:#00FF00"><strong>'.htmlentities($_POST['login']).'</strong></span> has been created!';

mysql_close($db);

return true;

}

{

addUser();

}

 

?>

 

 

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

<title>Account Registration Page</title>

<meta http-equiv="Pragma" content="no-cache"/>

<meta http-equiv="Cache-Control" content="no-cache"/>

<style type="text/css" media="screen">@import url(server_stats.css);</style>

<!--[if lt IE 7.]>

<script defer type="text/javascript" src="pngfix.js"></script>

<![endif]-->

</head>

<body>

<center>

<div class="logo"></div>

<div style="width:300px">

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">

<table width="100%" border="0" cellspacing="1" cellpadding="3">

<tr class="head"><th colspan="2">Account Creation</th></tr>

<tr>

<th>Username: </th><td align="center"><input class="button" type="text" name="login" size="30" maxlength="16"/></td>

</tr>

<tr>

<th>Password: </th><td align="center"><input class="button" type="password" name="password[]" size="30" maxlength="16"/></td>

</tr>

<tr>

<th>Retype Password: </th><td align="center"><input class="button" type="password" name="password[]" size="30" maxlength="16"/></td>

</tr>

<tr>

<th>E-mail: </th><td align="center"><input class="button" type="text" name="email" size="30" maxlength="30"/></td>

</tr>

<!--Added by Jerq-->

<th>Account Type:</th><td align="center">

<select name="tbc" type="select">

<option value="0">Normal</option>

<option selected value="8">Burning Crusade</option>

</select></td>

<!--Added By Jerq-->

</table>

<input type="button" class="button" value="Back" onClick="history.go(-1)" />

<input type="submit" value="Create" class="button"/>

</form>

 

<?php

if (!empty($error)){

echo '<table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td class="error" align="center">';

foreach($error as $text)

echo $text.'</br>';

echo '</td></tr></table>';

};

if (!empty($msg)){

echo '<table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td align="center">';

foreach($msg as $text)

echo $text.'</br>';

echo '</td></tr></table>';

exit();

};

?>

 

</div>

<div class="footer">

<font color="red" size="2">Account Creation is down at the moment.PM to MAD in forums to create an account.</font>

</div>

</center>

</body>

</html>

Endret av Sander92
Lenke til kommentar
Gjest Slettet+142

Tips til neste gang du skal poste en code, legg koden inn som dette:

[code]...kode...[*/code]

uten stjerne da

 

*Sjekker koden din*

Endret av Slettet+142
Lenke til kommentar
Gjest Slettet+142

OK. jeg har lagt til en print_r($error); og en var_dump(); i koden din. Vet at det allerede finnes en løkke som skal skrive ut error-ene, men det ser jo ut til at den ikke virker, så kommer det noe ut med denne koden her?

 

 

<?php

include("config.php");

error_reporting(E_ALL ^ E_NOTICE);

session_start();

$msg = Array();
$error = Array();

function addUser(){
if (empty($_POST)) return false;
global $config, $msg, $error;
if (empty($_POST['login'])) $error[] = 'Error, You forgot to enter a account name!';
if (empty($_POST['password'][0]) || empty($_POST['password'][1])) $error[] = 'Error, You forgot to enter a password!';
if ($_POST['password'][0] !== $_POST['password'][1]) $error[] = 'Password does not match!';
if (empty($_POST['email'])) $error[] = 'Please fill in a valid email adress!';
if (!empty($error)) return false;
$db = @mysql_connect($config['mysql_host'], $config['mysql_user'], $config['mysql_pass']);
if (!$db) return $error[] = 'Database: '.mysql_error();
if (!@mysql_select_db($config['mysql_dbname'], $db)) return $error[] = 'Database: '.mysql_error();
$query = "SELECT `acct` FROM `accounts` WHERE `login` = '".mysql_real_escape_string($_POST['login'])."'";
$res = mysql_query($query, $db);
if (!$res) return $error[] = 'Database: '.mysql_error();
if (mysql_num_rows($res) > 0) return $error[] = 'Username already in use.';
//Modified by Jerq
$query = "INSERT INTO `accounts` (`login`,`password`,`lastip`, `flags`) VALUES ('".mysql_real_escape_string($_POST['login'])."', '".mysql_real_escape_string($_POST['password'][0])."', '".$_SERVER['REMOTE_ADDR']."','".mysql_real_escape_string($_POST['tbc'][0])."')";
//Modified by Jerq

$res = mysql_query($query, $db);
if (!$res) return $error[] = 'Database: '.mysql_error();
$msg[] = 'The Account <span style="color:#00FF00"><strong>'.htmlentities($_POST['login']).'</strong></span> has been created!';
mysql_close($db);
return true;
}
{
var_dump((addUser());
print_r($error); // La til her
}

?>


<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Account Registration Page</title>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Cache-Control" content="no-cache"/>
<style type="text/css" media="screen">@import url(server_stats.css);</style>
<!--[if lt IE 7.]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->
</head>
<body>
<center>
<div class="logo"></div>
<div style="width:300px">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr class="head"><th colspan="2">Account Creation</th></tr>
<tr>
<th>Username: </th><td align="center"><input class="button" type="text" name="login" size="30" maxlength="16"/></td>
</tr>
<tr>
<th>Password: </th><td align="center"><input class="button" type="password" name="password[]" size="30" maxlength="16"/></td>
</tr>
<tr>
<th>Retype Password: </th><td align="center"><input class="button" type="password" name="password[]" size="30" maxlength="16"/></td>
</tr>
<tr>
<th>E-mail: </th><td align="center"><input class="button" type="text" name="email" size="30" maxlength="30"/></td>
</tr>
<!--Added by Jerq-->
<th>Account Type:</th><td align="center">
<select name="tbc" type="select">
<option value="0">Normal</option>
<option selected value="8">Burning Crusade</option>
</select></td>
<!--Added By Jerq-->
</table>
<input type="button" class="button" value="Back" onClick="history.go(-1)" />
<input type="submit" value="Create" class="button"/>
</form>

<?php
if (!empty($error)){
echo '<table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td class="error" align="center">';
foreach($error as $text)
echo $text.'</br>';
echo '</td></tr></table>';
};
if (!empty($msg)){
echo '<table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td align="center">';
foreach($msg as $text)
echo $text.'</br>';
echo '</td></tr></table>';
exit();
};
?>

</div>
<div class="footer">
<font color="red" size="2">Account Creation is down at the moment.PM to MAD in forums to create an account.</font>
</div>
</center>
</body>
</html>

 

Endret av Slettet+142
Lenke til kommentar
Gjest Slettet+142

jeg oppdaterte nettopp koden med en liten ting til:

 

<?php

include("config.php");

error_reporting(E_ALL ^ E_NOTICE);

session_start();

$msg = Array();
$error = Array();

function addUser(){
if (empty($_POST)) return false;
global $config, $msg, $error;
if (empty($_POST['login'])) $error[] = 'Error, You forgot to enter a account name!';
if (empty($_POST['password'][0]) || empty($_POST['password'][1])) $error[] = 'Error, You forgot to enter a password!';
if ($_POST['password'][0] !== $_POST['password'][1]) $error[] = 'Password does not match!';
if (empty($_POST['email'])) $error[] = 'Please fill in a valid email adress!';
if (!empty($error)) return false;
$db = @mysql_connect($config['mysql_host'], $config['mysql_user'], $config['mysql_pass']);
if (!$db) return $error[] = 'Database: '.mysql_error();
if (!@mysql_select_db($config['mysql_dbname'], $db)) return $error[] = 'Database: '.mysql_error();
$query = "SELECT `acct` FROM `accounts` WHERE `login` = '".mysql_real_escape_string($_POST['login'])."'";
$res = mysql_query($query, $db);
if (!$res) return $error[] = 'Database: '.mysql_error();
if (mysql_num_rows($res) > 0) return $error[] = 'Username already in use.';
//Modified by Jerq
$query = "INSERT INTO `accounts` (`login`,`password`,`lastip`, `flags`) VALUES ('".mysql_real_escape_string($_POST['login'])."', '".mysql_real_escape_string($_POST['password'][0])."', '".$_SERVER['REMOTE_ADDR']."','".mysql_real_escape_string($_POST['tbc'][0])."')";
//Modified by Jerq

$res = mysql_query($query, $db);
if (!$res) return $error[] = 'Database: '.mysql_error();
$msg[] = 'The Account <span style="color:#00FF00"><strong>'.htmlentities($_POST['login']).'</strong></span> has been created!';
mysql_close($db);
return true;
}
{
var_dump((addUser());
print_r($error); // La til her
}

?>


<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Account Registration Page</title>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Cache-Control" content="no-cache"/>
<style type="text/css" media="screen">@import url(server_stats.css);</style>
<!--[if lt IE 7.]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->
</head>
<body>
<center>
<div class="logo"></div>
<div style="width:300px">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr class="head"><th colspan="2">Account Creation</th></tr>
<tr>
<th>Username: </th><td align="center"><input class="button" type="text" name="login" size="30" maxlength="16"/></td>
</tr>
<tr>
<th>Password: </th><td align="center"><input class="button" type="password" name="password[]" size="30" maxlength="16"/></td>
</tr>
<tr>
<th>Retype Password: </th><td align="center"><input class="button" type="password" name="password[]" size="30" maxlength="16"/></td>
</tr>
<tr>
<th>E-mail: </th><td align="center"><input class="button" type="text" name="email" size="30" maxlength="30"/></td>
</tr>
<!--Added by Jerq-->
<th>Account Type:</th><td align="center">
<select name="tbc" type="select">
<option value="0">Normal</option>
<option selected value="8">Burning Crusade</option>
</select></td>
<!--Added By Jerq-->
</table>
<input type="button" class="button" value="Back" onClick="history.go(-1)" />
<input type="submit" value="Create" class="button"/>
</form>

<?php
if (!empty($error)){
echo '<table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td class="error" align="center">';
foreach($error as $text)
echo $text.'</br>';
echo '</td></tr></table>';
};
if (!empty($msg)){
echo '<table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td align="center">';
foreach($msg as $text)
echo $text.'</br>';
echo '</td></tr></table>';
exit();
};
?>

</div>
<div class="footer">
<font color="red" size="2">Account Creation is down at the moment.PM to MAD in forums to create an account.</font>
</div>
</center>
</body>
</html>

 

Lenke til kommentar
Gjest Slettet+142

hmm. Så med koden du postet, så var ikke siden helt blank?

 

Jeg kan ikke gjøre annet enn å prøve med en ny kode jeg da:

 

 

<?php

include("config.php");

error_reporting(E_ALL ^ E_NOTICE);

session_start();

echo "Ja, siden lever etter config.php!"; // La til her

$msg = Array();
$error = Array();

function addUser(){
if (empty($_POST)) return false;
global $config, $msg, $error;
if (empty($_POST['login'])) $error[] = 'Error, You forgot to enter a account name!';
if (empty($_POST['password'][0]) || empty($_POST['password'][1])) $error[] = 'Error, You forgot to enter a password!';
if ($_POST['password'][0] !== $_POST['password'][1]) $error[] = 'Password does not match!';
if (empty($_POST['email'])) $error[] = 'Please fill in a valid email adress!';
if (!empty($error)) return false;
$db = @mysql_connect($config['mysql_host'], $config['mysql_user'], $config['mysql_pass']);
if (!$db) return $error[] = 'Database: '.mysql_error();
if (!@mysql_select_db($config['mysql_dbname'], $db)) return $error[] = 'Database: '.mysql_error();
$query = "SELECT `acct` FROM `accounts` WHERE `login` = '".mysql_real_escape_string($_POST['login'])."'";
$res = mysql_query($query, $db);
if (!$res) return $error[] = 'Database: '.mysql_error();
if (mysql_num_rows($res) > 0) return $error[] = 'Username already in use.';
//Modified by Jerq
$query = "INSERT INTO `accounts` (`login`,`password`,`lastip`, `flags`) VALUES ('".mysql_real_escape_string($_POST['login'])."', '".mysql_real_escape_string($_POST['password'][0])."', '".$_SERVER['REMOTE_ADDR']."','".mysql_real_escape_string($_POST['tbc'][0])."')";
//Modified by Jerq

$res = mysql_query($query, $db);
if (!$res) return $error[] = 'Database: '.mysql_error();
$msg[] = 'The Account <span style="color:#00FF00"><strong>'.htmlentities($_POST['login']).'</strong></span> has been created!';
mysql_close($db);
return true;
}
{
addUser();
print_r($error); // La til her
}

?>


<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Account Registration Page</title>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Cache-Control" content="no-cache"/>
<style type="text/css" media="screen">@import url(server_stats.css);</style>
<!--[if lt IE 7.]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->
</head>
<body>
<center>
<div class="logo"></div>
<div style="width:300px">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr class="head"><th colspan="2">Account Creation</th></tr>
<tr>
<th>Username: </th><td align="center"><input class="button" type="text" name="login" size="30" maxlength="16"/></td>
</tr>
<tr>
<th>Password: </th><td align="center"><input class="button" type="password" name="password[]" size="30" maxlength="16"/></td>
</tr>
<tr>
<th>Retype Password: </th><td align="center"><input class="button" type="password" name="password[]" size="30" maxlength="16"/></td>
</tr>
<tr>
<th>E-mail: </th><td align="center"><input class="button" type="text" name="email" size="30" maxlength="30"/></td>
</tr>
<!--Added by Jerq-->
<th>Account Type:</th><td align="center">
<select name="tbc" type="select">
<option value="0">Normal</option>
<option selected value="8">Burning Crusade</option>
</select></td>
<!--Added By Jerq-->
</table>
<input type="button" class="button" value="Back" onClick="history.go(-1)" />
<input type="submit" value="Create" class="button"/>
</form>

<?php
if (!empty($error)){
echo '<table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td class="error" align="center">';
foreach($error as $text)
echo $text.'</br>';
echo '</td></tr></table>';
};
if (!empty($msg)){
echo '<table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td align="center">';
foreach($msg as $text)
echo $text.'</br>';
echo '</td></tr></table>';
exit();
};
?>

</div>
<div class="footer">
<font color="red" size="2">Account Creation is down at the moment.PM to MAD in forums to create an account.</font>
</div>
</center>
</body>
</html>

 

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...