elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Ayuda, servidor web apache y php
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda, servidor web apache y php  (Leído 2,773 veces)
Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Ayuda, servidor web apache y php
« en: 23 Marzo 2022, 00:03 am »

Hola, como estan?


Tengo un problema, soy nuevo en php, queria tratar de crear un archivo php el cual haga que cree un Json.Hasta ahi todo bien, dentro de mi IDE funciona (Si lo ejecuto el Json se crea), pero al momento de iniciar un servidor apache y probar el php desde ahi, el archivo json no se genera con nada.


Alguien tiene idea de como arreglar esto?

Dejo el codigo

Código:
<?php
//Variables super globales

  //Esta variable tiene infomracion sobre la peticion http que nos han mandado
 
if ($_SERVER["REQUEST_METHOD"] = "POST"){
  $contact = [
    "name" => $_POST["name"],
    "phone_number" => $_POST["phone_number"],
  ];

 

  $contacts = [];
  $contacts[] = $contact;

  file_put_contents("contacts.json", json_encode($contacts));


  echo($file);
  //header("Location: index.php");
}

?>




<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- Bootstrap -->
  <link
    rel="stylesheet"
    href="https://cdnjs.cloudflare.com/ajax/libs/bootswatch/5.1.3/darkly/bootstrap.min.css"
    integrity="sha512-ZdxIsDOtKj2Xmr/av3D/uo1g15yxNFjkhrcfLooZV5fW0TT7aF7Z3wY1LOA16h0VgFLwteg14lWqlYUQK3to/w=="
    crossorigin="anonymous"
    referrerpolicy="no-referrer"
  />
  <script
    defer
    src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"
    integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
    crossorigin="anonymous"
  ></script>

  <!-- Static Content -->
  <link rel="stylesheet" href="./static/css/index.css" />

  <title>Contacts App</title>
</head>
<body>
  <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
    <div class="container-fluid">
      <a class="navbar-brand font-weight-bold" href="#">
        <img class="mr-2" src="./static/img/logo.png" />
        ContactsApp
      </a>
      <button
        class="navbar-toggler"
        type="button"
        data-bs-toggle="collapse"
        data-bs-target="#navbarNav"
        aria-controls="navbarNav"
        aria-expanded="false"
        aria-label="Toggle navigation"
      >
        <span class="navbar-toggler-icon"></span>
      </button>
      <div class="collapse navbar-collapse" id="navbarNav">
        <ul class="navbar-nav">
          <li class="nav-item">
            <a class="nav-link" href="index.php">Home</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="add.php">Add Contact</a>
          </li>
        </ul>
      </div>
    </div>
  </nav>

  <main>
    <div class="container pt-5">
      <div class="row justify-content-center">
        <div class="col-md-8">
          <div class="card">
            <div class="card-header">Add New Contact</div>
            <div class="card-body">
              <form method="POST" action="add.php">
                <div class="mb-3 row">
                  <label for="name" class="col-md-4 col-form-label text-md-end">Name</label>
   
                  <div class="col-md-6">
                    <input id="name" type="text" class="form-control" name="name" required autocomplete="name" autofocus>
                  </div>
                </div>
   
                <div class="mb-3 row">
                  <label for="phone_number" class="col-md-4 col-form-label text-md-end">Phone Number</label>
   
                  <div class="col-md-6">
                    <input id="phone_number" type="tel" class="form-control" name="phone_number" required autocomplete="phone_number" autofocus>
                  </div>
                </div>
   
                <div class="mb-3 row">
                  <div class="col-md-6 offset-md-4">
                    <button type="submit" class="btn btn-primary">Submit</button>
                  </div>
                </div>
              </form>
            </div>
          </div>
        </div>
      </div>
    </div>
  </main>
</body>





Gracias!!!


En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
el-brujo
ehn
***
Desconectado Desconectado

Mensajes: 21.580


La libertad no se suplica, se conquista


Ver Perfil WWW
Re: Ayuda, servidor web apache y php
« Respuesta #1 en: 23 Marzo 2022, 00:13 am »

Pues para encontrar cualquier error con php activa la depuración o mira los logs registro de php

Añade:

Código
  1. <?php
  2. ini_set("display_errors", 1);
  3. // Notificar todos los errores de PHP (ver el registro de cambios)
  4. ?>


En línea

Panic0

Desconectado Desconectado

Mensajes: 218



Ver Perfil
Re: Ayuda, servidor web apache y php
« Respuesta #2 en: 23 Marzo 2022, 00:30 am »

Pues para encontrar cualquier error con php activa la depuración o mira los logs registro de php

Añade:

Código
  1. <?php
  2. ini_set("display_errors", 1);
  3. // Notificar todos los errores de PHP (ver el registro de cambios)
  4. ?>


Gracias!!!

Encontre el codigo de error
Código:
Warning: file_put_contents(contacts.json): Failed to open stream: Permiso denegado in /opt/lampp/htdocs/contacts-app/add.php on line 23
/code]


Ahora tengo que buscar la forma de tener permisos, creo.
En línea

Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
Danielㅤ


Desconectado Desconectado

Mensajes: 1.667


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: Ayuda, servidor web apache y php
« Respuesta #3 en: 23 Marzo 2022, 00:48 am »

Hola, a esta línea de tu código, quítale la coma del final:

Código
  1.    "phone_number" => $_POST["phone_number"],

quedando así:

Código
  1.    "phone_number" => $_POST["phone_number"]

prueba de nuevo y nos comentas.


Saludos
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Ayuda, servidor web apache y php
« Respuesta #4 en: 23 Marzo 2022, 10:59 am »

El error te dice que no tienes permisos para escribir sobre ese fichero.

Asegúrate de que tu script tiene los permisos correctos y que la carpeta donde intentas escribirlo pertenece al mismo dueño o grupo que el script.

Además en esta linea

Código:
if ($_SERVER["REQUEST_METHOD"] = "POST"){

NO estas comparado sino que estas asignando, esa condicion siempre va a ser true. Lo correcto seria:

Código
  1. if ($_SERVER["REQUEST_METHOD"] === "POST"){




@Daniel, PHP no tiene problemas con esas cosas. La última coma de un array es totalmente opcional.

https://sandbox.onlinephpfunctions.com?s=s7EvyCjg5eLlUkksKkqsVLBVANMavFwKQGCoA6GNoLQxkNa0Binn5SpLLIpPKc0t0IDo1LQGAA%2C%2C&v=7.4.28

https://www.php.net/manual/en/function.array.php
Having a trailing comma after the last defined array entry, while unusual, is a valid syntax.

Saludos
« Última modificación: 23 Marzo 2022, 11:03 am por #!drvy » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Servidor Apache + SSL
GNU/Linux
alzehimer_cerebral 5 9,001 Último mensaje 16 Junio 2010, 12:46 pm
por alzehimer_cerebral
AYUDA A MONTAR UN SERVIDOR APACHE CON WAMP SERVER
Desarrollo Web
antoni_anemi 2 3,258 Último mensaje 14 Julio 2012, 05:48 am
por Hadess_inf
Servidor Apache apunto a un servidor con IIS pero aparece la IP ¿cómo la quito?
Desarrollo Web
Platanito Mx 3 2,790 Último mensaje 10 Febrero 2016, 16:33 pm
por MinusFour
[AYUDA] Ayuda abrir servidor apache a internet
Redes
gramsch 3 2,605 Último mensaje 26 Abril 2016, 01:54 am
por gramsch
ayuda con servidor apache
Desarrollo Web
gabo1069 7 3,316 Último mensaje 20 Abril 2018, 00:31 am
por #!drvy
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines