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

Object Storage Arubacloud
0 głosów
1,235 wizyt
pytanie zadane 9 października 2015 w PHP przez Krzysiek_34 Mądrala (6,050 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,050 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,050 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,050 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,050 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,050 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 5,666 wizyt
0 głosów
1 odpowiedź 823 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...