Gå til innhold

[LØST]problem med php og mysql


Anbefalte innlegg

Skrevet (endret)

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
Videoannonse
Annonse
Skrevet (endret)

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
Skrevet (endret)

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
Skrevet

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.

Skrevet

dt kommer ingen feilmelding, bare en 100% hvit skjerm... som bare står stille, dt står fullført neddi venstre hjørne... men har ingen feilmeldinger, all info er riktig, har sjekket 5-6 ganger

Skrevet

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.

Skrevet
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]

Gjest Slettet+142
Skrevet

hvis det er veldig stor kode du poster, er sikkert det noe av grunnen.

Skrevet (endret)

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
Skrevet
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.

Skrevet (endret)

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
Gjest Slettet+142
Skrevet (endret)

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
Gjest Slettet+142
Skrevet (endret)

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
Gjest Slettet+142
Skrevet

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>

 

Gjest Slettet+142
Skrevet

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>

 

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...