• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Nie można uruchomić strony z http://localhost. Przecież to powinno działać.

0 głosów
2,059 wizyt
pytanie zadane 9 października 2015 w PHP przez Krzysiek_34 Mądrala (6,640 p.)

Nie mogę uruchomić swojej strony przy pomocy adresu http://localhost. Przepraszam, że zawracam Wam głowę, ale to powinno działać. Chyba, że znacie przyczynę, to będę Wam bardzo wdzięczny.

Nadal nie znam przyczyny dlaczego wyskakuje mi błąd, że w pliku db.php odpowiadającym za bazę danych w linii 10 jest błąd. Próbowałem wielu sposobów i bez skutku.

W pliku index.php na samym początku mam zapisane:

<?php
include "db.php";
 
if(isset($_SESSION['user_id'])){
    include "profil.php";
}
else{
    include "index.php";
}
?>

W pliku db.php mam zapisane:

<?php
$db_host = 'localhost';
$db_name = 'tu mam podaną nazwę bazy danych utworzoną w phpMyAdmin';
$db_user = 'root';
$db_pass = '';
$db_charset = 'utf8';

try
{
	$db = new PDO('mysql:dbname='.$db_name.';host='.$db_host.';charset='.$db_charset.';', $db_user, $db_pass);
}
catch(PDOException $e)
{
	die($e->getMessage());
}
?>

 

Linia 10 odpowiadająca za błąd w pliku db.php to:

$db = new PDO('mysql:dbname='.$db_name.';host='.$db_host.';charset='.$db_charset.';', $db_user, $db_pass);

 

Znacie może jakiś skuteczny sposób, abym przez adres http://localhost mógł uruchomić swoją stronę?

1 odpowiedź

–1 głos
odpowiedź 9 października 2015 przez Janusz92 Bywalec (2,150 p.)
Jaka jest treść tego błędu?

Nad zmienną sesyjną nie rozpoczynasz sesji (session_start()).

I dziwnym wydaje mi się includowanie index.php do index.php :P
komentarz 9 października 2015 przez Krzysiek_34 Mądrala (6,640 p.)

Treść błędu to:

Fatal error: Maximum execution time of 30 seconds exceeded in E:\PenDrive\strona_WWW\db.php on line 10

Skrypt profil.php będzie odpowiadał za wygląd strony zalogowanego użytkownika.

komentarz 9 października 2015 przez Janusz92 Bywalec (2,150 p.)
edycja 9 października 2015 przez Janusz92

Coś z bazą się nie chce połączyć.

Może nie masz takiej bazy, usera dla takiej bazy, albo hasło inne? Sprawdź dane dokładnie.

Do try dodaj sobie:

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

 

komentarz 9 października 2015 przez Janusz92 Bywalec (2,150 p.)
Jeżeli w pliku index.php wykona się else, to zauważ, że zaincluduje się tam index.php. I tak w kółko.
komentarz 9 października 2015 przez Krzysiek_34 Mądrala (6,640 p.)
Bo to wykonanie się else, to ma być powrót do strony głównej (index.php) z niezalogowanym użytkownikiem. Ja chyba coś źle kombinuję...
komentarz 9 października 2015 przez Janusz92 Bywalec (2,150 p.)

Przekierowania w php wyglądają tak:

header('Location: index.php');
komentarz 9 października 2015 przez Krzysiek_34 Mądrala (6,640 p.)
OK, dzięki. Już wiem gdzie popełniałem wcześniej błąd.
komentarz 9 października 2015 przez Boshi VIP (100,240 p.)
Ja też wiem...

  $db = new PDO('mysql:dbname='.$db_name.';host='.$db_host.';charset='.$db_charset.';', $db_user, $db_pass);

 

wiesz, że  konstruktor przyjmuje odwrotne wartości ?  zobacz na  argumenty co po kolei potrzeba mu dać...
komentarz 9 października 2015 przez Krzysiek_34 Mądrala (6,640 p.)
edycja 9 października 2015 przez Krzysiek_34

Tego akurat nie wiedziałem.

$db = new PDO('mysql:host='.$db_host.';dbname='.$db_name.';charset='.$db_charset.';', $db_user, $db_pass);

Chodzi Tobie o taki zapis? Przecież kolejność zapisu argumentu nie powinna mieć żadnego znaczenia...

komentarz 9 października 2015 przez Boshi VIP (100,240 p.)
Dobra mój błąd w tym wypadku, chociaż nie widziałem jeszcze zapisu takiego jak Ty stosujesz. Host zawsze jest najpierw.. nieważne.

 

http://stackoverflow.com/questions/6524829/php-pdo-connection-failure-throws-warning-and-script-execution-times-out

ustaw jako 4 parametr tablicę z max  time.  Ciezko powiedzieć co jest przyczyną. U mnie normalnie się łączy z różnymi konfiguracjami a w przypadku błędu  rzuca  exception.
komentarz 9 października 2015 przez Krzysiek_34 Mądrala (6,640 p.)

Teraz mogę uruchomic stronę przez http://localhost

W index.php mam zapisane aktualnie:

<?php

	session_start();
	
	if((isset($_SESSION['zalogowany'])) && ($_SESSION['zalogowany']==true))
	{
		header('Location: profil.php');
		exit();
	}

?>

<!DOCTYPE HTML>
<html lang="pl">
.......................................
.......................................

W logowanie.php mam zapisane:

<?php
session_start();

require_once "db.php";

$db = new PDO('mysql:host=localhost;dbname=nazwaBazy', 'uzytkownik', 'haslo', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")) or die();
........................................
........................................
?>

W profil.php mam zapisane:

<?php

	session_start();
	
	if(isset($_SESSION['zalogowany']))
	{
		header('Location: index.php');
		exit();
	}

?>
<!DOCTYPE HTML>
<html lang="pl">

<body>

<?php

	echo "<p>Witaj ".$_SESSION['user']."! [<a href="wylogowanie.php">Wyloguj się!</a>]</p>";

?>

</body>

W wylogowanie.php mam zapisane:

<?php

	session_start();
	
	session_unset();
	
	header('Location: index.php');

?>

 

Podobne pytania

0 głosów
3 odpowiedzi 6,190 wizyt
0 głosów
1 odpowiedź 1,306 wizyt

93,742 zapytań

142,678 odpowiedzi

323,297 komentarzy

63,326 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...